Transcript UDP Ports

User Datagram Protocol
บทที่ 9
้
เนื อหาภายในบท
 Introduction to UDP
 Uses for UDP
 The UDP Message
 The UDP Header
 UDP Ports
 The UDP Pseudo Header
 Summary
ภายใน Transport layer ประกอบไปด ้วย 2 โพรโตคอล
่ การ TCP/IP ใช ้เป็ นแบบฉบับสาหรบั การส่งข อ้ มูล
ทีบริ
ได ้แก่ Transmission Control protocol (TCP) และ
้
User Datagram Protocol (UDP) ภายในบทนี จะ
อธิบ ายลัก ษณะของ UDP
และฟิ ลด ์ภายใน UDP
Header
Introduction to UDP
Introduction to UDP
UDP ถูกกาหนดไว ้ใน RFC 768 มีลก
ั ษณะดังนี ้
่
 Connectionless จุดเชือมต่
อจะส่งขอ้ มูล UDP
ที่
ประกอบด ้วย UDP Header และขอ้ มูลข่าวสารโดย
ปราศจากการยืน ยัน การติด ต่อ ระหว่า งสถานภาพการ
่
ติดต่อสือสาร
่
 Unreliable จุดเชือมจะต่
อส่งข ้อมูล UDP ในลักษณะ
ของ datagram โดยปราศจากการจัดลาดับหรือการ
ตอบรบั
Application Layer protocol จะต ้องทา
การส่ ง ข อ้ มู ล และน าข อ้ มู ล กลับ มาใหม่ อีก คร ง้ั UDP่ น
based Application Layer protocol ทีเป็
่ อในการ
แบบอย่ า งจะจัด เตรีย มให เ้ กิด ความน่ าเชือถื
บริการของตัวเองเช่นกัน หรือจะส่งข ้อมูล UDP ใหม่เป็ น
่ นอน
ช่วงๆ ไม่ก็หลังจากการกาหนดค่าของเวลาทีแน่
Introduction to UDP
 Provides identification of Application layer
protocols UDP จะจัดหากระบวนการส่งขอ้ มูลถึง
Application Layer protocol โดยเฉพาะ หรือ
ดาเนิ นการในผูใ้ ห ้บริการ internetwork
UDP
้ น
้ ทางและปลายทางของทัง้
header
จะจัดหาทังต
กระบวนการ
 Provides checksum of UDP message UDP
header จะจัดหาบิต checksum จานวน 16 บิต ของ
้
ข ้อมูล UDP ทังหมด
Note การอ้า งอิง ถึง RFCs
้
้
ทังหมดในบทนี
Introduction to UDP
UDP เป็ นผลโดยตรงของบริการ datagram ใน IP
่ ส่
่ งผ่าน
นอกจากการจัดการกระบวนการของ UDP เพือที
ข ้อมูลไปยัง Application Layer protocols
UDP ไม่ได ้รวมไปถึงการจัดบริการในการส่งข ้อมูลต่อไปนี ้
่ ้าและ
 Buffering UDP ไม่ได ้จัดการ buffering ข ้อมูลทีเข
ออก Application layer protocol จะตอ้ งจัดการ
้
buffering ทังหมด
้ ่ งผูส้ ่ง
 Segmentation UDP ไม่ได ้มีการจัดการใดๆ ทังฝั
และฝั่งผูร้ ับในการควบคุมการไหลของข ้อมูล ผูส้ ง่ ข ้อมูลของ
UDP สามารถตอบกลับไปยังผูร้ บั ของ Internet Control
Message protocol (ICMP)
Source Quench
่ งคับใช ้
message แต่ไม่เป็ นทีบั
Uses for UDP
Uses for UDP
่ ่เหนื อกว่า
ถึงแม้ว่า UDP ไม่ได ้จัดการบริการต่างๆ ทีอยู
Application Layer protocol identification และ
checksum แต่ก็ใช ้ในการส่งขอ้ มูลโดยใช ้ UDP ดัง
ประกอบไปด ้วย
 Lightweight
