Internet Protocol --- Connectionless Datagram Delivery - PowerPoint PPT Presentation

About This Presentation
Title:

Internet Protocol --- Connectionless Datagram Delivery

Description:

Title: Linux and Shell Programming Author: lxwu Last modified by: lxwu Created Date: 5/5/2003 11:45:25 PM Document presentation format: Custom Company – PowerPoint PPT presentation

Number of Views:22
Avg rating:3.0/5.0
Slides: 31
Provided by: lxw4
Category:

less

Transcript and Presenter's Notes

Title: Internet Protocol --- Connectionless Datagram Delivery


1
Internet Protocol--- Connectionless Datagram
Delivery
  • Linda Wu
  • (CMPT 471 2003-3)

2
Content
  • TCP/IP internet services
  • Internet datagram format
  • Fragmentation Reassembly
  • Datagram fields
  • Reference chapter 7

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

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

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.

6
Internet Datagram Format
  • Internet datagram (IP datagram, datagram)
  • Datagram vs. frame

Datagram header Datagram data area
Datagram Frame
Divided into header and data Divided into header and data
Transfer unit of internet Transfer unit of physical network
Handled by software Recognized by hardware
Header contains src. / dest. IP addresses Header contains src. / dest. physical addresses
7
Internet Datagram Format (cont.)
  • Datagram format

0 4 8 16 19 24 31 16 19 24 31 16 19 24 31
VERS HLEN SVC TYPE TOTAL LENGTH TOTAL LENGTH TOTAL LENGTH
IDENTIFICATION IDENTIFICATION IDENTIFICATION FLAGS FRAGMENT OFFSET FRAGMENT OFFSET
TIME TO LIVE TIME TO LIVE PROTOCOL HEADER CHECKSUM HEADER CHECKSUM HEADER CHECKSUM
SOURCE IP ADDRESS SOURCE IP ADDRESS SOURCE IP ADDRESS SOURCE IP ADDRESS SOURCE IP ADDRESS SOURCE IP ADDRESS
DESTINATION IP ADDRESS DESTINATION IP ADDRESS DESTINATION IP ADDRESS DESTINATION IP ADDRESS DESTINATION IP ADDRESS DESTINATION IP ADDRESS
IP OPTIONS (IF ANY) IP OPTIONS (IF ANY) IP OPTIONS (IF ANY) IP OPTIONS (IF ANY) IP OPTIONS (IF ANY) PADDING
DATA DATA DATA DATA DATA DATA

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

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
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

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

12
Fragmentation Reassembly (cont.)
Header 20 bytes Data1 600 bytes Data2 600 bytes Data3 200 bytes
Original datagram A ? B (1400 bytes of data)
Fragmentation at R1
Fragmt. 1 header Data1
Fragment header duplicates most of the fields in
the datagram header
Fragment 1 (offset 0/8)
Fragmt. 2 header Data2
Fragment 2 (offset 600/8)
Fragmt. 3 header Data3
Fragment 3 (offset 1200/8)
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

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)

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

16
Datagram Fields (cont.)
  • SERVICE TYPE
  • 8 bits
  • Original TOS interpretation

0 1 2 3 4 5 6 7
Precedence D T R Unused
Precedence importance of datagram D low
delay T high throughput R high reliability
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 7
Codepoint (DSCP) Codepoint (DSCP) Codepoint (DSCP) Codepoint (DSCP) Unused
Pool Codepoint Interpretation assigned by
1 xxxxx0 IETF (Internet Authority)
2 xxxx11 Local or experimental
3 xxxx01 Local or experimental for now
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)

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
    Fs total length and Fs fragment offset

0 1 2
Reserved D M
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 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

21
Datagram Fields (cont.)
  • PROTOCOL
  • 8 bits
  • Defines the higher-level protocol to which
    datagram should be delivered

Value Protocol
1 ICMP
2 IGMP
6 TCP
17 UDP
89 OSPF
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

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

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)
  • 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

COPY 1 bit CLASS 2 bits NUMBER 5 bits
LENGTH total length of the option, including
code field and length field DATA data that
specific options require
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 gt LENGTH, forward datagram without
    inserting its entry
  • Otherwise, insert its entry, increase POINTER by 4

0 8 16 24 31
CODE (7) LENGTH POINTER
First IP Address (empty when started) First IP Address (empty when started) First IP Address (empty when started) First IP Address (empty when started)
Second IP Address (empty when started) Second IP Address (empty when started) Second IP Address (empty when started) Second IP Address (empty when started)

26
Datagram 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

0 8 16 24 31
CODE (137 / 131) LENGTH POINTER
IP Address of First Hop (filled when started) IP Address of First Hop (filled when started) IP Address of First Hop (filled when started) IP Address of First Hop (filled when started)
IP Address of Second Hop (filled when started) IP Address of Second Hop (filled when started) IP Address of Second Hop (filled when started) IP Address of Second Hop (filled when started)

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

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 31
CODE (68) LENGTH POINTER OFLOW FLAGS
First IP Address First IP Address First IP Address First IP Address First IP Address
First Timestamp First Timestamp First Timestamp First Timestamp First Timestamp

29
Datagram Fields (cont.)
  • Subfield FLAGS

FLAGS 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
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
Write a Comment
User Comments (0)
About PowerShow.com