จะเกิดอะไรขึ้นกับการเชื่อมต่อ TCP เมื่อฉันถอดสายเคเบิลอีเธอร์เน็ต


42

สำหรับการเชื่อมต่อ TCP เมื่อฉันถอดสายเคเบิลและเชื่อมต่อใหม่หลังจาก 30-40 วินาทีไม่มีปัญหาการสูญหายของแพ็กเก็ต แต่เมื่อเวลาในการเชื่อมต่อใหม่เป็นเวลามากกว่าสองสามนาทีแพ็กเก็ตทั้งหมดจะหายไป ฉันรู้ว่ามันใช้งานได้กับตัวจับเวลาการส่งสัญญาณใหม่หมด แต่ฉันต้องการที่จะรู้ว่าอะไรจะเกิดขึ้นเมื่อสายเคเบิลเครือข่ายไม่ได้เสียบปลั๊ก


9
"อะไรกันแน่" จะตอบยากมาก ทุกวันนี้ระบบปฏิบัติการอาจทำสิ่ง 'ฉลาด' เช่นการตรวจจับว่าถอดสายเคเบิลออกแล้ว ปล่อยเส้นทางไปยังเครือข่ายนั้นจากตารางเส้นทาง การเปิดใช้งานเส้นทางใหม่ผ่านระบบไร้สาย, .... ทั้งหมดนี้เป็นคำอธิบายที่เข้าใจง่าย
Hennes

5
คุณมองหาที่เก็บข้อมูลที่หายไปหรือไม่?
Daniel R Hicks

4
สิ่งหนึ่งที่สามารถเกิดขึ้นได้อย่างแน่นอนคือการสื่อสารปัจจุบันของคุณถูกขัดจังหวะในระหว่าง
ereOn

มันขึ้นอยู่กับระบบปฏิบัติการและการกำหนดค่าของมัน สำหรับ MS Windows ลอง windows mediasensegoogle
Zaboj Campula

คำตอบ:


60

ตามคำจำกัดความของแบบจำลองเลเยอร์เป็นOSIหรือTCP / IPแต่ละเลเยอร์ทำงานได้อย่างอิสระและไม่ทราบเลเยอร์ที่ต่ำกว่า

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

IP ( เลเยอร์ 3 ) และ TCP ( เลเยอร์ 4 ) จะไม่สังเกตเห็นดังนั้นพวกเขาจะพยายามทำงานต่อไป

TCP จะไม่หยุดการเชื่อมต่อ TCP ที่กำหนดไว้ในช่วงระยะเวลาหนึ่งเนื่องจากเมื่อ TCP ส่งข้อมูลจะคาดว่า ACK จะตอบกลับและหากไม่มาภายในระยะเวลาหนึ่งก็จะส่งข้อมูลอีกครั้ง

TCP จะส่งข้อมูลอีกครั้งส่งผ่านไปยัง IP ใครจะส่งต่อไปยังอีเธอร์เน็ตที่ไม่สามารถส่งและทิ้งไปได้

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

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

หากระบบปฏิบัติการมีมากกว่าหนึ่งอินเทอร์เฟซ (ตัวอย่างเช่นอีเธอร์เน็ตและ wi-fi) เป็นไปได้ว่าเมื่ออีเธอร์เน็ตล่มก็จะลองผ่าน wifi ขึ้นอยู่กับการกำหนดเส้นทาง แต่ในคำทั่วไป " TCP จะไม่ทราบว่า "

โครงสร้างพื้นฐานของการโจมตี DDoS คือ: ไคลเอนต์หลายพันคนเปิดแต่ละการเชื่อมต่อ TCP ทุก ๆ สองสามวินาทีไปยังเซิร์ฟเวอร์แล้วละทิ้งการเชื่อมต่อ การเชื่อมต่อ TCP แต่ละครั้งจะยังคงเปิดอยู่บนเซิร์ฟเวอร์ในช่วงเวลานาน (การสูญเสียทรัพย์สินที่มีค่าเช่นพอร์ต TCP หน่วยความจำที่จัดสรรแบนด์วิธ ฯลฯ ) จะขัดขวางทรัพยากรของเซิร์ฟเวอร์เพื่อเข้าร่วมผู้ใช้ที่ถูกกฎหมาย


7
นั่นคือสิ่งที่รุ่นกล่าวว่า แต่ผมเชื่อว่าระบบปฏิบัติการจริงตรวจสอบบางความล้มเหลวและการเชื่อมต่อการฆ่าทันที นั่นเป็นเพียงสิ่งที่มีประโยชน์ที่ต้องทำ
usr

8
@ usr ทำไมมันจะมีประโยชน์ในการฆ่าทุกการเชื่อมต่อเพียงเพราะมีคนรอบสวิตช์อีเธอร์เน็ตที่พีซีของฉันเชื่อมต่ออยู่?
CVn

9
@usr การปิดใช้งานการ์ดเครือข่ายผ่านอินเทอร์เฟซการดูแลระบบปฏิบัติการของ OS เป็นการดำเนินการที่แตกต่างอย่างสิ้นเชิงเมื่อเทียบกับการถอดสายเคเบิลหรือทำลายฟิสิคัลลิงก์เลเยอร์ กรุณาอย่าสับสนทั้งสอง
CVn

7
นอกจากนี้หากคุณไม่ได้ส่งข้อมูล TCP ใด ๆ ในขณะที่ถอดสายเคเบิลมันจะไม่สังเกตเห็น นั่นเป็นเหตุผลที่คุณต้องส่งข้อความต่อไปเรื่อย ๆ - แอปพลิเคชั่นที่เคยฟังเท่านั้นจะไม่มีทางรู้ว่าการเชื่อมต่อ "ตาย" ในด้านบวกก็หมายความว่าหากทั้งสองฝ่ายพยายามที่จะส่งสิ่งใด ๆ ในขณะที่ถอดสายเคเบิลการเชื่อมต่อจะทำงานได้ดีหลังจากเสียบสายกลับเข้าไปแล้ว TCP ใช้งานแตกต่างจากวิธีการออกแบบ :) การทดสอบ TCP-over-Pigeon-mail :))
Luaan

11
@usr มันเป็นตัวเลือกการนำไปปฏิบัติที่ไม่ดีจริงๆที่ไม่เป็นไปตามมาตรฐาน การเชื่อมต่อ TCP สามารถอยู่รอดได้จากการขาดเครือข่ายชั่วคราว มันถูกออกแบบมาให้ทำเช่นนั้น ในความเป็นจริงมันเคยเป็นที่คุณสามารถรีบูตเครื่องคอมพิวเตอร์ของคุณและยังคงมีการเชื่อมต่อ TCP แต่นี่ไม่ได้ใช้งานได้จริง การสันนิษฐานของคุณว่าทุกคนต้องการที่จะตัดการเชื่อมต่อเมื่อสายถูกดึงเป็นเท็จและไม่ใช่วิธีการออกแบบระบบ
แบรด
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.