TCP vs UDP: ฟีเจอร์การใช้และความแตกต่าง

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

โปรโตคอล TCP: มันคืออะไรและทำงานอย่างไร

พื้นที่ TCP (โปรโตคอลควบคุมการส่ง) โปรโตคอลเป็นหนึ่งในโปรโตคอลพื้นฐานบนอินเทอร์เน็ตมันช่วยให้แอปพลิเคชั่นสื่อสารกับการรับประกันโดยไม่คำนึงถึงเลเยอร์ที่ต่ำกว่าของโมเดล TCP / IP ซึ่งหมายความว่าเราเตอร์ (เลเยอร์เครือข่ายในโมเดล TCP / IP) จะต้องส่งเซ็กเมนต์ (หน่วยวัดใน TCP) เท่านั้นโดยไม่ต้องกังวลว่าข้อมูลนั้นจะมาถึงอย่างถูกต้องหรือไม่ TCP รองรับโปรโตคอลเลเยอร์แอปพลิเคชั่นหลายตัว เช่น HTTP (เว็บ), HTTPS (เว็บที่ปลอดภัย), POP3 (เมลขาเข้า) และ SMTP (เมลขาออก) รวมถึงเวอร์ชันที่ปลอดภัยโดยใช้ TLS TCP ยังใช้ในโปรโตคอลที่สำคัญเช่น FTP, FTPES และ SFTP เพื่อถ่ายโอนไฟล์จากแหล่งไปยังปลายทางและแม้แต่โปรโตคอล SSH เพื่อจัดการคอมพิวเตอร์ในเครื่องและใช้โปรโตคอล TCP จากระยะไกลอย่างปลอดภัย

คุณสมบัติหลัก

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

MSS (ขนาดเซกเมนต์สูงสุด) เป็นขนาดสูงสุดเป็นไบต์ที่ TCP สามารถรับได้ในเซกเมนต์เดียวซึ่งคล้ายกับ MTU แต่ MSS อยู่ที่ระดับเลเยอร์การขนส่ง เพื่อให้ได้ประสิทธิภาพที่ดีที่สุด MSS จะต้องมีขนาดเล็กพอที่จะหลีกเลี่ยงการแยกส่วน IP โดยปกติ MSS จะโฆษณาในแต่ละช่องทางของการสื่อสารผ่านส่วนหัว TCP เอง โดยปกติขนาดของ MSS คือ MTU (1500 ไบต์ปกติ) ลบส่วนหัว TCP (ซึ่งมีความยาวตัวแปรอย่างน้อย 20 ไบต์) ลบส่วนหัว IP (ซึ่งมีความยาวตัวแปรอย่างน้อย 20 ไบต์) MSS = MTU (1,500 bytes) - 20 ไบต์ของส่วนหัว TCP - 20 ไบต์ส่วนหัวของ IP

TCP มี กลไกการควบคุมข้อผิดพลาดที่ซับซ้อน ใช้เทคนิคการเลื่อนหน้าต่างเพื่อให้ทุกส่วนมาถึงอย่างถูกต้อง คุณลักษณะนี้ใช้วิธีการต่าง ๆ เพื่อตรวจหาข้อผิดพลาดที่อาจเกิดขึ้น:



  • checksums
  • การกำหนดหมายเลขของเซกเมนต์ทั้งหมดเพื่อควบคุมอย่างถูกต้อง
  • การยืนยัน ACK แบบเลือกถึงแม้ว่าจะช่วยให้คุณสามารถ "สะสม" กลุ่มเพื่อให้มี ACK เดียวคุณสามารถยืนยันหลาย
  • ตัวจับเวลา: หากผ่านไปนาน ๆ TCP จะส่งเซกเมนต์ที่“ หายไป” ใหม่โดยอัตโนมัติ
  • กลุ่มซ้ำจะถูกยกเลิก: ในกรณีที่กลุ่มที่ซ้ำกันมาถึง (เนื่องจากกลุ่มนั้นใช้เวลานานกว่าปกติและถูกส่งอีกครั้ง) กลุ่มนั้นจะถูกลบออก

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

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

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



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

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

