Title: Internet Protocol Connectionless Datagram Delivery
1Internet Protocol--- Connectionless Datagram
Delivery
- Linda Wu
- (CMPT 471 2003-3)
2Content
- TCP/IP internet services
- Internet datagram format
- Fragmentation Reassembly
- Datagram fields
- Reference chapter 7
3TCP/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
4TCP/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
5TCP/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.
6Internet Datagram Format
- Internet datagram (IP datagram, datagram)
- Datagram vs. frame
7Internet Datagram Format (cont.)
8Fragmentation 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
9Fragmentation Reassembly (cont.)
- Datagram encapsulation
- Carrying one datagram in one frame
- Hardware does not recognize datagram format
- Efficient transportation
? MTU
10Fragmentation 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
11Fragmentation 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
12Fragmentation 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)
13Fragmentation 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
14Datagram 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)
15Datagram 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
16Datagram Fields (cont.)
- SERVICE TYPE
- 8 bits
- Original TOS interpretation
Precedence importance of datagram D low
delay T high throughput R high reliability
17Datagram 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
18Datagram 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)
19Datagram 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
Fs total length and Fs fragment offset
20Datagram 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 datagrams 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
21Datagram Fields (cont.)
- PROTOCOL
- 8 bits
- Defines the higher-level protocol to which
datagram should be delivered
22Datagram 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
23Datagram 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
24Datagram 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
25Datagram 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 gt LENGTH, forward datagram without
inserting its entry - Otherwise, insert its entry, increase POINTER by 4
26Datagram Fields (cont.)
- Source route option
- Used by the source to predetermine a route for
the datagram - At the router side
- If POINTER gt 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
27Datagram 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
28Datagram 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
29Datagram Fields (cont.)
30Datagram 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