อ่าน 3 นาที
โปรโตคอลการถ่ายโอนข้อมูลแบบ UDP
โปรโตคอลการถ่ายโอนข้อมูลแบบ UDP ( UDT ) เป็นโปรโตคอลการถ่ายโอนข้อมูลประสิทธิภาพสูงที่ออกแบบมาเพื่อถ่ายโอนชุดข้อมูลขนาดใหญ่ผ่าน เครือข่ายบริเวณกว้าง ความเร็วสูง...
โปรโตคอลการถ่ายโอนข้อมูลแบบ UDP
| ยูดีที | |
|---|---|
| นักพัฒนา | หยุนหง กู |
| เวอร์ชันเสถียร | 4.11 / 23 กุมภาพันธ์ 2556 |
| เขียนเป็น | ซี++ |
| พิมพ์ | โปรโตคอล (การคำนวณ) |
| ใบอนุญาต | ใบอนุญาต BSD |
| เว็บไซต์ | udt.sourceforge.net |
| ที่เก็บข้อมูล | sourceforge |
โปรโตคอลการถ่ายโอนข้อมูลแบบ UDP ( UDT ) เป็นโปรโตคอลการถ่ายโอนข้อมูลประสิทธิภาพสูงที่ออกแบบมาเพื่อถ่ายโอนชุดข้อมูลขนาดใหญ่ผ่านเครือข่ายบริเวณกว้าง ความเร็วสูง ซึ่งโดยทั่วไปแล้วการตั้งค่าเช่นนี้มักเป็นข้อเสียสำหรับ โปรโตคอล TCPที่ใช้กันทั่วไปมากกว่า
เวอร์ชันแรกๆ ได้รับการพัฒนาและทดสอบบนเครือข่ายความเร็วสูงมาก (1 Gbit/s, 10 Gbit/s เป็นต้น) อย่างไรก็ตาม เวอร์ชันล่าสุดของโปรโตคอลได้รับการอัปเดตเพื่อรองรับอินเทอร์เน็ตทั่วไปด้วยเช่นกัน ตัวอย่างเช่น โปรโตคอลนี้รองรับการตั้งค่าการเชื่อมต่อแบบ Rendezvous ซึ่งเป็นคุณสมบัติที่พึงประสงค์สำหรับการทะลุผ่านไฟร์วอลล์ NAT โดยใช้ UDP
UDT มีการใช้งานแบบโอเพนซอร์สซึ่งสามารถหาได้จากSourceForgeเป็นหนึ่งในโซลูชันยอดนิยมสำหรับการรองรับการถ่ายโอนข้อมูลความเร็วสูง และเป็นส่วนหนึ่งของโครงการวิจัยและผลิตภัณฑ์เชิงพาณิชย์มากมาย
พื้นหลัง
UDT ได้รับการพัฒนาโดย Yunhong Gu [ 1 ]ระหว่างการศึกษาปริญญาเอกที่ศูนย์แห่งชาติเพื่อการขุดข้อมูล (NCDM) ของมหาวิทยาลัยอิลลินอยส์ที่ชิคาโกในห้องปฏิบัติการของดร. Robert Grossman ดร. Gu ยังคงดูแลและปรับปรุงโปรโตคอลต่อไปหลังจากสำเร็จการศึกษา
โครงการ UDT เริ่มต้นในปี 2001 เมื่อเครือข่ายใยแก้วนำแสงราคาประหยัดได้รับความนิยมและกระตุ้นให้เกิดความตระหนักมากขึ้นเกี่ยวกับปัญหาประสิทธิภาพของ TCP บนเครือข่ายบริเวณกว้างความเร็วสูง เวอร์ชันแรกของ UDT หรือที่รู้จักกันในชื่อ SABUL (Simple Available Bandwidth Utility Library) ได้รับการออกแบบมาเพื่อรองรับการถ่ายโอนข้อมูลจำนวนมากสำหรับการเคลื่อนย้ายข้อมูลทางวิทยาศาสตร์ผ่านเครือข่ายส่วนตัว SABUL ใช้ UDP สำหรับการถ่ายโอนข้อมูลและใช้การเชื่อมต่อ TCP แยกต่างหากสำหรับข้อความควบคุม
ในเดือนตุลาคม พ.ศ. 2546 เครือข่าย NCDM ประสบความสำเร็จในการถ่ายโอนข้อมูลด้วยความเร็ว 6.8 กิกะบิตต่อวินาที จากเมืองชิคาโกประเทศสหรัฐอเมริกา ไปยังเมืองอัมสเตอร์ดัมประเทศ เนเธอร์แลนด์ระหว่างการทดสอบ 30 นาที พวกเขาได้ส่งข้อมูล ประมาณ 1.4 เทราไบต์
ต่อมา SABUL ได้เปลี่ยนชื่อเป็น UDT ตั้งแต่เวอร์ชัน 2.0 ซึ่งเปิดตัวในปี 2547 UDT2 ได้ลบการเชื่อมต่อควบคุม TCP ใน SABUL และใช้ UDP สำหรับทั้งข้อมูลและข้อมูลควบคุม นอกจากนี้ UDT2 ยังได้แนะนำอัลกอริทึมควบคุมความแออัดแบบใหม่ที่ช่วยให้โปรโตคอลทำงานได้อย่าง "ยุติธรรมและเป็นมิตร" กับการรับส่งข้อมูล UDT และ TCP พร้อมกัน
UDT3 (2006) ได้ขยายการใช้งานโปรโตคอลไปสู่การใช้งานอินเทอร์เน็ตทั่วไป การควบคุมความแออัดได้รับการปรับแต่งให้รองรับแบนด์วิดท์ที่ค่อนข้างต่ำได้เช่นกัน นอกจากนี้ UDT3 ยังช่วยลดการใช้ทรัพยากรระบบ (CPU และหน่วยความจำ) ลงอย่างมาก ยิ่งไปกว่านั้น UDT3 ยังช่วยให้ผู้ใช้สามารถกำหนดและติดตั้งอัลกอริธึมควบคุมความแออัดของตนเองได้อย่างง่ายดาย
UDT4 (2007) ได้เพิ่มคุณสมบัติใหม่หลายอย่างเพื่อรองรับการทำงานพร้อมกันในระดับสูงและการทะลุผ่านไฟร์วอลล์ได้ดียิ่งขึ้น UDT4 อนุญาตให้การเชื่อมต่อ UDT หลายรายการผูกกับพอร์ต UDP เดียวกันได้ และยังรองรับการตั้งค่าการเชื่อมต่อแบบ Rendezvous เพื่อให้การเจาะช่อง UDPทำได้ ง่ายขึ้น
ขณะนี้กำลังวางแผนพัฒนาโปรโตคอลเวอร์ชันที่ห้า คุณสมบัติที่เป็นไปได้ ได้แก่ ความสามารถในการรองรับเซสชันอิสระหลายเซสชันผ่านการเชื่อมต่อเดียว
นอกจากนี้ เนื่องจากปัญหาการขาดคุณสมบัติด้านความปลอดภัยสำหรับ UDT เป็นปัญหาในการนำไปใช้งานครั้งแรกในสภาพแวดล้อมเชิงพาณิชย์ Bernardo (2011) จึงได้พัฒนาสถาปัตยกรรมด้านความปลอดภัยสำหรับ UDT เป็นส่วนหนึ่งของการศึกษาระดับปริญญาเอกของเขา อย่างไรก็ตาม สถาปัตยกรรมนี้กำลังอยู่ระหว่างการปรับปรุงเพื่อรองรับ UDT ในสภาพแวดล้อมเครือข่ายต่างๆ (เช่น เครือข่ายใยแก้วนำแสง)
สถาปัตยกรรมโปรโตคอล
UDT สร้างขึ้นบนพื้นฐานของUser Datagram Protocol (UDP) โดยเพิ่มกลไกการควบคุมความแออัดและการควบคุมความน่าเชื่อถือ UDT เป็นโปรโตคอลระดับแอปพลิเค ชัน แบบ เชื่อมต่อสองทิศทาง ที่รองรับทั้งการสตรีมข้อมูลที่เชื่อถือได้และการส่งข้อความที่เชื่อถือได้บางส่วน
การรับทราบ
UDT ใช้การยืนยันการรับส่งข้อมูล ( ACK ) เป็นระยะเพื่อยืนยันการส่งแพ็กเก็ต ในขณะที่ ACK เชิงลบ (รายงานการสูญหาย) ใช้เพื่อรายงานการสูญหายของแพ็กเก็ต การยืนยันการรับส่งข้อมูลเป็นระยะช่วยลดปริมาณการรับส่งข้อมูลควบคุมในเส้นทางย้อนกลับเมื่อความเร็วในการถ่ายโอนข้อมูลสูง เนื่องจากในสถานการณ์เหล่านี้ จำนวน ACK จะแปรผันตามเวลา ไม่ใช่จำนวนแพ็กเก็ตข้อมูล
AIMD ที่มีการเพิ่มขึ้นลดลง
UDT ใช้ ขั้นตอนวิธีควบคุมความแออัดแบบ AIMD (additive increase multiplicative decrease) โดยพารามิเตอร์การเพิ่มขึ้นจะแปรผกผันกับแบนด์วิดท์ที่มีอยู่ (ประเมินโดยใช้เทคนิคคู่แพ็กเก็ต) ดังนั้น UDT จึงสามารถตรวจสอบแบนด์วิดท์สูงได้อย่างรวดเร็วและสามารถลดความเร็วลงเพื่อความเสถียรที่ดีขึ้นเมื่อเข้าใกล้แบนด์วิดท์สูงสุด ปัจจัยการลดลงเป็นตัวเลขสุ่มระหว่าง 1/8 ถึง 1/2 ซึ่งช่วยลดผลกระทบเชิงลบจากการสูญเสียการซิงโครไนซ์
ใน UDT การส่งแพ็กเก็ตถูกจำกัดทั้งโดยการควบคุมอัตราการส่งและการควบคุมหน้าต่างข้อมูล อัตราการส่งจะได้รับการปรับปรุงโดยอัลกอริธึม AIMD ที่อธิบายไว้ข้างต้น ส่วนหน้าต่างข้อมูลที่ถูกจำกัด (congestion window) ซึ่งเป็นกลไกควบคุมรอง จะถูกตั้งค่าตามอัตราการรับข้อมูลที่ฝั่งผู้รับ
การควบคุมการจราจรติดขัดที่สามารถปรับแต่งได้
การใช้งาน UDT นั้นเปิดเผยชุดตัวแปรที่เกี่ยวข้องกับการควบคุมความแออัดในคลาส C++ และอนุญาตให้ผู้ใช้กำหนดชุดฟังก์ชันเรียกกลับ (callback function) เพื่อจัดการตัวแปรเหล่านี้ ดังนั้น ผู้ใช้จึงสามารถกำหนดอัลกอริทึมการควบคุมใหม่ได้โดยการเขียนทับฟังก์ชันเรียกกลับบางส่วนหรือทั้งหมด อัลกอริทึมการควบคุม TCP ส่วนใหญ่สามารถนำไปใช้ได้โดยใช้คุณสมบัตินี้ด้วยโค้ดน้อยกว่า 100 บรรทัด
การตั้งค่าการเชื่อมต่อ Rendezvous
นอกจากวิธีการเชื่อมต่อแบบไคลเอ็นต์/เซิร์ฟเวอร์แบบดั้งเดิม (หรือที่เรียกว่า ผู้เรียก/ผู้ฟัง ซึ่งผู้ฟังจะรอการเชื่อมต่อและอาจยอมรับผู้เรียกที่เชื่อมต่อได้หลายราย) แล้ว UDT ยังรองรับโหมดการเชื่อมต่อแบบใหม่ที่เรียกว่า Rendezvous อีกด้วย ในโหมดนี้ ทั้งสองฝ่ายจะฟังพอร์ตของตนเองและเชื่อมต่อกับอีกฝ่ายพร้อมกัน กล่าวคือ ทั้งสองฝ่ายจะเชื่อมต่อถึงกัน ดังนั้น ทั้งสองฝ่ายต้องใช้พอร์ตเดียวกันสำหรับการเชื่อมต่อ และทั้งสองฝ่ายมีบทบาทเท่าเทียมกัน (ตรงข้ามกับบทบาทผู้ฟัง/ผู้เรียกในการตั้งค่าแบบดั้งเดิม) โหมด Rendezvous ถูกใช้กันอย่างแพร่หลายสำหรับการทะลุผ่านไฟร์วอลล์เมื่อทั้งสองฝ่ายอยู่หลังไฟร์วอลล์
ใช้สถานการณ์ต่างๆ
UDT ถูกนำมาใช้กันอย่างแพร่หลายในระบบคอมพิวเตอร์ประสิทธิภาพสูงเพื่อรองรับการถ่ายโอนข้อมูลความเร็วสูงผ่านเครือข่ายใยแก้วนำแสง ตัวอย่างเช่นGridFTPซึ่งเป็นเครื่องมือถ่ายโอนข้อมูลยอดนิยมในระบบคอมพิวเตอร์แบบกริด มี UDT ให้เลือกใช้เป็นโปรโตคอลการถ่ายโอนข้อมูล
ในระบบอินเทอร์เน็ตทั่วไป UDT ถูกนำไปใช้ในผลิตภัณฑ์เชิงพาณิชย์หลายอย่างเพื่อการถ่ายโอนไฟล์อย่างรวดเร็วผ่านเครือ ข่ายบริเวณกว้าง
เนื่องจาก UDT ใช้โปรโตคอล UDP เป็นพื้นฐาน จึงถูกนำไปใช้ในหลายสถานการณ์ที่ TCP มีข้อเสียเปรียบ UDP สถานการณ์เหล่านี้รวมถึง แอปพลิเค ชันแบบ Peer-to-Peerการสื่อสารวิดีโอและเสียง และอื่นๆ อีกมากมาย
การประเมินกลไกการรักษาความปลอดภัยที่เป็นไปได้
UDT ถือเป็นโปรโตคอลที่ทันสมัยที่สุด ซึ่งตอบโจทย์ความต้องการด้านโครงสร้างพื้นฐานสำหรับการส่งข้อมูลในเครือข่ายความเร็วสูง อย่างไรก็ตาม การพัฒนาโปรโตคอลนี้กลับสร้างช่องโหว่ใหม่ๆ ขึ้นมา เนื่องจากเช่นเดียวกับโปรโตคอลอื่นๆ อีกมากมาย มันอาศัยกลไกความปลอดภัยที่มีอยู่แล้วในโปรโตคอลปัจจุบัน เช่น โปรโตคอลควบคุมการส่งข้อมูล (TCP) และ UDP เท่านั้น
งานวิจัยที่ดำเนินการโดย ดร. ดานิโล วาเลรอส เบอร์นาร์โด จากมหาวิทยาลัยเทคโนโลยีซิดนีย์สมาชิกของเครือข่ายเทคโนโลยีแห่งออสเตรเลียซึ่งมุ่งเน้นการทดลองเชิงปฏิบัติเกี่ยวกับ UDT โดยใช้กลไกความปลอดภัยที่พวกเขาเสนอ และสำรวจการใช้กลไกความปลอดภัยที่มีอยู่แล้วอื่นๆ ที่ใช้ใน TCP/UDP สำหรับ UDT ได้รับการตอบรับที่น่าสนใจจากชุมชนวิทยาศาสตร์ด้านเครือข่ายและความปลอดภัยต่างๆ
เพื่อวิเคราะห์กลไกการรักษาความปลอดภัย พวกเขาดำเนินการพิสูจน์ความถูกต้องอย่างเป็นทางการเพื่อช่วยในการพิจารณาความเหมาะสมในการใช้งานโดยใช้ตรรกะการประกอบโปรโตคอล (PCL) แนวทางนี้เป็นแบบโมดูลาร์ ประกอบด้วยการพิสูจน์แยกกันของแต่ละส่วนของโปรโตคอล และให้ข้อมูลเชิงลึกเกี่ยวกับสภาพแวดล้อมเครือข่ายที่แต่ละส่วนสามารถใช้งานได้อย่างน่าเชื่อถือ ยิ่งไปกว่านั้น การพิสูจน์ยังใช้ได้กับกลยุทธ์การกู้คืนความล้มเหลวที่หลากหลาย และตัวเลือกการใช้งานและการกำหนดค่าอื่นๆ พวกเขาได้เทคนิคนี้มาจาก PCL บน TLS และ Kerberos ในเอกสารทางวิชาการ พวกเขาทำงานเกี่ยวกับการพัฒนาและการตรวจสอบความถูกต้องของสถาปัตยกรรมความปลอดภัยโดยใช้ระบบการเขียนใหม่และระบบอัตโนมัติ
ผลงานของพวกเขา ซึ่งถือเป็นงานแรกในวรรณกรรม คือการนำเสนอโครงสร้างความปลอดภัยของ UDT ในเชิงทฤษฎีและเชิงปฏิบัติที่แข็งแกร่งยิ่งขึ้น ซึ่งสามารถใช้งานร่วมกับโปรโตคอลเครือข่ายความเร็วสูงอื่นๆ ได้
ผลงานดัดแปลง
โครงการ UDT เป็นพื้นฐานสำหรับ โครงการ SRTซึ่งใช้ความน่าเชื่อถือในการส่งสัญญาณสำหรับการสตรีมวิดีโอสดผ่านอินเทอร์เน็ตสาธารณะ
รางวัล
ทีม UDT ได้รับรางวัล Bandwidth Challenge อันทรงเกียรติถึงสามครั้งในระหว่างการประชุม ACM/IEEE Supercomputing Conference ประจำปี ซึ่งเป็นการประชุมระดับโลกชั้นนำด้านการประมวลผลประสิทธิภาพสูง เครือข่าย การจัดเก็บข้อมูล และการวิเคราะห์[ 2 ] [ 3 ] [ 4 ]
ในงาน SC06 (แทมปา รัฐฟลอริดา) ทีมงานได้ถ่ายโอนชุดข้อมูลดาราศาสตร์ด้วยความเร็ว 8 Gbit/s จากดิสก์หนึ่งไปยังอีกดิสก์หนึ่งจากชิคาโก รัฐอิลลินอยส์ ไปยังแทมปา รัฐฟลอริดา โดยใช้ UDT ในงาน SC08 (ออสติน รัฐเท็กซัส) ทีมงานได้สาธิตการใช้ UDT ในการถ่ายโอนข้อมูลความเร็วสูงที่ซับซ้อนซึ่งเกี่ยวข้องกับแอปพลิเคชันแบบกระจายต่างๆ บนระบบ 120 โหนด ครอบคลุมศูนย์ข้อมูลสี่แห่งในบัลติมอร์ ชิคาโก (2) และซานดิเอโก ในงาน SC09 (พอร์ตแลนด์ รัฐโอเรกอน) ทีมงานร่วมมือจาก NCDM, Naval Research Lab และiCAIRได้นำเสนอแอปพลิเคชันการประมวลผลแบบคลาวด์ที่ใช้ข้อมูลจำนวนมากในพื้นที่กว้างซึ่งขับเคลื่อนด้วย UDT
ดูเพิ่มเติม
วรรณกรรม
- Bernardo, DV และ Hoang, D. B; "การสำรวจเชิงประจักษ์: การทดลองและการนำโปรโตคอลการถ่ายโอนข้อมูลความเร็วสูงไปใช้สำหรับ GRID" รายงานการประชุม IEEE 25th International Conference on Advance Information Networking and Application Workshops, มีนาคม 2011, สิงคโปร์
- Yunhong Gu และ Robert L. Grossman, UDT: การถ่ายโอนข้อมูลแบบ UDP สำหรับเครือข่ายบริเวณกว้างความเร็วสูง, เครือข่ายคอมพิวเตอร์ (Elsevier). เล่มที่ 51, ฉบับที่ 7. พฤษภาคม 2550.
ลิงก์ภายนอก
- โปรเจ็กต์ UDT บน SourceForge
- UDT.Net เป็นตัวห่อหุ้มรอบไลบรารีโปรโตคอล UDT ดั้งเดิม
- UdtSharp: ไลบรารี .NET ที่เขียนด้วยโค้ดแบบ Managed Code 100% (C#)
- ร่างเอกสาร IETF ลงวันที่ 12 ตุลาคม 2553 (หมดอายุแล้ว)
- รัน HTTP ผ่าน UDP ใน Node.js ด้วย UDT
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ โปรโตคอลการถ่ายโอนข้อมูลแบบ UDP
โปรโตคอลการถ่ายโอนข้อมูลแบบ UDP ( UDT ) เป็นโปรโตคอลการถ่ายโอนข้อมูลประสิทธิภาพสูงที่ออกแบบมาเพื่อถ่ายโอนชุดข้อมูลขนาดใหญ่ผ่าน เครือข่ายบริเวณกว้าง ความเร็วสูง...
พื้นหลัง
UDT ได้รับการพัฒนาโดย Yunhong Gu [ 1 ] ระหว่างการศึกษาปริญญาเอกที่ศูนย์แห่งชาติเพื่อการขุดข้อมูล (NCDM) ของ มหาวิทยาลัยอิลลินอยส์ที่ชิคาโก ในห้องปฏิบัติการของดร. Robert Grossman ดร. Gu ยังคงดูแลและปรับปรุงโปรโตคอลต่อไปหลังจากสำเร็จการศึกษา
สถาปัตยกรรมโปรโตคอล
UDT สร้างขึ้นบนพื้นฐานของ User Datagram Protocol (UDP) โดยเพิ่ม กลไกการควบคุมความแออัด และการควบคุมความน่าเชื่อถือ UDT เป็นโปรโตคอลระดับแอปพลิเค ชัน แบบ เชื่อมต่อสองทิศทาง ที่รองรับทั้งการสตรีมข้อมูลที่เชื่อถือได้และการส่งข้อความที่เชื่อถือได้บางส่วน
การรับทราบ
UDT ใช้การยืนยันการรับส่งข้อมูล ( ACK ) เป็นระยะเพื่อยืนยันการส่งแพ็กเก็ต ในขณะที่ ACK เชิงลบ (รายงานการสูญหาย) ใช้เพื่อรายงานการสูญหายของแพ็กเก็ต...