หากคุณกำลังเข้าสู่เครือข่ายคอมพิวเตอร์ หรือหากคุณได้ศึกษาการตั้งค่าเครือข่ายของแอปพลิเคชันบางตัว คุณอาจเห็นคำเหล่านี้:TCP และ UDP
TCP ซึ่งย่อมาจาก Transmission Control Protocol และ UDP หรือ User Datagram Protocol เป็นส่วนหนึ่งของชุดโปรโตคอลอินเทอร์เน็ต TCP และ UDP เป็นวิธีการส่งข้อมูลทางอินเทอร์เน็ตที่แตกต่างกัน
แต่ถึงแม้จะรู้ว่าย่อมาจากอะไร ก็ยังยากที่จะรู้ว่าควรใช้โปรโตคอลใด หรือเหตุใดคุณจึงต้องใช้โปรโตคอลนี้แทนโปรโตคอลอื่น
ในบทความนี้ เราจะพูดถึงข้อมูลพื้นฐานเกี่ยวกับเครือข่ายคอมพิวเตอร์ ความแตกต่างระหว่าง TCP และ UDP เมื่อมีการใช้แต่ละรายการ และอื่นๆ
พื้นฐานเกี่ยวกับเครือข่ายคอมพิวเตอร์
ก่อนที่จะเจาะลึกว่า TCP และ UDP ทำงานอย่างไร คุณควรทราบข้อมูลพื้นฐานเกี่ยวกับวิธีการทำงานของอินเทอร์เน็ตก่อน
โดยทั่วไป อินเทอร์เน็ตเป็นเครือข่ายของอุปกรณ์เชื่อมต่อ อุปกรณ์แต่ละเครื่อง ไม่ว่าจะเป็นสมาร์ทโฟนหรือเซิร์ฟเวอร์ของคุณ สื่อสารผ่านชุดโปรโตคอลอินเทอร์เน็ต
ชุดโปรโตคอลอินเทอร์เน็ตคือชุดของโปรโตคอลหรือวิธีการต่างๆ สำหรับอุปกรณ์ในการสื่อสารระหว่างกัน ทั้ง TCP และ UDP เป็นโปรโตคอลหลักภายในชุดโปรโตคอลอินเทอร์เน็ต:
อุปกรณ์แต่ละเครื่องที่เชื่อมต่อกับอินเทอร์เน็ตจะมีที่อยู่ IP ที่ไม่ซ้ำกัน และเมื่อใดก็ตามที่อุปกรณ์สองเครื่องสื่อสารกันทางอินเทอร์เน็ต พวกเขามักจะใช้ TCP หรือ UDP เพื่อทำเช่นนั้น
นี่คือการเปรียบเทียบโดยย่อระหว่างทั้งสอง:
สำหรับภาพรวมระดับที่สูงขึ้นเกี่ยวกับวิธีการทำงานของอินเทอร์เน็ต โปรดดูวิดีโอความยาว 5 นาทีนี้:
TCP คืออะไร
TCP หรือ Transmission Control Protocol เป็นโปรโตคอลเครือข่ายทั่วไปทางออนไลน์ TCP มีความน่าเชื่อถืออย่างยิ่ง และใช้สำหรับทุกอย่างตั้งแต่การท่องเว็บ (HTTP) การส่งอีเมล (SMTP) และการถ่ายโอนไฟล์ (FTP)
ใช้ TCP ในสถานการณ์ที่จำเป็นที่ข้อมูลทั้งหมดที่ส่งโดยอุปกรณ์เครื่องหนึ่งจะได้รับโดยอุปกรณ์อีกเครื่องหนึ่งที่ไม่เสียหาย
ตัวอย่างเช่น เมื่อคุณเยี่ยมชมเว็บไซต์ TCP ถูกใช้เพื่อรับประกันว่าทุกอย่างตั้งแต่ข้อความ รูปภาพ และโค้ดที่จำเป็นในการแสดงหน้านั้นมาถึง หากไม่มี TCP รูปภาพหรือข้อความอาจหายไป หรือมาถึงในลำดับที่ไม่ถูกต้อง ทำให้หน้าแตก
TCP เป็นโปรโตคอลที่เน้นการเชื่อมต่อ หมายความว่ามันสร้างการเชื่อมต่อระหว่างอุปกรณ์สองเครื่องก่อนถ่ายโอนข้อมูล และรักษาการเชื่อมต่อนั้นไว้ตลอดกระบวนการถ่ายโอน
ในการสร้างการเชื่อมต่อระหว่างอุปกรณ์สองเครื่อง TCP ใช้วิธีการที่เรียกว่าการจับมือสามทาง:
ตัวอย่างเช่น หากต้องการอ่านบทความนี้บนอุปกรณ์ของคุณ ก่อนอื่นอุปกรณ์ของคุณได้ส่งข้อความไปยังเซิร์ฟเวอร์ข่าว freeCodeCamp ที่เรียกว่า SYN (หมายเลขลำดับการซิงโครไนซ์)
จากนั้นเซิร์ฟเวอร์ freeCodeCamp News จะส่งข้อความตอบรับที่เรียกว่า SYN-ACK
เมื่ออุปกรณ์ของคุณได้รับ SYN-ACK จากเซิร์ฟเวอร์ อุปกรณ์จะส่งข้อความตอบรับ ACK กลับ ซึ่งจะสร้างการเชื่อมต่อ
เมื่อสร้างการเชื่อมต่อ TCP ระหว่างอุปกรณ์สองเครื่องแล้ว โปรโตคอลจะรับประกันว่าข้อมูลทั้งหมดจะถูกส่ง
กลับไปที่ตัวอย่างอุปกรณ์ของคุณและ freeCodeCamp News เมื่อการจับมือแบบสามทางเสร็จสิ้น เซิร์ฟเวอร์ News จะเริ่มส่งข้อมูลทั้งหมดที่เว็บเบราว์เซอร์ของอุปกรณ์ของคุณต้องการเพื่อแสดงบทความนี้
อุปกรณ์ทั้งหมดจะแยกข้อมูลออกเป็นแพ็กเก็ตขนาดเล็กก่อนที่จะส่งผ่านอินเทอร์เน็ต แพ็กเก็ตเหล่านั้นจะต้องประกอบใหม่อีกครั้งในอีกด้านหนึ่ง
ดังนั้นเมื่อเซิร์ฟเวอร์ freeCodeCamp News ส่ง HTML, CSS, รูปภาพ และโค้ดอื่นๆ สำหรับบทความนี้ เซิร์ฟเวอร์จะแบ่งทุกอย่างออกเป็นแพ็กเก็ตข้อมูลขนาดเล็กก่อนที่จะส่งไปยังอุปกรณ์ของคุณ จากนั้นอุปกรณ์ของคุณจะประกอบแพ็กเก็ตเหล่านั้นใหม่เป็นไฟล์และรูปภาพที่จำเป็นสำหรับการแสดงผลบทความนี้
TCP ช่วยให้มั่นใจได้ว่าแพ็กเก็ตเหล่านี้ทั้งหมดมาถึงอุปกรณ์ของคุณ หากแพ็กเก็ตสูญหายระหว่างทาง TCP จะทำให้อุปกรณ์ของคุณแจ้งให้เซิร์ฟเวอร์ทราบว่าไม่มีข้อมูลที่ขาดหายไป และเพื่อให้เซิร์ฟเวอร์ส่งแพ็กเก็ตเหล่านั้นอีกครั้ง
เมื่ออุปกรณ์ของคุณได้รับข้อมูลทั้งหมดที่จำเป็นในการแสดงบทความแล้ว TCP จะยุติการเชื่อมต่อระหว่างอุปกรณ์ทั้งสองโดยอัตโนมัติด้วยวิธีที่คล้ายกับการจับมือสามทาง คราวนี้ใช้แพ็กเก็ต FIN และ ACK
UDP คืออะไร
UDP หรือ User Datagram Protocol เป็นโปรโตคอลหลักอีกตัวหนึ่งที่ประกอบขึ้นเป็นชุดโปรโตคอลอินเทอร์เน็ต UDP มีความน่าเชื่อถือน้อยกว่า TCP แต่ง่ายกว่ามาก
UDP ใช้สำหรับสถานการณ์ที่ข้อมูลสูญหายได้ เช่น วิดีโอ/เสียงสด หรือที่ความเร็วเป็นปัจจัยสำคัญ เช่น เกมออนไลน์
แม้ว่า UDP จะคล้ายกับ TCP ที่ใช้ในการส่งและรับข้อมูลออนไลน์ แต่ก็มีความแตกต่างที่สำคัญสองสามประการ
ประการแรก UDP เป็นโปรโตคอลแบบไม่มีการเชื่อมต่อ ซึ่งหมายความว่าจะไม่สร้างการเชื่อมต่อล่วงหน้าเหมือนที่ TCP ทำกับแฮนด์เชคสามทาง
ขั้นต่อไป UDP ไม่รับประกันว่าข้อมูลทั้งหมดจะได้รับการถ่ายโอนสำเร็จ ด้วย UDP ข้อมูลจะถูกส่งไปยังอุปกรณ์ใดๆ ที่กำลังฟังอยู่ แต่ไม่สนใจว่าข้อมูลบางส่วนจะสูญหายไประหว่างทางหรือไม่ นี่เป็นหนึ่งในเหตุผลที่ UDP เรียกอีกอย่างว่าโปรโตคอล "ไฟแล้วลืม"
วิธีที่ดีในการคิดเกี่ยวกับความแตกต่างเหล่านี้คือ TCP เป็นเหมือนการสนทนาระหว่างคนสองคน คน A ขอให้คน B พูด ฝ่าย B พูดแน่ ไม่เป็นไร บุคคล A ตกลงและทั้งคู่ก็เริ่มพูด
UDP เป็นเหมือนผู้ประท้วงที่อยู่ข้างนอกด้วยโทรโข่ง ทุกคนที่ให้ความสนใจผู้ประท้วงควรได้ยินสิ่งที่พวกเขาพูดเป็นส่วนใหญ่ แต่ไม่มีหลักประกันว่าทุกคนในพื้นที่จะได้ยินสิ่งที่ผู้ประท้วงพูด หรือแม้แต่ฟังอยู่
อันไหนเร็วกว่า – TCP หรือ UDP
โดยทั่วไป UDP เป็นโปรโตคอลที่เร็วกว่า
UDP นั้นง่ายกว่ามาก และไม่พยายามสร้างการเชื่อมต่อระหว่างอุปกรณ์ก่อนที่จะส่งข้อมูล หรือตรวจสอบว่าข้อมูลทั้งหมดมาถึงแล้ว เพียงส่งข้อมูลไปยังอุปกรณ์ใดๆ ที่ร้องขอ และทำต่อไปจนกว่าอุปกรณ์อื่นจะตัดการเชื่อมต่อหรือไม่มีข้อมูลเหลือให้ส่งอีกต่อไป
คิดว่าดื่มจากสายยางแทนที่จะจิบจากขวด คุณจะดับกระหายได้ด้วยวิธีใดวิธีหนึ่ง แต่อาจจะจบลงด้วยเสื้อเชิ้ตที่เปียกชื้นโดยใช้วิธีเดิม
แต่การที่เร็วกว่านั้นไม่ได้หมายความว่า UDP เป็นโปรโตคอลโดยรวมที่ดีกว่า ก็หมายความว่าดีขึ้นในบางสถานการณ์
ดังที่กล่าวไว้ก่อนหน้านี้ TCP จำเป็นในสถานการณ์ที่แพ็กเก็ตข้อมูลทั้งหมดจะถูกส่งตามลำดับ และแพ็กเก็ตทั้งหมดมาถึงมีความสำคัญ เว็บจะไม่ทำงานหากไม่มี TCP
และในขณะที่ TCP ทำงานช้ากว่าเนื่องจากวิธีการสร้างการเชื่อมต่อ และเนื่องจากการตรวจสอบหาแพ็กเก็ตที่หายไป มันยังคงทำงานได้อย่างรวดเร็ว เนื่องจากอยู่บนเว็บและใช้ HTTP ไซต์ต่างๆ เช่น YouTube หรือ Netflix ทั้งหมดจึงใช้ TCP เพื่อส่งข้อมูลไปยังอุปกรณ์ของคุณ
TCP ยังอนุญาตให้บัฟเฟอร์ ดังนั้นเบราว์เซอร์ของคุณสามารถขอและโหลดข้อมูลเพิ่มเติมในขณะที่คุณดู ทำให้เล่นได้อย่างราบรื่นและคุณสามารถข้ามไปยังส่วนอื่น ๆ ของวิดีโอได้
UDP เป็นตัวเลือกที่ดีกว่าสำหรับวิดีโอสดและเสียงหรือเกมออนไลน์ที่ความเร็วสำคัญกว่าข้อมูลที่อาจสูญหาย
เมื่อคุณโทรผ่าน Google Meet หรือ Zoom วิดีโอและเสียงของคุณจะถูกส่งผ่าน UDP หากบางแพ็กเก็ตสูญหายไประหว่างทาง แพ็กนั้นก็จะปรากฏเป็นวิดีโอ/เสียงที่ล่าช้าหรือถูกตัดออก
หากคุณเล่นวิดีโอเกม คุณอาจคิดว่าวิธีที่ TCP ทำให้แน่ใจว่าแพ็กเก็ตข้อมูลทั้งหมดมาถึงอุปกรณ์อื่นจะทำให้เป็นตัวเลือกที่เหมาะสมที่สุด แต่ในความเป็นจริง การตรวจสอบและส่งข้อมูลทั้งหมดที่ TCP ทำนั้นเพิ่มเวลาในการตอบสนอง
ผู้พัฒนาเกมได้ค้นพบวิธีที่ชาญฉลาดอื่น ๆ เพื่อให้แน่ใจว่าข้อมูลและสถานะของผู้เล่นนั้นแม่นยำที่สุด หากคุณสนใจที่จะอ่านเพิ่มเติมเกี่ยวกับสาเหตุที่ UDP เป็นที่นิยมสำหรับการเล่นเกมออนไลน์ โปรดอ่านบทความนี้
FIN
ฉันหวังว่าบทความนี้จะช่วยให้คุณเข้าใจความแตกต่างระหว่าง TCP และ UDP และถ้ามีคนถามว่าอันไหนเร็วกว่า บอกพวกเขาว่าคุณอ่านอะไรที่นี่:"UDP เร็วกว่า แต่ ..."
และถ้าคุณชอบสิ่งที่คุณอ่าน แจ้งให้เราทราบบน Twitter