A Packet's Journey (Pt. 1: NAT)
Sid Shanker - 06/07/2018
Goals
Impress upon you that:
- Networks are cool and worth learning about
- Networks are very inelegant (but still worth learning about)!
Information gets from your computer to the internet...somehow
![](https://s3.amazonaws.com/media-p.slid.es/uploads/893280/images/5005246/internet_gif.gif)
Sid's Macbook
Google Server
RC Router
The internet
Google Router
Lots of different protocols in play here!
- Uses Ethernet to get data to the router
- Uses IP to move packets across the internet
- Uses TCP to implement that actual web application
IP Addresses
- You've seen 'em: 172.16.254.1
- Used to designated different devices on a computer network
- Two protocols, ipv4 and ipv6, we're running out of ipv4 addresses!
- There are both private IPs and public IPs
An IP Header
![](https://s3.amazonaws.com/media-p.slid.es/uploads/893280/images/5005380/ip_header.jpg)
Source and destination address are both IP Addresses
TCP Very Quickly
- Higher Level network protocol that ensures reliability of packet delivery
- TCP data is inside the IP packets
- IP can be used to transmit other protocols too
A typical TCP packet
![](https://s3.amazonaws.com/media-p.slid.es/uploads/893280/images/5005443/tcp_packet.gif)
Private Network
Public Internet
Google Router
RC Router
Private Network
has public ip
computer
computer
computer
computer
computer
computer
computer
computer
My question: if all Google knows is the public IP address of my router, how do packets make it back to me?
Introducing: the NAT
Answer: A Disappointing Hack
Router
Original IP Packet:
private ip: 10.0.0.1
original port: 65419
Modified IP Packet:
source ip: 207.251.103.46
new "port": 72192
NAT Table:
out-ip:out-port | local-ip:local-port
207.251.103.46:72192 |10.0.0.1:65419
....
Exercise for the reader: How could this work with a transport-protocol that doesn't use ports?
Moral of the story: sometimes you have to make compromises for things to work in the real world.
A Packet's Journey Pt. 1
By Sid Shanker
A Packet's Journey Pt. 1
- 1,297