เราเตอร์ที่บ้านส่วนใหญ่ใช้กรณีพิเศษของ NAT ที่เรียกว่า PAT
คุณจะเห็นมันเรียกว่า NAPT หรือ IP Masquerading คำศัพท์ทั้งสามหลังมีความหมายเหมือนกันในการใช้งานทั่วไป (ตัวย่อ - การแปลที่อยู่เครือข่าย / การแปลที่อยู่พอร์ต / การแปลที่อยู่เครือข่ายพอร์ต)
เมื่อแพ็กเก็ตออกจากเครื่องภายในของคุณที่อยู่ต้นทางจะถูกเขียนใหม่ตามที่คุณรับทราบ พอร์ตต้นทางก็จะเปลี่ยนไปเช่นกันโดยปกติจะเป็นจำนวนสูงและเราเตอร์จะเก็บตารางการแปลที่อยู่
ตัวอย่างเช่นสมมติว่าคุณมีเครื่องลูกค้าที่ไปที่ www.google.com คอมพิวเตอร์ของคุณ (เช่น 192.168.1.100) ค้นหาที่อยู่และทำการเชื่อมต่อ TCP ไปที่ 72.14.204.147 ที่พอร์ต 80 จากที่อยู่ IP ภายในของคุณโดยใช้พอร์ตต้นทางแบบสุ่ม
คอมพิวเตอร์ของคุณการเชื่อมต่อมีลักษณะดังนี้:
192.168.1.100:37641 <--> 72.14.204.147:80
คอมพิวเตอร์ของคุณส่งแพ็คเก็ตไปยังเราเตอร์ซึ่งเลือกพอร์ตสูงแบบสุ่มใหม่และเขียนแพ็คเก็ตใหม่ การเชื่อมต่อขาออกแต่ละครั้งจะได้รับพอร์ตของตัวเองบนเราเตอร์ เราเตอร์จะส่งต่อแพ็กเก็ตไปยัง ISP ของคุณหลังจากเพิ่มไปยังตารางการเชื่อมต่อ:
PrivateIP PrivatePort PublicIP PublicPort Remote RemotePort
------------- ---------- ----------- ----------- ---------- -----------
192.168.1.100 37641 *10.6.23.5 59273 72.14.204.147 80
* สำหรับตัวอย่างฉันใช้ที่อยู่ที่เริ่มต้นด้วย 10 แต่ไม่สามารถกำหนดเส้นทางได้แบบสาธารณะ ตารางค่อนข้างง่ายเกินไป
ไปที่ google การเชื่อมต่อจะเป็นดังนี้:
10.6.23.5:59273 <--> 72.14.204.147:80
Google จะส่ง reponse ไปที่ 10.6.23.5 ที่พอร์ต 59273 จากนั้นเราเตอร์ของคุณจะค้นหาข้อมูลนั้นในตารางและส่งต่อแพ็กเก็ตไปที่ 192.168.1.100:37641
www.google.com
จะหาฉันได้อย่างไรถ้าฉันไม่ได้ส่งคำขอเริ่มต้น กล่าวอีกนัยหนึ่งข้อความสามารถติดต่อฉันผ่านเราเตอร์เมื่อฉันส่งคำขอผ่านเราเตอร์ในตอนแรก