IP Datagram Based on Chapter 20 of Computer Networks and Internets (Comer) CSIT 220 (Blum) 1 Overall Goal Recall that our overall goal is to exchange information between applications running on different hosts in such a way that the applications require no knowledge of the details of the underlying connection. Information hiding This goal is achieved using a protocol suite which takes a layered approach — defining services and functions for each layer. CSIT 220 (Blum) 2 Connection-Oriented or Connectionless The two basic types of service are connection-oriented (establish a dedicated path) connectionless (each packet finds its own way) TCP/IP provides (in some sense) both. The basic delivery system (IP) is connectionless. A verification scheme (TCP) provides some of the reliability features of a connection-oriented service. CSIT 220 (Blum) 3 Hop-to-hop Connectionless service is an extension of the packet switching idea. Packets can travel independently since each contains its destination address as part of the header. A local network uses the physical address added at Network Interface Layer (a.k.a Data Link) to deliver the packet to its local destination, which may be CSIT 220 (Blum) The final destination (a host on the local network) A router which will place the packet on an adjoining network 4 Virtual and Universal Two interconnected networks can use different protocols at the lowest layers (for instance, Ethernet and FDDI), but at the IP layer this specific/heterogeneous information is stripped off and the packet becomes independent of the network it arrived on. At the IP layer, the packets might be called Virtual: not physical, software-based Universal: characteristic of all, as opposed to specific to one or a few CSIT 220 (Blum) 5 Heterogeneous LAN information is stripped off at Data-Link layer before the packet is handed up to Network Layer. CSIT 220 (Blum) 6 IP Datagram A datagram is “a self-contained, independent entity of data carrying sufficient information to be routed from the source to the destination computer without reliance on earlier exchanges between this source and destination computer and the transporting network.” Internet’s Request for Comments (RFC) 1594 CSIT 220 (Blum) 7 Datagram Packet The term “datagram” has become synonymous with the term “packet.” A packet should be Independent of the specifics of the network it is on Independent of the specifics of the path it has traveled thus far Understandable to any router along the way or the destination host’s IP layer The information regarding the packet’s destination and interpretation is in its header. The data portion which follows is variable in size. CSIT 220 (Blum) 8 Datagram Paths A router reads the IP address, calculates the network portion of that IP address, looks up that value in its routing table and then sends the packet to the next router (or to the host if it is local). The destination field in the packet contains the destination address. The router uses its Mask to calculate the network address for the Next Hop (Router destination). The Mask is a set of bits which are ANDed with the destination address to produce the destination network address. CSIT 220 (Blum) 9 R2’s Routing Table CSIT 220 (Blum) 10 R2’s Routing Table R2 The IP addresses must of course be resolved into physical address for actual transmission to take place CSIT 220 (Blum) 11 Best-Effort Delivery The IP protocol makes a “best-effort” to deliver the packets. It does NOT handle datagram duplication (because of retransmission) delayed or out-of-order delivery corruption of data datagram loss These errors are handled by higher layers of the stack. TCP handles these errors UDP ignores most of these errors CSIT 220 (Blum) 12 Header Format Indicates the version of IP being used (typically version 4) CSIT 220 (Blum) 13 Header Format Indicates how big the header is, i.e. how many groups of 32. It is usually 5, since options are rare. CSIT 220 (Blum) 14 Header Format Indicates how packet should be sent, to minimize delay, maximize throughput, etc. CSIT 220 (Blum) 15 Type of Service CSIT 220 (Blum) 16 Header Format Indicates the total length of the packet: how many octets. Can be up to 65535, but packets are rarely that large. CSIT 220 (Blum) 17 Header Format Discussed in the second part of lecture CSIT 220 (Blum) 18 Header Format How many hops the packet is allowed before it cannot continue, (between 1 and 255) CSIT 220 (Blum) 19 Header Format Deliver to UDP, TCP, etc CSIT 220 (Blum) 20 Types or Protocols CSIT 220 (Blum) 21 Header Format Checks for errors in the header information, by adding all of the 16-bit numbers CSIT 220 (Blum) 22 Header Format IP address of source, 32 bits in IP(v4) CSIT 220 (Blum) 23 Header Format IP address of destination, 32 bits in IP(v4) CSIT 220 (Blum) 24 Header Format Allows optional information to be conveyed, header length indication whether or not the packet has an optional part CSIT 220 (Blum) 25 Header Format Header is multiple of 32 bits, padding is 0’s to get length to work out to correct length CSIT 220 (Blum) 26 Header Format And last but not least, the data CSIT 220 (Blum) 27 Terms In a Datagram Header Service Type Three bits are used to set a priority 0-7 which indicate whether the packet can jump ahead in a queue at certain routers CSIT 220 (Blum) Most routers ignore priority Can indicate that packet is small but should get through quickly (e.g. when one is telneting) Can indicate that many large packets are coming and a high-throughput path should be used Can specify that the most reliable path should be used 28 Terms In a Datagram Header Total Length total number of octets in datagram including header and data Time to Live prevents a datagram from traveling forever around a path that contains a loop. This defines the maximum number of hops. Each router that encounters the packet decrements the count by 1. The routers should eliminate loops but there may be a problem Header Checksum CSIT 220 (Blum) used to test accuracy of header bits. Does not check data. 29 tracert CSIT 220 (Blum) 30 Tracert and TTL The TTL field plays an important role in the tracert utility. The first packet is transmitted with a TTL of 1, when the router reached after one hop is reached, it decrements the TTL to give 0. When this happens, the router drops the packet and send a special message – an Internet Control Message Protocol (ICMP) message back to source. And the source now knows the IP address of the first hop node. It then issues a packet with a TTL of 2, … CSIT 220 (Blum) 31 Variable in size The data portion of an IP datagram (packet) is variable in size. The data portion can be as small as a single octet (byte). The largest IP packet possible is 64K octets (this includes the header portion). We’ll save the question about overhead for the homework. CSIT 220 (Blum) 32 Encapsulation, Fragmentation and Reassembly and IP(v6) Based on Chapters 21 and 22 in Computer Networks and Internets (Comer) CSIT 220 (Blum) 33 Encapsulation Encapsulation is the inclusion of one thing inside another, a capsule. The outside world deals only with the capsule and not with what is contained in the capsule. Decapsulation is the removal of the object from the capsule. CSIT 220 (Blum) 34 Encapsulation (Cont.) When one attaches an Ethernet header and trailer to an IP packet, one is encapsulating the IP packet. Until it is “decapsulated,” it will be treated as an Ethernet packet without regard for what it contains. The same IP packet can be encapsulated in an Ethernet frame or in a FDDI frame. Different types of packets (IP or Novell’s IPX) can be put into the same type of capsule (e.g. Ethernet). CSIT 220 (Blum) 35 CSIT 220 (Blum) 36 Transmission Across the Internet When an encapsulated frame reaches a router or destination host, the Layer 2 header is stripped off (decapsulation), exposing the IP datagram. If the datagram needs to be forwarded to another router, the current router adds a new Ethernet header (or whatever frame protocol is used on the next hop) and sends the new frame to the next hop. IP Datagrams are stored in host and router memory without the frame headers. The frame headers are used only to send the IP Datagram across the physical network. CSIT 220 (Blum) 37 Encapsulating an IP packet Making a packet the data field of a larger packet/frame. Ethernet has a trailer too CSIT 220 (Blum) 38 Ethernet capsule The encapsulated data Physical address obtained from an ARP Indicates what kind of thing is encapsulated CSIT 220 (Blum) 39 Ethernet Frame Types CSIT 220 (Blum) 40 CSIT 220 (Blum) 41 Frame format and size depends on the network (Ethernet, FDDI, etc.) MTU Maximum Transmission Unit: the largest physical packet size, measured in bytes, that a network can transmit. On an Ethernet LAN, the MTU is 1500 bytes, the maximum number of data (payload) bytes in an Ethernet frame Any messages larger than the MTU are divided into smaller packets (fragments) before being sent. CSIT 220 (Blum) 42 MTU (Cont.) Different physical networks have different MTUs. The MTU may also be set by the network administrator. If the source computer transmits packets that are too large for some network encountered on the way to its destination, then a router will break the packet into smaller packets (fragmenting). Ideally, the source computer should transmit packets that do not require the router to fragment them as this can result in the delay or loss of packets. CSIT 220 (Blum) 43 A situation requiring fragmentation If Host 1 transmits a 1500-byte IP datagram destined for Host 2, it will have to be fragmented when it reaches the router R. CSIT 220 (Blum) 44 Fragmenting If a packet is too big to be transmitted over a particular network, its data portion is broken into pieces and these are encapsulated in separate packets. CSIT 220 (Blum) 45 MTU (Cont.) There is a setting in the registry corresponding to MTU. Some consider it a parameter to be tweaked to improve network performance. “For example, the MTU of many PPP connections is 576, so if you connect to the Internet via PPP, you might want to set your machine's MTU to 576 too. Most Ethernet networks, on the other hand, have an MTU of 1500 ….” (webopedia) PPP, Point-to-Point Protocol, is a way to connect a computer to the Internet. CSIT 220 (Blum) 46 Datagram Considerations If an IP datagram exceeds the MTU, it is divided into fragments and each is sent independently. The fragments are assigned sequence numbers and offsets. The receiver knows a frame is a fragment by a bit set in the header. When all fragments reach the FINAL destination, they are joined to form the original datagram. This is called reassembly. Reassembly occurs only at the final destination. CSIT 220 (Blum) 47 FLAGS There’s a bit in the flag field to indicate that a packet has been fragmented. CSIT 220 (Blum) 48 FRAGMENT OFFSET Allows fragments to be reassembled in proper order. CSIT 220 (Blum) 49 Reassembly Reassembly is performed by ultimate destination, otherwise routers would have to hold on to packets to reassemble them. Reassembly uses the sequence numbers and the offsets to rebuild the datagram. IP does not guarantee datagram delivery. If part of a fragment is received, the destination sets a timer to receive the other pieces. If all fragments are not received within the time period, the destination can request a retransmission of the ENTIRE datagram. CSIT 220 (Blum) 50 Fragment Considerations Why retransmit the entire packet? Since a new packet may follow a different path, encountering different networks and routers, fragment sizes may vary. Therefore the old fragments are discarded. CSIT 220 (Blum) 51 IP (v6) Fragmentation/reassembly is one of the ways in which IP(v6) differs from IP(v4). The fragmentation process itself is different (in particular where it can occur) and so is the method of indicating that a packet has been fragmented (i.e. IP(v6) has a different header scheme). In IP(v4) there are fixed fields found in every packet containing this information. In IP(v6) a fragmented packet contains an extra header. CSIT 220 (Blum) 52 Fragmentation header CSIT 220 (Blum) Extra fragmentation header 53 Base Header/Extension Header The creators of IP(v6) wanted to have the flexibility of having many fields in the packet without increasing the overhead of the typical packet. An ordinary, lone packet would have just a “base header.” Additional information could be introduced in additional headers as needed. Part of the header indicates whether data or another header follows it. CSIT 220 (Blum) 54 Extension headers IP(v6) allows for additional headers to be included if more information than what is contained in the base header is needed. It’s analogous to the optional field in IP(v4). It gives the protocol flexibility. CSIT 220 (Blum) 55 Base Header Indicates existence and type of next header or data CSIT 220 (Blum) 56 What’s Next? Data from higher layer (TCP) follows Route header follows CSIT 220 (Blum) 57 Another IP(v6) Fragmentation Difference In IP(v4) a source computer or a router may fragment a message. In IP(v6) only the source computer can fragment a message. In order for this to be true, the source computer must know the smallest MTU along the route. CSIT 220 (Blum) 58 The path MTU The source starts by sending a large packet to the destination. If no acknowledgement is received, a smaller packet is sent, and so on. When an acknowledgement is received, that is the size allowed. This size is known as the path MTU. CSIT 220 (Blum) 59 But what about “connectionlessness”? There is an assumption in the notion of “path MTU” and it is that all of the packets within the fragmentation process are going to take the same path But isn’t IP connectionless? CSIT 220 (Blum) 60 It’s deja-vu all over again The creators of IP(v6) wanted to address some of the quality of service (QoS) issues. Packets can be identified as belonging to a particular "flow" so that packets that are part of a multimedia presentation that needs to arrive in "real time" can be provided a higher quality-ofservice relative to other customers. There are priority settings and so forth so that IP(v6) can support specified QoS levels CSIT 220 (Blum) 61 Route indicator CSIT 220 (Blum) Information about priority and so on 62 Other important issues The IPv6 header now includes extensions that allow a packet to specify a mechanism for authenticating its origin ensuring data integrity ensuring privacy CSIT 220 (Blum) 63 anycast In IP(v6), anycast is communication between a single sender and the nearest of several receivers in a group. In a multicast, a message is sent to a set of destinations; in an anycast, a message is sent to one of a set of destinations. CSIT 220 (Blum) 64 Anycast (Cont.) Anycasting is designed to let one host initiate the efficient updating of router tables for a group of hosts. IPv6 can determine which gateway host is closest and sends the packets to that host as though it were a unicast communication. In turn, that host can anycast to another host in the group until all routing tables are updated. CSIT 220 (Blum) 65 Last but not least: The 128-bit address The most noticeable difference between IP(v4) and IP(v6) is the length of the address IP(v4) addresses consist of 32 bits 232 = 4294967296 = 4.3 109 IP(v6) addresses consist of 128 bits 2128 = 3.4 1038 In addition to supporting more addresses, IP(v6) supports more levels of hierarchy IP(v4) had two levels: network and host CSIT 220 (Blum) 66 Notation If one adopted a dotted decimal notation, an IP(v6) address would be broken down into 16 octets, e.g. 105.220.136.100.255.255.255.255.0.0.18.128.140.10.255.255 An alternative notation is the colon hexadecimal notation, which breaks the address into 8 16-bit numbers and then represents the 16-bit number as a 4-digit hexadecimal number 69DC:8864:FFFF:FFFF:0:1280:8C0A:FFFF CSIT 220 (Blum) 67 Converting Two parts from the decimal dotted notation make up one unit in “colon hex” Starting on the left, take two dotted decimal numbers, multiply the first by 256 and add it to the second 105*256 + 220 = 27100 Convert that number to hexadecimal CSIT 220 (Blum) 68 105*256 + 220 CSIT 220 (Blum) 69 Convert to hex CSIT 220 (Blum) 70 Other References http://www.whatis.com http://www.webopedia.com Understanding Data Communications & Networks, Shay (1999) http://www.daemon.org/ip.html CSIT 220 (Blum) 71