ฉันพยายามเข้าใจว่าระบบปฏิบัติการโดยทั่วไปใช้การร้องขอเครือข่ายใหม่อีกครั้ง จากความเข้าใจที่ดีที่สุดของฉันต่อไปนี้เป็นจริง:
คำขอ HTTP ถูกสร้างขึ้นที่ชั้นแอปพลิเคชันโดยใช้ไลบรารี HTTP บางตัว ไลบรารี HTTP นี้เป็น wrapper สำหรับการใช้ซ็อกเก็ตบางส่วนโดยระบบปฏิบัติการ
ซ็อกเก็ต "การส่งสัญญาณ" นั้นถูกสร้างขึ้นทันทีโดยใช้ปลายทางและแหล่งที่มาของคำขอ
ซ็อกเก็ต "การรับ" ถูกสร้างขึ้นทันทีโดยใช้ที่อยู่ IP ของอุปกรณ์และพอร์ตแบบสุ่ม (ฟรี)
ข้อความ HTTP คือ "ส่ง" โดยใช้ตัวอธิบายไฟล์ของซ็อกเก็ต "กำลังส่ง"
วิธีการ "ส่ง" ของซ็อกเก็ตส่งข้อความไปยังการใช้ TCP ของระบบปฏิบัติการ
การใช้ TCP แบ่งเซกชั่นข้อความ HTTP เตรียมพอร์ตปลายทาง (จัดทำขึ้นเมื่อซ็อกเก็ตอินสแตนซ์) และพอร์ตต้นทาง (ฉันคิดว่านี่คือการส่งผ่านอย่างใดอย่างหนึ่งขึ้นอยู่กับการใช้งาน) เมื่อข้อความ HTTP ได้รับการแบ่งกลุ่มและส่วนหัว TCP ผนวกกับมันแล้วส่วน TCP จะถูกส่งผ่านไปยังการใช้ IP ของระบบปฏิบัติการ
เซ็กเมนต์ TCP จะมีการเสริมด้วยส่วนหัวของ IP ที่อยู่ IP ปลายทางถูกระบุไว้เมื่อซ็อกเก็ตอินสแตนซ์ (ฉันถือว่าที่อยู่ IP ต้นทางถูกส่งผ่านอีกครั้งโดยขึ้นอยู่กับการติดตั้ง
จากนั้นแพ็กเก็ต IP จะถูกห่อด้วยส่วนหัวของอีเทอร์เน็ตส่งไปยังเราเตอร์ส่งไปยังเซิร์ฟเวอร์เซิร์ฟเวอร์ดำเนินการตามคำขอและส่งการตอบกลับ
นี่คือสิ่งที่ความเข้าใจของฉันได้แยกแยะสิ่งที่เกิดขึ้นจริงในกระบวนการประกอบใหม่
การตอบสนองทำให้กลับไปที่บัฟเฟอร์การรับของซ็อกเก็ต "การรับ" มากขึ้นเมื่อแพ็กเก็ต IP ทำให้กลับไปที่อุปกรณ์ได้อย่างไร
เห็นได้ชัดว่าส่วนหัวเลื่อนออกไป แต่มีขั้นตอนอะไรบ้างที่จะนำมันกลับไปที่บัฟเฟอร์การรับของซ็อกเก็ต "การรับ" โดยเฉพาะและจากซ็อกเก็ตกลับไปที่แอปพลิเคชัน
PS ฉันหวังว่าจะมีรายละเอียดการใช้งานด้านเทคนิคมากกว่า "IP ประกอบใหม่" หรือ "TCP ประกอบใหม่" และส่งต่อไปยังชั้นถัดไป ฉันหวังว่าจะเข้าใจว่ามันเกิดขึ้นได้อย่างไรแทนที่จะเป็นในทางทฤษฎี (แม้ว่าฉันจะเข้าใจว่ามันเป็นระบบปฏิบัติการที่เฉพาะเจาะจง)
แก้ไข:
เพื่อเพิ่มความชัดเจนให้กับหัวเรื่องฉันจะบันทึกการอ้างอิงของฉันไปยังซ็อกเก็ตและวิธีซ็อกเก็ตใด ๆ ที่อ้างถึง Linux OS