protocol
เพื่อที่จะติด ต่ อ
หน่ วยความจ าและแหล่ ง ประมวลผลทร พ
ั ยากร บาง
Application Layer protocol ตอ้ งการการใช ้
โพรโตคอลที่เล็ ก กว่ า ที่ท าหน้า ที่ส าหร บ
ั รู ป แบบการใช ้
่
้
งานเฉพาะในการแลกเปลียนข
อ้ มูลเบืองต
้น ตัวอย่างที่
่
ดีที่สุ ด คือ การสอบถามชือของ
Domain
Name
่ นแบบฉบับคือ DNS client จะส่ง
System (DNS) ทีเป็
่
การร ้องขอขอ้ มูลชือของ
DNS ไปยัง DNS server
DNS server ก็จะตอบกลับด ้วยการตอบกลับข ้อมูลชือ่
Uses for UDP
 Reliability provided by the Application
Layer protocol ถ ้า Application Layer protocol
่ อ ทาให ้
จัดการให ้บริการการส่งข ้อมูลของตัวเองน่ าเชือถื
Transport Layer ไม่จาเป็ นตอ้ งจัดการในส่วนนี ้
ยกตัวอย่าง Application Layer protocol ที่
่ อคือ Trivial File Transfer Protocol (TFTP)
น่ าเชือถื
และ Network File System (NFS)
 Reliability not required due to periodic
advertisement process ถ ้า Application layer
protocol
ประกาศขอ้ มู ลเป็ นช่วงๆ การส่งขอ้ มู ลที่
้
่ อ จะไม่ เ กิด ขึ น
ถ า้ การประกาศล ม
้ เหลวจะ
น่ าเชือถื
Uses for UDP
 One-to-many delivery UDP สามารถใช ้เป็ น
่
่ ้อมูล
Transport Layer protocol ได ้เมือไหร่
ก็ตามทีข
ของ Application Layer จาเป็ นต ้องส่งไปยังหลายๆ
ปลายทางโดยใช ้ IP multicast หรือ broadcast
address TCP สามารถใช ้ได ้กับการส่งแบบหนึ่ งต่อหนึ่ ง
เท่ า นั้ น ยกตัว อย่ า งเช่น ต น
้ ทางส่ ง ชื่อ broadcast
NetBIOS เรียกขอข ้อความตอบกลับโดยใช ้ UDP
The UDP Message
The UDP Message
ข ้อมูลข่าวสารของ UDP ประกอบด ้วย UDP header
่ กกาหนดไว ้ใน IP Header ด ้วย
และส่วนเก็บขอมูล ซึงถู
IP Protocol หมายเลข 17 (ox11) ข ้อมูลสามารถมี
ค่าสูงสุด 65,507 ไบต ์ มาจาก 65,536 ลบด ้วย IP
header ขนาดต่าสุด (20 bytes) และ UDP header
่ ดเก็บไว ้ประกอบด ้วย
(8 bytes) IP datagram ทีจั
่ ดสรร header และ
Network Interface Layer ทีจั
trailer ภาพ 9-1 จะแสดงรายละเอียดในเฟรม
The UDP Message
ภาพ 9-1 การจัดเก็บข้อมู ลใน UDP แสดงให้เห็น
IP header และ Network Interface Layer
header และ trailer
ภาพ 9-1 การจัดเก็บข้อมู ลใน UDP แสดงให้เห็น
IP header และ Network Interface Layer
header และ trailer
The UDP Message
ภายใน IP
header
ของขอ้ งมูลข่าวสารใน UDP
่
ประกอบดว้ ย IP Address ฟิ ลด ์ตน้ ทางทีแสดงการ
่
่ งขอ้ มูลใน UDP
เชือมต่
อของผูใ้ หบ้ ริการทีส่
IP
่
Address ฟิ ลด ์ปลายทางทีแสดง
unicast address
่ ่ตรงกลางถ ้า
ของผูใ้ ห ้บริการปลายทาง (หรือเส ้นทางทีอยู
หากแพ็ กเก็ตเป็ นเสน
้ ทางของตน้ ทาง) IP broadcast
address หรือ IP multicast address
The UDP Header
The UDP Header
รู ปที่ 9-2 โครงสร ้างของ UDP header
The UDP Header
ฟิ ลด ์ของ UDP header ได ้กาหนดไว ้ดังนี ้
่ 2 ไบต ์นี ้ ระบุต ้นทางของ
 Source Port
