3Internet Protocol (IP) The IP is the host-to-host network layer delivery protocol for Internet.IP is a connectionless datagram protocol for packet switching network.Best effort delivery service: meaning that IP provides no error control or flow control.IP uses only an error detection mechanism (Chechsum) and discards the packet if it is corrupted.IP does its best to deliver a packet to its destination, but with no guarantees. Needs to rely on TCP layer for reliable delivery.
4Internet Protocol (IP) IP connectionless network-layer protocol.IP is based on datagram routing.IP is unreliable !!IP has a two-level (at least, traditionally) hierarchical addressing mechanism.Routing in IP is a mixture of hierarchical, distance vector and link state routing algorithms.
5Datagram Packets in the IP layer are called Datagrams. A datagram is a variable-length packet consisting of header and data:Header: 20 to 60 bytes in length containing essential information for routing and addressingIt is customary to display/show the header in 4-byte sections.VER: defines the IP version (IPv4).HLEN: variable-length header; x4 to give it’s the actual length in bytesTotal length: of IP datagram in bytes;Data length = Total length – header lengthTime to live: to control max no. of hops visited by a datagram by count decrement.Protocol: specifies final dest. protocol to which IP datagram should be delivered; TCP, UDP, ICMP, IGMPChecksum: covers only header fieldfor testing & debug
6IP datagramDifferentiate Service types defines the class of datagram for quality-of-service purpose. E.g. min. delay, max. throughput, max. reliability, min. cost. (Not look into detail).Options: upto 40 bytes long, used for testing and debugging.
7IP datagram Do not fragment ! IP Header Length in terms of 4-bit words !Total Length of the IP packet in terms of number of bytes.Datagram-ID. Useful in Fragmentation. Identifies each datagram from others.When a datagram is fragmented, all fragments of a datagram must have the sameunique Identification number. The ID number helps destination in reassembling the datagram.Do not fragment !More fragmentsPointer to this offsetting fragment position in the datagram.
8Protocol field:6178912This field defines the higher level protocol (transport-layer) that uses the services of IP-layer.An IP datagram can encapsulate data from several higher-level protocols such as: TCP=6, UDP=17, ICMP=1, IGMP=2, OSPF=89.This field specifies the final destination protocol to which the IP datagram should be delivered. Since IP multiplexes and demultiplexes data from different higher level protocols, the value of this field helps in the demultiplexing process when the datagram arrives at its final destination.
9Example 1An IP packet has arrived with the first 8 bits (leftmost) as shown:The receiver discards the packet. Why?SolutionThere is an error in this packet. The 4 left-most bits (0100) show the version, which is correct. The next 4 bits (0010) show the header length, which means (2 4 = 8), which is wrong. The minimum number of bytes in the header must be 20. The packet has been corrupted in transmission.Note that only HLEN field uses (x4) to get the header length
10Example 2In an IP packet, the value of HLEN is 1000 in binary. How many bytes of options are being carried by this packet?SolutionThe HLEN field value is 8, which means the total number of bytes in the header is 8 4 or 32 bytes. The first 20 bytes are the main header, the next 12 bytes are the options.
11Example 3In an IP packet, the value of HLEN is 516 (or 0101) and the value of the total length field is (or ). How many bytes of data are being carried by this packet?SolutionThe HLEN value is 5, which means the total number of bytes in the header is 5 4 or 20 bytes (no options). The total length is 28(hex) = 40 bytes, which means the packet is carrying 20 bytes of data.Data length = total length – header length = (40-20) = 20.Only HLEN field uses (x4) to get header length
12Example 4An IP packet has arrived with the first few hexadecimal digits as shown below: How many hops can this packet travel before being dropped? The data belong to what upper layer protocol?SolutionTo find the time-to-live field, we should skip 8 bytes (16 hexadecimal digits). 4 bits (binary) = 1 bit (hex); 1 byte = 8 bits binary = 2 bits (hex)The time-to-live field is the ninth byte, which is 01. This means the packet can travel only one hop. The protocol field is the next byte (02), which means that the upper layer protocol is IGMP.
13Checksum To create the checksum the sender does the following: 1. The packet is divided into k sections, each of n bits.2. All sections are added together using one’s complement arithmetic.3. The final result is complemented to make the checksum.
15Checksum in one’s complement arithmetic The checksum in the IP covers only the header, not the data.At sender side, the initial checksum = , then the checksum is carried out by summing up all the fields and applying one’s compliment arithmetic to it to obtain the checksum value before it sends out the IP datagram.At receiver side, same procedure of checksum is carried out. The final value of the result must be , otherwise it will be seen as error and discarded.
16Example of checksum calculation in binary Decimal value representation
18Fragmentation A datagram can travel through different networks. Each router decapsulates the IP datagram from the frame it receives, process it and then encapsulates it in another frame.The format and size of the received frame depend on the protocol used by the physical network through which the frame has just travelled.The format and size of the sent frame depend on the protocol used by the physical network through which the frame is going to travel.E.g.: if a router connects an Ethernet and ATM networks, it receives a frame in the Ethernet format and sends a frame in the ATM formats.Fragmentation is the process of slitting the data into smaller chucks of data (fragment) at the lower layer defined by its maximum transfer size, and add the header to each of these smaller chucks of fragment.To make the IP independent of the physical network, the packagers decided to make the max length of IP datagram = largest maximum transfer unit (MTU) defined so far as bytes.
19Maximum Transfer Unit (MTU) Each data-link layer protocol has its own frame format.One of the fields defined in the format is the maximum size of the data field.In other words, when a datagram is encapsulated in a frame, the total size of the datagram must be less then this maximum size.When a datagram is fragmented, each fragment has its own header with most of fields repeated, but some changed.A fragmented datagram may itself be fragmented if it encounters a network with even smaller MTU. (Possible several fragmentation b4 final destination).
20FragmentationA datagram can be fragmented by the source host or any router in the path.The reassembly of the datagram, however, is done only by the destination host because each fragment becomes an independent datagram.Whereas the fragmented datagram can travel through different routes, and we can never control or guarantee which route a fragmented datagram may takeAll the fragments belonging to the same datagram should arrive at the destination host. So it is logical to do the reassembly at the final destination.
21FragmentationThe fields that are related to fragmentation and reassembly of an IP datagram are: the identification, flags and fragmentation offset fields.Identification: this field identifies a datagram originating from the source host. When a datagram is fragmented, the value in the ID field is copied into all fragments. This help the reassembly process at destination host.Flags: This is a 3-bit field; 1st is reserved, 2nd is do not fragment bit and 3rd is more fragment bit: if ‘1’ meaning not the last fragment and more fragment after this one; if ‘0’ meaning is the last fragment or only fragment.Fragmentation Offset: The 13-bit field shows the relative position of this fragment with respect to the whole datagram. It is the offset of the data in the original datagram measured in units of 8 bytes.
22Fragmentation example 1st fragmentlast byte number2nd fragmentlast byte number3rd fragment1st byte numberlast byte numberThis example shows a datagram with a data size of 4000 bytes fragmented into 3 parts. The bytes in the original datagram are numbered 0 to 3999.The value of offset is measured in units of 8 bytes because the length of the offset field is only 13 bits long cannot represent a sequence more than (65536/8 = 213). This force the hosts or routers that fragment datagrams to choose the size of each fragment so that the 1st byte number is divisible by 8.
24Example 5A packet has arrived with an M bit value of 0. Is this the first fragment, the last fragment, or a middle fragment? Do we know if the packet was fragmented?SolutionIf the M bit is 0, it means that there are no more fragments; the fragment is the last one. However, we cannot say if the original packet was fragmented or not. A nonfragmented packet is considered the last fragment.
25Example 6A packet has arrived with an M bit value of 1. Is this the first fragment, the last fragment, or a middle fragment? Do we know if the packet was fragmented?SolutionIf the M bit is 1, it means that there is at least one more fragment. This fragment can be the first one or a middle one, but not the last one. We don’t know if it is the first one or a middle one; we need more information (the value of the fragmentation offset). However, we can definitely say the original packet has been fragmented because the M bit value is 1.
26Example 7A packet has arrived with an M bit value of 1 and a fragmentation offset value of zero. Is this the first fragment, the last fragment, or a middle fragment?SolutionBecause the M bit is 1, it is either the first fragment or a middle one. Because the offset value is 0, it is definitely the first fragment.
27Example 8A fragment packet has arrived in which the offset value is 100. What is the number of the first byte? Do we know the number of the last byte?SolutionTo find the number of the first byte, we multiply the offset value by 8. (100 8 = 800) This means that the first byte number is 800. We cannot determine the number of the last byte unless we know the length of the data.
28Example 9A fragment packet has arrived in which the offset value is 100, the value of HLEN is 5 and the value of the total length field is 100. What is the number of the first byte and the last byte?Fragment OffsetSolution1st byte numberlast byte number100The first byte number is 100 8 = 800.Given that the total length = 100 bytes & the header length = 20 bytes (5 4), hence the data length = 80 bytes in this datagram.(Data length = total length – header length = 100 – 20 = 80)If the first byte number is 800, the last byte number must (= – 1 ; since it started from ‘0’ not ‘1’)
31IPv6Although IPv4 was well designed, it is clear that IPv4 is becoming insufficient for the fast growing Internet and the needs:Due to growing demand of internet usage, the use of addressing space is becoming insufficient for conventional netid & hostid two-level addressing structure in Classful addressing.Real-time application i.e. video transmission requires minimum delay strategies and reservation of resource not provided in IPv4Encryption and authentication of data and security mechanism not provided in IPv4.Limitation of flexibility and mobility supported in IPv4.While CIDR may buy a few years’ time, the days of IPv4 has already been numbered.In IPv6, the internet protocol was extensively modified to accommodate the unforeseen growth of Internet.
32Improvement in IPv6 IPv6 has some advantages over IPv4: Longer addresses than IPv4: 128 bits long > 32 bits currently in IPv4. That means a huge increase of additional 296 addressing space.Simplification in Header: contains only 8 vital fields < 13 in IPv4. (speeds up routing process). – 5 fields becomes options.New options: to support additional functionalitiesSecurity: Authentication & privacy are key features of new IPMore Services: to handle special/real-time multimedia traffic.
33IPv4 datagramAll replaced by functions in both Next header & payload extension header: fragmentation in IPv6Totally remove bcs fixed 40 bytes header is usedReplaced by Flow label in IPv6Replaced by payload length in IPv6Replaced by Hop limit in IPv6Taken out bcs Next header in IPv6 tells what follows the last IP header (e.g. a UDP or TCP)Totally removed bcs calculating this greatly reduce performances. Data-link and Transport layer have their own checksum for better support of reliability,
34Format of an IPv6 datagram 32 bitsBase Header:Occupies 40 bytesPayload:Extension header+Data from upper layerOccupies up to bytes
35IPv6 packet field VER: IP version; 4 for IPv4 and 6 for IPv6 PRI: priority field defines priority of packets w.r.t. traffic congestion; 0-7: for packets that can slow down in event of congestion; 8-15 for real-time traffic with constant sending rate – Audio & Video.Flow label: (~ Service in IPv4) Special handling for a particular flow of data; pseudo-connection btw source and dest. for reserved bandwidth and stringent delay requirement. (Still experimental).Payload length: tells how many payload bytes follow the 40-bytes header; excluding the count for header based – 40 bytes not includedNext header: 8-bit field defines the subsequent headers that follow the base header to allow extension; either optional extension headers used by IP or header for an upper-layer protocol, e.g. UDP & TCP.Hop limit: serves the same purpose as the TtL in IPv4.Source and Destination address field: both occupy 16 bytes (128 bits)Extension Headers: 6 extension headers which is optional in IPv4.
42Extension header types Miscellaneous info for routersFull or partial route to followManage datagram fragmentVerification of sender’s IDInfo about encrypted contentsAdditional info for destinationSame concept of fragmentation as IPv4. However, in IPv6, only original source can fragment the packet using a path MTU discovery method to find the smallest MTU supported by any network on the path. If not, then fragment to a size of 576 bytes, the minimum size of MTU required for each network connected to Internet.
43Table 20.10 Comparison between IPv4 options and IPv6 extension headers
44Hop-by-hop option header format Used for information that all routers along the path must examine.Start by telling what kind of header come next and then the length and size of datagram.
54Transition from IPv4 to IPv6 Because of huge number of systems on the Internet, the transition from IPv4 to IPv6 cannot happen suddenly.It will take considerable amount of time before every system in the Internet can move from IPv4 to IPv6The transition should be a smooth process to prevent any problems due to their differences.3 transition strategies:Dual stackTunnellingHeader translation
56Dual stackA station should simultaneously run both IPv4 & IPv6 protocols until all Internet uses IPv6.To determine which version to use, the source host queries the DNS and send whichever version of IP packet the DNS returns.
57TunnelingTunnelling is a strategy used when two hosts using IPv6 want to connect with each other when the packet must pass through a region that uses IPv4.To pass thru the region, packet must have an IPv4 address. So, the IPv6 packet is encapsulate in an IPv4 packet when it enters the region, and IPv6 leaves its capsule when it exits the region.
58Header translationHeader translation is necessary when majority of the Internet has moved to IPv6 but some systems still use IPv4.The sender wants to use IPv6 but the receiver does not understand IPv6.Tunnelling does not work because packet must be in the IPv4 format to be understood by the receiver.In this case, the header format must be changed totally through header translation to down-convert from IPv6 to IPv4 header.
60Further Reading1- “Computer Networks”, Andrew Tanenbaum, 4th Ed. to learn more about the generic network layer.2- “Internetworking with TCP/IP vol.1”, Douglas Comer, 4th Ed., provides a detailed and comprehensive presentation of TCP/IP.3- “Data Communications and Networking”, Behrouz Forouzan, 4th Ed.,Copyright Information : Some figures used in this presentation have been either directly copied or adapted from several books.