ปัจจุบัน TCP มีอัลกอริธึมที่แตกต่างกันในการจัดการความแออัดอย่างแรกคือ TCP Tahoe และ Reno แม้ว่าเราจะมี TCP อื่น ๆ เช่น TCP Vegas แต่ในช่วงหลายปีที่ผ่านมากับเครือข่ายข้อมูล TCP / IP ใหม่พวกเขามีอัลกอริธึมอื่น ๆ มีประสิทธิภาพมากกว่า. ตัวอย่างเช่นเรามี ทีซีพี บีอาร์ ที่ช่วยให้เราส่งข้อมูลได้เร็วที่สุดเนื่องจากมีประสิทธิภาพมากกว่าโปรโตคอล TCP เดิมมาก (เราจะมีความเร็วมากขึ้น) นอกจากนี้เรายังมี TCP Cubic ซึ่งเป็นตัวควบคุมความแออัดที่ใช้โดยไฟล์ ลินุกซ์ และระบบปฏิบัติการ Unix



ในที่สุดคุณสมบัติที่น่าสนใจอีกอย่างของ TCP ก็คือมันช่วยให้เราสามารถ ข้อมูลมัลติเพล็กซ์ เพื่อให้เราสามารถรับข้อมูลจากโฮสต์ที่แตกต่างกันพร้อมกัน นอกจากนี้ยังอนุญาตให้ Full-Duplex เนื่องจากเราสามารถส่งและรับข้อมูลพร้อมกันผ่านช่องทางการสื่อสารเดียวกัน

การสร้างการเชื่อมต่อระหว่างไคลเอนต์และเซิร์ฟเวอร์และตัดการเชื่อมต่อใน TCP

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

การเชื่อมต่อก่อนหน้านี้เรียกว่า จับมือ 3 ทาง และโดยพื้นฐานแล้วจะประกอบด้วยไคลเอนต์ (ผู้เริ่มต้นการเชื่อมต่อ) ส่งข้อความ SYN ไปยังเซิร์ฟเวอร์ (ผู้รับการเชื่อมต่อ) จากนั้นเซิร์ฟเวอร์จะส่งข้อความประเภท SYN-ACK ซึ่งระบุว่าสามารถเริ่มส่งข้อมูลได้ในที่สุดไคลเอนต์จะส่ง ACK เพื่อระบุว่าได้รับอย่างถูกต้องและข้อมูลทั้งหมดระหว่างไคลเอนต์และเซิร์ฟเวอร์จะถูกส่งไปแล้ว แบบสองทิศทาง รายละเอียดที่สำคัญมากของ TCP คือมันจะสร้างหมายเลขลำดับในแต่ละด้านช่วยให้ไม่สามารถสร้างการเชื่อมต่อที่ผิดพลาดระหว่างกันได้แม้ว่าผู้โจมตีจะ "อยู่ตรงกลาง" ก็ตาม ARM- ประเภทการโจมตี MitM สามารถทำการปลอมแปลงหรือคล้ายกันได้ แต่ห้ามผ่านทางอินเทอร์เน็ต



หนึ่งในช่องโหว่ของ TCP อยู่ในการส่งเซ็กเมนต์ TCP SYN จำนวนมากโดยมีจุดประสงค์ในการเชื่อมต่อ“ saturating” ไปยังผู้รับ โซลูชันที่เป็นไปได้บางอย่างเพื่อลดการปฏิเสธการโจมตีบริการนี้คือ:

  • จำกัด จำนวนการเชื่อมต่อไม่ว่าจะเป็นการเชื่อมต่อทั่วโลกหรือ IP
  • ยอมรับการเชื่อมต่อไปยังที่อยู่ IP ที่เชื่อถือได้เท่านั้น
  • ชะลอการจัดสรรทรัพยากรโดยใช้“ คุกกี้” หรือที่เรียกว่าซิงค์คุกกี้

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



