KEMBAR78
01 - IPv6 Protocol Architecture | PDF | I Pv6 | Data Transmission
0% found this document useful (0 votes)
8 views41 pages

01 - IPv6 Protocol Architecture

IPv6 protocol architecture

Uploaded by

maximlee4212
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views41 pages

01 - IPv6 Protocol Architecture

IPv6 protocol architecture

Uploaded by

maximlee4212
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 41

IPv6 Protocol Architecture

1 v1.2
New Functional Improvement
• Address Space
– Increase from 32-bit to 128-bit address space RFC
2460
• Management
– StateLess Address AutoConfiguration (SLAAC) means no more need to
configure IP addresses for end systems, even via DHCP

• Performance
– Simplified header means efficient packet processing
– No header checksum re-calculation at every hop (when TTL is
decremented) => left up to the lower and upper layers!

• No hop-by-hop fragmentation - PMTUD

2 v1.2
IPv4/IPv6 Header Comparison
IPv4 Header 20 Bytes IPv6 Header – 40 Bytes
Type of
Version IHL Total Length Traffic Class Flow Label
Service
Next
Identification Flags Fragment offset Payload Length Hop Limit
Header
Time to
Protocol Header Checksum
Live
Source Address

Destination Address

Options Padding

Same name and function


Renamed in IPv6
Not kept in IPv6
New in IPv6

7 v1.2
IPv6 Protocol Header Format
• Version (4-bit):
– 4-bit IP version number (6)

• Traffic class (8-bit): Version Traffic Class Flow Label


– Like DiffServ in IPv4; define Next
Hop Limit
different classes or priorities, First Payload Length
Header
6 bits for DSCP and 2 bits for ECN
Source Address

• Flow label (20-bit):


– allows IPv6 packets to be
identified based on flows Destination Address
(multilayer switching techniques
and faster packet-switching
performance); described in RFC
3697

8 v1.2
IPv6 Protocol Header Format
• Payload length (16-bit):
– Defines the length of the IPv6 payload
Payload= Extension-header + Data
Total Length in IPv4 includes the
header, in IPv6 Basic Header is excluded Version Traffic Class Flow Label

Next
Payload Length Hop Limit
Header
• Next header (8-bit):
– Identifies the type of information
following IPv6 header. Could be upper Source Address
layer (TCP/UDP), or an extension
header (similar to Protocol field in
IPv4).
Destination Address
• Hop limit (8-bit):
– Similar to TTL in IPv4
– Name changed to precisely describe
function

9 v1.2
IPv6 & IPv4 Packet Example

https://www.cloudshark.org/captures/84fd54ad03e0 https://www.cloudshark.org/captures/09f49cda5b80

10 v1.2
IPv6 Extension Header
• IPv6 allows an optional Extension Header in between the
IPv6 header and upper layer header
– Allows adding new features to IPv6 protocol without major re-
engineering
Next Header values:
0 Hop-by-hop option
IPv6 Header 6 TCP
TCP header + data
Next Header = 6
17 UDP
43 Source routing (RFC5095)
44 Fragmentation
50 Encrypted security payload
IPv6 Header Fragment header 51 Authentication
TCP header + data 58 ICMPv6
Next Header = 44 Next header = 6
59 Null (No next header)
60 Destination option

Extension Header Upper Layer PDU


11 v1.2
IPv6 Extension Header (contd)
• An IPv6 packet may carry none or many extension
headers
– A next header value of 6 or 17 (TCP/UDP) indicates there is no
extension header
• the next header field points to TCP/UDP header, which is the payload

• Unless the next header value is 0 (Hop-by-Hop option),


extension headers are processed only by the destination
node, specified by the destination address.

12 v1.2
Extension Header Order
• When more than one extension header is used in the same
packet, it is recommended that those headers appear in the
following order in RFC 8200:
IPv6 header
IPv6 Packet
Hop-by-Hop Options header

IPv6 Header Destination Options header

Routing header
Extension
Headers Fragment header

Authentication header (RFC 4302)


Encapsulating Security Payload header
(RFC 4303)
TCP Segment
Destination Options header

TCP header (Upper-Layer header)

13 v1.2
Chaining Extension Headers
Extension Header Type NH=0

Hop-by-Hop Options 0
Encapsulated IPv6 41 IPv6
header Header
Fragment 44
Destination Options 60
Routing 43
Authentication 51 NH=43 IPv6 Packet
Hop-by-Hop Options
Encapsulating 50 Extension Header
Security Payload
NH=44
TCP (Payload) 6 Routing Header
UDP (Payload) 17 IPv6
NH=60
ICMPv6 58 Fragment Header Payload

