Networking Refresher
Summary
Interconnection Layers
- Application
- Handles application-specific formatting of messages for like HTTP vs SMTP
- Transport
- Handles out of order or missing messages, as well as too many messages at once
- Network
- End to End connectivity and path-finding of messages that are forwarded between multiple machines
- Link
- Connects machine to machine
- Physical
- Hardware that transmits and receives signals
The NIC and the OS
DMA Controller
CPU provides memory address range of message, then sets the “go” bit to tell NIC it’s ready.
The nic sends a message, waits for a response, then puts the reponse in memory (plus a preamble and inter-frame gap) then sends the CPU an interrupt
Link Layer
NICs are identified using a 48-bit Media Access Control (MAC) Address so Link Layer can share a wire between multiple hosts
MAC source and MAC destinaation have dedicated places in the ethernet frame
Collision Avoidance
Sending multiple messages on a shared line at the same time can corrupt messages in a “collision”
There are 3 ways to avoid this:
- Carrier Sense Multiple Access with Collision Detection(CSMA / CD)
- Send message, wait to hear response
- No response ? Must be collision
- Sending jamming signal to make sure everybody heard collision
- Wait exponential + random time before resending - Token Ring / bus
- Talking stick idea
- Hold talking stick until you receive an acknowledgment
- Switched Ethernet
- Instead of broadcasting every message everywhere, look at dest MAC and route accordingly
- Keep a MAC->Port mapping table - Switches can also queue up frames to be delivered later
IP Addresses
Internet Protocol dictates how messages are sent over the internet
LANs and NAT
Network Address Translation(NAT) solves the problem of limited IP adddresses
Payload
IP Packet is the payload of an Ethernet frame, not the other way around
Internet Routing
Internet routing can be done via CIDR notation to save on space
Autonomous Systems
Everything inside Georgia Tech(and other Autonomous Systems) is called Intra-Domain Routing
InterDomain Routing
is how ASs advertise paths to each other
- Using BGP
Domain Name System
Translation between human readable name and IP address
Transport Layer
The key abstraction here is Ports
Ports are only really used at the endpoints of the path
NAT translation tables include port numbers as well
Transmission Control Protocol
Handle reliability, ordering, and flow / congestion control
User Datagram Protocol
Simpler, more lightweight protocol that only handles sending of data