บทที่ 8

โปรโตคอล TCP และ UDP

การพัฒนาโปรโตคอล TCP/IP เกิดขึ้นในช่วงทศวรรษ 1970 ในทศวรรษนั้น ARPANET ได้รับความนิยมอย่างมาก ซึ่งเป็นแรงผลักดันให้เกิดการสร้างเครือข่ายมากขึ้นเพื่อเชื่อมต่อองค์กรต่างๆ เนื่องจากเครือข่ายเหล่านั้นใช้โปรโตคอลที่แตกต่างกันในการส่งข้อมูลไปมา จึงไม่สามารถสื่อสารกันเองได้ การสร้างเทคโนโลยีที่สามารถทำหน้าที่เป็นตัวกลางเพื่อให้การสื่อสารดังกล่าวกลายเป็นสิ่งจำเป็น การผสมผสานระหว่าง TCP และ IP และการนำมาใช้อย่างเป็นทางการเป็นโปรโตคอลมาตรฐานในปี พ.ศ. 2526 สำหรับ ARPANET (ซึ่งเป็นต้นแบบของอินเทอร์เน็ต) ถือเป็นทางออก ไม่ว่าเครือข่ายจะใช้โปรโตคอลอื่นใด หากรองรับ TCP/IP ก็สามารถสื่อสารกับเครือข่าย TCP/IP ทั้งหมดที่มีอยู่ได้ ด้วยเทคโนโลยีทั้ง TCP และ IP จึงกลายเป็นพื้นฐานทางเทคนิคสำหรับการดำเนินงานและการเติบโตของอินเทอร์เน็ตที่ใช้งานอย่า่งกว้างขวางในปัจจุบัน

โปรโตคอล IP จะส่งข้อมูลด้วยที่อยู่เลขหมายไอพีที่แนบไว้ในแพ็คเก็ตข้อมูลโดยไม่ได้มีการสร้างเส้นทางเฉพาะ ขึ้นกับอุปกรณ์เร้าเตอร์จะเป็นตัวพิจารณาว่าจะส่งผ่านเครือข่ายใดเพื่อไปถึงเลขหมายปลายทาง เพ็คเก็ตข้อมูลหลังอาจจะไม่ถูกส่งไปเส้นทางเดิมของแพ็คเก็ตข้อมูลก่อนหน้า แต่ทุกแพ็คกเก็ตข้อมูลสามารถไปถึงปลายทางเดียวกันแม้จะไปคนละเส้นทาง เมื่อถึงปลายทาง วิธีการจัดการแพ็กเก็ตเหล่านั้นจะขึ้นอยู่กับชนิดของโปรโตคอล (โดยทั่วไปคือ TCP หรือ UDP) รวมกับ IP ที่ใช้ในการขนส่ง

TCP เป็นโปรโตคอลที่รักษาความปลอดภัยในการเดินทางและการส่งแพ็กเก็ตข้อมูลข้ามเครือข่ายผ่านกระบวนการเฉพาะ โดยเมื่อเริ่มต้นจำเป็นต้องมีการเชื่อมต่อระหว่างต้นทางและปลายทาง หรือการสร้างเส้นทางสำหรับการส่งข้อมูล (Connection-oriented) เนื่องจาก TCP เป็นโปรโตคอลที่เน้นการเชื่อมต่อ เพื่อให้ทำงานได้อย่างถูกต้อง จำเป็นต้องรับประกันการเชื่อมต่อที่ใช้งานอยู่นี้จนกว่าการส่งและรับข้อมูลจะเสร็จสมบูรณ์ เมื่อการสื่อสารเริ่มต้นขึ้น โปรโตคอล TCP จะรับข้อความของผู้ส่ง (ชั้นการสื่อสารแอฟพลิเคชั่น) และตัดเป็นแพ็กเก็ต ย่อยๆ และจะกำหนดหมายเลขแพ็กเก็ตทุกแพ็กเก็ต จากนั้นแพ็กเก็ตจะพร้อมถูกส่งไปยังเลเยอร์ IP หรือชั้นสื่อสารเน็ตเวิร์ค เพื่อส่งแพ็กเก็ตไปยังเราเตอร์และเกตเวย์ต่างๆ ในเครือข่ายเพื่อไปยังปลายทาง ไม่ว่าแพ็กเก็ตทั้งหมดจะเป็นส่วนหนึ่งของข้อความเดียวกัน แพ็กเก็ตเหล่านั้นอาจมีเส้นทางที่แตกต่างกันเพื่อไปยังปลายทางเดียวกันได้เชิ่นกัน

