คำแนะนำเกี่ยวกับ UDP (User Datagram Protocol)

คำแนะนำเกี่ยวกับ UDP

User Datagram Protocol นั้นเหมือนกับ“ ลูกเป็ดขี้เหร่” ของ Hans Christian Andersen หลังจากหลายทศวรรษที่ถูกมองข้ามและถูกเยาะเย้ยโปรโตคอลที่เรียบง่ายนี้ดึงดูดผู้ที่ชื่นชอบในฐานะโปรโตคอลการขนส่งสำหรับแอพพลิเคชั่นมัลติมีเดียที่น่าดึงดูดและใหม่ซึ่งสามารถทำได้ด้วยความเร็วบรอดแบนด์ ทุกวันนี้แอปพลิเคชั่นใด ๆ ที่ต้องการส่งข้อมูลเลือก UDP อย่างรวดเร็วผ่าน TCP ที่โดดเด่นก่อนหน้านี้ (Transmission Control Protocol).

ประวัติ UDP

UDP นั้นมีมานานเกือบตราบเท่าที่อินเทอร์เน็ต อินเทอร์เน็ตเริ่มเข้ามาในเดือนพฤษภาคม 2517 เมื่อสถาบันวิศวกรไฟฟ้าและอิเล็กทรอนิกส์เผยแพร่ “โปรแกรมสำหรับการสื่อสารของ Packet Network” โดย Vint Cerf และ บ๊อบข่าน. แนวคิดจำเป็นต้องได้รับการพัฒนาและทั้ง Khan และ Cerf ยังคงปรับแต่งความคิดของพวกเขาในขณะที่ทำงานให้กับรัฐบาลสหรัฐฯ กลาโหมสำนักงานวิจัยโครงการขั้นสูง, ซึ่งเรียกว่า DARPA. John Postel มีส่วนร่วมและเสนอแนะการแยกโครงสร้างเดียวที่เสนอในแนวคิดดั้งเดิมของ Cerf และ Khan สิ่งนี้สร้างแนวคิดแบบเลเยอร์ โปรแกรมควบคุมการส่งข้อมูลดั้งเดิมที่มีอยู่ในโครงร่าง 2517 ถูกแบ่งออกเป็นโปรโตคอลควบคุมการส่งข้อมูลที่ชั้นที่สูงกว่าและอินเทอร์เน็ตโปรโตคอลที่ชั้นล่าง (ดังนั้น TCP / IP).

วิธีการแยกส่วนของ Postel เหมาะสมเมื่อทีมเริ่มคิดเกี่ยวกับการนำทฤษฎีมาใช้ มีการแบ่งงานที่ชัดเจนระหว่างสิ่งที่เป็นที่รู้จักในฐานะ เลเยอร์การขนส่ง, ซึ่งเป็นที่ตั้งของพิธีสารควบคุมการส่งสัญญาณและ เลเยอร์อินเทอร์เน็ต, ที่ซึ่งอินเทอร์เน็ตโปรโตคอลตั้งอยู่ อย่างไรก็ตาม Cerf และ Khan ได้เล็งเห็นถึงความต้องการทางเลือกที่รวดเร็ว พวกเขาดึงไดอะแกรมของวิธีการเตรียมข้อมูลสำหรับการส่งโดยการส่งผ่านจากเลเยอร์หนึ่งไปยังอีกเลเยอร์ งานการประมวลผลถูกแสดงเป็นเส้นแนวตั้งตรงจากมากไปหาสแต็คไดอะแกรมใหม่ที่แสดงถึงความก้าวหน้า แอปพลิเคชันกับ TCP และเปิดเป็น IP.

เมื่อมาถึงการวาดในการติดตามอย่างรวดเร็วพวกเขาไม่ต้องการที่จะวาดเส้นอ้อมโค้งที่หลีกเลี่ยงการผ่าน TCP แต่พวกเขาดึงรูปร่างที่เป็นรูปสี่เหลี่ยมผืนผ้าซึ่งแสดง Internet Layer ให้กว้างกว่าบล็อกที่ใช้แทน Transport Layer ด้วยการปรับภาพนี้ทั้งเส้นทางปกติและเส้นทางเดินเร็วสามารถเดินผ่านกองซ้อนเป็นเส้นขนาน อย่างไรก็ตามเทคนิคนี้ทำให้เกิดช่องว่างที่ Postel รู้สึกว่าจำเป็นต้องได้รับการเติม นี่คือเหตุผลที่โพรโทคอล User Datagram ถูกประดิษฐ์ขึ้น. มีเพียงเพื่อทำให้ไดอะแกรมสแต็กโปรโตคอลดูสมดุล.

ประโยชน์ของ TCP

