[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: New fragment header, was: Re: Evolution of the IP model - ICMP and MTUs



Then might as well, put a fragment header on all packets so that routers
do not have to cross EH for upper layer info and also make things work
with ESP as well.

Regarding the position of the header, are you saying this header will be
ahead of HbH?

Chip 

-----Original Message-----
From: owner-v6ops@ops.ietf.org [mailto:owner-v6ops@ops.ietf.org] On
Behalf Of Iljitsch van Beijnum
Sent: Tuesday, August 19, 2008 7:24 AM
To: v6ops Operations
Subject: New fragment header, was: Re: Evolution of the IP model - ICMP
and MTUs

Ok, this is what the new fragment header would look like:

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| next header   |res|type |S/F|T|      fragment offset    |res|M|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        identification                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          source port          |      destination port         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    observed packet length     |            checksum           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

next header: protocol number of the header following the new fragment
header

res: reserved

S/F: SYN/FIN, copied/synthesized from transport

T: 1 = addresses were translated

fragment offset: as usual

type: tcp/udp/sctp/dccp/AH/ESP/other+ports/other-ports

M: more fragments

identification: groups fragments of the same packet, copied from TCP
sequence if applicable

ports: copied from transport port numbers or IPsec SA

observed packet length: maximum packet size seen in the opposite
direction in the last 5 minutes, 0 = unknown / no packets larger than
1280 bytes seen

checksum: checksum of the IP pseudo header + transport segment bytes
upto byte 1280 of the packet, 0 = N/A

The new fragment header is always the first header following the IPv4 or
IPv6 header. This means that filtering on protocol and port numbers is
always easy because the information is always present in the same place
in the packet, even if additional headers are present between the new
fragment header and the transport header.

When routers observe a packet with the new fragment header that is too
large to be forwarded, they truncate the packet. The minimum size of the
first fragment is 1280 bytes. Note that traditional IPv4 fragmentation
produces the same result as truncation for the first fragment.

Because the new fragment header has its own checksum over the relevant
part of the first 1280 bytes of the packet, bit errors can still be
detected so protocols that can make use of the truncated data (such as
TCP or DNS) may do so.

NATs MAY only translate the new fragment header.

The observed packet length field allows for passive PMTUD. A full PMTUD
implementation can be done by initializing the PMTU to 1280 and then use
a new fragment header for packets larger than the PMTU and/or in
response to incoming packets that updated the OPL, updating the PMTU
from the OPL field in incoming packets, resetting the PMTU after a
retransmission timeout.