Comp 445

Document Sample
Comp 445 Powered By Docstoc
					Internet Protocol
   The Internet
    • A WAN consisting of many Networks

    • Started in late 1960s when the Advanced Research Project
      Agency (ARPA), a part of the U.S. Department of Defense
      began funding universities and private organizations for
      developing communication systems

    • The research led to the creation of the ARPANET network,
      which eventually evolved into the Internet

    • Today, many would find it impossible to live without the
   Networks connected to the Internet runs the TCP
    (Transmission Control Protocol) / IP (Internet
    Protocol) protocols

   TCP is a Transport Layer protocol; IP is a Network
    Layer protocol

   TCP is a connection-oriented protocol

   TCP relies on IP to route packets through the network

   Two communicating ends run TCP, with which connections are
    established (through handshaking) then reliable transfer, data
    flow control, …etc. can be enforced

   The Network Control Protocol (NCP) was TCP’s predecessor in
    the original ARPANET, which was reasonably reliable

   When the ARPANET evolved to the Internet, reliability was lost

   Consequently, TCP replaced NCP to allow running over
    unreliable networks

   The User Datagram protocol (UDP) is a Layer 4
    alternative to TCP
   In contrast, UDP is a connectionless protocol

                 Figure 11.1 – Internet Protocols
   TCP provides reliable connection independent of
    underlying network architecture
   IP provides the packet delivery service

           Figure 11.2 – IP Transmitting over Different Networks
   To an Internet user, Internet addresses may look like:

   The form also appears on Internet addresses:

   These textual representations however are not actual
    Internet addresses

   Internet Domain: A collection of sites of a particular
    type, such as com, org, edu, gov, ...etc.
    How this textual addresses map to actual addresses?

   The Internet is a collection of independent networks, each may contain many

   Each computer can then be identified by two things:
     • The network where it belongs
     • Its local address within this network

   These two together define a 32-bit address for that machine

   The address is often written as a sequence of four 8-bit numbers separated by

   For example, is
    But now, which bits represent a network number and which
     represent a local ID?
    This depends on the type of address; IP recognizes several
     classification of Internet addresses depending on the size of the
     organization’s network
classification   byte1         byte2              byte3          byte4            # of NWs      max nodes

Class A          0nnnnnnn      xxxxxxxx           xxxxxxxx       xxxxxxxx         27            224
                                                                                  (127)         (>16 million)

Class B          10nnnnnn      nnnnnnnn           xxxxxxxx       xxxxxxxx         214           216
                                                                                  (16,364)      (65,536)

Class C          110nnnnn      nnnnnnnn           nnnnnnnn       xxxxxxxx         221           28
                                                                                  (2,097,152)   (256)