โปรโตคอลควบคุมการส่งมอบบริการที่จำเป็นต่อข้อมูลในการขนส่ง เป็นการรับรองว่าแพ็กเก็ตทั้งหมดในสตรีมมาถึงจริงและตรวจสอบว่าได้มาถึง ขั้นตอนการควบคุมเหล่านี้ที่ทำให้มั่นใจว่าการถ่ายโอนอย่างเป็นระเบียบเป็นไปไม่ได้หากไม่มีการประสานงานระหว่างทั้งสองฝ่าย ดังนั้น TCP จะสร้างข้อตกลงระหว่างอุปกรณ์สองเครื่องที่ต้องการแลกเปลี่ยนข้อมูลก่อน ข้อตกลงนี้เรียกว่า เซสชั่น. มันเป็นนิยามของ“สัมพันธ์.” UDP ไม่มีขั้นตอนการสร้างเซสชันดังนั้นจึงเรียกว่า“connectionless.”

เซสชั่นให้หมายเลขอ้างอิงทั้งสองด้านของการเชื่อมต่อที่สามารถติดแท็กไปยังการแลกเปลี่ยนการดูแลระบบ เซสชั่นยังช่วยให้แนวคิดของพอร์ตที่จะแนะนำ. ID ของเซสชั่นเป็นการรวมกันของตัวระบุที่มีอยู่ในส่วนหัว TCP. ด้วย ID นี้ผู้ออกแบบโพรซีเดอร์ TCP สามารถคิดแนวคิด“เบ้า.” หมายเลขพอร์ตจะถูกจัดสรรให้กับ UDP อย่างไรก็ตามโปรโตคอลนั้นสามารถใช้เฉพาะ IP ปลายทางและหมายเลขพอร์ตเป็นตัวระบุที่ไม่ซ้ำกัน ตัวระบุที่ได้จากชุดค่าผสมนั้นจะบล็อกกระบวนการอื่น ๆ ทั้งหมดที่พยายามเข้าถึงพอร์ตเดียวกันแม้ว่าพวกเขาจะทำงานบนคอมพิวเตอร์เครื่องอื่นดังนั้น UDP ถูกสร้างขึ้นเป็นระบบการจัดส่งเท่านั้นโดยไม่มีขั้นตอนการเปิดใช้งานกล่องโต้ตอบแบบสองทาง.

แนวคิดการเชื่อมต่อ TCP ทั้งหมดได้รับการพัฒนาเป็นวิธีสากลที่ซับซ้อนมากเพื่อให้แน่ใจว่าข้อมูลที่ส่งผ่านระหว่างคอมพิวเตอร์ไม่ได้ปะปนหรือสับสน. ซ็อกเก็ตเปิดใช้งานการเชื่อมต่อหลายรายการเพื่อเปิดระหว่างคอมพิวเตอร์สองเครื่องเดียวกันพร้อมกัน. แนวคิดดังกล่าวสร้างความเป็นไปได้ที่จะมีช่องสัญญาณมากกว่าหนึ่งช่องในการส่งข้อมูล นี่เป็นขั้นตอนที่ใช้บ่อยซึ่งแอปพลิเคชั่นเครือข่ายเริ่มต้นจำนวนมากใช้ประโยชน์ โปรโตคอลการถ่ายโอนไฟล์, ตัวอย่างเช่นใช้สองช่องทางหนึ่งเพื่อส่งผ่านข้อมูลและอีกช่องทางหนึ่งสำหรับการสื่อสารการดูแลระบบ หมายเลขพอร์ตที่แตกต่างกันสำหรับข้อมูลและช่องสัญญาณควบคุมจะสร้างซ็อกเก็ตที่แตกต่างกันสองซ็อกเก็ต.

ID เฉพาะสำหรับแต่ละเซสชันหมายความว่า TCP จะเพิ่มมูลค่าให้กับการสื่อสารระหว่างคอมพิวเตอร์สองเครื่อง ในช่วงปลายยุค 70 และต้นยุค 80 มีเพียงองค์กรขนาดใหญ่และสถาบันการศึกษาเท่านั้นที่มีคอมพิวเตอร์และเครือข่าย ดังนั้นจึงมีความเป็นไปได้สูงที่ทั้งสององค์กรต้องการเมนเฟรมขนาดใหญ่เพื่อเชื่อมต่อซึ่งกันและกันพร้อมกันเพื่อจุดประสงค์ที่แตกต่างกัน ในขณะที่อาจารย์กำลังส่งไฟล์ไปยังเพื่อนร่วมงานในมหาวิทยาลัยอื่นนักวิจัยอาจต้องการเปิดเซสชัน Telnet ไปยังคอมพิวเตอร์ที่มหาวิทยาลัยระยะไกลเดียวกัน. ต้องขอบคุณ TCP คอมพิวเตอร์สองเครื่องสามารถรักษาการเชื่อมต่อหลายอย่างพร้อมกันและแต่ละเซสชันสามารถใช้งานได้หลายช่องสัญญาณในเวลาเดียวกัน. การเชื่อมต่อที่เกิดขึ้นพร้อมกันนั้นเป็นไปไม่ได้หากการสื่อสารนั้นควบคุมโดย Internet Protocol โดยการจัดสรรที่อยู่ IP หนึ่งเครื่องต่อคอมพิวเตอร์หนึ่งเครื่อง. UDP ที่ไม่มีกลไกเซสชันไม่สามารถจัดการแอปพลิเคชันที่ต้องใช้คอมพิวเตอร์ที่มีการติดต่อเพื่อส่งการตอบกลับ.

