To Previous Chapter To Table of Contents To Bottom of Page To Next Chapter

Chapter 3 The Internet Protocol

  1. Internet Protocol
    main tasks are:
    1. addressing datagrams
    2. managing fragmentation of datagrams
    3. routing of a datagram
    4. determining where it will be sent
    5. devising alternative routes in case of problems

    IP is connectionless
    • The Internet Protocol Datagram Header
      like Ethernet, IP uses encapsulation [process of adding something to the start (and sometimes the end) of the data]
      IP header (six 32-bit words)
      Vers Length Service
      Type
      Packet Length
      Identification
      DF MF Frag Offset
      TTL Transport Header Checksum
      Sending Address
      Destination Address
      Options Padding

      • Version Number [usually 4; 6 = IPng]
      • Header Length [4 bits: usually either 5 or six words]
      • Type of Service [8 bits] (Note: 1-bit flags are not normally used)
        Presence(3 bits) Delay Throughput Reliability Not used
      • Datagram (Packet) Length [16 bits = 65,535 byte maximum length]
      • Identification Number [used for fragmentation]
      • Flags [DF = don't fragment; MF = more fragments]
      • Fragment Offset
      • Time To Live (TTL) [amount of time in seconds that a datagram can remain on the network before it is discarded (usually between 15 and 30 sec.]
      • Transport Protocol [ID # of the transport protocol to which the packet has been handed (ICMP=1; TCP=6)]
      • Header Checksum [ones-complement of the 16-bit sum of all 16-bit words in the header]
      • Sending and Destination Addresses (32-bit IP addresses)
      • Options [variety of options including "activate routing records", "strict source routing", etc.]
      • Padding
    • A Datagram's Life
      1. Application constructs the IP datagram & checksum for data is calculated
      2. IP header is constructed
      3. first hop of the route to the destination is determined
      4. datagram is passed to the network
      5. each gateway:
        1. strips the network layer header
        2. calculates the checksum of the datagram and compares [if the checksums do not match, datagram is discarded and an error message is sent to the sending device]
        3. the TTL field is decremented and checked [if the datagram has expired, datagram is discarded and an error message is sent to the sending device]
        4. the next hop is determined
        5. the datagram is rebuilt with a new TTL and checksum
        6. if fragmentation is necessary, the datagram is divided and headers are created for each fragment
        7. datagram is passed back to the network layer
      6. when destination is reached, checksum is calculated and compared and then a check is made for fragments [if more fragments, the system waits]
      7. IP header is stripped off and the message is passed up to the next layer

  2. Internet Control Message Protocol - error-reporting system
    ICMP Header ICMP Message

    IP
    Header
    ICMP Datagram

    Network Header IP Datagram
    Layout of an ICMP message
    Type (8 bits) Code (8 bits) Checksum (16 bits)
    Parameters
    Data

    Different types of messages generate different header layouts, e.g. a Source Quench, Time Exceeded message:
    ICMP message header layout
    Type Code Checksum
    Unused
    Original IP header + 64 bits

  3. IPng:IP Version 6
    • 128-bit network address instead of 32-bit
    • more efficient IP header with extensions for applications and options
    • no header checksum
    • flow label for QoS requirements
    • prevention of intermediate fragmentation of datagrams
    • built-in security for authentication and encryption
    • IPng Datagram
      The IPng header layout
      Version Number Priority Flow Label
      Payload Length Next Header Hop Limit
      Sending IP Address
      Destination IP Address
      1. Priority Classification [congestion-controlled vs. noncongestion controlled]
      2. Flow Label [24 bits - used to improve routing]
      3. Payload Length [16-bit = total length of IP datagram]
      4. Next Header [indicates which header follows the IP header]
      5. Hop Limit [determines number of hops the datagram can travel]
    • 128-bit IP Address
      • unicast - identifies the particular machine's interface (i.e. IP or NetBEUI)
      • multicast - enables all machines in a group to receive the same packet
      • anycast - identifies a group of interfaces on a single multicast address
    • IP Extension Headers [additional headers tacked onto the IP header]
      1. Hop-by-Hop Headers [provides IP options to every machine the datagram passes through]
      2. Routing Headers [used to control the routing of a datagram]
      3. Fragment Headers [enables a machine to fragment a datagram into smaller parts]
      4. Authentication Headers [[used to ensure that no alteration was made to the contents of a datagram and that the datagram originated at the machine shown in the IP header]
    1. rfc1674 - A Cellular Industry View of IPng
    2. Simple Internet Transition Mechanisms
    3. IP Next Generation Overview

  4. Internet Protocol Support in Different Environments
    • MS-DOS & Windows 3.11:
      1. FTP Software's PC/TCP [supports Packet Driver, ASI, ODI, NDIS] [covers all 7 layers of the OSI model]
      2. NetManage's Chameleon TCP/IP for Windows [complete packet including telnet & ftp]
    • Microsoft Windows '95: TCP/IP drivers are included, but need to be installed
    • Windows NT: includes most components of TCP/IP
    • OS/2
    • Macintosh: requires add-on
    • DEC: VMS or UNIX
    • IBM's SNA: requires TCP/IP for MVS or VM
    • Local Area Networks (need to replace the network and transport layers with TCP/IP and interface with Packet Driver, ODI or NDIS]

To Previous Chapter To Table of Contents To top of page To Next Chapter