ส่วนหัว TCP

TCP เพิ่ม อย่างน้อยที่สุด ส่วนหัว 20 ไบต์ ในแต่ละส่วนเนื่องจากเรามีช่อง "ไม่จำเป็น" ในส่วนหัว TCP นี้เราจะค้นหาพอร์ตต้นทางและพอร์ตปลายทางของการเชื่อมต่อ (ซ็อกเก็ต) เราจะค้นหาหมายเลขลำดับหมายเลข ACK และ TCP FLAGS อื่นเช่น SYN, ACK, RST, FIN, URG และอื่น ๆ ในส่วนหัวนี้เรายังมีส่วนที่สำคัญมากสำหรับการทำงานของหน้าต่างเลื่อนและเราจะมีฟิลด์ 16 บิตที่ระบุขนาดของหน้าต่างต้อนรับที่เราได้อธิบายไว้ก่อนหน้านี้

พื้นที่ พอร์ต (พอร์ตต้นทางและพอร์ตปลายทาง) จำเป็นสำหรับการทำงานที่เหมาะสมของ TCP TCP ใช้หมายเลขพอร์ตเหล่านี้เพื่อระบุซ็อกเก็ตนั่นคือแอปพลิเคชันที่ปล่อยข้อมูลหรือรับข้อมูล พอร์ต TCP มีช่วงตั้งแต่ 0 ถึง 65535 แต่เรามีพอร์ตที่แตกต่างกันสามประเภท:

  • รู้จักพอร์ต : ตั้งแต่ 0 ถึง 1023 พอร์ตเหล่านี้สงวนไว้โดย IANA สำหรับแอปพลิเคชันบางอย่างเช่นเซิร์ฟเวอร์ HTTP, FTP, SSH และพอร์ตที่รู้จักกันดีอื่น ๆ
  • พอร์ตที่ลงทะเบียน : 1024 ถึง 49151 พอร์ตเหล่านี้สงวนไว้สำหรับแอปพลิเคชันเฉพาะเช่นระบบจัดการฐานข้อมูล BitTorrent และแอปพลิเคชั่นอื่น ๆ อีกมากมาย
  • พอร์ตส่วนตัว : จาก 49152 ถึง 65535 พอร์ตเหล่านี้ไม่ได้ถูกสงวนไว้โดยแอปพลิเคชันใด ๆ และคุณสามารถใช้พอร์ตเหล่านี้ได้อย่างอิสระโดยไม่กระทบกับโปรโตคอลอื่น

โปรโตคอล UDP: มันคืออะไรและทำงานอย่างไร

พื้นที่ โปรโตคอล UDP (User Datagram Protocol) เป็นหนึ่งในโปรโตคอลพื้นฐานบนอินเทอร์เน็ตซึ่งช่วยให้แอปพลิเคชันสื่อสารกับการค้ำประกันโดยไม่คำนึงถึงชั้นล่างของโมเดล TCP / IP ซึ่งหมายความว่าเราเตอร์ (เลเยอร์เครือข่ายในโมเดล TCP / IP) ต้องส่งดาต้าแกรม (หน่วยวัดเป็น UDP) เท่านั้น UDP รองรับโปรโตคอลหลายชั้นของแอปพลิเคชันเช่นที่เป็นที่นิยม DNS และแม้แต่โปรโตคอล DHCP เพื่อรับ (และจัดเตรียม) ที่อยู่ IP โดยอัตโนมัติ

คุณสมบัติหลัก

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

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

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



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

ส่วนหัว UDP

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

TCP vs UDP ในโปรโตคอล VPN ที่แตกต่างกันเช่น OpenVPN

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

OpenVPN เซกูโร

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

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

อย่างที่คุณเห็นทั้ง TCP และ UDP เป็นอินเทอร์เน็ตโปรโตคอลพื้นฐานสองตัวและแต่ละโปรโตคอลจะจัดการโปรโตคอลที่แตกต่างกันของชั้นแอพพลิเคชัน