ความปลอดภัยของข้อมูล

โครงสร้างที่ยอดเยี่ยมของ TCP ทำให้การเชื่อมต่อระหว่างเครือข่ายเป็นไปได้และอินเทอร์เน็ตเริ่มขยายเกิน Academia สู่โลกธุรกิจ การสร้างของ เวิลด์ไวด์เว็บ, ซึ่งกลายเป็นสาธารณะในปี 1991 เป็นไปได้เพียงเพราะความสะดวกที่เว็บเพจที่มี Hypertext Transfer Protocol (HTTP) สามารถนั่งบน TCP.

นักวิชาการและช่างเทคนิคที่รวมอินเทอร์เน็ตเข้าด้วยกันแล้วพัฒนาเวิลด์ไวด์เว็บที่สาธารณชนสามารถเข้าถึงได้ นักคิดท้องฟ้าสีฟ้า. พวกเขาตื่นเต้นกับเทคโนโลยีและความเป็นไปได้ในการเพิ่มความเร็วในการวิจัยและปรับปรุงการมีปฏิสัมพันธ์ระหว่างผู้คนทั่วโลก. พวกเขาล้มเหลวในการบัญชีสำหรับความจริงที่ว่าสิ่งประดิษฐ์ที่ยอดเยี่ยมของพวกเขาเป็นของขวัญให้กับขโมย, นักต้มตุ๋นและผู้ก่อการร้ายในเมือง. ทั้งอินเทอร์เน็ตและเวิลด์ไวด์เว็บไม่มีความปลอดภัยใด ๆ เลย.

มันนำผู้บริโภค Netscape Corporation เพื่อระบุปัญหานี้ Netscape ผลิตเว็บเบราว์เซอร์ชั้นนำของโลกและมอบให้ฟรีเพื่อสนับสนุนการใช้อินเทอร์เน็ตในหมู่ประชาชนทั่วไป แผนการทำงานและการแลกเปลี่ยนข้อมูลและช่องทางการติดต่อกระจายออกไปกระตุ้นให้สมาชิกของประชาชนมากขึ้นในการสมัครใช้บริการอินเทอร์เน็ต อย่างไรก็ตาม การขาดความปลอดภัยนำเสนออุปสรรคต่อการค้าของเว็บ. หากไม่มีความสามารถในการดึงดูดผู้คนให้จ่ายค่าบริการออนไลน์ไม่มีแรงจูงใจสำหรับธุรกิจที่จะลงทุนในการพัฒนาแอปพลิเคชันใหม่เว็บไซต์หรือบริการออนไลน์.

อุปสรรคสำคัญในการเก็บเงินผ่านเว็บคือการขาดความปลอดภัย หัวข้อย่อยบางประการเกี่ยวกับการขโมยข้อมูลในการส่งสัญญาณทางอินเทอร์เน็ตได้ปิดความเป็นไปได้ในการทำให้อินเทอร์เน็ตใช้งานได้ในเชิงพาณิชย์ อย่างไรก็ตาม, Netscape เกิดขึ้นกับ HTTPS HTTP รุ่นที่ปลอดภัยที่ส่งการป้องกัน. ตำแหน่งที่เหมาะสมที่สุดในสแต็ก TCP / IP สำหรับขั้นตอนความปลอดภัยเหล่านี้คือในระหว่างกระบวนการสร้างเซสชันของ TCP ดังนั้น, TCP ยิ่งจำเป็นต่อการดำเนินงานของอินเทอร์เน็ตมากยิ่งขึ้น และดูเหมือนว่า UDP จะไม่ถูกใช้มากกว่า.

UDP เริ่มทำงาน

แม้จะมีอยู่ตั้งแต่ 2523, UDP ถูกมองข้ามอย่างสมบูรณ์ จนกว่าบริการอินเทอร์เน็ตบรอดแบนด์จะพร้อมใช้งานในตอนต้นของศตวรรษนี้ โพรโทคอล User Datagram ถูกละเว้นส่วนใหญ่ในขณะที่เว็บและแอปพลิเคชั่นอินเทอร์เน็ตอื่น ๆ ขยายการทำงานของ TCP.