Class D          1110 followed by a 28-bit multicast address
Class E          1111; reserved
n’s represent bits in the network number; x’s represent bits in the local identifier

   Example:
     Which class does belong (assume IP address: Which class does belong (Assume
      IP address:

 is, which is
    10000100.11001101.00000111.00111111 which is class B

 has address:, which is
    So it is class C

   The older version of IP, IPv4, has address depletion problem

   Internet addresses are 32-bit, so there is only finite number of

   232 ≈ 4.3 billion; isn’t that enough?

   What if an organization has 1000 computers?

   Two solutions exist:
    • Use more bits for addresses (more than 32)
    • Use Classless InterDomain Routing (CIDR)

   Specifies a group of addresses that do not fall into any
    of the predefined classes

   Each address in the group can still be interpreted as a
    network number followed by a local identifier

   Commonly used to allocate multiple class C addresses

   For example, if a network has 1000 computers, CIDR
    allocates 4 consecutive Class C addresses to that

   Example:

Class C        Bit representation   Address range    1101011-11000011- to
               00001000-xxxxxxxx    1101011-11000011- to
               00001001-xxxxxxxx   1101011-11000011- to
               00001010-xxxxxxxx   1101011-11000011- to

   Further, a router can extract the network number (in
    this case it is, which is the 1st address of
    this network

   This can be done via logical AND operation between a
    32-bit subnet mask ( and an IP address

IP Address               1101011-11000011-000010xx-xxxxxxxx

AND with subnet mask     11111111-11111111-11111100-00000000
Network number           1101011-11000011-00001000-00000000
                         (which is,
   In effect, CIDR groups several smaller networks together and
    visualize them as a single large network; this is referred to as

   Advantages?

   Yet, there is another issue: each IP packet has the destination IP
    address, where the first 3 bits determine whether this is class A,
    B or C

   The rest of the bits in the address are then extracted to determine
    the network number

   Determining the network number is straight forward when that
    number of bits is fixed

   With CIDR, this is not the case

   The router must know the number of network bits

   To allow that, the usual representation of an address (w.x.y.z) is
    replaced by (w.x.y.z/m), where m is the number of bits in the
    network ID

   For the previous example, that will be:, which
    means that the network number has 22 bits long

   A computer connected to a company network, or
    connected to an ISP, will get an IP address assigned

   The machine may have a static IP address, or it may
    dynamically require an IP address from the server

   The server runs a protocol called Dynamic Host
    Configuration Protocol (DHCP), which allocates the
    machine one of the available IP addresses it maintains

   Try ipconfig command

   Prior to 1999, all network addresses were managed by
    IANA, Internet Assigned Numbers Authority

   In 1999, the Internet Corporation for Assigned Names
    and Numbers (ICANN) assumed that responsibility
    and others related to Domain Name System (DNS)

   After all, isn’t IP addresses are hard to memorize?!

   Use textual addresses instead of IP addresses to access a

   DNS is a distributed database that enables the maping between
    the textual and IP names

   Why DNS is not centralized?

   DNS is distributed among a collection of DNS servers, which
    are scattered around the Internet

   Try nslookup command in Unix
   To facilitate the lookup process, servers are organized
    into zones

   A request for an textual name escalates, may go down,
    until the IP address is found (or the process fails)

                   Figure 11.3 – DNS Hierarchy
   Example
     • What happens if try to access, where pc1 is an
       existing machine

   Once an IP address of a textual address is found, the involved servers in the
    lookup process will keep this information in their cache so a next request is
    processed faster

        Figure 11.4 – Zones in
            DNS Hierarchy

   Based on routing tables

   There is a distinction between physical addresses and IP

   For example, an e-mail to is translated into 32-
    bit dotted IP address

   The IP address is the unique address of the computer

   The physical address is the one used by the underlying network
   For example, a device connected to an Ethernet would
    sense an Ethernet address on the segment to know
    which packet is destined for it

   However, this Ethernet address is a 48-bit address that
    has no significance on a global IP scale

   So, how can the device then recognize a packet
    containing an IP address?

   How the router determines the physical address from the IP
    address when the packet is embedded into a LAN frame

   When the router receives an IP packet, there are two
    • The packet’s destination machine is in a network where the router is
      attached, or
    • It is not

   If the destination machine belongs to the same network, then the
    router can directly send the packet to the destination; that is
    called Direct Routing

   The router will know that since the network part of the IP
    address is the same as its own network part

   But still, how the router can determine the physical address from
    the IP address?

   One approach is the Dynamic Binding, also called Address
    Resolution Protocol

   The router transmits a broadcast request to all devices in the
    LAN, specifying the IP address

   The device with the specified IP responds with its physical

   The router can then sends the packet to the proper device; it also
    stores this information on a local cache for future requests

   What if the destination is not directly reachable
    through one of the router’s networks?

   The router then uses hierarchical routing, as discussed
    in previous lectures, to determine another router to
    send the packet to

   The packet will then travel from one router to another
    until it reaches a router connected through the same
    network to the destination machine

   Example

Figure 11.7 –
  IP Routing

       Try traceroute command in Unix, or tracert on

Figure 11.8 – Router Function
    Address lookup must occur very quickly. Why?

   Any search method can be used, but some of them are too slow for many
    routers to function fast enough

   Content Addressable Memory, a hash structure, is probably the fastest

   Instead of searching, use a hash function to calculate the next hop from the

    Figure 11.9 – HASH
    Function to Update
       Routing Tables

   Moving the packet from the input port to the output port can
    utilize the bus transport system approach, however this could be
    too slow. Why?

   Another approach is to use shared memory; where multiple
    processors are capable of accessing at the same time

   Once the next hop is known, the input port processor places the
    packet on the queue (just a part of that shared memory) of the
    output port

   Another approach is to create a hardware switch that connects
    each input port with each of the output ports

                   Figure 11.10 – Switch-based Router
   What if many input port need to send to a single output port?

   Scheduling is needed; first-in-first-out is simple but it may not
    guarantee the required QoS

   For example, compare file transfer application to a video
    streaming one; the expected QoS is not the same

   A priority queue may be used instead of a simple FIFO queue

   One multicast address, class D address, defines a set of
    destination in contrast to a single one

                    Figure 11.11 – Multicasting Video
   The Internet Group Management Protocol (IGMP) is used to
    enable a host to join or leave the multicast group

   Multicast information must be delivered to all routers in the

   Routers must implement some type of multicasting routing

   Not all routers in the network may need to be involved in a
    multicast communication

   Which routers in the network need to be involved in a multicast
    communication involving all the shown machines?

               Figure 11.12 – Routers Involved in Multicasting
   What routers need to do when they receive a multicast packet?
   If a minimal tree is created that connects all hosts in the
    communication, then the answer is simple!

       Figure 11.13 – Possible Multicast Trees for the Network in Figure 11.12
   A multicast tree can be created to connect all involved hosts, or

   A multicast tree can be created to connect each source in a group
    to all the rest

   Regardless of either one to choose, creation of multicast trees,
    especially for a large number of involved nodes, is not that easy

   That is why the majority of IP routers do NOT support

   Those routers that support multicasting make up the Mbone, a
    network within the Internet that supports class D address routing

               M Distance Vector Multicast Routing Protocol
    Mbone utilizes the
    (DVMRP), which has several components

   One such component is the Reverse-Path Broadcasting (RPB)

   RPB allows the packets to be broadcast while eliminating the
    potential loop problems that broadcasting might cause

   RPB assumes that a router knows the next link along the shortest
    path to a given node

   When a packet is received at port, the source is looked at. If
    packets from that source are expected at that port (from a
    previous hop), then broadcast the packet to all other ports;
    otherwise drop it
   The idea of RPB is to forward the packet away from
    the direction of the source; doing that in all routers
    eliminates loops

          Figure 11.14 – Router Executing Reverse Broadcast Protocol
    RPB by itself would not work for multicasting since not all paths may have
    hosts that belong to the multicast group

   Another component in DVMRP is a pruning algorithm, which limits when a
    router forwards a message, hence eliminating the improper branches

   When a router receives a multicast packet but it has no hosts that listening to
    that address, it send a prune message to the originating router in which the
    packet came from

   When the originating router receives the prune message, it stops multicasting
    in that direction

   If later the router needs to receive these multicast packets, it must send a a
    Graft message to the originating router


    Figure 11.15 – Pruning
   Transport layer provides the “connection” the user
    perceives; the connection is a logical connection

   Transport layer provides that perception by acting as an
    interface between the user and the network protocols

   Transport protocols are either connection-oriented or

   Some transport layer functions include:
    • Connection management: defines the rules that allow two
      users to start talking; handshaking may be performed to
      setup the connection

    • Flow Control

    • Error detection: not all errors are detected at the lower
      layers; different errors are possible

    • Response to users’ request: for example, user may request
      high throughput, low delays, reliable services, …etc.
   Connection-oriented protocol that provides user-to-
    user byte stream service

   It defines a logical connection between two sites and
    then transmits a byte stream sequence between them

   The byte stream is divided into a sequence of segments
    that is then sent using a variation of a sliding window
    flow control protocol

   Initial connection is initiated via handshaking

   TCP is reliable; even if the network below it is

               Figure 11.25 – TCP as a User-to-User Service
   Connection management is the process of establishing,
    maintaining and disconnecting connections

   A connection here is more virtual than physical

   First establish the connection, then exchange the
    needed parameters for the connection such as sequence
    numbers used, the number of bytes an entity can
    receive, ..etc.

     Establishing a connection may seem easy; one end
      request a connection, the other end accepts; that is two-
      way handshaking

  Figure 11.27 –
 Failure of 2-way
Handshake Protocol

   TCP divides the message (stream of bytes) into

                   Figure 11.26 – TCP Segment
   TCP uses three-way handshaking instead

              Figure 11.28 – 3-way Handshake Protocol
   TCP provides full-duplex communication; so one
    entity waiting to disconnect does not mean the other is
    ready to disconnect

   That is, the two parties must agree to disconnect

   The protocol again uses three-way handshaking to

Figure 11.29 – TCP Disconnect Protocol
   TCP entities buffer sent segments since there is no
    guarantee that they will correctly be received

   The received segments are also buffered since there is
    no guarantee that they arrive in sequence

   Effectively, the entities use a variation of the sliding
    window protocol with the following differences:
    • In TCP flow control, the sequence number refers to byte
      sequences instead of packet (or segment) sequence
    • Either entity can dynamically alter the size of the other’s
      sending window

   Each entity implements flow control using a credit mechanism,
    also called a window advertisement

    A credit specifies the maximum number of bytes that the entity
    can receive and buffer from the other entity

   The credit is in addition to those that have already been received
    and buffered, but not yet delivered

   Upon receiving this information, the entity can determine how
    many bytes it can still send before it must wait for Acks.

Figure 11.30 – Flow Control Using a Credit Mechanism
   Connectionless transport layer protocol

   Does not guarantee reliable delivery of data

   No handshake to establish/terminate connections

   Just construct what to be send and give it to IP for delivery

   If received data is okay, deliver it; otherwise discard it

   No formal mechanism for acknowledging errors or for flow
   Why then use UDP?