1. |
The motivation behind IPv6 |
|
1 hours |
|
This module explains why IPv6 is fast becoming an exigent adjustment rather than a theoretical protocol. IPv4 shortcomings are addressed, and discussed in particular are:
- IPv4 design flaws
- Multicast vs. Broadcast
- The IPv4 address space
- Hurdles to IPv6 adoption
|
2. |
The IPv6 address space |
|
1 hours |
|
This module explains the unbelievable (and potentially *too* big) 128-bit address space, and its already existing reservations
|
3. |
IPv6 and ICMPv6 |
|
1 hours |
|
IPv6 is optimized for routing and borrowing from MPLS. And, much like IPv4, IPv6 goes hand in hand with ICMP - this time, ICMPv6. We explain:
- IPv6 packet format
- Extension headers, explained
- ICMPv6, in depth:
|
4. |
Stateless and stateful autoconfiguration |
|
1 hours |
|
IPv6 can do away with DHCP, or use an improved version, DHCPv6. We discuss:
- No DHCP: StateLess Address Auto Configuration (using radvd)
- Using DHCPv6:
- Why use DHCP?
- Sample DHCPv6 session using Dibbler
- Advanced Options (e.g. rapid commit)
|
5. |
Transitionary technologies |
|
2 hours |
|
As networks are largely dominated by IPv4, various intermediary technologies are required to allow the two to coexist. We explain:
|
|
An optional component of IPv4, IPSec has grown to become necessary in IPv6 implementations. We explain in depth this protocol and its security features, including:
|
*. |
IPv6 Programming |
|
4 hours |
|
Building on existing socket knowledge, this module equips developers with the knowledge needed to write IP-agnostic and IPv6 ready applications, and port existing ones.
- Challenges of 128-bit programming
- AF_INET6 sockets
- struct in_addr6
- Interface identifiers
- Replacing GetXXXByYYY() with GetAddrInfo()
|