อย่างไรก็ตาม, ความสามารถในการมีการสนทนาด้วยเสียงและการประชุมทางวิดีโอผ่านอินเทอร์เน็ตได้ดึงดูดความสนใจของธุรกิจมาโดยตลอด. แอปพลิเคชันเหล่านี้มีอยู่ก่อนบรอดแบนด์ แต่จะใช้กับเครือข่ายส่วนตัวที่เร็วขึ้นเท่านั้น ด้วยเทคโนโลยีการส่งเสียงและวิดีโอผ่านเครือข่ายที่จัดตั้งขึ้น, ความเร็วที่เร็วขึ้นของบรอดแบนด์ทำให้มีความเป็นไปได้ในการทำให้แอปพลิเคชันเหล่านั้นพร้อมใช้งานสำหรับสาธารณชน กลายเป็นความคิดที่เป็นไปได้ อย่างไรก็ตามความเร็วที่มีอยู่ในอินเทอร์เน็ตนั้นค่อนข้างไม่ดีพอ.

ทางออกที่รวดเร็วในการบีบเพิ่มความเร็วออกจากอินเทอร์เน็ตให้เพียงพอคือการทิ้งขั้นตอนการดูแลระบบทั้งหมดของ TCP และ หันไปใช้ UDP ที่เกือบถูกลืม.

ปัญหาเกี่ยวกับ TCP

แอปพลิเคชันแบบอินเตอร์แอคทีฟค่อนข้างจะจัดการกับปัญหาบางอย่างที่พบในระหว่างการส่งด้วยตนเอง หนึ่งในคุณสมบัติหลักของ TCP ที่แอพพลิเคชั่นเหล่านี้ไม่ต้องการคือ บัฟเฟอร์.

TCP ทำให้แน่ใจว่าแพ็กเก็ตมาถึงตามลำดับ หากแพ็กเก็ตหายไปจากกระแส, การใช้งาน TCP ที่ได้รับจะส่งการร้องขอไปยังโปรแกรม TCP ที่ส่งเพื่อส่งแพ็กเก็ตเฉพาะนั้นอีกครั้ง. ในระหว่างนี้แพ็คเก็ตนั้นอาจมาถึงช้า TCP ใช้ระบบกรอบเลื่อนเพื่อประมวลผลแพ็กเก็ตที่เดินทางมาถึงและหากเซ็กเมนต์ล่าช้าหรือสูญหายสไลด์นั้นจะติดขัด. ที่เก็บข้อมูลชั่วคราวของเฟรมจำนวนหนึ่งในหน่วยความจำคือสิ่งที่เรียกว่าการบัฟเฟอร์. TCP รอจนกระทั่งสามารถเติมช่องว่างด้วยแพ็กเก็ตที่รับหมายเลขลำดับที่หายไป ในกรณีของโทรศัพท์ผ่านอินเทอร์เน็ตการกระทำเช่นนั้นจะทำให้สายไม่ทำงาน ในการสตรีมวิดีโอการรอแพ็กเก็ตหายจะทำให้โปรแกรมเล่นวิดีโอหยุดทำงาน.

แอปพลิเคชันแบบอินเทอร์แอคทีฟไม่มีขั้นตอนการแก้ไขบัฟเฟอร์ TCP. เงินต้นที่อยู่เบื้องหลังสแต็คเลเยอร์คือเลเยอร์ที่สูงกว่าร้องขอบริการและปล่อยให้เลเยอร์ล่างเพื่อให้บริการ ไม่มีสัญญาณ “รับกับมัน” ว่าแอปพลิเคชันสามารถส่งไปยัง Transport Layer ได้.

หากแพ็กเก็ตหายไปในการสนทนาทางโทรศัพท์แบบดิจิทัลผู้โทรจะได้รับความเงียบในระยะสั้น แต่แอปพลิเคชั่นทั้งสองด้านจะดำเนินการต่อและส่งและรับแพ็กเก็ตต่อไป. เมื่อถึงเวลาที่แพ็กเก็ตหายไปจะหายไปการสนทนาเชิงโต้ตอบจะย้ายไปแล้วดังนั้นจึงไม่มีประเด็นในการพยายามฉีดกลับเข้าไปในสตรีม; มันเป็นการดีกว่าที่จะตัดการสูญเสียและดำเนินต่อไป ในทำนองเดียวกันแพ็คเก็ตที่หายไปจะหมายถึงการข้ามสั้น ๆ ในสตรีมวิดีโอสดและผู้ชมจะค่อนข้างมากว่าวิดีโอยังคงเดินหน้าต่อไปกว่าการพล็อตพล็อตเป็นเวลาหนึ่งมิลลิวินาทีของเฟรม.