ฟิ ลด ์ทีมี
่ งข ้อมูลของ UDP
Application Layer protocol ทีส่
การใช ้งานของพอร ์ตต น
้ ทางเป็ นอีก ทางเลือ ก กรณี ที่
ไม่ได ้ใช ้จะเซ็ตให ้เป็ น 0
IP multicast traffic เช่น
่ งการใช ้งานโดยการใช ้ UDP ทีสามารถ
่
videocast ทีส่
ใช ้ 0 เพราะไม่มก
ี ารตอบกลับไปหา video traffic เป็ น
การยกเว น
้ ตัว อย่า งของ Application
Layer
protocol ใช ้พอร ์ตต ้นทางของข ้อมูล UDP ทีร่ บั เข ้ามา
เช่นเดียวกับ การตอบกลับ ของพอร ์ตปลายทาง การ
รวมกันของ IP address ต ้นทางของ IP header และ
The UDP Header
่ 2 ไบต ์นี ้ ระบุปลายทาง
 Destination Port ฟิ ลด ์ทีมี
ของ Application Layer protocol ส่วนประกอบของ
ปลายทางของ IP header IP Address และพอร ์ต
่ ่ที่
ปลายทางของ UDP header จัดไว ้ให ้เป็ นพิเศษ ทีอยู
มี ค วามหมายโดยทั่วไปของกระบวนการจากสิ่ งที่ ส่ ง
ข ้อความมา
The UDP Header
่ 2 ไบต ์นี ้ ระบุความยาวในหน่ วยไบต ์
 Length ฟิ ลด ์ทีมี
ของขอ้ มูล UDP รวมทัง้ UDP header และขอ้ มูล
ข่ า วสาร ความยาวน้อ ยสุ ด คือ 8 ไบต ์ (ขนาดของ
UDP header) และมากสุดคือ 65,515 ไบต ์ (ขนาด
สูงสุดของ IP datagram 65,535 ไบต ์ลบออกด ้วย
ขนาดต่าสุดของ IP header 20 ไบต ์) ความยาวมาก
่ จ้ ริงถูกจากัดโดย MTU ของลิงค ์บนสิงที
่ ข
่ อ้ มูล
สุดทีแท
UDP
ส่งออกไป ในการไม่ มีตวั ตนของการขยาย
header ระหว่าง IP header และ UDP header ฟิ ลด ์
ความยาวจะมีมากเกินไป ความยาวของ UDP เป็ น
่ อยู่ของ IP ทีสามารถค
่
ความยาวของทีมี
านวณไดจ้ าก
้
The UDP Header
่ 2 ไบต ์นี ้ ระบุการตรวจสอบ
ฟิ ลด ์ทีมี
ความสมบูรณ์ระดับบิตของข ้อมูล UDP
การคานวณ
UDP checksum ใช ้วิธก
ี ารคลา้ ยกับ IP header
checksum บน header เสมือนของ UDP, UDP
header, ข ้อมูลข่าวสาร และถ ้าจาเป็ นใช ้ไบต ์รองรบั ของ
่
0x00
ไบต ์รองรบั จะใช ้ในกรณี เดียวทีความยาวของ
่
่
ข ้อมูลมีไบต ์เป็ นเลขคี่ สาหรบั รายละเอียดอืนๆเกี
ยวกั
บ
header เสมือนของ UDP ใหด้ ูจากหัวขอ้ “Header
เสมือนของ UDP” ในบทถัดไป การใช ้งานของฟิ ลด ์
UDP checksum เป็ นอีกทางเลือก ถา้ หากไม่ได ้ใช ้
งานฟิ ลด ์ UDP checksum จะเซ็ตใหเ้ ป็ น 0 สาหรบั
่
่
รายละเอียดอืนๆเกี
ยวกั
บการคานวณ checksum ดูใน
บทที่ 5 “Internet Protocol (IP)”
 Checksum
