บทที่ 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
https://www.youtube.com/watch?v=pVQUwpufjKE&t=62s