คุณอาจเคยเห็นเครื่องเล่นวิดีโอหยุดชั่วคราวและซ้อนทับข้อความ“บัฟเฟอร์” เหนือภาพ โดยทั่วไปจะมีตัวนับที่แสดงเปอร์เซ็นต์ของการบัฟเฟอร์ที่เสร็จสมบูรณ์แล้ว การบัฟเฟอร์นี้เกิดขึ้นหากความเร็วการถ่ายโอนการเชื่อมต่อช้ากว่าอัตราเฟรมของการเล่นวิดีโอ อย่างไรก็ตามจุดสำคัญเกี่ยวกับข้อความนั้นคือมันแสดงให้เห็นว่าการบัฟเฟอร์กำลังถูกจัดการโดยผู้เล่นไม่ใช่โดยโปรโตคอลการส่งผ่าน.

โปรโตคอลการเป็นพันธมิตร

แม้ว่าแอปพลิเคชันแบบอินเทอร์แอคทีฟไม่ต้องการความล่าช้าที่เกิดจาก TCP แต่พวกเขาต้องการฟังก์ชั่นบางอย่างของโปรโตคอลนั้น พวกเขาต้องการมากกว่า UDP ที่สามารถให้ได้ ดังนั้นจึงมีการคิดค้นโปรโตคอลอื่น ๆ เพื่อเติมเต็มความสามารถของ TCP.

โปรโตคอลการเริ่มต้นเซสชัน

Session Initiation Protocol (SIP) ถูกคิดค้นสำหรับแอปพลิเคชั่น Voice over IP (VoIP) โทรศัพท์ทางอินเทอร์เน็ตไม่ต้องการบัฟเฟอร์ของ TCP แต่พวกเขาต้องการเลียนแบบขั้นตอนการจัดตั้งการโทรแบบดั้งเดิมของโทรศัพท์ โทร, แหวน, ไม่ว่าง, รับและวางสาย อย่างไรก็ตาม SIP ไม่ได้จัดการเซสชันทั้งหมดเพียงดูแลการสร้างการเชื่อมต่อและฟังก์ชั่นการฉีกขาดของ TCP การโทรทุกครั้งที่ทำงานผ่านอินเทอร์เน็ตนั้นใช้ SIP มากจน“ SIP” เกือบจะกลายเป็นคำที่ใช้แทนกันได้กับ“VoIP.”

การเรียกใช้ทราฟฟิกเสียงผ่านการเชื่อมต่อดิจิตอลความเร็วสูงเป็นกลุ่มเรียกว่า“SIP trunking.การสลับสายจากอินเทอร์เน็ตไปยังโทรศัพท์พื้นฐานปกติเรียกว่า“การเลิกจ้าง SIP.” อุตสาหกรรมโทรศัพท์ระบบดิจิตอลใช้ SIP เพื่อระบุเทคโนโลยี แต่รากฐานที่สำคัญของกิจกรรมทั้งหมดของพวกเขาคือ UDP.

โปรโตคอลการขนส่งตามเวลาจริง

แม้จะมีการตัดสินใจว่า TCP เป็นค่าใช้จ่ายมากเกินไปในการรับส่งข้อมูลแบบโต้ตอบและควรทิ้ง, วิศวกรสื่อสารยังคงกลับไปที่ศูนย์บริการ TCP และพวกเขาหวังว่าพวกเขาจะได้ใช้ UDP โพรโทคอลการขนส่งแบบเรียลไทม์ (RTP) ทำขึ้นสำหรับการขาดแคลนจำนวนมากในการทำงานที่มีประสบการณ์เมื่อใช้ UDP.

คุณสมบัติที่สำคัญของโปรโตคอลเสริมเหล่านี้ที่ทำให้ UDP เกี่ยวข้องกับการสตรีมสื่อคือพวกเขาอนุญาตให้กระบวนการบางอย่างในการจัดการโดยดั้งเดิม TCP จะผลักดันขึ้นไปที่แอปพลิเคชัน. RTP จัดการบางฟังก์ชั่นการจัดการทราฟฟิกของ TCP แต่ไม่ใช่ทั้งหมด.

RTP มีความสามารถในการจัดลำดับใหม่ออกจากแพ็คเก็ตลำดับและสังเกตเห็นแพ็คเก็ตที่หายไป อย่างไรก็ตามไม่จำเป็นต้องใช้ฟังก์ชันการเรียงลำดับและไม่สามารถดำเนินการได้โดยไม่ต้องบัฟเฟอร์ที่ Transport Layer.

โปรโตคอลควบคุม RTP

