TCP-over-TCP ทำงานได้แย่กว่า TCP เพียงอย่างเดียว (2014) ในสถานการณ์ใดบ้าง


25

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

แต่หลังจากนั้นเราได้เห็นความก้าวหน้าที่สำคัญในด้านเทคโนโลยีและโปรโตคอล ทุกวันนี้เราได้ใช้งาน 'Selective ACK' เกือบทุกที่และกฎของมัวร์ทำให้เรามีหน่วยความจำมากขึ้นและด้วยบัฟเฟอร์ TCP ขนาดใหญ่ที่เหมาะสำหรับ Gbit อัปลิงค์ นอกจากนี้การสูญเสียแพ็กเก็ตยังมีปัญหาน้อยกว่ามากในทุกวันนี้ในลิงก์ที่ไม่ใช่วิทยุ ทั้งหมดนี้น่าจะช่วยบรรเทาปัญหา TCP-over-TCP ได้อย่างมากใช่ไหม?

โปรดทราบว่ามีสถานการณ์ในโลกแห่งความเป็นจริงที่เช่น VPN ที่ใช้ TCP ง่ายต่อการติดตั้งและใช้งานมากกว่าที่ใช้ UDP / ESP (ดูด้านล่าง) ดังนั้นคำถามของฉัน:

ภายใต้สถานการณ์ใด (การสูญเสียแพ็กเก็ตลิงก์และเวลาแฝง) TCP-over-TCP มีประสิทธิภาพแย่กว่า TCP เพียงอย่างเดียวอย่างมากสมมติว่ารองรับ SACK และบัฟเฟอร์ TCP ที่มีขนาดเหมาะสมทั้งสองด้าน

มันจะดีมากดังนั้นโปรดดูการวัดบางอย่างที่แสดงความสัมพันธ์ระหว่าง (การเชื่อมต่อภายนอก) การสูญเสีย / ความหน่วงของแพ็คเก็ตและการเชื่อมต่อภายใน (การเชื่อมต่อภายใน) / jitter - สำหรับ TCP-over-TCP และ TCP เพียงอย่างเดียว ฉันพบบทความที่น่าสนใจนี้แต่ดูเหมือนว่าจะมีความกังวลเกี่ยวกับความล่าช้าเท่านั้นและไม่ใช่การสูญเสียแพ็กเก็ต (ภายนอก)

นอกจากนี้: มีการตั้งค่าที่แนะนำ (เช่นตัวเลือก TCP การตั้งค่าบัฟเฟอร์การลด MTU / MSS ฯลฯ ) เพื่อ จำกัด ช่องว่างประสิทธิภาพระหว่าง TCP และ TCP-over-TCP หรือไม่


อัพเดท: เหตุผลของเรา

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

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

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

ฉันพยายามปรับปรุงชื่อเรื่องและคำถามกลางตามนั้น ฉันหวังว่ามันสมเหตุสมผล


คุณจะสังเกตเห็นความแตกต่างระหว่าง TCP กับ TCP และ UDP (ฯลฯ ) ได้อย่างรวดเร็วผ่าน TCP VPNs เมื่อใช้กับเซสชันแบบโต้ตอบเช่น ssh คุณจะสังเกตเห็นความหน่วงถ้าไม่ลดเซสชัน YMMV, TIAS
Daniel S. Sterling

เฉพาะในกรณีที่การเชื่อมต่อ 'outer' นั้นขึ้นอยู่กับระดับความหน่วงแฝงหรือการสูญเสียแพ็กเก็ตในครั้งแรก ฉันมีเซสชัน SSH มากมายบน VPN ที่ใช้ TCP และทำงานได้ดีโดยไม่ล่าช้า
Nils Toedtmann

แน่นอน - มันทำงานได้เมื่อคุณมีเครือข่ายที่ดี หากคุณไม่ได้มีเครือข่ายที่ดีเสมอไปมันก็ไม่ได้ผลเสมอไป
Daniel S. Sterling

เครือข่ายที่ดีคืออะไร หากทุกอย่างทำงานในภูมิภาค AWS เดียวเครือข่ายนั้นดีพอหรือไม่?
รวย remer

คำตอบ:


7

ฉันคิดว่ามันเป็นที่ถกเถียงกันมากกว่าที่คุณทำให้มันปรากฏ มีคำถามที่พบบ่อยเกี่ยวกับลินุกซ์ที่เกี่ยวข้องกับเก่า: http://www.tldp.org/HOWTO/VPN-HOWTO/

ฉันใช้ PPP-over-ssh-over-ADSL มานานกว่า 12 ปีแล้วและมันก็ไม่เคยทำให้ฉันผิดหวังดังนั้นจากประสบการณ์ของฉันฉันก็กล้าที่จะพูดว่าผู้ดูถูกเหยียดหยามส่วนใหญ่ TCP ผ่าน TCP อาจเป็นความคิดที่ไม่ดีสำหรับการเชื่อมต่อ RTC ลิงก์ดาวเทียมและลิงก์อื่น ๆ ที่มีปริมาณงานต่ำมากหรือล่าช้ามาก แต่สำหรับการใช้งานส่วนใหญ่จะใช้งานได้

ทีนี้คำถามที่แท้จริงคือ: ทำไมคุณถึงใช้ TCP ผ่าน TCP เลย ? เมื่อฉันตั้งค่า PPP-over-ssh ของฉันมันเป็นเพราะส่วนใหญ่แล้วมันเป็นวิธีที่ง่ายที่สุดในการสร้าง VPN แบบรวดเร็ว ถ้าอย่างนั้นฉันก็ใช้มันตั้งแต่ความเกียจคร้านที่แท้จริง

ทุกวันนี้มีเครื่องมือที่ใช้งานได้จริงและตั้งค่าได้ง่ายเช่น OpenVPN, IPSec VPNs ดังนั้นคุณไม่จำเป็นต้องกังวลกับปัญหา TCP-over-TCP


1
มีบางสถานการณ์ที่ TCP-over-TCP แก้ไขปัญหาเครือข่ายได้ง่าย ฉันเพิ่มส่วนที่อธิบายเหตุผลของเราอย่างละเอียด
Nils Toedtmann

ฉันหวังว่าคำตอบที่เฉพาะเจาะจงมากขึ้นเกี่ยวกับเงื่อนไขภายใต้ TCP-over-TCP จะกลายเป็นปัญหา กรณีใช้งานอย่างหนึ่งของเราคือลิงก์วิทยุที่มีระดับความหน่วงแฝงและการสูญเสียแพ็กเก็ตต่างกัน
Nils Toedtmann

TCP ผ่าน TCP ผ่าน TCP (TCP traffic ใน TCP OpenVPN ที่เข้าถึงผ่าน TCP SSH ไปข้างหน้า) เสียค่าใช้จ่ายประมาณ 5Mb / s มันไม่เคยทำให้ฉันผิดหวัง แต่ฉันจะไม่แนะนำเพราะมันเป็นเรื่องใหญ่มาก
ไซเรน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.