Show Lecture.IPv6 as a slide show.
CT320 IPv6
Thanks to:
- Dr. Indrajit Ray, CSU
- Dr. James Walden, NKU
- Russ Wakefield, CSU
for the contents of these slides.
Motivation
IPv6
- Initial motivation: 32-bit address space soon to be completely allocated.
- Additional motivation:
- header format helps speed processing/forwarding
- header changes to facilitate QoS
- IPv6 datagram format:
- fixed-length 40 byte header
- no fragmentation allowed
IPv6 addresses
- IPv6 addresses are 128 bits long.
- Eight colon-separated groups of four hex digits:
- 2001:0db8:0123:0000:0000:0000:0000:4567
- Leading zeroes may be removed from any group.
- 2001:db8:123:0:0:0:0:4567
- Consecutive sections of zeroes (only one set) can be replaced with
a double colon.
- 2001:db8:123::4567
IPv6 Header
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| Version | Traffic class | Flow Label | |||||||||||||||||||||||||||||
| Payload Length | Next Header | Hop Limit | |||||||||||||||||||||||||||||
| Source IP address (128 bits) | |||||||||||||||||||||||||||||||
| Destination IP address (128 bits) | |||||||||||||||||||||||||||||||
- Traffic class: identify priority among datagrams in flow
- Abuse? You bet!
- Flow Label: identify datagrams in same “flow” (ill-defined concept).
- Next header: identify upper layer protocol for data
Other Changes from IPv4
- Checksum: removed entirely to reduce processing time at each hop
- Options: allowed, but outside of header, indicated by “Next Header” field
- ICMPv6: new version of ICMP
- additional message types, e.g. “Packet Too Big”
- multicast group management functions
Transition From IPv4 To IPv6

- Not all routers can be upgraded simultaneously
- no “flag days”
- How will the network operate with mixed IPv4 and IPv6 routers?
- Tunneling: IPv6 carried as payload in IPv4 datagram among IPv4 routers
- I figure that we’ll get the transition finished just after the USA switches to the metric system. 🙄
Tunneling

Send a packet from IPV6, in the future:
┌───┐ ┌───┐ ┌───┐ ┌───┐ │ A │···│ B │···································│ E │···│ F │ └───┘ └───┘ IPv6 Internet └───┘ └───┘ IPv6 IPv6 IPv6 IPv6

In these primitive times:
┌───┐ ┌───┐ ┌───┐ ┌───┐ ┌───┐ ┌───┐ │ A │···│ B │···│ C │···················│ D │···│ E │···│ F │ └───┘ └───┘ └───┘ IPv4 Internet └───┘ └───┘ └───┘ IPv6 IPv6 IPv4 IPv4 IPv6 IPv6
C & D are IPv4/IPv6 gateways, which wrap/unwrap the IPv6 packet in an IPv4 packet, much as a TCP packet is wrapped in an IP packet.