RTP เป็นพันธมิตรกับ RTCP เสมอ, ซึ่งเป็นโปรโตคอลควบคุม RTP RTPC เลียนแบบฟังก์ชั่นการจัดการเซสชันบางส่วนของ TCP ยกเว้นหลักการแนวทางของโปรโตคอลคือไม่ก้าวก่ายในกระแสและไม่ทำให้การส่งสื่อช้าลง ดังนั้นกิจกรรมของมันจึงไม่บ่อยนัก. โปรโตคอลจะรวบรวมข้อมูลประสิทธิภาพรวมถึงการสูญหายของแพ็กเก็ต, และข้อมูลอัตราการถ่ายโอน. ผู้เล่นที่ได้รับสามารถใช้ข้อมูลนี้เพื่อตัดสินใจว่าจะเปลี่ยนเป็นวิดีโอความละเอียดต่ำกว่าหรือมาตรฐานการเข้ารหัสวิดีโออื่น.

หากคุณใช้แอปพลิเคชั่นวิดีโอและเสียงมันเกือบจะแน่นอนว่าทั้ง RTP และ RTCP เกี่ยวข้อง มี“interleavingตัวเลือก” ในนิยามของ RTSP (ดูด้านล่าง) ซึ่งจะย้ายการส่งสัญญาณ RTP ไปยัง TCP อย่างไรก็ตามนี่เป็นข้อเสนอที่ผิดปกติซึ่งไม่เคยนำมาใช้นอกเหนือจากห้องปฏิบัติการ หากไม่มีข้อกำหนดดังกล่าวกิจกรรม RTP และ RTCP ทั้งหมดจะถูกดำเนินการโดย UDP.

โปรโตคอลการสตรีมแบบเรียลไทม์

โปรโตคอลการสตรีมแบบเรียลไทม์ (RTSP) มักเกี่ยวข้องกับการเล่นวิดีโอและเสียงหรือแอปพลิเคชันการบันทึก. โปรโตคอลนี้มีปุ่มควบคุมบนเครื่องเล่นและเครื่องบันทึกของคุณ. เหล่านี้คือหยุดชั่วคราวบันทึก / เล่นกรอไปข้างหน้าและกรอกลับ อยากรู้อยากเห็นถึงแม้ว่า RTSP สามารถเรียกใช้ผ่าน UDP แต่ก็มักจะส่งผ่าน TCP แม้ว่ามันจะเป็นพันธมิตรกับวิดีโอหรือสตรีมเสียงสนับสนุน UDP.

แอปพลิเคชัน UDP เท่านั้น

แอปพลิเคชั่นที่รองรับเครือข่ายที่มีน้ำหนักเบาจำนวนมากใช้ UDP โดยไม่มีโปรโตคอลอื่นใดที่ใช้ประกอบการจำลองฟังก์ชั่น TCP. ฟังก์ชั่นเหล่านี้มีไว้สำหรับใช้ในเครือข่ายส่วนตัวเท่านั้น เนื่องจากไม่มีกระบวนการตรวจสอบสิทธิ์หรือการเข้ารหัสการส่งข้อมูล.

หากคุณจัดการเครือข่ายคุณจะคุ้นเคยกับ โปรโตคอลเวลาเครือข่าย (NTP), ระบบชื่อโดเมน (DNS), โปรโตคอลการกำหนดค่าโฮสต์แบบไดนามิก (DHCP), และ โปรโตคอลการถ่ายโอนไฟล์เล็กน้อย (TFTP). บริการการจัดการทั้งหมดเหล่านี้ทำงานผ่าน UDP นอกเหนือจากแอปพลิเคชันเครือข่ายส่วนตัวเหล่านี้มันเป็นเรื่องยากมากที่จะค้นหาแอปพลิเคชันใด ๆ ที่ทำงานบน UDP เท่านั้น.

UDP กับ TCP

การเปรียบเทียบโครงสร้างส่วนหัว UDP และโครงสร้างส่วนหัว TCP แสดงข้อ จำกัด ของ UDP.

โครงสร้างส่วนหัวของ UDP

ส่วนหัว UDP มีเพียงสี่ฟิลด์ ในสี่คนนั้น พอร์ตต้นทาง ฟิลด์เป็นตัวเลือกและอาจเว้นว่างไว้ ใน IPv4, การตรวจสอบ ฟิลด์นี้เป็นทางเลือกแม้ว่าจะเป็นข้อบังคับสำหรับการใช้งาน IPv6 ซึ่งหมายความว่าในกรณีของการส่งสัญญาณ IPv4 ส่วนหัว UDP ต้องการเพียงข้อมูลสองส่วนเท่านั้น.

ส่วนหัวของ TCP นั้นสามารถพกพาข้อมูลได้มากขึ้น.

โครงสร้างส่วนหัวของ TCP

ดังที่คุณเห็นได้จากภาพประกอบส่วนหัวของแพ็กเก็ต TCP มีชุดของเก้าธงที่ปรับความหมายของส่วนหัว กิจกรรมมีฟิลด์ “เร่งด่วน” สิ่งนี้ทำให้ระบบ TCP มีความยืดหยุ่นมากกว่า UDP และแสดงให้เห็นว่ามีการลงทุนในโพรซีเดอร์สำหรับ TCP และโครงสร้างของส่วนหัวแพ็คเก็ตมากกว่าที่ใช้ในการพัฒนา UDP.

