मैं यह समझने की कोशिश कर रहा हूं कि ऑपरेटिंग सिस्टम आम तौर पर नेटवर्क अनुरोधों के पुनरावर्तन को कैसे लागू करते हैं। मेरी सबसे अच्छी समझ से निम्नलिखित सत्य है:
एक HTTP अनुरोध कुछ HTTP लाइब्रेरी का उपयोग करके एप्लिकेशन लेयर पर किया जाता है। यह HTTP लाइब्रेरी वास्तव में OS द्वारा कुछ सॉकेट कार्यान्वयन के लिए एक आवरण है।
एक "संचारण" सॉकेट HTTP अनुरोध के गंतव्य और स्रोत का उपयोग करके त्वरित किया जाता है।
एक "प्राप्त" सॉकेट डिवाइस के आईपी पते और एक यादृच्छिक (मुक्त) पोर्ट का उपयोग करके त्वरित किया जाता है।
HTTP संदेश "प्रेषित" सॉकेट की फ़ाइल डिस्क्रिप्टर का उपयोग करके "भेजा गया" है।
सॉकेट की "भेजें" विधि, ओएस के टीसीपी कार्यान्वयन के लिए संदेश भेजती है।
टीसीपी कार्यान्वयन HTTP संदेश को विभाजित करता है, गंतव्य बंदरगाह (जब सॉकेट को इंस्टेंट करते हुए प्रदान किया जाता है) और स्रोत पोर्ट को प्रस्तुत करता है। (मुझे लगता है कि इसे किसी तरह कार्यान्वयन के आधार पर पास कर दिया गया है।) एक बार HTTP संदेश खंडित हो गया है और टीसीपी हेडर इसे जोड़ दिया गया है, तो टीसीपी खंड फिर ओएस के आईपी कार्यान्वयन में पारित हो जाते हैं।
टीसीपी सेगमेंट आईपी हेडर के साथ तैयार किए गए हैं। सॉकेट को इंस्टेंट करते समय आईपी गंतव्य का पता प्रदान किया गया था। (फिर से मुझे लगता है कि स्रोत आईपी पते को कार्यान्वयन के आधार पर पास किया गया है।)
आईपी पैकेट्स को तब ईथरनेट हेडर के साथ लपेटा जाता है, राउटर को भेजा जाता है, सर्वर को भेजा जाता है, सर्वर अनुरोध को संसाधित करता है, और प्रतिक्रिया भेजता है।
यह वह जगह है जहां मेरी समझ इस बात पर टूट जाती है कि वास्तव में reassembly प्रक्रिया में क्या होता है।
प्रतिक्रिया कैसे प्राप्त करता है "प्राप्त" सॉकेट के बफर को प्राप्त करने के लिए, एक बार जब आईपी पैकेट डिवाइस पर वापस आ जाता है?
स्पष्ट रूप से हेडर बंद हो जाते हैं, लेकिन विशेष रूप से "प्राप्त" सॉकेट के बफर को प्राप्त करने के लिए इसे वापस लेने के लिए क्या कदम उठाए जाते हैं, और फिर सॉकेट से एप्लिकेशन पर वापस जाएं?
PS मैं "IP इसे पुनः प्राप्त करता हूं" या "TCP इसे पुनः प्राप्त करता है" की तुलना में अधिक तकनीकी कार्यान्वयन विवरण की उम्मीद कर रहा हूं और इसे अगली परत तक पहुंचाता हूं। मैं यह समझने की उम्मीद कर रहा हूं कि केवल सैद्धांतिक रूप से इसके बजाय वास्तव में यह कैसे होता है (हालांकि मैं समझता हूं कि यह ओएस विशिष्ट है)।
संपादित करें:
विषय पर अधिक स्पष्टता लाने के लिए, मैं सॉकेट के लिए अपने संदर्भों को नोट करूंगा और किसी भी सॉकेट विधि को लिनक्स ओएस के लिए संदर्भित करूंगा।