เมื่อข้อมูลทั้งหมดถึงปลายทางแล้ว โปรโตคอล TCP จะดำเนินการรวบรวมแพ็กเก็ตทั้งหมดมารวมกันอีกครั้งให้มีเนื้อหาอย่างถูกต้อง สถานการณ์ที่เหมาะสมเช่นนี้อาจได้รับผลกระทบหากเครือข่ายประสบปัญหา แพ็กเก็ตข้อมูลอาจสูญหายระหว่างการขนส่ง ซ้ำซ้อน หรือขาดความเป็นระเบียบ ข้อดีคือฟังก์ชันการทำงานของ TCP สามารถตรวจจับปัญหาเหล่านี้และแก้ไขปัญหาได้ โปรโตคอลสามารถขอให้ส่งแพ็กเก็ตที่สูญหายไปใหม่เพื่อจัดเรียงใหม่ตามลำดับที่ถูกต้อง หากไม่สามารถส่งข้อความได้ ระบบจะรายงานไปยังผู้ส่ง (แหล่งที่มา) อย่างที่คุณเห็น อินเทอร์เน็ตเป็นเครือข่ายแบบสลับแพ็กเก็ต ข้อมูลทั้งหมดจะถูกแบ่งออกเป็นแพ็กเก็ตที่ถูกส่งผ่านเส้นทางต่างๆ มากมายพร้อมกัน เมื่อถึงปลายทางแล้ว TCP จะสร้างขึ้นใหม่ และ IP จะรับผิดชอบแพ็กเก็ตที่จะส่งไปยังปลายทางที่ถูกต้อง

โปรโตคอล TCP และ UDP เป็นโปรโตคอลบนชั้นการสื่อสารทรานสปอร์ต หรือชั้นสื่อสารที่ 4 บน แบบจำลอง OSI ซึ่งโปรโตคอล TCP (Transmission Control Protocol) คือ โปรโตคอลการสื่อสารที่ใช้ในการรับส่งข้อมูลผ่านเครือข่ายอินเทอร์เน็ตอย่างน่าเชื่อถือ โดยจะแบ่งข้อมูลออกเป็นแพ็กเก็ต (Packet) ขนาดเล็ก จัดลำดับ และตรวจสอบข้อผิดพลาด เพื่อให้แน่ใจว่าข้อมูลจะถูกส่งไปถึงปลายทางอย่างถูกต้องครบถ้วนตามลำดับ โปรโตคอล TCP เป็นพื้นฐานสำคัญของอินเทอร์เน็ต และถูกใช้ในแอปพลิเคชันที่ต้องการความแม่นยำสูง เช่น การท่องเว็บ การส่งอีเมล และการถ่ายโอนไฟล์

หน้าที่หลักของ TCP

การสร้างการเชื่อมต่อ (Connection-oriented):

ก่อนส่งข้อมูล TCP จะสร้างการเชื่อมต่อที่เชื่อถือได้ระหว่างอุปกรณ์ต้นทางและปลายทางผ่านกระบวนการที่เรียกว่า "การจับมือสามทาง" (Three-way handshake)

การแบ่งและจัดลำดับแพ็กเก็ต:

TCP จะตัดข้อมูลของผู้ส่งออกเป็นแพ็กเก็ตขนาดเล็ก และกำหนดหมายเลขกำกับแต่ละแพ็กเก็ต เมื่อแพ็กเก็ตทั้งหมดไปถึงปลายทาง TCP จะรวบรวมและจัดเรียงใหม่ให้เป็นข้อความที่สมบูรณ์

การตรวจสอบข้อผิดพลาดและการส่งซ้ำ:

หากแพ็กเก็ตข้อมูลสูญหาย เกิดความซ้ำซ้อน หรือมาถึงไม่เป็นลำดับ TCP จะสามารถตรวจจับปัญหาดังกล่าวและขอให้ส่งแพ็กเก็ตที่ขาดหายไปใหม่ เพื่อให้แน่ใจว่าข้อมูลถูกส่งอย่างครบถ้วน