ความจริงที่ว่าส่วนหัว TCP ต้องรวมพอร์ตต้นทางทำให้สามารถสร้างซ็อกเก็ตที่ไม่ซ้ำกันมากขึ้นสร้างรหัสเซสชันจากที่อยู่ IP ต้นทางและปลายทางและหมายเลขพอร์ตต้นทางและปลายทาง ด้วย UDP เนื่องจากไม่มีขั้นตอนในการสร้างเซสชัน, แต่ละข้อความถือว่าเป็นงานที่เสร็จสมบูรณ์, และโปรโตคอลจะไม่พยายามรวมกลุ่มสตริงเข้าด้วยกัน ดังนั้นแอปพลิเคชันที่ใช้ USP จึงต้องจัดการความต่อเนื่องนั้นเอง.

ความปลอดภัยสำหรับ UDP

วิธีการเชื่อมต่อของ TCP ทำให้การรักษาความปลอดภัยง่ายขึ้นในการใช้ในโปรโตคอลนั้นใน UDP อย่างไรก็ตามมีมาตรฐานการเข้ารหัสสำหรับ UDP ตัวเลือกหลักที่มีจุดมุ่งหมายโดยตรงที่ UDP ความปลอดภัยคือโปรโตคอลความปลอดภัยของดาต้าแกรมเลเยอร์การขนส่งหรือ DTLS.

โชคดี, DTLS มีอยู่ในไลบรารีโอเพ่นซอร์สฟรีจำนวนหนึ่ง, ดังนั้นคุณไม่จำเป็นต้องรวมคำจำกัดความของโพรโทคอลและเขียนโปรแกรมเปิดของคุณเพื่อใช้งาน. OpenSSL, ซึ่งเป็นไลบรารีของโอเพ่นซอร์สโค้ดเป็นแหล่งที่พบมากที่สุดสำหรับการติดตั้ง Transport Layer Security ซึ่งเป็นระบบความปลอดภัยที่ใช้กันอย่างแพร่หลายที่สุดสำหรับ TCP ห้องสมุดนี้ยัง รวมถึงการใช้งาน DTLS, ดังนั้นคุณควรจะพบกับตัวเลือก UDP ที่ปลอดภัยในแอพพลิเคชั่นเดียวกันที่ให้การเชื่อมต่อ TCP ที่ปลอดภัย.

อีกทางเลือกหนึ่งสำหรับผู้ใช้ UDP คือการพึ่งพาระบบรักษาความปลอดภัยที่ออกแบบมาเพื่อทำงานที่ Internet Layer นี่คือ IPSec, หรือความปลอดภัยของโปรโตคอลอินเทอร์เน็ต เนื่องจาก IPSec ทำงานต่ำกว่า Transport Layer จึงไม่สามารถทำงานกับพอร์ตได้ดังนั้นความจริงที่ว่า UDP ไม่สามารถรักษาเซสชันได้ไม่สำคัญเมื่อ IPSec ทำงาน โปรโตคอล IP Layer ไม่สามารถสร้างเซสชันได้. เป็นระบบชั้นล่าง, IPSec สามารถรองรับโปรโตคอล Transport Layer ใด ๆ รวมถึง UDP.

IPSec รวมถึงวิธีการรับรองความถูกต้องและเข้ารหัสแพ็กเก็ตเพื่อปกป้องพวกเขาจาก snoopers ดักฟังโทรศัพท์ ไอทีมีความปลอดภัยมากพอ ๆ กับ TLS ที่ได้รับความนิยม แต่มีการใช้งานกันอย่างแพร่หลายน้อยกว่า IPSec ใช้ระบบ Internet Key Exchange (IKEv2) เพื่อตั้งค่าการรับรองความถูกต้องดังนั้นบ่อยครั้งที่ IPSec จะถูกเรียกเก็บเงินเป็น IKEv2 วิธีการ IKEv2 ใช้ ขั้นตอนการแลกเปลี่ยนคีย์ Diffie-Hellman, ซึ่งเป็นระบบเดียวกับที่ TLS ใช้สำหรับวิธีการรักษาความปลอดภัยเว็บไซต์ HTTPS.

