110 likes | 222 Vues
This chapter from FSU CIS 5930 provides an in-depth analysis of Internet Protocol version 6 (IPv6). It covers key features such as the longer 128-bit IP address format, simplified header structure, and various extension headers. Special addresses like unspecified and loopback addresses are examined, alongside the handling of mixed IPv4/IPv6 formats. Detailed insights into packet header formats, forwarding mechanisms, and transport layer functionalities (including Neighbor Discovery) are presented. This resource serves as a critical guide to understanding the complexities of IPv6 implementation.
E N D
Internet Protocol Version 6 Reading: Chapter 23 FSU CIS 5930 Internet Protocols
IPv6 • Longer IP address • 128 bits • Simplified header format • Extension headers • Flow labeling • Authentication and data protection FSU CIS 5930 Internet Protocols
Address • 128 bits • Colon separated hexadecimal • FEDC:BA98:7654:3210:FEDC:BA98:7654:3210 • F83:5::12 • Mixed IPv6 and IPv4 format • ::FFFF:129.13.64.5 • Some special address: • Unspecified, all 0 • Loopback: ::1 • Link-local addresses: FE80::x:x:x:x • Site-local addresses: FEA0::x:x:x:x FSU CIS 5930 Internet Protocols
Packet header format (40 bytes) 0 3 11 15 31 23 Flow label Version Traffic class Hop limit Next header Payload length Source address Destination address FSU CIS 5930 Internet Protocols
Packet header extensions • Hop-by-hop options • Routing packet header extension • Fragment packet header extension • Destination options • Authentication header • Encapsulating security payload FSU CIS 5930 Internet Protocols
IPv6 implementation: incoming • ipv6_rcv() • Accepting packets from lower layer (DLL) • Some sanity checking • Processing extension headers if present • Passing on to ip6_rcv_finish() • ip6_input() • ip6_mc_input() • ip6_forward() FSU CIS 5930 Internet Protocols
Forwarding packets • ip6_forward() • For packets need to be forwarded • If we can forward packets (router?) • Hop limit OK? • If not, drop packet, send ICMPv6 error message • If packet too big? • If so, dropping packet, sending ICMPv6 message • ip6_forward_finish() • ip6_output() FSU CIS 5930 Internet Protocols
Packets delivered locally • ip6_input() • Passing on to ip6_input_finish() • Processing extension headers (ip6_parse_extheaders()) • Passing to higher protocols (TCP/UDP) FSU CIS 5930 Internet Protocols
Transport layer packets • ip6_xmit(), ip6_output() • ip6_xmit() • Allocating extra header space if necessary • Setting header values • Passing to ip6_maybe_reroute() • Passing to ip6_output() FSU CIS 5930 Internet Protocols
ip6_output() • Passing on to ip6_output_finish() • Figuring out next hop (Neighbor Discovery) • Passing to lower layer FSU CIS 5930 Internet Protocols