การควบคุมการไหลของข้อมูล (Flow Control):

TCP มีกลไกในการควบคุมปริมาณข้อมูลที่ส่ง เพื่อป้องกันไม่ให้ข้อมูลล้นเกินความสามารถในการรับของปลายทาง


การสื่อสารแบบ TCP/IP

Thumbnail of the YouTube video

UDP Protocol

โปรโตคอล UDP (User Datagram Protocol) คือ โปรโตคอลเครือข่ายที่ส่งข้อมูลแบบรวดเร็วและไม่รับประกันความน่าเชื่อถือ โดยไม่มีการสร้างการเชื่อมต่อก่อนส่งข้อมูล (Connectionless) ทำให้มีความเร็วสูงกว่า แต่ก็อาจทำให้ข้อมูลสูญหายหรือมาถึงไม่เรียงลำดับ เหมาะกับการใช้งานที่ต้องการความเร็วเป็นพิเศษ เช่น การสตรีมวิดีโอ, เกมออนไลน์, DNS, และ VoIP.

https://www.youtube.com/watch?v=pVQUwpufjKE&t=62s

ลักษณะสำคัญของ UDP

Connectionless (ไม่สร้างการเชื่อมต่อ): UDP ส่งข้อมูลทันทีโดยไม่ต้องสร้างการเชื่อมต่ออย่างเป็นทางการก่อน ซึ่งต่างจาก TCP ที่ต้องมีการสร้างการเชื่อมต่อก่อน.

Unreliable (ไม่รับประกันความน่าเชื่อถือ): UDP ไม่รับประกันว่าข้อมูลทุกชิ้นจะส่งถึงปลายทางหรือไม่ และไม่รับประกันลำดับการรับข้อมูล ทำให้แพ็กเก็ตอาจสูญหายระหว่างทาง

ส่งข้อมูลเป็น Datagram: ข้อมูลจะถูกแบ่งเป็นชิ้นเล็กๆ เรียกว่า ดาต้าแกรม (Datagram) และส่งไปยังปลายทาง.

Header ขนาดเล็ก: ส่วนหัว (Header) ของ UDP มีขนาดเพียง 8 ไบต์ ทำให้มีโอเวอร์เฮด (overhead) น้อยและทำงานได้รวดเร็ว

รองรับ Multicast และ Broadcast:UDP สามารถส่งข้อมูลไปยังผู้รับหลายรายพร้อมกัน (Multicast) หรือส่งไปยังทุกเครื่องในเครือข่าย (Broadcast) ได้

ข้อดีของ UDP

ความเร็วสูง: การที่ไม่มีกระบวนการตรวจสอบและสร้างการเชื่อมต่อ ทำให้ UDP ทำงานได้เร็วกว่า TCP มาก

ประสิทธิภาพดี: มีโอเวอร์เฮดน้อย ทำให้ประหยัดทรัพยากรและส่งข้อมูลได้มาก

ข้อจำกัดของ UDP

ข้อมูลอาจสูญหาย:ไม่มีการรับประกันว่าข้อมูลจะถึงปลายทางครบถ้วน.

ลำดับข้อมูลไม่แน่นอน: ข้อมูลอาจมาถึงปลายทางไม่เรียงลำดับ

การใช้งาน UDP

การสตรีมมิ่ง (Streaming): เช่น การเล่นวิดีโอและ IPTV ที่ยอมรับการสูญหายของข้อมูลบางส่วนได้. การเล่นเกมออนไลน์ (Online Gaming): ต้องการความเร็วในการตอบสนองเพื่อความเรียลไทม์. DNS (Domain Name System): ใช้ในการสอบถามชื่อโดเมนเป็นข้อมูลขนาดเล็กจำนวนมาก. VoIP (Voice over IP): การสื่อสารด้วยเสียงที่ต้องการความรวดเร็วและทนทานต่อการสูญเสียข้อมูลเล็กน้อย DHCP (Dynamic Host Configuration Protocol): ใช้สำหรับการกำหนดค่า IP อัตโนมัติ.

Thumbnail of the YouTube video

หัวข้อ