แฟรกเมนต์ TCP ที่แตกแฟรกเมนต์เก็บอยู่ในเซิร์ฟเวอร์ TCP นานเท่าใด


10

สมมติว่าชิ้นส่วน TCP ที่กำหนดมีการแยกส่วนเป็นสองดาตาแกรม IP และดาตาแกรมแรกมาถึงเซิร์ฟเวอร์ TCP แต่ดาตาแกรมที่สองไม่มาถึง

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

คำตอบ:


8

หลังจากหมดเวลาการรวบรวมชิ้นส่วนหมดอายุแล้วชิ้นส่วนจะถูกทิ้ง ปลายอีกด้านจะต้องส่งอีกครั้ง

การหมดเวลานี้สามารถกำหนดค่าได้โดยทั่วไป บน Linux ก็ 30 /proc/sys/net/ipv4/ipfrag_timeวินาทีโดยเริ่มต้นและการควบคุมผ่านทาง


แฟรกเมนต์ reassembly timeout เป็นไปตามแฟรกเมนต์แรกที่ได้รับหรือมีการรีเซ็ตตัวจับเวลาสำหรับแฟรกเมนต์ใหม่ที่เข้ามาแต่ละอันหรือไม่?
Randomblue

2
ฉันคิดว่าคุณต้องอ่านซอร์สโค้ดเพื่อตอบคำถามนั้นอย่างชัดเจน
Michael Hampton

2

ไม่มีคำตอบที่ชัดเจนสำหรับคำถามนี้;

ถ้าคุณเห็นนี้บทความเกี่ยวกับการปรับตัว retransmition คุณจะเห็น TCP ใช้ RTT เป็นปัจจัยในการคำนวณความล่าช้าที่เหมาะสม

นี่เป็นบทความที่มีรายละเอียดมากขึ้น โดยพื้นฐานแล้วไม่มีค่าการหมดเวลาพิเศษสำหรับการแยกส่วน

นี้บทความของซิสโก้ แต่บ่งชี้ว่า IOS XR ไฟร์วอลล์เสมือนมีหมดเวลาเริ่มต้นของ 10 วินาทีสำหรับชิ้นส่วนมีการจับเวลาการกำหนดค่าของตัวเอง ฉันกำลังเชื่อมโยงสิ่งนี้เพื่อบอกว่า OS และอุปกรณ์ต่าง ๆ จะทำงานแตกต่างกันและหากคุณกำลังเชื่อมต่อผ่านแม้ว่าอุปกรณ์เช่นนี้จะทำให้เกิดการรบกวนการเชื่อมต่อของคุณ

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


ขอบคุณ คุณคิดว่ามีการคำนวณการหมดเวลาของส่วนในบทความของ Cisco โดยคำนึงถึงส่วนที่ได้รับครั้งแรกหรือชิ้นส่วนที่ได้รับครั้งสุดท้ายหรือไม่
Randomblue

ส่วนสุดท้ายที่ได้รับนั้นเหมาะสมกว่าครั้งแรก แต่ฉันไม่รู้โดยดุลยพินิจของซิสโก้ในตัวอย่างนั้น
jwbensley
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.