320 likes | 555 Views
Internet Protocol --- Connectionless Datagram Delivery. Linda Wu (CMPT 471 • 2003-3). Content. TCP/IP internet services Internet datagram format Fragmentation & Reassembly Datagram fields Reference: chapter 7. Application layer. Application services (SMTP, FTP, DNS, … SNMP).
E N D
Internet Protocol--- Connectionless Datagram Delivery Linda Wu (CMPT 471 • 2003-3)
Content • TCP/IP internet services • Internet datagram format • Fragmentation & Reassembly • Datagram fields Reference: chapter 7 CMPT 471 2003-3
Application layer Application services (SMTP, FTP, DNS, … SNMP) Reliable transport service (TCP, UDP) Transport layer Connectionless packet delivery service (IP, ICMP, IGMP, ARP, RARP) Network layer TCP/IP Internet Services • Networking services are arranged in a hierarchy • Internet software is designed around three conceptual networking services • Replacing one service will not disturb others CMPT 471 2003-3
TCP/IP Internet Services (cont.) • Connectionless delivery system Data are split into several packets • Unreliable: delivery is not guaranteed; packet may be lost, duplicated, delayed • Connectionless: each packet is treated independently from all others • Best-effort: internet software makes an earnest attempt to deliver packets; unreliability arises only when resources are exhausted or networks fail CMPT 471 2003-3
TCP/IP Internet Services (cont.) • Internet protocol (IP) IP protocol defines the unreliable, connectionless delivery mechanism, and provides 3 important definitions: • Format of data passed across the internet • internet transfer unit is called internet datagram • Routing function • Rules of unreliable packet delivery: packet processing, error handling, etc. CMPT 471 2003-3
Internet Datagram Format • Internet datagram (IP datagram, datagram) • Datagram vs. frame CMPT 471 2003-3
Internet Datagram Format (cont.) • Datagram format CMPT 471 2003-3
Fragmentation & Reassembly • IPv4 datagram length • 216 –1 = 65,535 • Includes the length of header and data • Network MTU • Maximum transfer unit (MTU): each hardware technology places a fixed upper bound on the amount of data transferred in one frame • Ethernet MTU: 1500 (bytes/frame) • FDDI MTU: 4470 CMPT 471 2003-3
Fragmentation & Reassembly (cont.) • Datagram encapsulation • Carrying one datagram in one frame • Hardware does not recognize datagram format • Efficient transportation MTU CMPT 471 2003-3
Fragmentation & Reassembly (cont.) • MTU vs. datagram length • Limiting datagram to fit the smallest possible MTU makes transfer inefficient • Allowing datagrams to be larger than the minimum MTU means a datagram cannot always fit into a single frame • Solution in IP protocol: datagram fragmentation CMPT 471 2003-3
Fragmentation & Reassembly (cont.) • Datagram fragmentation • The source chooses a convenient datagram size • Intermediate routers divide large datagram into small fragments when needed • Fragments may not be of equal size; their sizes must be multiple of 8 • Each fragment can be shipped in a single frame • Router must accept datagram up to the maximal MTUs of the networks they attach to • Fragments travel to the destination as separate datagrams CMPT 471 2003-3
A B Net 1 Net 3 Net 2 MTU=620 MTU=1500 MTU=1500 R1 R2 Fragmentation & Reassembly (cont.) Original datagram: A B (1400 bytes of data) Fragmentation at R1: Fragment header duplicates most of the fields in the datagram header Fragment 1 (offset: 0/8) Fragment 2 (offset: 600/8) Fragment 3 (offset: 1200/8) CMPT 471 2003-3
Fragmentation & Reassembly (cont.) • Reassembly at ultimate destination • Reassembly timer • Started when an initial fragment is received • If the timer expires before all fragments arrive, all the received fragments will be discarded • Advantages • Fragments are routed independently • Intermediate routers are not required to store or reassemble fragments • Disadvantages • Small fragments may traverse on networks with large MTU capability • If any fragment is lost, datagram cannot be reassembled CMPT 471 2003-3
Datagram Fields • VERS • 4 bits • Specifies the version of IP protocol used to create the datagram • To verify that sender, receiver and any router in between them agree on the datagram format • Machines reject datagram with protocol version that differs from theirs • Current version: 4 (IPv4) CMPT 471 2003-3
Datagram Fields (cont.) • HLEN • 4 bits • Specifies datagram header length (unit: 32-bit word / 4 bytes) • TOTAL LENGTH • 16 bits • Specifies # of bytes in header and data (unit: byte) • TOTAL LENGTH 216 –1 = 65,535 • Size of data = TOTAL LENGTH - HLEN CMPT 471 2003-3
Datagram Fields (cont.) • SERVICE TYPE • 8 bits • Original TOS interpretation Precedence: importance of datagram D: low delay T: high throughput R: high reliability CMPT 471 2003-3
Datagram Fields (cont.) • Revised differentiated services interpretation • A codepoint value maps to an underlying service definition • 3 right-most bits of codepoint • All 0s: xxx000 (backward compatible with original interpretation) • Not all 0s: 3 administrative groups CMPT 471 2003-3
Datagram Fields (cont.) • Fragmentation control fields • IDENTIFICATION • Datagram sender generates a unique IDENTIFICATION for each datagram • It is copied to fragment header for reassembly at a later time • Source address + IDENTIFICATION: to identify datagram • FRAGMENT OFFSET • The offset in the original datagram of the data carried in the fragment (unit: 8 bytes) CMPT 471 2003-3
Datagram Fields (cont.) • FLAGS: 3 bits • D: do not fragment • When a router needs to fragment a datagram with D bit set, it will discard the datagram and send an error message to the source • M: more fragments • To indicate whether a fragment is the tail of the datagram • Destination gets the TOTAL LENGTH of the fragment instead of the original datagram • Upon receiving a fragment F with M bit off, calculate total length of the datagram based on F’s total length and F’s fragment offset CMPT 471 2003-3
Datagram Fields (cont.) • TIME TO LIVE (TTL) • Defines hop limit of a datagram • Each router along the path from source to destination decrements TTL by 1 • If datagram’s TTL filed is 0, router discards datagram and sends back an error message to the source • Objective: to guarantees that datagrams cannot travel around internet forever CMPT 471 2003-3
Datagram Fields (cont.) • PROTOCOL • 8 bits • Defines the higher-level protocol to which datagram should be delivered CMPT 471 2003-3
Datagram Fields (cont.) • HEADER CHECKSUM • To ensure integrity of header • Calculated at the sender and the value obtained is sent with datagram • The receiver repeats the same calculation • If the result is satisfactory, accept the datagram • Otherwise, reject it • Only applies to values in header, not to data CMPT 471 2003-3
Datagram Fields (cont.) • SOURCE / DESTINATION IP ADDRESS • Specifies sender / intended recipient of datagram • Never changes when datagram is routed through intermediate routers • DATA • Specifies the data sent in datagram • Variable length • PADDING • Composed of all 0s • Its length depends on IP OPTIONS selected • To ensure the datagram header extends to an exact multiple of 32 bits CMPT 471 2003-3
Datagram Fields (cont.) • IP OPTIONS • Optional fields with variable length • Appear contiguously without separators between them • Format • COPY • 0 Copy only in the first fragment • 1 Copy in all fragments • CLASS • 00 Datagram control • 01 Reserved • Debugging and management • 11 Reserved • NUMBER • See examples on P109 LENGTH: total length of the option, including code field and length field DATA: data that specific options require CMPT 471 2003-3
Datagram Fields (cont.) • Record route option • To record the routers that handle the datagram • POINTER: the offset within option of the next available slot • When a machine handles a datagram with record route option • If POINTER > LENGTH, forward datagram without inserting its entry • Otherwise, insert its entry, increase POINTER by 4 CMPT 471 2003-3
Datagram Fields (cont.) • Source route option • Used by the source to predetermine a route for the datagram • At the router side • If POINTER > LENGTH, do routing as usual • Otherwise, follow POINTER to pickup IP address, replace it with its outgoing IP address, increase POINTER by 4, and forward the datagram CMPT 471 2003-3
Datagram Fields (cont.) • Strict source route (CODE 137) • All the routers in the option must be visited • A router not listed in the option must not be visited • If datagram visits a router not in the list, or, if it arrives at destination with some listed routers not visited, the datagram is discarded and an error message is issued • Loose source route (CODE 131) • Each router in the list must be visited • The datagram can visit other routers as well CMPT 471 2003-3
Datagram Fields (cont.) • Timestamp option • To record the time at which router processes datagram • To keep track of router behavior in the internet • OFLOW: # of routers that cannot supply a timestamp because the option is full • FLAGS: specifies the visited router responsibilities • Timestamp: time and date at which router processes datagram; expressed as milliseconds since midnight, Universal Time CMPT 471 2003-3
Datagram Fields (cont.) • Subfield: FLAGS CMPT 471 2003-3
Datagram Fields (cont.) • Processing IP OPTIONs during fragmentation • The function of COPY bit in fragmentation • Some IP OPTIONs are replicated in all fragments • Some IP OPTIONs are placed in one fragment • Record route option should only be copied into one of the fragments • Source route option should be copied into all fragments CMPT 471 2003-3