พื้นฐาน Network - TCP & UDP
← กลับไปหน้า Networkhttps://youtu.be/lN3qPN3K2m4?si=8BKj-n6Kr-gOQM7E
TCP และ UDP
ข้อความ 10% มาจาก AI และอีก 90% เขียนออกมาจากใจผมล้วนๆ ผมจะไม่เน้นใช้ AI เขียนให้เพราะมันสื่อสารไม่ตรงใจผมเท่าไหร่
TCP กับ UDP คือโปรโตคอลที่ใช้ในการส่งข้อมูลใน Internet โดยที่ TCP จะเน้นความถูกต้องสมบูรณ์ของข้อมูล แต่จะช้ากว่า UDP
ส่วน UDP จะเน้นความรวดเร็ว แต่ความถูกต้องสมบูรณ์จะสู้ TCP ไม่ได้
TCP Protocol
มันจะมีอยู่ 3 ช่วงหลักๆก็คือ
1. ช่วงเริ่มการเชื่อมต่อ
2. ช่วงส่งข้อมูล
3. ช่วงปิดการเชื่อมต่อ
ช่วงเริ่มการเชื่อมต่อ
ก่อนอื่นให้คุณเข้าใจสัญญาณที่อุปกรณ์มันจะส่งหากันในกรณีนี้ก่อน
1. SYN ความหมายง่ายๆมันคือการขอเริ่มการเชื่อมต่อ
2. ACK ความหมายง่ายๆมันคือการบอกว่าได้รับข้อมูลก่อนหน้าเรียบร้อยแล้ว
ทีนี้ กระบวนการในการเริ่มการเชื่อมต่อมันจะเรียกว่า 3-way Handshake ซึ่งมี 3 ขั้นตอนดังภาพ

1. SYN คือเครื่องต้นทางส่ง SYN ไปขอเริ่มการเชื่อมต่อ
2. SYN+ACK คือเครื่องปลายทางตอบกลับไป เป็นการขอการเชื่อมต่อกลับเพื่อให้การเชื่อมต่อสมบูรณ์ พร้อมกับบอกไปด้วยว่าได้รับ SYN ก่อนหน้าเรียบร้อยแล้ว
3. ACK เครื่องต้นทางส่ง ACK กลับไปอีกครั้งเพื่อสื่อว่าได้รับ SYN จากเครื่องปลายทางแล้ว
เพียงเท่านี้การเชื่อมต่อก็เสร็จสมบูรณ์และพร้อมส่งข้อมูลแล้ว
ช่วงส่งข้อมูล
ข้อมูลก็จะถูกส่งจริงๆในขั้นตอนนี้ เช่น การโหลดไฟล์ โหลดหนังอะไรต่างๆ ถ้าหากว่ามีข้อมูลตกหล่น เสียหาย หรือไม่สมบูรณ์เนี่ย ด้วยความเป็น TCP มันก็จะส่งใหม่เพื่อให้ข้อมูลมันถูกต้องแล้วก็สมบูรณ์
ช่วงปิดการเชื่อมต่อ
ก่อนหน้านี้ผมได้บอกความหมายของ SYN กับ ACK ไปแล้ว แต่ในขั้นตอนนี้มันจะมีสัญญาณเพิ่มมาอีกอันนึงก็คือ FIN
ซึ่ง FIN มันก็ย่อมาจากคำว่า FINISH นั่นแหละ มันเป็นสัญญาณที่ส่งไปเพื่อบอกว่าเสร็จแล้ว และขอปิดการเชื่อมต่อ มันก็จะได้ว่า
1. SYN ความหมายง่ายๆมันคือการขอเริ่มการเชื่อมต่อ
2. ACK ความหมายง่ายๆมันคือการบอกว่าได้รับข้อมูลก่อนหน้าเรียบร้อยแล้ว
3. FIN ความหมายง่ายๆคือมันเป็นการบอกว่าเสร็จแล้ว และขอปิดการเชื่อมต่อ
ซึ่งในขั้นตอนนี้มันจะเรียกว่า 4-way Handshake ซึ่งมี 4 ขั้นตอนดังภาพ

1. FIN เครื่องต้นทางส่ง FIN ไปเพื่อบอกว่าเสร็จแล้ว และขอปิดการเชื่อมต่อ
2. ACK เครื่องปลายทางส่ง ACK กลับคืนมาเพื่อสื่อว่าได้รับ FIN ก่อนหน้าเรียบร้อยแล้ว
3. FIN เครื่องปลายทางอาจจะมีอะไรบางอย่างที่มันยังทำไม่เสร็จ มันก็จะยังไม่ส่ง FIN มาจนกว่าจะทำเสร็จ แต่ถ้าเสร็จแล้วมันก็จะส่ง FIN กลับมา
4. ACK เครื่องต้นทางส่ง ACK กลับไปเพื่อบอกว่าได้รับ FIN ก่อนหน้าเรียบร้อยแล้ว
UDP Protocol
UDP มันไม่มีสถานะการเชื่อมต่ออะไรทั้งนั้น ไม่สนความถูกต้องสมบูรณ์ ขอแค่ส่งได้ให้มันจบๆไป ซึ่งข้อดีคือมันเร็ว แต่ความถูกต้องสมบูรณ์จะสู้ TCP ไม่ได้
ปิดท้าย
ในการใช้งานจริงๆเนี่ย TCP ก็จะเอาไปใช้กับการเชื่อมต่อที่ต้องการความถูกต้องสมบูรณ์ เช่น การโหลดไฟล์อะไรต่างๆ ส่วน UDP เนี่ย จะเอาไปใช้กับการเชื่อมต่อที่ต้องการความรวดเร็ว แต่ไม่จำเป็นต้องสมบูรณ์ก็ได้ เช่น การเล่นเกมออนไลน์
ใครที่เคยเล่นพวก RoV, PUBG, Free Fire หรือเกมออนไลน์อื่นๆ คุณก็อาจจะรู้สึกว่ามันมีบางช่วงที่เน็ตมันกระตุก ตัวละครมันวาร์ปได้ นั่นแหละคือการเชื่อมต่อแบบ UDP เพราะการเชื่อมต่อมันไม่สมบูรณ์ แต่นั่นก็ไม่ใช่ปัญหา เพราะสุดท้ายมันก็เล่นได้ดีแล้วก็เล่นได้เร็วถ้าเน็ตแรงพอ