NH=6 Destination Options


Extension Header

TCP Segment

14 v1.2
Extension Header Example

https://www.cloudshark.org/captures/7dd0b50eb768

15 v1.2
Fragmentation Handling In IPv6
• In IPv6, fragmentation is only performed by the host/source nodes,
and not the routers along the path (unlike IPv4)
• The
• Each source device tracks the MTU size for each session
• When a IPv6 host has large amount of data to be sent, it will be
sent in a series of IPv6 packets (fragmented)
– IPv6 hosts use Path MTU Discovery (PMTUD) to determine the most optimum
MTU size along the path

16 v1.2
Example of Fragment Header

IPv6
Packet

Host1 Host2
IPv6 network

2001:db8:1::1 2001:db8:2::2

17 v1.2
On the Source Node (Host1)
Host1
IPv6 Packet

IPv6 Header
2001:db8:1::1

TCP
Segment

18 v1.2
On the Source Node (Host1)
Host1
IPv6 Packet

IPv6 Header
2001:db8:1::1

TCP Packet size > Path


Segment MTU,
how to encapsulate
the packet?

19 v1.2
On the Source Node (Host1)
Host1
IPv6 Packet

IPv6 Header
2001:db8:1::1

TCP
Segment Divide the packet
into fragments.

20 v1.2
On the Source Node (Host1)
IPv6 Packet 1
Host1
IPv6 Packet

IPv6 Header
2001:db8:1::1

IPv6 Packet 2

TCP
Segment Divide the packet
into fragments.

IPv6 Packet 3

21 v1.2
On the Source Node (Host1) IPv6 Header

IPv6 Packet 1
Fragment Header

Host1
IPv6 Packet

IPv6 Header
2001:db8:1::1
IPv6 Header

IPv6 Packet 2
TCP Header
Fragment Header
Fragment 1

TCP
Segment Divide the packet
Fragment 2
into fragments.

IPv6 Packet 3
IPv6 Header
Fragment 3
Fragment Header

22 v1.2
On the Source Node (Host1) IPv6 Header

IPv6 Packet 1
Fragment Header

Host1
IPv6 Packet

IPv6 Header
2001:db8:1::1
IPv6 Header

IPv6 Packet 2
TCP Header
Fragment Header
Fragment 1

TCP
Segment Divide the packet
Fragment 2
into fragments.

IPv6 Packet 3
IPv6 Header
Fragment 3
Fragment Header

23 v1.2
Example of Fragment Header
IPv6 Packet IPv6 Packet IPv6 Packet
3 2 1

Host1 Host2
IPv6 network

2001:db8:1::1 2001:db8:2::2

The 3 fragmented packets are transmitted on the path, reach the destination Host2,
without any other fragmentation on the path.

24 v1.2
IPv6 Packet 1 IPv6 Header On the Destination Node (Host2)
Fragment Header
TCP Header
Host2
Fragment 1
Fragment 1

2001:db8:2::2
IPv6 Header
IPv6 Packet 2

Fragment Header

Fragment 2
IPv6 Packet 3

IPv6 Header
Fragment Header

Fragment 3

25 v1.2
IPv6 Packet 1 IPv6 Header On the Destination Node (Host2)
Fragment Header
TCP Header
Host2
Fragment 1
Fragment 1

2001:db8:2::2
IPv6 Header
IPv6 Packet 2

Fragment Header

Fragment 2
Reassemble the
fragments to be the
original packet.
IPv6 Packet 3

IPv6 Header
Fragment Header

Fragment 3

26 v1.2
IPv6 Packet 1 IPv6 Header On the Destination Node (Host2)
Fragment Header
IPv6 Packet
TCP Header
Host2
Fragment 1
Fragment 1 IPv6 Header

2001:db8:2::2
IPv6 Header
IPv6 Packet 2

Fragment Header

Fragment 2
Reassemble the
fragments to be the
original packet.
IPv6 Packet 3

IPv6 Header
Fragment Header

Fragment 3

27 v1.2
On the Destination Node (Host2)
IPv6 Packet
Host2

IPv6 Header

2001:db8:2::2

TCP
Segment
Reassemble the
fragments to be the
original packet.

28 v1.2
Path MTU Discovery
• With PMTUD, the source IPv6 device assumes the initial PMTU is
the MTU of the first hop in the path.
– upper layers (Transport/Application) send packets based on the first hop MTU
– If the device receives an “ICMPv6 packet too big (Type 2)” message, it informs
the upper layer to reduce its packet size, based on the actual MTU size
(contained in the message) of the node that dropped the packet

https://www.cloudshark.org/captures/7dd0b50eb768

29 v1.2
Path MTU Discovery

