Content deleted Content added
→Process: Cleaned and tidied up the bit diagrams and |
The terms packet and datagram are not interchangeable. Packet refers strictly to the data units in layer 3 (network) of the OSI model (implemented by IP), whereas datagram strictly refers to the data unit for layer 4 (transport) of the OSI model when an unreliable protocol (UDP) is used. |
||
Line 4:
}}
'''IP fragmentation''' is the process of breaking up a single [[Internet Protocol]] (IP) [[
Part of the TCP/IP suite is the Internet Protocol (IP) which resides at the [[Internet Layer]] of this model. IP is responsible for the transmission of packets between network end points. IP includes some features which provide basic measures of fault-tolerance (time to live, checksum), traffic prioritization (type of service) and support for the fragmentation of larger packets into multiple smaller packets (ID field, fragment offset). The support for fragmentation of larger packets provides a protocol allowing routers to fragment a packet into smaller packets when the original packet is too large for the supporting datalink frames. IP fragmentation exploits (attacks) use the fragmentation protocol within IP as an attack vector.
Line 10:
== Process ==
IP
This can be accomplished by several approaches:
* To set the IP
* To preview all links between source and destination and select the smallest MTU in this route, assuming there is a unique route. This way we make sure that the fragmentation is done by the sender, using a packet-size smaller than the selected MTU, and there is no further fragmentation en route. This solution, called [[Path MTU Discovery]], allows a sender to fragment/segment a long [[Internet]] [[packet (information technology)|packet]], rather than relying on routers to perform IP-level fragmentation. This is more efficient and more scalable. It is therefore the recommended method in the current Internet. The problem with this approach is that each packet is routed independently; they may well typically follow the same route, but they may not, and so a probe packet to determine fragmentation may follow a path different from paths taken by later packets.
Line 106:
Flags:
: A 3 bit field which says if the
: Bit 0: reserved, must be zero (unless
: Bit 1: (AF) 0 = May Fragment, 1 = Don't Fragment.
: Bit 2: (AF) 0 = Last Fragment, 1 = More Fragments.
Line 121:
|}
Fragment Offset specifies the fragment's position within the original
Accordingly, every fragment except the last must contain a multiple of 8 bytes of data. It is obvious that Fragment Offset can hold 8192 (2^13) units but the [[
Because an IP internet can be connectionless, fragments from one
The source system sets "Identification" field in each
The following is a real-life fragmentation example:
The following was obtained using the [[Wireshark|Ethereal]] protocol analyzer to capture [[Internet Control Message Protocol|ICMP]] [[Ping (networking utility)|echo request]] packets. To simulate this open up a terminal and type ping ip_dest -n 1 -l 65000.
<!-- The terminal command doesn't work for BASH on Darwin. -->
The results are as follows:
Line 213 ⟶ 214:
Two important points here:
* In some datalink protocols such as Ethernet, only the first fragment contains the full upper layer header, meaning that other fragments look like beheaded
* Additional overhead imposed over network because all fragments contains their own IP header. Additional overhead = (number_of_fragments - 1) * (ip_header_len);
== Exploits ==
; IP fragment overlapped: The IP fragment overlapped [[exploit (computer security)|exploit]] occurs when two fragments contained within the same IP
; IP fragmentation buffer full: The IP fragmentation buffer full exploit occurs when there is an excessive amount of incomplete fragmented traffic detected on the protected network. This could be due to an excessive number of incomplete fragmented
; IP fragment overrun: The IP Fragment Overrun exploit is when a reassembled fragmented
; IP fragment too many
; IP fragment incomplete
; IP Fragment Too Small: If an IP fragment is too small it indicates that the fragment is likely intentionally crafted. Any fragment other than the final fragment that is less than 400 bytes could be considered too small. Small fragments may be used in denial of service attacks or in an attempt to bypass security measures or detection.
|