UDP Ports
UDP Ports
พอร ์ตของ UDP ไดก้ าหนดตาแหน่ งหรือลาดับขอ้ มูล
ของการส่งข ้อมูลของ Application Layer protocols
โดยการใช ้บริการของ UDP พอร ์ตต ้นทางนับเป็ นส่วน
หนึ่ งของแต่ละข ้อมูลของ UDP (ลาดับข ้อมูลจากแหล่งที่
ส่งขอ้ มูลมา) และพอร ์ตปลายทาง (ลาดับขอ้ มูลถึงแหล่ง
่ งข ้อมูลมา)
ทีส่
Internet Assigned Numbers
Authority (IANA) กาหนดหมายเลขพอร ์ต หรือทีรู่ ้จัก
ั ส าหร บ
ั Application
ในหมายเลขพอร ์ตที่เป็ นที่รู จ้ ก
Layer protocols
ตาราง 9-1 แสดงหมายเลข
่ นที่รู ้จัก ทีถู
่ กใช ้โดย Windows
พอร ์ตทีเป็
Server
้
2008 และ ส่วนประกอบพืนฐานของ
Windows Vista
UDP Ports
่ นทีรู่ ้จัก
ตารางที่ 9-1 หมายเลขพอร ์ต UDP ทีเป็
ดู ที่ http://www.ianaa.org/assignments/portnumbers สาหรบั จานวนรายการกาหนดพอร ์ต UDP
่ ้ในปัจจุบน
ของ IANA ทีใช
ั
UDP Ports
แบบฉบับของฝ่ ายผูใ้ ห ้บริการของ Application Layer
่ นทีรู่ ้จักกันดี ฝ่ าย
protocol จะรองรบั เลขพอร ์ตทีเป็
ผูใ้ ช ้งานของ Application Layer protocol ก็จะใช ้
หมายเลขพอร ์ตที่ เป็ นที่ รู จ้ ัก กัน ดี เ ช่น กัน หรือ ที่ เป็ น
่ ดสรรใหม้ ค
ี วาม
ธรรมดามากกว่า, หมายเลขพอร ์ตทีจั
่ ดสรรใหม้ ค
คล่องตัว หมายเลขพอร ์ตทีจั
ี วามคล่องตัว
ถูกใช ้สาหรบั ช่วงเวลาของกระบวนการและเป็ นทีรู่ ้จักกัน
้ั
่ อายุสนหรื
่ ่
อหมายเลขพอร ์ตทีอยู
ในหมายเลขพอร ์ตทีมี
้
ได ้ในช่วงสันๆ
่
หมายเลขพอร ์ตของ UDP สามารถถูกอ ้างอิงโดยชือโดย
Microsoft Windows Sockets application (โดย
UDP Ports
่
จุ ด เชือมต่
อ ที่ส่ ง ผ่ า นก าหนดพอร ์ตปลายทาง (ใช ค้ ่ า
เฉพาะหรือ GetservByname() function เช่นกัน)
และพอร ์ตตน้ ทาง (ใช ้ค่าเฉพาะหรือดว้ ยการไดร้ บั พอร ์ต
่ ดสรรใหม้ ค
ทีจั
ี วามคล่องตัวผ่าน Windows Sockets
่ งผ่านหลังจากนั้นจะแสดง IP
่
อทีส่
เช่นกัน) จุดเชือมต่
address ต ้นทาง, IP address ปลายทาง, พอร ์ตต ้น
ทาง,
พอร ์ตปลายทาง และขอ้ มูลเพื่อจะส่ง TCP/IP
ส่ ว นประกอบของ UDP
ค านวณความยาวและ
checksum และแสดงขอ้ มูลของ UDP ดว้ ย IP
่
address
ตน
้ ทางทีเหมาะสม
และ IP
address
ปลายทาง ถึงส่วนประกอบของ IP
UDP Ports
่ ้ร ับข ้อมูล UDP ทีปลายทาง,
่
เมือได
IP จะพิสจ
ู น์ความ
ถูกต ้องของ IP header และอยูใ่ นการอ ้างอิงถึงค่าของ
17 (0x11) ในฟิ ลด ์ของโพรโตคอล ผ่านข ้อมูล UDP, IP
address ต ้นทาง และ IP address ปลายทางไปยัง
ส่วนประกอบของ UDP
หลังจากได ้พิสจ
ู น์ความ
ถูกต ้องของ UDP checksum, ส่วนประกอบของ UDP
จะพิสจ
ู น์ความถูกต ้องของพอร ์ตปลายทาง ถ ้า
กระบวนการยอมร ับพอร ์ต, UDP จะผ่านข ้อมูลไปยังการ
่
ใช ้งาน ถ ้าไม่มก
ี ระบวนการทียอมร
ับพอร ์ต, UDP จะ
่ งข ้อมูล ICMP
ใช ้ส่วนประกอบของ ICMP เพือส่
Destination Unreachable-Port Unreachable ไป
้
้
UDP Ports
รูปที่ 9-3 แสดงถึงกระบวนการดีมลั ติเพล็กซ ์ข ้อมูล
UDP ทีร่ ับเข ้ามา
รู ปที่ 9-3 การดีมล
ั ติเพล็กซ ์ของข้อมู ล UDP ไป
่ ดสรรไว้
ยัง Application Layer protocol ทีจั
โดยใช้ฟิลด ์ของ IP Protocol และฟิ ลด ์ของพอร ์ต
UDP Ports
วิธป
ี ฏิบต
ั ท
ิ ดี
ี่ ทสุ
ี่ ด พอร ์ต UDP แยกออกมาจากพอร ์ต
้ ่มีหมายเลขพอร ์ตเหมือนกัน พอร ์ต
TCP
โดยทังคู
UDP
แสดงใหเ้ ห็ นลาดับข อ้ มูล UDP
สาหรบั
Application Layer protocol พอร ์ต TCP แสดงให ้
่
เห็ นเพียงดา้ นเดียวของการเชือมต่
อ TCP
สาหรบั
Application Layer protocol
Application
่ ้พอร ์ต UDP ไม่ได ้หลีกเลียงไม่
่
Layer protocol ทีใช
ได ้
่ ้พอร ์ต
เหมือนกับ Application Layer protocol ทีใช
่ ของข ้อแตกต่างระหว่าง TCP และ
TCP
ตัวอย่างทีดี
UDP Application Layer protocol คือ Extended
่ ้พอร ์ต TCP
Filename Server (EFS) protocol, ทีใช
่ ้พอร ์ต UDP 520
520 และ RIP, ทีใช
นั่นได ้ชัดเจน
แล ว้ ว่า เป็ นข อ้ แบ่ ง แยกของ Application
Layer
่ ถงึ
protocol
เพราะฉะนั้นมันไม่ได ้เป็ นข ้อทดสอบทีดี
The UDP Pseudo Header
The UDP Pseudo Header
่
Header เสมือนของ UDP เชือมโยงข
้อมูล UDP เขา้
่ header เสมือนไปยัง
กับ IP header
UDP เพิม
่ น
จุ ด เริมต
้ ของข อ้ มู ล UDP
เพื่ อการค านวณ
checksum เท่านั้น ไม่ได ้เป็ นการส่งแบบเดียวกับส่วน
หนึ่ งของข ้อมูล UDP header เสมือนของ UDP ทา
ใ ห ้ม่ ั นใ จ ว่ า ผู ้ ร ับ ซึ่ ง ที่ เ ป็ น ก า ร ส ร า้ ง เ ส ้น ท า ง ห รื อ
่
่
กระบวนการทีแยกออกมา
ไม่ได ้เปลียนแปลง
filed ของ
่ เหมาะสมใน IP header
คีย ์ทีไม่
The UDP Pseudo Header
ภาพที่ 9-4 แสดง header เสมือนของ UDP
Header เสมือนของ UDP ประกอบด ้วย IP Address
่ ได ้ใช ้ทีถู
่ กเซ็ตให ้
ต ้นทาง, IP Address field, field ทีไม่
เป็ น 0, Protocol field สาหรบั UDP (17 หรือ 0x11)
่ ้ส่งข ้อมูล
และ field ความยาวของ UDP
เมือได
้
่ ้งานทังหมด
้
่ ร้ บั
UDP, UDP จะชีทางค่
าทีใช
เมือได
่ ้งานทังหมดของ
้
ข ้อมูล UDP, IP จะแสดงค่าทีใช
UDP
The UDP Pseudo Header
ภาพที่ 9-4 แสดงโครงสร ้างของ header เสมือน
ของ UDP
The UDP Pseudo Header
UDP คานวณ checksum ของ UDP บนการรวมกัน
ของ header เสมือนของข ้อความ UDP และไบต ์รองรบั
้
0x00 ถ ้าต ้องการ
การคานวณ checksum ขึนอยู
่
กับ ผลรวมของข อ้ มู ล 16 บิ ต เพราะฉะนั้ น จ านวน
checksum
ตอ้ งเป็ นเลขคู่ของไบต ์ ไบต ์รองรบั ใช ้
ส าหร บ
ั กรณี ความยาวของข อ้ มู ล เป็ นเลขคี่ ของไบต ์
ไบต ์รองร ับไม่ถอ
ื เป็ นส่วนหนึ่ งในความยาวของ UDP และ
ไม่ได ้ส่งส่วนหนึ่ งของข ้อมูล UDP
ภาพที่ 9-5 แสดง
ผลลัพธ ์ปริมาณของการคานวณ UDP Checksum
field
The UDP Pseudo Header
ภาพที่ 9-5 ผลลัพธ ์ของปริมาณใช้สาหร ับการ
คานวณ UDP checksum
The UDP Pseudo Header
่ แตกต่
่
สิงที
า งจาก IP
security
(IPsec)
Authentication header คือ header เสมือน
ของ UDP และ Checksum field ไม่ได้จด
ั เตรียม
่ อของข้อมู ลหรือความสมบู รณ์ของ
ความน่ าเชือถื
field ใน IP header และข้อมู ล UDP
IP
header และ field พอร ์ต UDP สามารถแก้ไขได้
่ การอพ
ตราบทีมี
ั เดต UDP Checksum field
นั่ นแสดงให้เ ห็ น ว่ า Network
Address
Translator (NAT) ทางานได้อย่างไร
NAT
่
่ น public
เป็ นส้น ทางทีแปลข้
อ มู ล ทีเป็
และ
private ระหว่างการเดินหน้าของกระบวนการ
้ ่
Summary
Summary
UDP จัดให ้มีบริการการส่งแบบ connectionless และ
่ ได ้ต ้องการการยืนยัน
unreliable สาหรบั การใช ้งานทีไม่
บริการการส่งข ้อมูลสาหรบั TCP
Application
Layer protocol ใช ้ UDP สาหรบั การทางานร่วมกัน
แบบ light-weight
ส าหร บ
ั กระจายข อ้ มู ล หรือ
การจราจรที่คับ คั่ง หรือเมื่อ Application
Layer
่ อในบริการการส่ง
protocol จัดให ้ตัวเองมีความน่ าเชือถื
UDP header จัดเตรียม checksum และหมายเลข
่ ลติเพล็กซ ์ขอ้ มูล UDP
พอร ์ตต ้นทางและปลายทางเพือมั
่ อ
ไปยัง Application Layer protocol ทีน่่ าเชือถื
นายวศิน อินต๊ะแก้ว
115130462033-9
51346CPE