Host1 1500 1500 1300 1500 Host2

2001:db8:1::1 Router1 Router2 Router3

Link MTU values are marked on each link.


I have a packet with
size 2000 bytes to
send to Host2.
It is larger than
MTU, I have to
fragment it.
Host1 :
MTU
cache=1500

30 v1.2
Path MTU Discovery

Host1 1500 1500 1300 1500 Host2

2001:db8:1::1 Router1 Router2 Router3 2001:db8:2::2

Host1 : Link MTU values are marked on each link.


MTU cache=1500

Packet 1
size=1500bytes

31 v1.2
Path MTU Discovery

Host1 1500 1500 1300 1500 Host2

2001:db8:1::1 Router1 Router2 Router3 2001:db8:2::2

Host1 : Link MTU values are marked on each link.


MTU cache=1500

Packet 1
size=1500bytes

32 v1.2
Path MTU Discovery

Host1 1500 1500 1300 1500 Host2

2001:db8:1::1 Router1 Router2 Router3 2001:db8:2::2

Link MTU values are marked on each link.

Packet 1
size=1500bytes

33 v1.2
Path MTU Discovery

Host1 1500 1500 1300 1500 Host2

2001:db8:1::1 Router1 Router2 Router3 2001:db8:2::2

Link MTU values are marked on each link.

Packet 1
size=1500bytes
Because 1300 < 1500, the packet
1 cannot be transmitted.

34 v1.2
Path MTU Discovery

Host1 1500 1500 1300 1500 Host2

2001:db8:1::1 Router1 Router2 Router3 2001:db8:2::2

Link MTU values are marked on each link.

Packet 1
size=1500bytes
Drop!
Because 1300 < 1500, the
Packet 1 cannot be transmitted.

ICMPv6 Error:
Packet size too big!
MTU = 1300

35 v1.2
Path MTU Discovery

Host1 1500 1500 1300 1500 Host2

2001:db8:1::1 Router1 Router2 Router3 2001:db8:2::2

Link MTU values are marked on each link.

Packet 1
size=1500bytes
Drop!
Because 1300 < 1500, the packet
1 cannot be transmitted.
ICMP Error:
Packet size too big!
MTU = 1300
Host1 Update :
MTU cache=1300

36 v1.2
Path MTU Discovery

Host1 1500 1500 1300 1500 Host2

2001:db8:1::1 Router1 Router2 Router3 2001:db8:2::2

Link MTU values are marked on each link.

Packet
Packet 1
2
size=1500bytes
size=1500bytes
Drop!
Drop!
Because
Because 1300
1300 << 1500,
1500, the
the packet
packet
1 cannot be transmitted.
1 cannot be transmitted.

ICMPv6 Error:
Packet size too big!
MTU = 1300 Captured packets are available:
https://www.cloudshark.org/captures/7dd0b50eb768
37 v1.2
Path MTU Discovery
Host1 1500 1500 1300 1500 Host2

2001:db8:1::1 Router1 Router2 Router3 2001:db8:2::2

Host1 : Link MTU values are marked on each link.


MTU cache=1300

Packet 2
size=1300bytes

38 v1.2
Path MTU Discovery
Host1 1500 1500 1300 1500 Host2

2001:db8:1::1 Router1 Router2 Router3 2001:db8:2::2

Host1 :
MTU cache=1300 Link MTU values are marked on each link.

Packet 2
size=1300bytes

39 v1.2
Path MTU Discovery
Host1 1500 1500 1300 1500 Host2

2001:db8:1::1 Router1 Router2 Router3 2001:db8:2::2

Host1 : Link MTU values are marked on each link.


MTU cache=1300

Packet 2
size=1300bytes

40 v1.2
Path MTU Discovery
Host1 1500 1500 1300 1500 Host2

2001:db8:1::1 Router1 Router2 Router3 2001:db8:2::2

Host1 : Link MTU values are marked on each link.


MTU cache=1300

Packet 2
size=1300bytes

41 v1.2
Path MTU Discovery
Host1 1500 1500 1300 1500 Host2

2001:db8:1::1 Router1 Router2 Router3 2001:db8:2::2

Host1 : Link MTU values are marked on each link.


MTU cache=1300

Packet 2
size=1300bytes

42 v1.2
Path MTU Discovery
Host1 1500 1500 1300 1500 Host2

2001:db8:1::1 Router1 Router2 Router3 2001:db8:2::2

Host1 : Link MTU values are marked on each link.


MTU cache=1300

Packet 2
size=1300bytes

Path MTU = 1300

43 v1.2
QUESTIONS?

44 v1.2
Thank You!

45 v1.2

You might also like