(निम्नलिखित के लिए, मैं किसी भी DNS लुकअप या दो कार्रवाई को अनदेखा करूंगा, क्योंकि यह NAT कहानी के लिए प्रासंगिक हिस्सा नहीं है।)
कोई भी टीसीपी कनेक्शन चार भागों का एक हिस्सा है:
<source IP> <source port> <destination IP> <destination port>
संक्षेप में: गंतव्य आईपी का उपयोग पैकेट को सही मशीन पर लाने के लिए किया जाता है, गंतव्य पोर्ट का उपयोग उस मशीन पर सही कार्यक्रम / सत्र के लिए पैकेट प्राप्त करने के लिए किया जाता है। स्रोत आईपी का उपयोग किसी भी उत्तर को भेजने के लिए किया जाता है। समान स्रोत पोर्ट के लिए जाता है। जब कोई उत्तर भेजा जाता है, तो स्रोत और गंतव्य बस अदला-बदली होते हैं।
आइए बिना किसी NAT के दो कंप्यूटरों से शुरुआत करें:
- कंप्यूटर में IP है
1.1.1.1
- वेबसर्वर के पास IP है
3.3.3.3
- HTTP के लिए मानक पोर्ट है
80
जब एक कंप्यूटर एक वेबपेज के लिए पूछता है, तो यह पहली बार यादृच्छिक श्रेणी (1024-65535) से एक यादृच्छिक अप्रयुक्त पोर्टनंबर का चयन करता है। चलो चुन लेते हैं 2345। फिर निम्न अनुक्रम होगा: कंप्यूटर को इसके साथ पैकेट भेजें: स्रोत आईपी 1.1.1.1, स्रोत बंदरगाह 2345, गंतव्य आईपी 3.3.3.3, गंतव्य बंदरगाह 80। पैकेट वेबसर्वर में आते हैं, यह देखता है कि यह स्वयं का आईपी और पोर्ट है 80, इसलिए यह जानता है कि यह एक वेबपेज के लिए एक अनुरोध है। वेबसर्वर फिर वेबपेज को पैकेट में सोर्स आईपी 3.3.3.3, सोर्स पोर्ट 80, डेस्टिनेशन आईपी 1.1.1.1, डेस्टिनेशन पोर्ट के साथ भेजता है 2345। कंप्यूटर इन पैकेट्स को फिर से पढ़ता है, और जानता है कि पोर्टबुक के कारण यह अनुरोधित वेबपेज है 2345।
ये पोर्ट संयोजन अक्सर इस तरह लिखे जाते हैं: 1.1.1.1:2345और 3.3.3.3:80।
अब, इंटरनेट पर कंप्यूटरों की संख्या उपलब्ध IPv4 पतों की संख्या से अधिक है। पता स्थान को संरक्षित करने के लिए, निजी पता सीमाओं का एक सेट पेश किया गया था, जिसे स्वतंत्र रूप से पता साझा करने के लिए उपयोग किया जा सकता है। इन रांगियों को RFC1918 के रूप में जाना जाता है और ये निम्नलिखित हैं:
- 192.168.0.0 - 192.168.255.255
- 172.16.0.0 - 172.31.255.255
- 10.0.0.0 - 10.255.255.255
ये पते इंटरनेट रूटिंग टेबल में कहीं नहीं हैं, इसलिए यदि आप इंटरनेट की रीढ़ पर इन श्रेणियों में एक गंतव्य के साथ एक पैकेट भेजते हैं, तो वे बस गिर जाएंगे। ऐसा इसलिए है क्योंकि लाखों लोग एक ही पते का उपयोग करते हैं। इन पतों का अनुवाद इंटरनेट के लिए उपयोगी किसी चीज़ के लिए किया जाना चाहिए। यह वह जगह है जहाँ नेटवर्क पता अनुवाद आता है:
हमारे पास दो कंप्यूटर हैं:
- ए
192.168.0.1और बी:192.168.0.2
- उनके प्रवेश द्वार के पास एक सार्वजनिक आईपी है
1.1.1.1।
- हम उसी वेबसर्वर को रखते हैं।
- दोनों कंप्यूटर एक ही सर्वर से एक ही वेबपेज चाहते हैं।
पहले दोनों कंप्यूटर एक यादृच्छिक पोर्ट का चयन करते हैं: मान लीजिए: 192.168.0.1:2345और 192.168.0.2:5432।
कंप्यूटर A इसे स्रोत 192.168.0.1:2345और गंतव्य के साथ पैकेट भेजता है 3.3.3.3:80। प्रवेश द्वार इस पैकेट को स्रोत 1.1.1.1:2345गंतव्य में अनुवाद करता है 3.3.3.3:80और याद रखता है कि इस संयोजन के किसी भी उत्तर को जाता है 192.168.0.1। तो, जब यह स्रोत के साथ एक उत्तर प्राप्त करता है 3.3.3.3:80और गंतव्य 1.1.1.1:2345है, यह इसके स्रोत के लिए अनुवाद करेगा 3.3.3.3:80और गंतव्य 192.168.0.1:2345और पर पैकेट भेज।
कंप्यूटर B इसे स्रोत 192.168.0.2:5432और गंतव्य के साथ पैकेट भेजता है 3.3.3.3:80। प्रवेश द्वार इस पैकेट को स्रोत 1.1.1.1:5432गंतव्य में अनुवाद करता है 3.3.3.3:80और याद रखता है कि इस संयोजन के किसी भी उत्तर को जाता है 192.168.0.2। तो, जब यह स्रोत के साथ एक उत्तर प्राप्त करता है 3.3.3.3:80और गंतव्य 1.1.1.1:5432है, यह इसके स्रोत के लिए अनुवाद करेगा 3.3.3.3:80और गंतव्य 192.168.0.2:5432और पर पैकेट भेज।
यदि दोनों कंप्यूटर एक ही स्रोत पोर्ट नंबर का चयन करने के लिए होते हैं, तो गेटवे बस एक और मुक्त यादृच्छिक स्रोत पोर्ट नंबर चुन लेगा, और पोर्ट नंबर का अनुवाद करना भी याद रखेगा। इसे कभी-कभी PAT (पोर्ट एड्रेस ट्रांसलेशन) के रूप में संदर्भित किया जाता है। यह मूल रूप से NAT का सबसेट है।
इस सब के लिए कई कार्यान्वयन हैं। गेटवे को केवल "कंप्यूटर एक्स यूज़्ड सोर्स पोर्ट वाई" याद हो सकता है और पोर्ट वाई के साथ कंप्यूटर एक्स के साथ कुछ भी अग्रेषित किया जा सकता है। यह भी याद रख सकता है कि कंप्यूटर एक्स ने सोर्स पोर्ट वाई और डेस्टिनेशन जेड का उपयोग किया है और पोर्ट जेड से पोर्ट वाई के लिए केवल कुछ भी आगे है। कंप्यूटर X. या ऐसा विकल्प है कि यह पूरे टपल को याद रखता है और केवल कंप्यूटर एक्स को ट्रैफ़िक भेजता है जो पूरे स्रोत / गंतव्य आईपी और पोर्ट से मेल खाता है।