การส่งแพ็กเก็ตที่มากกว่า 65,535 ไบต์ในการเชื่อมต่อการขนส่ง SSH


1

มีวิธีใดในการทดสอบ (ตรวจสอบ / สาธิต) ว่าแพ็คเก็ตที่มีขนาดใหญ่กว่า 65,535 ไบต์ในการเชื่อมต่อการขนส่งของ SSH หลุดหรือไม่?

คำตอบ:


1

มีวิธีใดที่จะทดสอบว่าแพ็คเก็ตที่มีขนาดใหญ่กว่า 65535 ไบต์ถูกทิ้ง?

เลขที่

SSH ทำงานบน TCP / IP ดังนั้นจึงขึ้นอยู่กับข้อ จำกัด ของโปรโตคอลพื้นฐาน

คุณไม่สามารถสร้างแพ็คเก็ตที่มีขนาดใหญ่กว่า 65535 ไบต์ได้ซึ่งเป็นขนาดสูงสุดที่ Internet Protocol RFC อนุญาต

หากคุณไม่สามารถสร้างแพ็กเก็ตดังกล่าวได้คุณจะไม่สามารถส่งแพ็กเก็ตหนึ่งรายการเพื่อทดสอบว่าแพ็กเก็ตนั้นหลุดหรือไม่

รูปแบบส่วนหัวอินเทอร์เน็ตประกอบด้วยเขตข้อมูลความยาวรวมซึ่งเป็น 16 บิต (ซึ่งสามารถมีค่าสูงสุด 65535 ถ้าบิตทั้งหมดตั้งค่าเป็นหนึ่ง)

3.1 รูปแบบส่วนหัวอินเทอร์เน็ต

สรุปเนื้อหาของส่วนหัวอินเทอร์เน็ตเป็นดังนี้:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |Version|  IHL  |Type of Service|          Total Length         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         Identification        |Flags|      Fragment Offset    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Time to Live |    Protocol   |         Header Checksum       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       Source Address                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Destination Address                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Options                    |    Padding    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

ความยาวรวม: 16 บิต

Total Length คือความยาวของดาตาแกรมวัดเป็น octet   รวมถึงส่วนหัวอินเทอร์เน็ตและข้อมูล ฟิลด์นี้อนุญาตให้มีความยาวของ   ดาต้าแกรมที่มีค่าสูงสุดถึง 65,535 octets ดาต้าแกรมยาวดังกล่าวนั้น   ทำไม่ได้สำหรับโฮสต์และเครือข่ายส่วนใหญ่ โฮสต์ทั้งหมดจะต้องเตรียม   เพื่อยอมรับดาตาแกรมสูงสุด 576 octets (ไม่ว่าจะมาถึงทั้งหมดหรือ   ในชิ้นส่วน) ขอแนะนำให้โฮสต์ส่งเฉพาะดาต้าแกรม   ใหญ่กว่า 576 octets หากพวกเขามั่นใจได้ว่าปลายทางคือ   เตรียมที่จะยอมรับดาตาแกรมที่ใหญ่ขึ้น

หมายเลข 576 ถูกเลือกเพื่ออนุญาตให้บล็อกข้อมูลขนาดที่เหมาะสม   ถูกส่งนอกเหนือจากข้อมูลส่วนหัวที่จำเป็น สำหรับ   ตัวอย่างขนาดนี้อนุญาตให้บล็อกข้อมูลเป็น 512 octets รวมกับส่วนหัว 64   octets เพื่อให้พอดีกับดาตาแกรม ส่วนหัวอินเทอร์เน็ตสูงสุดคือ 60   octets และส่วนหัวอินเทอร์เน็ตทั่วไปคือ 20 octets ช่วยให้ได้มาร์จิ้น   สำหรับส่วนหัวของโปรโตคอลระดับสูง

แหล่ง RFC 791: อินเทอร์เน็ตโปรโตคอล


อ่านเพิ่มเติม


ถ้าฉันแยกวิเคราะห์มาตรฐานที่ถูกต้องสิ่งนี้จะเปลี่ยนไปเล็กน้อยใน IPv6 มันยังคงใช้ฟิลด์ความยาว 16 บิต (และสูงสุดที่ 65,535 octets) แต่นั่นคือความยาวสูงสุดของการโหลดไม่ใช่ความยาวของแพ็กเก็ตสูงสุด . เนื่องจากส่วนหัว IPv6 มีความยาว 320 octets ซึ่งจะให้ขนาดแพ็กเก็ตรวมสูงสุดที่ 65,855 octet ดู RFC 2460 ส่วนที่ 3
Gordon Davisson

ขอบคุณที่ตอบคำถาม ฉันกำลังพยายามทดสอบการใช้งาน SSH และส่วนหนึ่งของนั้นคือการตรวจสอบความยาวของแพ็คเก็ตสูงสุดตามที่กำหนดไว้ใน 6.1 ของ RFC 4253 ไม่มีใครรู้วิธีจำลอง / ทดสอบการส่งแพ็กเก็ต SSH 32768 ไบต์หรือมากกว่าและขนาดแพ็คเก็ตทั้งหมด ของ 35000 bytes หรือมากกว่า?
2116_daz
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.