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