Transmission
Control Protocol (TCP) มีคุณลักษณะที่สำคัญ ดังนี้
·
จัดแบ่งข้อมูลจากระดับ Application ให้มีขนาดพอเหมาะที่จะส่งไปบนเครือข่าย (Segment)
·
มีการสร้าง Connection
กันก่อนที่จะมีการรับส่งข้อมูลกัน (Connection-oriented)
·
มีการใช้ Sequence
Number เพื่อจัดลำดับการส่งข้อมูล
·
มีการตรวจสอบว่าข้อมูลที่ส่งไปถึงปลายทางหรือไม่ (Recovery)
บน
TCP
ก่อนจะส่งข้อมูลนั้นจะต้องทำการตรวจสอบก่อนว่า
ปลายทางสามารถติดต่อได้ โดยจะทำการสร้างการเชื่อมต่อระหว่างผู้ส่งและผู้รับก่อน
โดยใช้กลไล Three-Way Handshake เพื่อให้แน่ใจว่าข้อมูลที่ส่งจะสามารถส่งถึงผู้รับแน่นอน
นอกจาก
Three-Way
Handshake แล้ว TCP ยังมีกลไก Flow
Control เพื่อควบคุมการส่งข้อมูลเมื่อเกิดปัญหาบนเครือข่ายระหว่างที่ส่งข้อมูลอยู่
หรือ กลไก Error Recovery ในกรณีที่มีข้อมูลบางส่วนหายไปขณะส่ง
ก็ให้ทำการส่งมาใหม่ (Retransmission) แต่ผมขอพูดเรื่องกลไกต่าง
ๆ ไว้เพียงเบื้องต้นละกันนะครับ
นอก
จากนั้นยังสามารถทำการจัดสรรค์หรือแบ่งส่วนของข้อมูลออกเป็นส่วนๆ (Segmentation) ก่อนที่จะส่งลงไปที่
Layer
3 อีกด้วย และข้อมูลที่ถูกแบ่งออก ก็จะใส่ลำดับหมายเลขเข้าไป (Sequence
number) เพื่อให้ปลายทางนำข้อมูลไปประกอบกันได้อย่างถูกต้อง
User
Datagram Protocol (UDP) มีคุณลักษณะที่สำคัญ ดังนี้
·
ไม่มีการสร้าง Connection กันก่อนที่จะมีการรับส่งข้อมูลกัน (Connectionless)
·
ส่งข้อมูลด้วยความพยายามที่ดีที่สุด (Best-Effort)
·
ไม่มีการตรวจสอบว่าข้อมูลที่ส่งไปถึงปลายทางหรือไม่ (No
Recovery)
บน
UDP
จะตรงข้ามกับ TCP เลยครับ เพราะ
ไม่มีการสร้างการเชื่อมต่อกันก่อน หมายความว่าถ้า services ใดๆ
ใช้งานผ่าน UDP ก็จะถูกส่งออกไปทันทีด้วยความพยายามที่ดีที่สุด
(ฺBest-Effort) และไม่มีการส่งใหม่เมื่อข้อมูลสูญหาย
(No
Recovery) หรือส่งไม่ถึงปลายทางอีกด้วย
ข้อดีของมันก็คือ
มีความรวดเร็วในการส่งข้อมูล เพราะฉะนั้น services ที่ใช้งานผ่าน UDP ก็มีมากมาย
เช่น TFTP , DHCP , VoIP และอื่นๆ เป็นต้น
ผมชอบภาพนี้
เพราะเปรียบเทียบการทำงานของ TCP และ UDP ได้เห็นภาพดีเหมือนกันครับ
ที่มา : https://sites.google.com/site/suchawdisakdisunthr54/h04/41/4-2-data-link-layer