UDP logo

UDP คืออะไร

หลังจากเราได้อ่านบทความ TCP คืออะไร โปรโตรคอลหลักบน internet หรือ TCP/IP ที่นิยมกัน ซึ่งในชุด Internet protocol suite ยังมีอีก protocol ที่นิยมใช้งานกัน คือ User Datagram Protocol หรือ UDP ซึงก่อนที่เราจะมาดูว่า UDP คืออะไร ? ขอเล่าประวัติก่อนว่า UDP ถูกออกแบบโดย David P. Reed ในปี 1980 และด้วย UDP protocol ทำให้ computer สามารถส่งข้อมูล ไปยัง computer เครื่องอื่นโดยในระบบ IP network แต่ UPD มีความพิเศษตรงที่เป็น connectionless model คือจะไม่มีการรอลำดับของข้อมูล หาก packet ที่มาถึงมีการข้ามลำดับไปแล้ว UDP จะไม่รอ ข้อมูลลำดับก่อนหน้าอีกต่อไป และจะข้าม packet นั้นไปเลย ทำให้ไม่ต้องทำ handshaking ซึ่งทาง user ต้องยอมรับว่าข้อมูล จะไม่สามารถเชื่อถือลำดับได้ เพราะไม่มีการรับประกันว่าจะส่งข้อมูลทั้งหมดถึงปลายทาง ซึ่งถ้า application ต้องการให้มีการ retransmit ข้อมูลให้ครบ จำเป็นต้องเปลี่ยนไปใช้ TCP หรือ Stream Control Transmission Protocol (SCTP) แทน เพราะถูกออกแบบมาเพื่องานชนิดนั้น

ทีนี้หลายคนอาจเกิดคำถามว่าแล้ว UDP มันดีอย่างไร เพราะจริงๆแล้วมันก็เหมาะสมกับงานบางประเภทที่ต้องการข้อมูลที่รวดเร็วและ realtime โดนที่ไม่ต้องการความถูกต้องของข้อมูลครบถ้วนทั้งหมดก็ได้ เช่น การใช้งาน VoIP เพราะการสือสารพูดคุยเราต้องที่จะสามารถโต้ตอบกันได้ทันที ต่อให้เสียงที่ได้ยินอาจจะขาดหายไปบ้าง แต่ผู้ใช้งานต้องการได้ยินเสียงโต้ตอบกลับมาทันทีโดยไม่ต้องรอ

 

คุณลักษณะของ UDP

UDP พิเศษตรงที่ใช้ header ของ packet น้อยมาก เพราะไม่ต้องรับประกันการส่งทุก packet ด้วยเหตุนี้ UPD บางครั้งจึงหมายถึง Unreliable Datagram Protocol และด้วยคุณสมบัติต่อไปนี้ทำให้ application บางชนิดนิยมใช้แทน TCP

  • เป็น transaction-oriented เหมาะสำหรับงานค้นหาข้อมูล เช่น DNS หรือ NTP ที่ใช้ข้อมูลขนาดเล็ก
  • ทำ datagrams คือ ไม่รับประกันข้อมูล เหมาสำหรับ IP tunneling, Remote Procedure Call และ  Network File System
  • ไม่ซับซ้อน จึงเหมาะสำหรับงานที่เริ่มทำงานตั้งแต่ boot เช่น DHCP
  • Stateless คือไม่ต้องมี acknowledge กลับมาบอก จึงเหมาะกับงานที่มี client จำนวนมากเช่น streaming, IPTV
  • ไม่มีการ retransmit จึงเหมาะกับ VoIP, Game online

 

โครงสร้างของ packet UDP

udp-header

UPD header มีเพียงแค่ 4 filed เท่านั้น แต่ละอันมีขนาด 2 btyes (16 bits)

  • Source port number
  • Destination port number
  • Length
  • Checksum

udp-header bit

หลักการเรื่อง Reliability and congestion

ด้วยเรื่อง reliability ทำให้ UDP application ต้องยอมรับข้อมูลที่อาจจะสูญหายไปบ้าง บาง application เช่น TFTP จึงได้เพิ่มหลักการบางอย่างเข้าไปเพื่อให้เกิด reliability ขึ้น แต่ application อื่นส่วนใหญ่ไม่ค่อยจะใช้หลักการนี้ อย่างเช่น VoIP ตามที่เคยอธิบายไปด้วยหลัการใช้งานการสูญเสียข้อมูลไปบางส่วนไม่ได้ทำให้เกิดความเสียหายมากมาย อย่างเช่นเสียงที่เราได้ยิน ถ้าขาดๆหายๆไม่มากเราก็ยังสามารถสือสารกันได้รู้เรื่องอยู่ดี แต่เรื่อง delay เป็นสิ่งร้ายแรงที่ให้ผู้ใช้งานเกิดความไม่พอใจ เพราะทำให้การใช้งานเกิดสะดุดต้องรอให้ข้อมูลถูก retransmit จนครบสมบูรณ์ถึงจะได้ยินเสียง ซึ่งนั้นคือหลักการของ TCP แต่สำหรับ UDP ผู้ใช้งานจะได้ยินเสียงโดนทันทีไม่มี delay ทำให้เกิดความเป็นธรรมชาติเหมือนคุยกันปกติจริงๆ

 

Reference

TCP คืออะไร โปรโตรคอลหลักบน internet หรือ TCP/IP ที่นิยมกัน

UDP คืออะไร โปรโตรคอลหนึ่งใน Internet protocol suite

TCP UDP ต่างกันอย่างไร ข้อดีข้อเสียของแต่ละ protocol

 

Author: Suphakit Annoppornchai

Credit: https://saixiii.com,https://en.wikipedia.org

3 Thoughts to “UDP คืออะไร โปรโตรคอลหนึ่งใน Internet protocol suite”

  1. […] UDP คืออะไร โปรโตรคอลหนึ่งใน Internet protocol suite […]

  2. […] Protocol Suit ซึ่ง SNMP agent จะรับคำสั่งผ่านทาง UDP port 161 โดยตัว manager จะส่งคำสั่งไปยัง port 161 […]

Leave a Reply