การเชื่อมต่ออินเทอร์เน็ตแตกต่างจากระบบปฏิบัติการอย่างไร?


0

ในตัวอย่างนี้ระบบปฏิบัติการของฉันจะแยกความแตกต่างระหว่างคำขอแต่ละชุดอย่างไร

ให้เราบอกฉันมี 3 http://google.comแท็บที่เปิดและในเวลาเดียวกันพวกเขาทั้งหมดไปที่ ระบบปฏิบัติการของฉันจะแยกความแตกต่างของข้อมูลการตอบกลับได้อย่างไร มันจะไม่เหมือนกันทั้งหมดหรือไม่ ในส่วนหัว TCP พอร์ตต้นทางและปลายทางจะเหมือนกันพร้อมกับที่อยู่ IP ต้นทางและปลายทางพร้อมกับแบบแผน (http)

ฉันรู้ว่า IP แพ็คเก็ตส่วนหัวมีส่วนหัว ID แต่นี่ไม่ใช่สำหรับการจัดการกับการกระจายตัวไม่ได้ระบุแพ็คเก็ตทางกายภาพ นอกจากนี้แพ็กเก็ต IP ควรถูกต้องไม่ถูกต้อง?

ในคำขอ ICMP echo echo คำร้องขอและการตอบกลับมี ID เพื่อจับคู่แต่ละแพ็กเก็ตกับแต่ละการตอบกลับ สิ่งนี้จะเกิดขึ้นในสถานการณ์ของฉันได้อย่างไร ฉันเดาว่าจะมีการส่งข้อมูลในแพ็คเก็ต TCP เพื่อแยกความแตกต่าง แต่ฉันไม่แน่ใจ

แก้ไข: ฉันทำสมมติฐานไม่ดี เพียงเพราะแพ็คเก็ตที่ถูกส่งไปยังพอร์ต 80 ไม่ได้หมายความว่าแหล่งที่มาจะต้องเป็นพอร์ต 80 เช่นกัน ตัวอย่างเช่นเมื่อดูตัวอย่าง NAT นี้เราจะเห็นว่าไม่ได้ทำ สิ่งนี้อนุญาตให้เซ็กเมนต์แหล่งที่มามีพอร์ตแหล่งข้อมูลที่แตกต่างกันสำหรับแต่ละคำขอ


คำตอบ:


2

เมื่อโปรแกรมไคลเอนต์ (เช่นเบราว์เซอร์) เชื่อมต่อกับเซิร์ฟเวอร์จะเปิดซ็อกเก็ต และ (เว้นแต่โปรแกรมจะระบุหนึ่งซึ่งหายากมาก) ระบบปฏิบัติการจะกำหนดหมายเลขพอร์ตที่ไม่ซ้ำให้กับซ็อกเก็ต โดยทั่วไปจะอยู่ในช่วง 1,000-2,000 IP ต้นทางคือที่อยู่ของโฮสต์ลูกค้า เซิร์ฟเวอร์กำหนดพารามิเตอร์ปลายทาง เช่นที่อยู่ IP ของ google.com และ 80

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

netstatคุณสามารถดูนี้ถ้าคุณตรวจสอบการส่งออกของ


-1

วิธีนี้จะง่ายกว่าถ้าคุณค้นหาเลเยอร์บางอย่าง เพียงจำวงจรชีวิตของคำขอ HTTP:

  • เบราว์เซอร์ไคลเอ็นต์เริ่มต้นการเชื่อมต่อซ็อกเก็ตกับเว็บเซิร์ฟเวอร์

  • คำขอที่ http มาตรฐานถูกส่งไปยังเซิร์ฟเวอร์

  • เซิร์ฟเวอร์ประมวลผลคำขอและส่งคืนการตอบสนองในมาตรฐาน HTTP ให้กับลูกค้า

  • เบราว์เซอร์ไคลเอ็นต์ได้รับการตอบกลับ

  • การเชื่อมต่อกับเซิร์ฟเวอร์ถูกปิด

  • เบราว์เซอร์ไคลเอ็นต์ตีความคำตอบและแสดงผลบนหน้าจอ

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

เบราว์เซอร์เปิดหลายการเชื่อมต่อพร้อมกัน


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

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