Kerberos และ Kerberized Internet Negotiation of Keys (KINK) เป็นองค์ประกอบสองประการของระบบความปลอดภัยที่มักจะเรียกว่า Kerberos ขั้นตอนการสร้างเซสชันของ Kerberos ใช้ระบบ “tickets” ซึ่งคล้ายกับวิธี TLS ในการใช้ “ใบรับรอง” ที่ด้านล่างสุดของสแต็ก Kerberos ได้รับการสนับสนุนจาก IPSec ชั้น Kerberos บาร์นี้ตั้งอยู่บน UDP และใช้ซ็อกเก็ต UDP เพื่ออำนวยความสะดวกในการสื่อสาร ดังนั้นนี่คือระบบรักษาความปลอดภัยที่เป็นมิตรกับ UDP. สิ่งอำนวยความสะดวกที่น่าตื่นเต้นของ Kerberos คือช่วยให้คุณมีตัวเลือกในการเข้ารหัส AES เพื่อปกป้องการถ่ายโอน UDP ของคุณ. AES น่าจะเป็นรหัสลับที่ปลอดภัยที่สุดในการใช้งานทั่วไปในวันนี้และเป็นวิธีการรักษาความปลอดภัยที่แนะนำสำหรับระบบป้องกันความเป็นส่วนตัว VPN ที่ดีที่สุดในโลก.

แม้จะมีปัญหาในการเจรจาคีย์การเข้ารหัสในสภาพแวดล้อมที่ไม่มีการจัดการการเชื่อมต่อใด ๆ แต่ UDP มีตัวเลือกความปลอดภัย ดังนั้นเมื่อคุณใช้แอปพลิเคชันที่ใช้ UDP คุณจะไม่ละทิ้งหน้าที่ในการส่งสัญญาณของคุณ.

อนาคตของ UDP

แอปพลิเคชันที่ใช้ UDP บริสุทธิ์ซึ่งไม่เกี่ยวข้องกับโพรโทคอลด้านข้างเพื่อเลียนแบบ TCP นั้นหายากและพวกเขามีแนวโน้มที่จะได้รับความยากยิ่งขึ้น ยูทิลิตี้เครือข่ายที่มีน้ำหนักเบาที่ใช้ UDP เจริญเติบโตบนเครือข่ายท้องถิ่นที่ปลอดภัย อย่างไรก็ตามเนื่องจากภัยคุกคามด้านความปลอดภัยจากการโจมตีแบบ zero-day ใหม่ทุกสัปดาห์แนวคิดของการมีโปรโตคอลที่ไม่ปลอดภัยในการจัดการบริการที่สำคัญของการจัดการการกำหนดค่าและการจัดการที่อยู่ดูเหมือนจะเป็นเรื่องที่น่ารังเกียจ.

เมื่อเครือข่ายย้ายการบริการไปยังคลาวด์บริการของ TFTP ที่ใช้ UDP และ DHCP จะเริ่มถูกแทนที่ด้วยทางเลือกที่ปลอดภัยมากขึ้น. ทางออกที่ง่ายของการใช้งานแอพพลิเคชั่นผ่าน HTTPS เพื่อให้ความปลอดภัยโดยไม่ต้องใช้ความพยายามในการเขียนโปรแกรมเพิ่มเติมในอนาคตจะเข้าสู่ TCP ซึ่งมี HTTPS และลดโอกาสจากรายการความสามารถของ UDP.

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

โพรโทคอลเดตาแกรมผู้ใช้ที่เชื่อถือได้ (RUDP), ซึ่งมีการใช้งานของ Cisco และ Microsoft.

โปรโตคอลการควบคุมการส่งสตรีม (SCTP), ซึ่งได้รับการเสนอไม่สำเร็จแทนที่คำสั่งผสม UDP / RTP / RTCP แต่ไม่เคยออกจากพื้นดินเลยทีเดียว.

ลูกเป็ดขี้เหร่ตัวนี้ที่ชื่อ UDP ถูกค้นพบว่าเป็นหงส์ด้วยพลังการแปลงอันมหัศจรรย์ของบรอดแบนด์และแอพพลิเคชั่นแบบอินเตอร์แอคทีฟ ดาวฤกษ์ที่ได้รับการปรับปรุงใหม่นี้จะยังคงแล่นผ่านสายน้ำของอินเทอร์เน็ตได้อย่างง่ายดาย.

คุณใช้วิธีการส่งแบบใด คุณเห็นลูกเป็ดขี้เหร่ UDP เป็นหงส์หรือไม่? เขียนเกี่ยวกับประสบการณ์ของคุณในส่วนความคิดเห็นด้านล่าง.

ที่เกี่ยวข้อง:
สุดยอดคู่มือ TCP / IP
TCPdump คืออะไร?
ตรวจสอบเซิร์ฟเวอร์ SolarWinds TFTP
ตรวจสอบเซิร์ฟเวอร์ TFTPD32 TFTP

รูปภาพ:
ส่วนหัวของ UDP โดย Devarshi ที่ English Wikibooks ได้รับอนุญาตภายใต้ CC BY-SA 2.5
โครงร่างแพ็คเก็ต TCP พร้อมระดับบิตโดย Quliyevferman ผ่าน Wikimedia Commons ได้รับอนุญาตภายใต้ CC BY-SA 4.0

About the author