Content
- Dynamic Host Configuration Protocol (DHCP)
- Network Address Translation (NAT)
- Internet Control Message Protocol (ICMP)
- IPv6
- Header
- Backward Compatibility
- Dual Stack
- Tunneling/Encapsulation
Dynamic Host Configuration Protocol (DHCP)
Dynamically obtain IP address from network server upon joining the network.
- Discover: broadcast UDP DHCP discover packet
- If no nearby server, need a DHCP relay agent to forward the request to known server
- Offer: respond with UDP DHCP offer packet
- Answers registered MAC addresses OR assign IPs from a pool
yiaddr
: the assigned IP
- Request: broadcast UDP DHCP request packet
- Requested IP = returned
yiaddr
- Requested IP = returned
- Ack: respond with UDP DHCP ack packet
- Ack the leasing of the IP
- Host get:
- IP
- Leasing duration
T
T1 = 0.5T
, attempts renew of lease (request)T2 = 0.875T
, no reply, broadcast request to any server- No reply by
T
, relinquish IP & start over
- Router's IP
- Subnet mask
- DNS info
- Hostname, domain, ...
Network Address Translation (NAT)
One IP to the outside world of a local network -> fix not enough IPv4 addresses.
- Additional advantages
- Change IP of devices in local network without notifying outside world
- Change ISP without notifying devices in local network
- Security, local devices not exposed to outside world
- Implementation
- Outgoing packets
- Replace
(source IP, source port)
with(NAT IP, new port)
->WAN
side address - Recalculate checksum
- Records mapping in NAT
- Replace
- Incoming packets
- Replace
(NAT IP, new port)
withsource IP, source port
->LAN
side address
- Replace
- Outgoing packets
- Problems
- Port numbers are meant for addressing processes, not hosts
- Routers are supposed to process packets up to layer 3
- Violates end-to-end argument: hosts should talk directly to each other without interfering devices modifying IP & ports
- P2P applications should be explicitly aware of the existance of NAT
- Some applications pass IP & port in commands; changing TCP/IP headers is not enough
- IPv6 should be the solution
- NAT traversal problems
- Client wants to connect to server behind NAT
- Statically configure NAT to forward incoming requests at given port to server
- Client wants to connect to server behind NAT
- Private IP addresses
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
Internet Control Message Protocol (ICMP)
Encapsulated in IP datagram.
- Error reporting
- Unreachable host/network/port/protocol
- Message contains IP header & first 8 bytes of error datagram
- Echo request/reply (
ping
) - Report
TTL=0
(tracert
)
IPv6
- 128 bit
- 8 groups of 16-bit, HEX, colons between
- IPv4 to IPv6:
::FFFF:x.x.x.x/128
- Fixed-sized header; improved option mechanism
- Simplified header, routers can process packets faster
- Mechanism of autoconfiguration of network interfaces
- Supports resource allocation; enhance QoS support
- Fragmentation at source node
- Avoid fragmentation at internal nodes to speed up performance
- Built-in authentication & encryption
- No checksum
- Transport & link layers already done so
- Avoid recomputation of checksums due to TTL changes
- Hierarchical addressing rather than address classes (i.e. CIDR-like)
- Types
- Unicast: uniquely identifies an interface of a device
- Multicast: an address reaching a group of interfaces
- Anycast: assigned to a group of interfaces of a common address
- Packets sent to the nearest one
- Created automatically when a unicast address is assigned to > 1 interfaces
Header
- Traffic class & flow label: support QoS; priority
- Payload length: how many bytes follow this header
- Hop limit: TTL
- Next header
- Points to the extension/option headers OR transport protocol data follow this one
- Extension headers are daisy chained & ordered
- Most of the cases, fixed-sized headers can streamline packet processing in routers
- Extension headers needed to be examined by intermediate routers will be listed first; no need to scan through all extension headers
Backward Compatibility
Dual Stack
- Nodes have both IPv6 & IPv4 stacks & addresses
- Translates between formats
- Additional memory & CPU power needed
Tunneling/Encapsulation
Among IPv4 routers, IPv6 packets carried as payload in IPv4 datagram.
- Tunnel endpoints: source host, intermediate routers, or destination host
- Need dual stack routers at tunnel endpoints
- Additional load on routers