Internet Protocol --- Connectionless Datagram Delivery
-
Upload
myra-buchanan -
Category
Documents
-
view
38 -
download
2
description
Transcript of Internet Protocol --- Connectionless Datagram Delivery
Internet Protocol--- Connectionless Datagram Delivery
Linda Wu
(CMPT 471 • 2003-3)
Notes-5 CMPT 471 2003-3 2
Content TCP/IP internet services Internet datagram format Fragmentation & Reassembly Datagram fields
Reference: chapter 7
Notes-5 CMPT 471 2003-3 3
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
Application services(SMTP, FTP, DNS, … SNMP)
Reliable transport service(TCP, UDP)
Connectionless packet delivery service(IP, ICMP, IGMP, ARP, RARP)
Application layer
Transport layer
Network layer
Notes-5 CMPT 471 2003-3 4
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
Notes-5 CMPT 471 2003-3 5
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.
Notes-5 CMPT 471 2003-3 6
Internet Datagram Format Internet datagram (IP datagram, datagram)
Datagram vs. frameDatagram Frame
Divided into header and dataTransfer unit of internet
Transfer unit of physical network
Handled by software Recognized by hardwareHeader contains src. / dest. IP addresses
Header contains src. / dest. physical addresses
Datagram header Datagram data area
Notes-5 CMPT 471 2003-3 7
Internet Datagram Format (cont.)
Datagram format0 4 8 16 19 24 31VERS HLEN SVC TYPE TOTAL LENGTH
IDENTIFICATION FLAGS FRAGMENT OFFSET
TIME TO LIVE
PROTOCOL HEADER CHECKSUM
SOURCE IP ADDRESSDESTINATION IP ADDRESS
IP OPTIONS (IF ANY) PADDINGDATA
……
Notes-5 CMPT 471 2003-3 8
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
Notes-5 CMPT 471 2003-3 9
Fragmentation & Reassembly (cont.)
Datagram encapsulation Carrying one datagram in one frame Hardware does not recognize datagram
format Efficient transportation
Datagram header
Datagram data area
Frame header
Frame data area Frame trailer
MTU
Notes-5 CMPT 471 2003-3 10
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
Notes-5 CMPT 471 2003-3 11
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
Notes-5 CMPT 471 2003-3 12
Fragmentation & Reassembly (cont.)
Header20 bytes
Data1600 bytes
Data2600 bytes
Data3200 bytes
ANet 1
MTU=1500
BNet 3
MTU=1500Net 2MTU=620R1 R2
Fragmt. 2 header Data2
Fragmt. 1 header Data1
Fragmt. 3 header Data3
Fragment 1 (offset: 0/8)
Fragment 2 (offset: 600/8)
Fragment 3 (offset: 1200/8)
Original datagram: A B(1400 bytes of data)
Fragment header duplicates most of the fields in the datagram header
Fragmentation at R1:
Notes-5 CMPT 471 2003-3 13
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
Notes-5 CMPT 471 2003-3 14
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)
Notes-5 CMPT 471 2003-3 15
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
Notes-5 CMPT 471 2003-3 16
Datagram Fields (cont.)
SERVICE TYPE 8 bits Original TOS interpretation
0 1 2 3 4 5 6 7Precedence D T R Unused
Precedence: importance of datagramD: low delayT: high throughputR: high reliability
Notes-5 CMPT 471 2003-3 17
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
0 1 2 3 4 5 6 7Codepoint (DSCP) Unused
Pool Codepoint Interpretation assigned by1 xxxxx0 IETF (Internet Authority)2 xxxx11 Local or experimental3 xxxx01 Local or experimental for now
Notes-5 CMPT 471 2003-3 18
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)
Notes-5 CMPT 471 2003-3 19
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
0 1 2Reserved D M
Notes-5 CMPT 471 2003-3 20
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
Notes-5 CMPT 471 2003-3 21
Datagram Fields (cont.)
PROTOCOL 8 bits Defines the higher-level protocol to
which datagram should be deliveredValue Protocol
1 ICMP2 IGMP6 TCP
17 UDP89 OSPF
Notes-5 CMPT 471 2003-3 22
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
Notes-5 CMPT 471 2003-3 23
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
Notes-5 CMPT 471 2003-3 24
Datagram Fields (cont.) IP OPTIONS
Optional fields with variable length Appear contiguously without separators
between them Format
CODE(8 bits)
LENGTH( 8 bits)
DATA(variable length)
COPY1 bit
CLASS2 bits
NUMBER5 bits
COPY0 Copy only in the first fragment1 Copy in all fragmentsCLASS00 Datagram control01 Reserved10 Debugging and management11 ReservedNUMBER See examples on P109
LENGTH: total length of the option, including code field and length field
DATA: data that specific options require
Notes-5 CMPT 471 2003-3 25
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
0 8 16 24 31CODE (7) LENGTH POINTER
First IP Address (empty when started)Second IP Address (empty when started)
……
Notes-5 CMPT 471 2003-3 26
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
0 8 16 24 31CODE
(137 / 131)LENGTH POINTER
IP Address of First Hop (filled when started)IP Address of Second Hop (filled when started)
……
Notes-5 CMPT 471 2003-3 27
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
Notes-5 CMPT 471 2003-3 28
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
0 8 16 24 31CODE (68) LENGTH POINTER OFLOW FLAGS
First IP AddressFirst Timestamp
…
Notes-5 CMPT 471 2003-3 29
Datagram Fields (cont.)
Subfield: FLAGSFLAGS value Meaning
0 Record timestamp only; omit IP address
1 Precede each timestamp by an IP address
3 IP addresses are specified by sender; a router only records a timestamp if its IP address matches the next IP address in the list
Notes-5 CMPT 471 2003-3 30
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