Docstoc

ccn - Wordpress Wordpress

Document Sample
ccn - Wordpress Wordpress Powered By Docstoc
					Computer Communication Networks



            7A and 7B
             PESSE
          Instructor: Hari
                     Books
   Textbook: Data Communications and
    Networking (B. Forouzan)‫‏‬
   Reference: Computer Networks (J.F. Kurose,
    K.W. Ross)‫‏‬
   Reference: Introduction to Data Communication
    and Networking (W. Tomasi)‫‏‬
                        Introduction
   Some terms related to networking:
   Network, Telecommunication, Data communication, Jitter in
    transmission, Data representation, Simplex, Half-duplex,
    Full-duplex transmission

   Network topology (mesh, star, bus, ring, hybrid)‫‏‬

   Categories of networks: LAN (Local Area Network), WAN
    (Wide Area Network), MAN (Metropolitan Area Network),
    wireless sensor networks, RAN (Radio Area Network –
    connects between UE and core network), VPN (Virtual
    Private Network)‫‏‬

   internet: when 2 or more networks are connected together
                History of the Internet
   History of the internet: see
    http://en.wikipedia.org/wiki/History_of_the_Internet


   1960s: Email, Telnet
   1971: FTP
   1979: Usenet
   1983: Internet, based on TCP/IP protocol suite
   1988: IRC
   1992: WWW
   1993: Blog
   1994: Yahoo! Web directory
   1995: Wikis were developed
   1998: Google
   2001: Wikipedia
   2004: Facebook
   2005: Youtube
   2006: Twitter
                  The Syllabus
   Networking models (OSI and TCP/IP), various
    types of transmission media
   Data link control: Ensuring that data is reliably
    sent across physical channels
   Multiple Access: Controlling simultaneous
    access to the medium
   IEEE Standards for wired and wireless LANs
   Connecting LANs together
   Network layer and addressing
                 Layered Tasks
   The task of a communication network is to
    transmit data from one point to another
   Although the entire process could be
    implemented in hardware, this would become
    very complex and tedious
   Hence there is a division of tasks into different
    software‫“‏‬layers”,‫‏‬with‫‏‬each‫‏‬layer‫‏‬using‫‏‬the‫‏‬
    services of the other layers
                Layered Tasks
   Layering is common even in application
    software on computers.
   For example, the layers might be Application,
    Operating System (OS), Basic Input Output
    System (BIOS), and computer hardware
   The Application uses the services of the OS, the
    OS uses the services of the BIOS, and the BIOS
    controls the system hardware
   Layering can be seen even in conventional
Layered Tasks: The Postal System
                   OSI model
   A layered architecture for data communication
    over networks
   Never really became popular, because TCP/IP
    overtook it
   Called‫“‏‬International‫‏‬Standards‫‏‬Organisation‫‏‬
    Open Systems Interconnection (ISO OSI)
    model”
   Allows complete interoperability between
          Layers of the OSI model
   Application
   Presentation
   Session
   Transport
   Network
   Data link
   Physical
                How OSI Works
   Each‫‏‬layer‫‏‬provides‫‏‬some‫“‏‬services”‫(‏‬routines)‫‏‬
   On a single node (computer), each layer uses
    the services of the layer below it; there is an
    interface between adjacent layers
   Communication across nodes can be effected at
    the‫‏‬same‫‏‬layer;‫‏‬this‫‏‬is‫‏‬called‫‏‬a‫“‏‬peer-to-peer
    process”‫(‏‬peer‫‏‬means‫‏‬having‫‏‬the‫‏‬same‫‏‬rank‫‏‬in‫‏‬
    the hierarchy of layers)‫‏‬
                    How OSI Works
   To actually transmit data, the data must be propagated all the
    way down the stack of layers onto the physical medium
              OSI: Physical Layer
   Physical Layer deals with mechanical and
    electrical specifications of the interface and
    transmission medium
   Also defines the procedures and functions that
    physical devices and interfaces have to perform
    for transmission to occur
   Defines encodings of bits into waveforms
    suitable for transmission onto the channel
   Other functions: Data rate setting, bit-
    synchronization, network topology, transmission
             OSI: Data Link Layer
   The physical layer is a raw communication
    facility. The Data Link Layer transforms this into
    a reliable communication link that appears error
    free to the higher layers
               OSI: Data Link Layer
   Framing: division of higher layer data into frames
    suitable for transmission by the physical medium
   Physical Addressing: to correctly differentiate between
    destinations on the network, a header is added to the
    frame

   Flow Control: To ensure that data buffers don't
    overflow

   Error control: Retransmission of lost or damaged
    frames; addition of an error-control trailer to the frame

   Access Control: This is also called Medium Access
               OSI: Network Layer
   Data link layer: responsible for data
    transmission from source to destination within
    the same network
   Network layer: responsible for end-to-end
    delivery across possibly multiple interconnected
    networks
   Internetworks: networks of networks
   Handles logical addressing (like the IP address)‫‏‬
   Handles routing across the network
             OSI: Transport Layer
   Network layer oversees source-to-destination
    delivery of individual packets
   The transport layer applies higher-level error
    control and flow control to reassemble the
    packets in the correct order into the original
    message. Ensures process-to-process delivery
    of entire message
   Other functions: service point (port) addressing,
    segmentation and reassembly, connection
              OSI: Session Layer
   Dialog control: allows 2 systems to enter into a
    dialog, allows communication to take place in
    either half or full duplex mode
   Synchronization: Allows addition of
    synchronization points to a data stream.
          OSI: Presentation Layer
   “Presentation”‫‏‬of‫‏‬data
   Translation: of one machine's hardware data
    format to another machine's hardware data
    format (e.g. Big-Endian to Little-Endian number
    representation)‫‏‬
   Encryption
   Data compression
            OSI: Application Layer
   Enables the user (human or software) to access
    network services.
   Applications: email, chat, file transfer, web
    browsing, etc
            TCP/IP Protocol Suite
   Layers in the TCP/IP protocol suite do not
    exactly match the OSI model (TCP/IP was
    developed before OSI)‫‏‬
   5 layers may be assumed: Physical, Data Link,
    Network, Transport, Application
   Application = Application + Presentation +
    Session of the OSI model
     Comparison of TCP/IP and OSI
               models
   Application + Presentation + Session =
    Application (SMTP, FTP, HTTP, DNS, SNMP,
    TELNET)‫‏‬
   Transport = SCTP, TCP, UDP
   Network = IP, ICMP, IGMP, RARP, ARP
   Data Link + Physical = Protocols defined by the
    underlying networks
   See Figure on page 43 of Furuozan
     TCP/IP: Physical and Data Link
                Layers
   No specific protocol defined at this level by
    TCP/IP
   Supports all standard and proprietary protocols
    (like IEEE 802.1, 802.11)‫‏‬
                TCP/IP: Network Layer
   At the network layer, TCP/IP supports IP:
    Internetworking protocol. IP depends on ARP,
    RARP, ICMP, IGMP
   IP: Internetworking Protocol

        A‫“‏‬bare-bones”‫‏‬unreliable‫‏‬and‫‏‬connectionless‫‏‬protocol‫‏‬that‫‏‬
         provides necessary infrastructure for the higher layers

        Data is sent in packets called datagrams

        Datagrams may travel along different routes and arrive out of
         sequence or be duplicated

        IP cannot reorder datagrams and recombine into data once the
         datagrams have been received

        Is a host-to-host protocol – delivers from one physical device to
       TCP/IP: Address Resolution
                Protocol
   Every node on a network has a physical
    address
   Nodes on a network also have logical
    addresses i.e. IP addresses that may change
   A lookup needs to be performed to find out the
    physical or hardware address in a network (eg.
    a LAN) corresponding to a given logical or
    internet address.
                 TCP/IP: RARP
   Reverse ARP
   Enables a node to determine its logical address
    given its physical address.
   Application: when a node is newly added to a
    network, it sends a RARP request to determine
    its logical address
                 TCP/IP: ICMP
   ICMP = Internet Control Message Protocol
   Chiefly used by the operating systems of
    networked computers to send error messages
   Not used to send data between computers
   Not usually used in applications; exceptions are
    Ping and TraceRoute (try these!)‫‏‬
                          TraceRoute output
   hari@hari-laptop:~$ traceroute www.google.com

   traceroute to www.google.com (209.85.231.104), 30 hops max, 40 byte packets

   1 192.168.1.1 (192.168.1.1) 1.561 ms 2.110 ms 2.645 ms

   2 117.192.224.1 (117.192.224.1) 243.950 ms 245.212 ms 248.918 ms

   3 218.248.160.234 (218.248.160.234) 251.153 ms 252.183 ms *

   4 ***

   5 ***

   6 * * 59.163.25.242.static.vsnl.net.in (59.163.25.242) 94.500 ms

   7 121.240.0.5.static-Mumbai.vsnl.net.in (121.240.0.5) 485.301 ms 487.769 ms 490.202 ms

   8 216.239.43.214 (216.239.43.214) 492.746 ms 495.336 ms 497.729 ms

   9 72.14.232.93 (72.14.232.93) 502.103 ms 209.85.241.52 (209.85.241.52) 519.332 ms 72.14.232.93
    (72.14.232.93) 507.087 ms

   10 72.14.238.74 (72.14.238.74) 531.687 ms 66.249.94.90 (66.249.94.90) 510.220 ms 72.14.238.74
    (72.14.238.74) 532.143 ms
                 TCP/IP: IGMP
   IGMP = Internet Group Messaging Protocol
   A mechanism for multicast (the simultaneous
    transmission of data to a group of recipients)‫‏‬
   What kind of applications would require
    multicast?
    TCP/IP: Transport Level Protocols
   UDP: User Datagram Protocol
        Process-to-process protocol
        Adds port address, checksum error control and
         length information to data from upper layer

   TCP: Transmission Control Protocol
        Is‫‏‬a‫“‏‬stream”‫‏‬transport‫‏‬protocol.‫‏‬This‫‏‬means‫‏‬that‫‏‬a‫‏‬
         connection must be established between both ends
         of a transmission before either can transmit data
        TCP segments data at the transmitting end
         TCP/IP: Application Layer
   TCP/IP Application Layer = OSI Session +
    Presentation + Application
   Sample applications: SMTP (Simple Mail
    Transfer Protocol), FTP (File Transfer Protocol),
    HTTP (Hypertext Transfer Protocol), DNS
    (Domain Name System), SNMP (Simple
    Network Management Protocol), TELNET
                 TCP/IP: Addressing
   Four levels of addressing: Physical, Logical,
    Port and specific address
   Why the need for a hierarchy of addressing?
   Physical address: the address of the node in its
    LAN or WAN; included in the frame at the data
    link layer
   Logical address: a universal addressing system.
    Called the IP address.
              TCP/IP: Addressing
   Port Address: Once data arrives on a particular
    node, it must be routed to the correct
    application, or process. This is effected using
    the port address. Eg. Port address for HTTP
    transactions is 80.
   Specific addressing: User-friendly address
    formats used by applications; these are
    converted to the lower level formats as required
       Eg: yourname@gmail.com
    Telephone and Cable Networks for
           Data Transmission
   Telephone networks: for voice communication
   Digital data: transferred over telephone lines
    using dial-up MODEMs (Modulator-
    Demodulator)‫‏‬
   DSL: Digital Subscriber Line, a service provided
    for access to the Internet through telephone
    lines. Is much faster than dialup modems
   Cable networks: used for providing TV signals
                Telephone networks
   Telephone network: invented in 1800s
   Called POTS: Plain Old Telephone System
   POTS was originally all-analog, but is now
    mixed digital and analog
   Components: Local loops, Trunks, Switching
    offices (end offices, tandem offices, regional
    offices)‫‏‬
   Local loop: a twisted pair cable that connects
             Telephone networks
   Trunks: Transmission media that handle the
    communication between offices. Many
    connections are handled (hundreds to
    thousands)‫‏‬
   Switching office: To avoid having a permanent
    physical link between subscribers, switches are
    needed to set up the connection. This is done in
    the switching office. A switch connects several
    local loops or trunks and allows a connection
     Telephone networks: Signalling
   Signalling: The use of signals for controlling
    communication; the information exchange
    concerning the establishment and control of a
    telecommunication circuit and the management
    of the network
   In-band signalling: Use of voice bandwidth for
    signalling. Eg: Rotary dialling, DTMF
   Out-of-band signalling: The voice bandwidth
    and signalling bandwidth are separate (eg SS7)‫‏‬
     Telephone networks: Signalling
   Signalling system: provides dial tone, maintains
    and monitors call, keeps billing information,
    caller ID, voice mail, etc
   Signalling System 7: Out of band system
    (avoids security problems of SS5, which used
    in-band multifrequency signalling)‫‏‬
   SS7 is a layered protocol (5 layers). An example
    of‫‏‬the‫‏‬physical‫‏‬layer‫‏‬is‫“‏‬T1”‫ 445.1(‏‬Mbps)
    carrier. T1: (24 channels/frame * 8
                    Dialup modem
   Traditional telephone line frequency range: 300-3300 Hz

   Baud rate: number of symbols per second transferred

   Modem: Modulator + Demodulator. Modulator: conversion
    of binary data to modulated waveforms. Demodulator:
    Conversion of Waveforms to binary data.

   Modem standards: V32 (Trellis coded modulation) 32
    QAM, of which 1 bit is error correcting. So 4
    bits/symbol*2400 baud =9600 bps

   Also: V32bis, V34bis,V90, V92
                                  DSL
   Digital Subscriber Line – supports high speed data communication
    over local loops

   ADSL: Asymmetric DSL (Asymmetric means unequal upstream and
    downstream rates, ~ .5 Mbps and 8Mbps). Existing local loops can
    actually handle upto 1.1 Mhz, but are filtered to 4 kHz at the end office
    (why?). This filter is removed for ADSL

   ADSL is adaptive: actual data rate depends on condition of local loop
    line

   ADSL Modulation: DMT (Discrete Multitone Technique) = QAM +
    FDM. Here, the total bandwidth of 1.1 Mhz is divided into 256
    channels or bins of 4.3125 kHz (FDM). Based on the SNR for each
    channel, the data rate is set on a channel by channel basis – some of
    the carriers are deleted in the bins where noise is large

   ADSL uses interleaving of Datalink frames; QAM is the modulation
                             HDSL
   HDSL, SDSL, VDSL

   HDSL: High bit rate DSL. T1 uses AMI (Alternate Mark
    Inversion) coding; this is susceptible to attenuation at high
    frequencies. HDSL uses 2B1Q encoding to achieve greater
    repeater distance at 1.544 Mbps. T1 line ~ 1km. HDSL line
    ~ 3.86 km. Two twisted pairs used for full-duplex
    transmission (2B1Q).

   SDSL: Symmetric Digital Subscriber Line. Symmetric
    means same data rate in both directions (768 kbps in each
    direction). Is HDSL with one twisted pair cable, but still
    supports full duplex. (2B1Q).

   VDSL: Very high bit rate DSL; uses coaxial, fiber-optic or
      Cable TV for data transmission
   DSL: uses existing unshielded twisted pair cable,
    susceptible to noise. So we use cable TV (a coaxial system
    from end to end)‫‏‬

   Hybrid Fiber-Coaxial N/w used: Fiber from Regional Cable
    Head (RCH) to fiber node; coaxial cable through the
    neighbourhood

   RCH: serves up to 400,000 subscribers

   Communication in the traditional cable network is
    unidirectional. But we make this bidirectional by using
    bidirectional amplifiers

   Bandwidth: 5 to 750 Mhz. Divided into video, upstream and
      Cable TV for data transmission
   Downstream: 64 QAM modulation, ~30 Mbps

   Upstream: QPSK modulation, ~12 Mbps

   Sharing of bandwidth needs to be done both upstream and
    downstream.

   Read up on cable nws from page 257 (assignment)‫‏‬
            Unit 2: Data Link Control
   Data link layer has 2 main functions:
       Data link control (handles adjacent node-to-node
        communication (WAN) or communication within the
        same network segment (LAN))‫‏‬
       Medium access control (how to share the data link)‫‏‬
       Data link control: framing, flow and error control
                      Framing
   Physical layer functions: mechanical & electrical
    specifications, modulation or encoding scheme,
    data rate setting, synchronization, topology,
    transmission mode (simplex, half- or full-duplex)‫‏‬
   Most important functions: modulation scheme,
    synchronization
   Physical layer: gets bits across the channel
   Data link layer: packs bits into frames suitable
    for transport across the medium
                     Framing
   Framing: in the postal system, in the form of an
    envelope
   Framing: other examples of framing. Written
    text?
   Framing in the data link layer: a source address
    and a destination address are added. Why is
    the source address needed?
   Basic reason for framing: error in a frame
                             Framing
   Types of framing: Fixed-size and variable size

   Fixed-size framing: ATM WAN

   Variable sized framing: frame size needs to be specified

        Character-oriented protocol: special characters are present
         at the beginning and end of the frame. Drawback: This is OK
         for text applications, but not OK when a general stream of
         binary data is used, because the marker may show up as
         data. To guard against this, an escape character is used to
         signify that the next character (possibly marker) in the frame
         is actually data (byte stuffing). The escape character is
         removed from the payload. To represent Esc character in
         data, Esc Esc is used in the frame. This prevents big messup
                              Framing
   Variable-Size framing
       Bit-oriented protocol: Zero-bit insertion
            First used in IBM's SDLC (later called HDLC). Also used
             in USB to prevent transmission of too many 1s.
            Now we work with the actual bitstream rather than a
             stream of characters.
            The pattern 01111110 is used at the beginning and end
             of the frame
            If 011111 is encountered in the data, mindlessly insert 0
            So: 0111111 --> 01111101
            0111110-->01111100, so that receiver can distinguish
               Flow and Error Control
   Flow control + Error control = Data link control

   Flow control

        The flow of data must not be allowed to overwhelm the
         receiver. How is it possible for the receiver to be
         overwhelmed? (Limited processing speed, limited buffers)‫‏‬
        How much data to send before waiting for an
         acknowledgement?
        If too much data: please send fewer frames or stop
        Flow control: a set of procedures used to restrict the amount
         of data that the sender can send before waiting for ACK.
         (Remember, network congestion and congestion control are
               Flow and Error Control
   Error control
        Error control = error detection + error correction
        If error, please retransmit frame: this is called ARQ
         (Automatic Repeat Request)‫‏‬
    Flow and Error Control Protocols
   Remember: The data-link layer is bidirectional.
    Efficiency‫‏‬is‫‏‬improved‫‏‬by‫“‏‬piggybacking”‫‏‬ACKs‫‏‬
    onto dataframes in real-world protocols.
   Noiseless Channels: no frames are lost,
    duplicated or corrupted. No need for error
    control for this (theoretical) channel
   “Simplest‫‏‬protocol”
        Receiver has infinite processing speed, so no need
         of flow control
        Protocols: Simplest protocol
   Network layer sends data to data link layer at
    sender
   Data link layer makes a frame and sends it
   Data link layer at receiver receives a frame,
    extracts data and provides to network layer
   Both sender and receiver processes are event
    driven at the data link layer. This means they
    continuously wait for data to arrive from the
       Protocols: Stop and wait (for
           noiseless channels)‫‏‬
   Incorporates flow control
   Receiver may be overwhelmed if data frames
    arrive at the receiver (possibly from multiple
    sources) faster than they can be processed
   Transmission is still event-driven (from the
    network layer), but an additional Boolean flag is
    checked. The Boolean flag is true only if the last
    ACK arrived and we are clear to send.
           Protocols: Noisy channels
   Errors now occur. Either ignore errors, or use
    error control
   Stop and Wait Automatic Repeat Request
    (ARQ):
       Redundancy bits are added at the transmitter side
        to the data frame
       These redundancy bits can help detect errors
       If an error is detected in a frame, the receiver
        discards the frame and does not send ACK
       Lost frames: cause received frames to be out of
     Noisy Channels: Stop and Wait
                ARQ
   No ACK: Receiver retransmits
   ACKs also contain redundancy bits for error
    detection
   ACKs‫‏‬also‫‏‬contain‫“‏‬sequence‫‏‬number”‫‏‬field‫‏‬for‫‏‬
    tracking which frame the ACK corresponds to
   Sequence number frame also added to
    transmitted data. This detects lost frames at the
    receiver. Remember, the data link layer expects
         Choosing Sequence Numbers
   3 possibilities:

        Frame x arrives safe and sound; ACK transmitted by
         receiver; Transmitter sends next frame, numbered x+1
        Frame x arrives safe and sound; ACK transmitted by
         receiver; ACK lost on channel. Transmitter times out
         and sends frame x again
        Frame x never arrives at receiver. Transmitter times out,
         sends x again.
        So only 2 consecutive frame numbers need to be
         tracked at the receiver. Hence we use 1 bit, alternately 1
         and 0, to represent the sequence number
     Stop and Wait ARQ: Sequence
               Numbers
   Suppose 2 duplicate sequence number frames
    arrive at the receiver. An ACK is still sent. Why?
    (Because receiver reasons that previous ACK
    may have been lost).
   Stop and Wait ARQ is an inefficient use of the
    channel (Why? Because no pipelining)‫‏‬
   A problem about Stop and Wait ARQ:
    Bandwidth = 1 Mbps, 1 bit takes 20 ms for a
    round trip. If the system data frames are 1000
    bits, what is the utilization percentage of the
              Stop and Wait ARQ
   Bandwidth: The supported data rate (in Mbps)‫‏‬
   Delay: the round trip time of a bit
   Bandwidth-delay product: How much data is in
    the channel in a given time-slice (delay time)‫‏‬
   If we send many frames before waiting for an
    acknowledgement, the channel utilization goes
    up (eg send 15 frames, then wait for ACK)‫‏‬
          Sliding window protocols
   Sliding window protocols are a feature of packet-based
    data transmission protocols. They are used when reliable
    in-order delivery of packets are required, such as in the
    datalink layer (frames) and TCP layer (packets) of the
    protocol stack.

   Why do we use sliding windows: We add a sequence
    number to the frame/packet. Now the sequence number
    increases unboundedly as the amount of data sent
    increases. We use sliding windows to limit the range of the
    sequence numbers dealt with. So with sliding windows an
    unlimited number of frames (packets) can be transmitted
    using fixed-size sequence numbers.
       Go Back N Automatic Repeat
                Request
   Several data frames can be in transition while waiting for
    acknowledgements. (why? In order to keep the channel
    busy while waiting for an acknowledgement)‫‏‬

   Sender needs to keep copies of several transmitted frames
    in case it needs to retransmit. (why? Because suppose 10
    frames are transmitted at one go and the 5th is dropped.
    Sender comes to know about this only after the 10th frame
    has been sent. So needs to be able to retransmit in a
    larger range)‫‏‬

   Sliding windows: Each frame(datalink)/packet(transport) is
    assigned a sequence number to track its position in the
    stream. As data flows, the sequence number increases.
    Go-Back-N ARQ: Sliding windows
   To allow to transmit an unlimited amount of
    data, with a fixed-size sequence number, a
    “sliding‫‏‬window”‫‏‬is‫‏‬used‫‏‬to‫‏‬limit‫‏‬the‫‏‬frames‫‏‬in‫‏‬
    transit at any time.
   Sliding window: tracks the range of sequence
    numbers that are of concern to the transmitter
    and receiver.
Sliding Windows in Go-Back-N ARQ
   At the tx: the sliding window tracks which frames have been
    ACKnowledged, which frames have been sent but not
    ACKnowledged, which frames are yet to arrive from the network layer,
    and which frames cannot be sent in the current window (see fig on
    page 325)‫‏‬

   Send window size N: The sender must not transmit too fast. N should
    be bounded by receivers ability to process frames. N must be smaller
    than the number of sequence numbers so that retransmission is
    unambiguous. N should hopefully be large enough so that amount of
    data txed at one time exceeds the bandwidth-delay product, to ensure
    optimal channel utilization.

   Send window slides to the right when ACK arrives; can slide by more
    than one slot.

   Receive window: of size 1, since the receiver receives one at a time
Sliding Windows in Go-Back-N ARQ
   Receive window divides the frame sequence numbers like
    this: Frames already received + Next frame expected +
    Frames that cannot be received yet

   Slides to the right by 1 when the correct frame has arrived

   Timers: In Stop and Wait ARQ, there was a retransmission
    timer for every frame. Here, there is a timer attached to
    every sent frame, but if one expires, all outstanding frames
    are resent. Why? Because receiver has a window only of
    size 1, cannot store and reorder frames. Hence all
    outstanding frames (from the dropped frame onwards)
    must be retransmitted.
                Go-Back-N ARQ
   ACKnowledgements: Sent by receiver only if the
    correct frame is received. No ACK if the frame is
    damaged or out of order.
   Resending a frame: since many queued frames
    are retransmitted in the case of a timeout, this
    protocol‫‏‬is‫‏‬called‫“‏‬Go‫‏‬Back‫‏‬N”.
   For sliding-window protocols to utilize the
    channel effectively, the amount of data
    transmitted before an ACK is expected must
    exceed the bandwidth-delay product. If not, the
    Go-Back-N ARQ vs Stop and Wait
                ARQ
   Stop and Wait ARQ: send window size = 1
   Stop and wait ARQ: Sequence numbers modulo
    2^m where m=1
   So Stop and Wait ARQ is a special case of Go-
    Back-N ARQ
              Selective Repeat ARQ
   Go-Back-N ARQ: advantages: improves
    channel utilization, no need of reordering out of
    order frames at the receiver, but this is very
    inefficient for a noisy link
   It is not sensible to send multiple frames when
    just one is damaged/lost. However, to
    incorporate this increases receiver complexity
    (why?)‫‏‬
             Selective Repeat ARQ
   Does not retransmit multiple frames. More
    efficient, but more complex receiver.
   Uses 2 windows: send and receive
   Send window maximum size = 2^(m-1) (smaller
    maximum size means less efficiency filling the
    pipe)‫‏‬
   Receive window: also of size 2^(m-1). Receive
    window size is increased so we can store out of
    Selective Repeat ARQ: Receiver
   All frames in the receive window must arrive before
    delivery to the network layer is possible

   2 signals are used by the receiver: ACK and NAK
    (Negative ACKnowledgement – to reject or indicate a
    problem with a previously transmitted message)‫‏‬

   If the received frame is not corrupted and within the receive
    window, we store the frame and mark the slot.

   If contiguous frames starting from Rn have been marked,
    data is delivered to the network layer and the window
    slides to the right. An ACK is delivered in one shot for all
    Selective Repeat ARQ: Receiver
   If the receiver gets an out-of-order frame (i.e. An
    intermediate frame is lost) then it sends NAKn
    where n is the frame number that was lost.
    What happens if the NAK is lost? Then the final
    ACK is never received by the transmitter, which
    is forced to resend all frames.
   Multiple NAKs are not sent for a missing frame.
    This is to conserve bandwidth.
Selective Repeat ARQ: Transmitter
   Sends frames in send window
   Waits for ACK or NAK from receiver
   Each frame has a retransmission timeout
   ACK: Acknowledges multiple frames
   NAK: Indicates which frame was lost at the
    receiver.
   On receiving ACK for everything in the send
    window, the window slides to the right.
     Selective Repeat ARQ: Window
                  Size
   To understand the limitations on the size of the
    windows: Suppose all ACKs are destroyed.
    Then the transmitter times out and retransmits
    everything. However, the receiver window has
    moved by more than 2^(m-1) and hence it is
    possible to see some overlap with the
    transmitter data (which is old, but which the
    receiver thinks is new). This is preventable by
    constraining the receive window size, and
    hence the transmit window size.
                        HDLC
   HDLC = Highlevel Datalink Control
   Bit-oriented protocol for communication over
    point to point and multipoint links
   Implements ARQ
   2 transfer modes provided: NRM (Normal
    Response Mode) and ABM (Asynchronous
    Balanced Mode)‫‏‬
   NRM: A txs, B responds to A's commands/data
                       HDLC
   ABM: The configuration is balanced. Each node
    can function as primary or secondary
   Asynchronous: B doesn't wait for command to
    send its frames.
   ABM: Command/Response piggybacked at A
    and B
                   Framing in HDLC
   3 different types of frames:
        I frames (information frames)‫‏‬
        S frames (supervisory frames)‫‏‬
        U frames (unnumbered frames)‫‏‬

   Frame formats: Flag + Address + Control +
    Information + FCS + Flag
   Flag can be repeated between frames
               Framing in HDLC
   Flag = 01111110
   Address: Destination (primary) or Source
    (secondary) address
   Control field: Used for flow and error control; 1-2
    bytes
   Information field: Contains user data from N/W
    layer or management information (link layer)‫‏‬
   FCS: 2 byte CRC checksum
                       Control Field
   Control Field for I-frames
        Starts‫‏‬with‫‏.”0“‏‬Contains‫‏‬N(S)‫‏=‏‬sequence‫‏‬no‫‏‬of‫‏‬
         frame, N(R) = ACK no when piggybacking is used

   Control Field for S-frames
        S = supervisory
        Used for flow and error control when piggybacking
         not possible (eg when node B runs out of data)‫‏‬
        S‫‏‬frame‫‏‬does‫‏‬not‫‏‬contain‫“‏‬User‫‏‬information”‫‏‬field
        First 2 bits:‫ 2‏.”01“‏‬bit Code + N(R) (ACK no)‫‏‬
                   Control Field
   2 bit code in S-frame: RR, RNR, REJ, SREJ
   RR = Receive ready at B
   RNR = not ready to receive at B
   REJ = NAK tailored for Go-Back-N flow control
    (so we don't have to wait for timer expiry at tx)‫‏‬
   SREJ = NAK tailored for Selective Repeat ARQ
                      Control Field
   U-frames (unnumbered):
       Used to exchange session management and control
        information between connected devices
       Do not carry user data
       Code field is 5 bits wide, so 32 different types of U-
        frames eg SNRM (Set normal response mode), UA
        (Unnumbered ACK), SABM (Set Asynchronous
        Balanced Mode), DISC (Disconnect), RSET (Reset),
        etc
                HDLC Examples
   Connection/Disconnection: Use SABM U-
    Frame. This sets up data transfer. After transfer,
    A sends DISC (disconnect) U-frame. B
    acknowledges with UA (Unnumbered ACK)‫‏‬
   Piggybacking without error: A sends 2 I-frames
    0 and 1. B piggybacks ACK of both frames into
    an I frame of its own. B's ACK no in its sent I-
    frame is 2, since it expects frame 2. Now A has
    sent all data, so cannot send an I frame. Sends
    S frame instead, with RR code inside.
                Multiple Access
   Sometimes we have a dedicated link between
    nodes A and B eg in a dialup network
    connection
   Sometimes we don't and the link is shared eg in
    cellphone networks, the channel is shared. Also
    wireless networks, since we deal with an
    inherently broadcast medium
   Data link layer handles datalink control (framing,
    flow control, error control) and multiple access
                 Multiple Access
   So data link layer = Data link control + Multiple
    access resolution
   Data‫‏‬link‫‏‬control‫“‏=‏‬Logical‫‏‬link‫‏‬layer”‫‏‬according‫‏‬
    to IEEE. And Multiple Acccess resolution is
    handled‫‏‬by‫‏‬MAC‫‏‬layer‫“(‏‬Medium‫‏‬Access‫‏‬
    Control”)‫‏‬
   Multiple nodes, common link – called a
    multipoint link
                 Multiple Access
   Multiple Access Protocols: Random Access
    Protocols (ALOHA, CSMA, CSMA/CD,
    CSMA/CA), Controlled Access Protocols
    (Reservation, Polling, Token Passing),
    Channelization Protocols (FDMA, TDMA,
    CDMA)‫‏‬
   The most commonsense ways of sharing the
    link: TDMA (disadvantage is low channel
    utilization for heterogenous traffic), FDMA (low
    channel utilization for bursty traffic)‫‏‬
                Random Access
   Democratic protocol. All nodes are equal. No
    node controls another node's right to transmit.
   Why‫“‏‬random”‫‏‬access‫ –‏‬no preallocated time for
    access. Stations compete with each other for
    access. Hence called contention methods.
   Collision: a medium access conflict, 2 nodes
    transmitting at the same time. We want to
    minimize conflict.
      Random Access: Pure ALOHA
   ALOHA: first multiple access system, developed in
    University of Hawaii in 1970.

   ALOHA is no longer used, but one of its core concepts is
    still used in Ethernet. Designed for radio LAN, but can be
    used for any shared medium.

   Pure ALOHA: Station sends frame when it has a frame to
    send. Collisions may occur with frames from different
    station(s). If even 1 bit of 2 frames overlaps, both frames
    are lost.

   Pure‫‏‬ALOHA‫‏‬is‫‏‬also‫‏‬called‫“‏‬statistical‫‏‬multiplexing”.‫‏‬Avoids‫‏‬
    the resource wastage of TDMA and FDMA systems when
      Random Access: Pure ALOHA
   Lost frames need to be resent. A lost frame is resent
    using an ACK-based ARQ: If the receiver's ACK does
    not arrive at tx, retransmit after a time-out at the
    transmitter.
   If the timeout is the same for all stations, re-collision is
    very likely to occur.

   So in Pure ALOHA, we wait for a timeout + a random
    time period called the backoff time TB

   If this again collides, tx tries again. Tries only a finite
    number of times, Kmax (maximum number of
    retransmission attempts) so as not to block the
      Random Access: Pure ALOHA
   Setting the timeout: It takes 1 RTT for the ACK
    to reach the tx again. So take maximum RTT
    between pairs of nodes to set the timeout.
    Remember the ACKs can also be dropped
    (including due to collision) but there is no such
    thing as ARQ for ACKs.
   RTT(max) = 2*Tp, where Tp is the maximal
    separation time between 2 stations.
    Pure ALOHA: Tx algorithm (Binary
          Exponential Backoff)‫‏‬
   Variables: K = no of attempts, Tp = maximum frame propagation time.
    Tfr = average frame transmission time. We can use either Tp or Tfr to
    calculate backoff, depending on system conditions

   1. Start

   2. K=0 (K is the number of attempts)‫‏‬

   3. Send frame

   4. Wait RTT(max) (timeout value)‫‏‬

   5. If ACK rxed by now, we have successfully txed. End.

   ACK not rxed: Increment K and if K<=Kmax then wait TB (TB =
    R*Tp[conservative] or R*Tfr) where R is a random number between 0
    and 2^K-1 (this increases the backoff progressively and
    exponentially). If K>Kmax then give up and end.
            Problem on Pure ALOHA
   Stations separated by 600 km. Tp = 2 ms, the
    propagation time between stations.
   Now we calculate the backoff value:
       Attempt 1: K=1. Choose random no in {0, 1}. TB is 0
        ms or 2 ms
       Attempt 2: K=2. Choose random number in
        {0,1,2,3}. TB is correspondingly 0, 2, 4, 6 ms
       Attempt 3: K=3. {0..7}. T_B is {0 ms, 2 ms,..14 ms}
       K_max=10, for example.
      Pure ALOHA: Vulnerable Time
   Vulnerable time is the time period within which
    there is a possibility of collision (assume all
    frames are the same size)‫‏‬
   Vulnerable time = 2*Tframe where Tframe=frame
    transmission time.
   If any other frame is transmitted within the
    vulnerable time around a frame, the frame will
    be dropped. (See fig 12.5 on page 367)‫‏‬
      A problem on vulnerable time
   Shared channel B/W = 200 kbps. Frame size =
    200 bits. No txs within 2* 200 bits/200 *10^3 bps
    =
   2*10^-3 ms around a frame for error free
    transmission.
         Pure ALOHA: Throughput
   Throughput is the number of good
    transmissions/second. Depends on vulnerable
    time and frame generation rate
   Calculations: Say the frame generation rate is G
    per Tframe. Say one particular node transmits,
    and the rest of the nodes number N-1 (large).
    These nodes need to generate no frames within
    the vulnerable period Tvul, or else there will be
    collision
         Pure ALOHA: Throughput
   Probability of this: is governed by a Poisson
    distribution (N large), but we approximate and
    derive from the binomial distribution
   If N nodes, probability of channel being free=
    (1-p)^(N-1).(1-p)^(N-1)‫‏‬
   This is the compound event: 1 station transmits,
    and for two framing periods, the other stations
    do not transmit.
   Here p = G/N as each node shares the load.
         Pure ALOHA: Throughput
   Take the limit of the formula as N->Infinity to get
   Probability of succesful transmission = e^-2G
   Throughput = G.e^-2G
   This has a maximum at G=0.5, with a
    throughput of about 18%
         Problem on Pure ALOHA
   BW = 200kbps
   Frame size = 200 bits
   Find throughput if all nodes together generate
    {1000, 500, 250} frames per second.
   Ans: Just use the formula Ge^-2G
    Random Access: Slotted ALOHA
   Now time is divided into slots of Tframe.
   We transmit only at the beginning of the
    synchronized time slots.
   Vulnerable time is half as much, so peak
    throughput goes up to 36% (maximize Ge^-G)‫‏‬
                         CSMA
   Carrier Sense Multiple Access
   “sense‫‏‬before‫‏‬transmit”‫“ -‏‬listen‫‏‬before‫‏‬talk”
   Possibility of collision reduced, but still possible
    – if station transmits within a propagation time
    of another station
   Vulnerable time: the time period within which
    there is a collision, = Tp, the propagation time
   Look at Fig 12.9 to understand vulnerable time
       CSMA: Persistance methods
   1 – persistant: As soon as channel is free,
    transmit
   Nonpersistant: If channel free, send
    immediately. If channel not free, wait a random
    amount of time and re-sense. Advantages:
    reduces the chance of collision within Tp.
    Disadvantages: Reduces the channel utilization
    during the wait period.
   p-Persistant: Use a slotted approach, slot
    duration should obviously exceed T ,
       CSMA: Persistance methods
   Just like slotted ALOHA improves efficiency, a
    slotted approach improves efficiency here. So,
    collision probability is reduced, and efficiency is
    improved.
   If line idle, station sends with probability p
   With probability 1-p, we wait for the next time
    slot
   Check the line again – if the line is idle, go to
    step 1
   If line busy, then backoff
                    CSMA/CD
   CSMA/CD = Carrier Sense Multiple Access with
    Collision Detection
   CSMA: No procedure specified following a
    collision (no ACK-based ARQ specified, for
    example)‫‏‬
   Look at Fig 12.12 for the timing details of a
    collision
   In CSMA/CD, transmission and collision
                       CSMA/CD
   Suppose node A's frame collides with node C's
    frame. Once they detect the collision, both A
    and C stop transmission immediately
   A----B----C----D
   A tx at t1, reaches C at t3
   C senses and tx at t2<t3, as A's frame has not
    yet reached C
   C's frame reaches A at t4, obviously>t3 as C
    starts transmitting later than A
                      CSMA/CD
   At t4, C's bits reach A and A aborts
    transmission. So both frames lost.
   Actual collision occurs somewhere between A
    and C, before either A or C detect the collision
   Look at Fig 12.13: this figure includes the
    partial-frames (not just the first bit).
                         CSMA/CD
   Minimum Frame Size
       Remember, collision detection is performed only so
        long as the frame is being transmitted from node A.
       As soon as the frame is completely transmitted, no
        CD is possible at the transmitter anymore.
       However, collision could occur anywhere enroute
        from source to destination
       So the frame size must be controlled: we must be
        able to detect the collision before the last bit is
        transmitted in order to correctly determine that a
    CSMA/CD: Frame Size Limitations
   So Tfr>2Tp
   Justification: suppose node B transmits to A,
    takes Tp to reach A. Takes another Tp for worst
    case collision (collision at A) to reach B again.
    Hence Tfr>2Tp. Write a timing diagram to clarify
    this.
   Collision detection is by monitoring energy level:
    zero level, normal level and abnormal level (2ce
    as much energy in channel)‫‏‬
                    CSMA/CD
   Problem:
   BW=10 Mbps, Tp=25.6 uS, Tfr(min)=?
   Ans: 64 bytes
               CSMA/CD: Algorithm
   1. K=0 (K is no of tx attempts)‫‏‬

   2. Apply persistance method (1-persistant, p-persistant or
    nonpersistant)‫‏‬

   3. (Tx loop) Transmission done, or collision detected? Go to
    step 6

   4. Transmit/receive

   5. Go to step 3

   6. If no collision was detected, done.

   7. (Collision process) Send jamming signal

   8. K=K+1
                       CSMA/CA
   CSMA/CA: Used for wireless networks

   CSMA/CD: We receive while transmitting to detect
    collisions. The energy level of the sensed signal
    determines if a collision has occured.

   In a wired network, because of repeaters and short length,
    the received signal energy is just about the same as the
    txed signal energy. So CD is possible.

   However, in wireless networks, signal energy drops rapidly
    with distance. So we can't do CD effectively
                        CSMA/CA
   Look at Fig 12.16 for the timing in CSMA/CA

   So we need to avoid collisions on wireless networks, since
    collision detection is not possible. We can still detect when
    the channel is busy though (when not txing)‫‏‬

   We use CA (Collision Avoidance) for this. CA works using:
    IFS, contention window, ACKnowledgements. CSMA/CA
    used in 802.11

   IFS = Interframe space. We allow distant signals to
    propagate (effectively we wait at least Tp(max)) so that we
    can avoid collisions due to transmission at node without
    having sensed distant incoming signal (this is the
                         CSMA/CA
   If a station has lower IFS, it has higher priority in
    transmission. Setting IFS too low may result in many
    collisions.

   After waiting out the IFS, and if the channel is still idle, we
    wait‫‏‬an‫‏‬additional‫“‏‬contention‫‏‬period”.‫‏‬This‫‏‬is‫‏‬to‫‏‬be‫‏‬
    effectively‫“‏‬less‫‏‬greedy”‫‏‬than‫‏‬CSMA‫‏‬and‫‏‬hopefully‫‏‬avoid‫‏‬
    more collisions.

   The contention time is slotted, choose a random number of
    slots as wait time. The number of slots in the window
    changes according to binary exponential backoff. If the
    ACK doesn't come through, the window size is increased
    exponentially for the retransmit
                     CSMA/CA
   Remember that the channel could become busy
    while waiting to tx. In this case, it is unfair if a
    node has to restart its timer. So, just stop the
    timer and continue when the channel becomes
    idle (the IFS is more or less guaranteed by the
    remaining waiting time)‫‏‬
   To detect dropped frames, we use positive
    ACKs and retransmission timers
   CSMA/CA in wireless networks incorporates
                         CSMA/CA
   Algorithm:

   1. Set K=0

   2. Channel Idle? If not, go to 2

   3. Wait IFS

   4. Channel still idle? If not, go to 2

   5. Choose R in {0..2^K-1} randomly

   6. Wait R slots. Remember, pause sending until channel
    free (without resetting timer) if channel becomes busy

   7. Transmit frame

   8. Wait timeout.
                    Controlled Access
   Controlled Access: Stations send only after authorization by all
    other stations

   Reservation, Polling, Token Passing

   Reservation:

        Reservation is a slotted system
        A reservation frame is reserved after every round of data
         transmission
        The reservation frame contains slots, corresponding to the
         stations 1..N
        If station i wants to transmit in the next round, it indicates this
         by filling up its slot in the reservation frame.
        The data frames are then sent in order of priority once the
                    Controlled Access
   Polling

        One device called primary device
        All other devices called secondary
        Primary controls all transmissions on the network segment
        2 types of signal sent: Poll and Select
        Select: primary wants to transmit. Notifies desired secondary
         of its desire to transmit by sending a SEL frame. This should
         be ACKed by the secondary. SEL frame obviously contains
         address of secondary. SEL notifies secondary that it has to
         receive and ACK ensures receiver is ready.
        Poll: primary polls each secondary node for data. Secondary
         replies with NAK (no data) or with data if present. Data
                  Test problem
   Some suggested polling to counteract the
    hidden node problem in wireless networks. This
    is correct and in fact has been studied in
    research literature - “Poll‫‏‬before‫‏‬data‫‏‬multiple‫‏‬
    access”‫ -‏‬by Asimakis Tzamaloukas and J.J.
    Garcia-Luna-Aceves from UC Santa Cruz.
    Search on Google if you want to read this
    paper.
    Controlled Access: Token Passing
   Token Passing

        Stations are organised in a logical ring. There is a
         predecessor and successor for every station
        A special frame called the token circulates through the
         ring. Only the station that last received the token (and
         has not passed it on yet) has the right to transmit. Holds
         on to token as long as there is data to transmit.
        A station cannot send data until it receives the token
        (Token‫‏‬passing‫‏‬implements‫“‏‬round‫‏‬robin”‫‏‬scheduling‫‏‬
         and is conceptually identical to the way operating
    Controlled Access: Token Passing
   Token management
        Stations hold token for a limited amount of time
        Token should be monitored for loss
        Token-holding time can also be used to set priorities

   Logical rings
        Can be made from physical ring, dual ring, bus ring
         and star ring topologies (see Fig 12.20)‫‏‬
        Token Passing: Logical Rings
   Physical ring topology
       Token only seen by immediate next station
       If one link fails, the whole system fails

   Dual ring topology
       Second ring present in opposite direction
       This auxiliary ring is only used for backup purposes.
        If a link fails, a temporary ring is formed using both
        main and auxiliary ring
       High speed token networks use this – FDDI, CDDI
        Token Rings: Logical Rings
   Bus Ring topology: although the physical
    topology is a bus, every node knows the
    physical address of its successor. So a logical
    ring topology can be implemented to control
    access to the shared medium. Used in IEEE
    Token Bus
   Star Ring topology: physically, star topology.
    Failure here is not catastrophic. Adding and
    removing nodes is easier. Used in IBM Token
    Ring LAN
                        Channelization
   Available channel bandwidth is shared through time, frequency
    or code

   3 protocols are: FDMA, TDMA and CDMA

   FDMA

        Available bandwidth divided into bands, each band reserved
         for a particular station
        Guard bands are present for each station (its not really
         possible to strictly bandlimit signals)‫‏‬
        FDM and FDMA are different! FDM uses multiplexer to mix
         signals after modulation of baseband signals
                       Channelization
   TDMA: Time Division Multiple Access

        Time is slotted, each station uses a preallocated slot
        Synchronization between different stations needs to be tight.
         This may be difficult given propagation time across the
         physical layer
        Synchronization is achieved by adding synchronization bits
         (or preamble bits) at the begininning of each time slot
        Guard times are introduced to counteract propagation delay
        ISI is a big problem too
        Used in mobile systems – GSM uses TDMA + frequency
         hopping.‫‏‬TDMA‫‏‬on‫‏‬GSM‫‏‬phones‫‏‬creates‫“‏‬buzz”‫‏‬at‫‏‬frequency‫‏‬
                    Channelization
   CDMA: Code Division Multiple Access
       Each channel occupies the whole bandwidth
        (frequency spectrum) of the link
       Why is collision an issue in random access but not
        in controlled access or channelization?
       Each station is assigned a spreading code that
        greatly increases the bandwidth of the actual data
        signal
       Code division: like using different languages
       Earliest application was GPS. The earliest idea for
            Channelization: CDMA
   CDMA: Each channel simultaneously occupies
    entire bandwidth. So not like FDMA. Also no
    timesharing so not like TDMA.
   CDMA: Spreading achieved by coding. Each
    station is assigned a code – a sequence of
    numbers called chips. So a code is a chip
    sequence.
   Eg: [1 1 1 1], [1 -1 1 -1], [1 1 -1 -1], [1 -1 -1 1]
                          CDMA
   These chip sequences are not randomly
    chosen. All are of same length.
   Properties:
       Each chip sequence has N elements, where N is
        the number of stations.
       These chip sequences behave like vectors. Use the
        usual inner product on the vectors
       So: sequences are orthonormal under the usual
        inner product
                       CDMA
   Encoding: 0 --> -1, 1-->+1
   What are the intuitive explanations for sequence
    addition, inner product etc?
                 Review questions
   Do we need MAC for the following cases:
       Dialup modem connection (data tx over local loop)‫‏‬
       Internet access over one CATV channel

   Ex problem 11
   Ex problem 15
                      CDMA
   Code Division Multiple Access
   One channel occupies bandwidth of entire link,
    unlike FDMA
   Nodes can transmit all the time, unlike TDMA
   Channelization is achieved by coding (assigning
    orthogonal spreading codes to various
    channels)‫‏‬
                        CDMA
   Code = Sequence of numbers called chips
   Eg: c1 = [1 1 1 1], c2 = [1 -1 1 -1], c3 =[1 1 -1 -
    1], c4 = [1 -1 -1 1]. Each code is called a chip
   Each sequence is made of N elements, where
    N is the number of stations
   Use usual scalar multiplication
   Use inner product to multiply sequences. This
    finds correlation of sequences
                         CDMA
   Inner poduct of 2 different sequences =0
   Inner product of a sequence with itself = 4
   Data bit 0 --> +1
   Data bit 1 --> -1
   Silence --> 0 ?Use BPSK modulation?
   What is +1 + -1 ??
                                    CDMA
   Encoding and decoding:
       Example: 1 sends -1, 2 sends -1, 3 silent, 4 sends
        +1
       Each number is multiplied by its chip and sent onto
        the channel where the signals are linearly combined
       Eg: (-1 -1 0 1)* A where
             A   = {[1 1 1 1], [1 -1 1 -1], [1 1 -1 -1], [1 -1 -1 1]} a 4x4 matrix



       This gives the output signal: [-1 -1 -3 1]
                      CDMA
   Remember the actual modulation scheme used
    has to support this sort of linear addition. So
    BPSK could be used for eg but not 8 PSK.
    BPSK for {0,1} is same as ASK for {+1, -1}.
   16 QAM could not be used for example.
              Decoding at station
   Take inner product with stations spreading code
   This is correlation and returns the signal energy
    for a perfect match
   Walsh tables: see page 389
    Connecting Devices (placeholder)‫‏‬
   Passive hub – below physical
   Repeater or Active Hub (Physical)‫‏‬
   Bridge (Data link) – generates tables of
    destination addresses reachable
   Router (Network)‫‏‬
   Gateway (Application)‫‏‬
               Things to cover
   CDMA in matrix format
   Alternatives to CDMA
         Connecting LANs, Backbone
          Networks and Virtual LANs
   Connecting devices

        A        Gateway       A
        T
        N        Router or three layer switch
        DL       Bridge or two-layer switch
        P        Repeater or hub
                 Passive hub
   Collision domain: the regions in which collision can occur

   Broadcast domain: the region accesible by broadcast at
    layer 2
                   Connecting Devices
   What each of these means
       Passive hub: Just a connector between devices. Eg
        Star-topology Ethernet LAN
       Repeater
            Operates only in the physical layer
            As signals propagate, they attenuate
            Repeaters at the physical layer regenerate the bit pattern
             as it is transmitted
            Repeaters can extend the physical length of the LAN
            Repeater cannot connect two LANs of different protocols
                Connecting Devices
   Repeaters (physical)‫‏‬
       Does not connect 2 separate LANs; just connects 2
        segments of the same LAN
       Repeaters cannot connect two different LANs of
        different protocols (no processing of frames)‫‏‬
       A repeater is a 2-port node on a LAN segment.
        Forwards any frames it receives to the output port
        and the other LAN segment
       Diagram: 2 LAN segments connected by level 1
               Connecting Devices
   Repeater is not amplifier. Explain this. Repeater
    regenerates signal within certain noise margin
   Active Hub: multiport repeater. Used in star
    topology on Ethernet. Hub diagram: page 448
   Bridge: used in physical and datalink layer
       Physical layer: regenerates signals
       Datalink layer: examines source and destination
        addresses in the frame
       Drops erroneous, badly formed frames
                Connecting Devices
   Bridges
       Bridges are able to filter. Checks destination
        address to decide whether to forward or drop a
        frame. Bridges are not routers! Bridges operate by
        flooding, not by actually locating the destination
        node within the target LAN segment. Hence their
        utility is limited to Local Area Networks
       Bridge has multiple output ports; contains a table
        that decides which port to forward the frame to
       Bridge can be used to connect two LANs, or 2 LAN
        segments
                     Connecting Devices
   Bridge does not change MAC addresses in a frame

   Transparent Bridge: (mostly used in Ethernet)‫‏‬

        Called a transparent bridge because it has no physical addresses.
         Just accepts and forwards frames as though it wasnt there. Uses:
         Qos, traffic shaping, filtering, security, etc. Simple to make a
         network bridge too – use a computer with 2 NIC cards _
         bridgeutils under Debian Linux

        Nodes (stations) on a LAN are completely unaware of the bridge's
         existence

        Reconfiguration is unnecessary if a bridge is added/removed (?)‫‏‬

        Transparent bridge:

                Frames   must be forwarded from one station to another
                Fowarding   must be automatically learned
                     Connecting Devices
   Transparent Bridges: Isolates collision domains while connecting network
    segments (and therefore intelligently extending the broadcast domain)‫‏‬

        Forward frames correctly

        Forwarding tables:

              Static – disadvantages?
              Source addresses used to build forwarding table
        Loop problem

   Transparent bridges can theoretically be used to bridge between
    incompatible LAN types. This is an area of ongoing research:

   “Transparent‫‏‬interconnection‫‏‬of‫‏‬incompatible‫‏‬local‫‏‬area‫‏‬networks‫‏‬using‫‏‬
    bridges”‫ -‏‬IEEEXplore. Cisco has an interesting article at:

   http://www.cisco.com/en/US/docs/internetworking/technology/handbook/Mixe
    d-Media-Bridging.html
             Connecting Devices
   Learning: by flooding and examination of source
    address. Examing destination address provides
    no information on location of destination node!
   Draw a diagram for learning: 3 LANs connected
    by a network bridge, whose tables are initially
    empty (page 450)‫‏‬
                      Bridges
   Loop problem: page 450
   Loop problem is avoided by setting up a
    loopless logical topology on top of the physical
    topology
   This is achieved using the spanning tree
    protocol
             Spanning Tree protocol
   In graph theory, a spanning tree is a graph in
    which there is no loop. Every LAN (segment)
    can be reached from another LAN (segment)
    through one path only.
   Physical topology cannot be changed, but a
    logical loopless topology can be overlaid on this
    physical topology by intelligently blocking bridge
    ports.
          Spanning Tree protocol
   Draw a diagram of multiple connected LANs
    and the bridges connecting them. Represent
    LANs and bridges both as nodes (there are
    many possible approaches to implementation of
    spanning tree)‫‏‬
   Can also show LAN as node and bridge as
    connector
   We need a cost associated with each
    component of the path (connector between LAN
          Spanning Tree Protocol
   The cost can be anything: minimum hops,
    minimum delay, max bandwidth etc
   Choose by priority when 2 bridge ports tie in
    this metric in distance from root node. Or
    choose randomly
   In the textbook: distance or hop count = +1 from
    bridge to LAN, 0 from LAN to bridge (this counts
    the number of rebroadcasts a frame would need
    as it propagates through the network)‫‏‬
              Spanning Tree Protocol
   Find the spanning tree like this:
        Choose root bridge by priority on MAC address or
         built in ID address (choose lowest, for example)‫‏‬
        The algorithm is a distributed algorithm that runs on
         all bridges at the same time
        The shortest path is found from the root bridge to
         every other bridge. This is the path that will be used
         for routing to target LAN
        Shortest paths: form shortest tree
          Spanning Tree Protocol
   Bridges keep communicating with each other at
    periodic intervals (usually 2s for Ethernet
    switches). This allows the spanning tree to be
    changed in case of bridge outage
   Bridges communicate using special frames
    called BPDUs (Bridge protocol data units)‫‏‬
           Source Routing Bridges
   When redundant bridges are present, source
    routing is used
   Frame contains addresses of bidges that the
    frame must visit
   Bridge addresses obtained by special frames by
    node
   Interconnection of different LANs: Frame
    format, max data size, data rate, bit order,
                     Routers
   3 layer device. A layer 3 switch
   Connects LANs and WANs on the internet
   Three-layer switch = fast and sophisticated
    router that can handle thousands of
    connections with fast lookup
   Gateway: 5 layer switch. My wireless ADSL
    modem is also a gateway from my home
    network to the internet
              Backbone netwoks
   A LAN that connects LANs together through
    bridges
   Bus backbone – LANs connected through
    bridges
   Star backbone – LANs connected through a
    multiport switch in star topology
   Remote LANs may be connected over point-to-
    point connections like PPP or ADSL
                  Network Layer
   Network layer communication: host-to-host
    (between computers on the internet)‫‏‬
   Global addressing scheme required for
    communication between computers on
    heterogenous network types
   Logical address is a global address. Also called
    IP address.
   IP: Ipv4 or IPv6
                IPv4 addresses
   32 bit address. Uniquely and universally
    identifies the connection of a device to the net
   Unique. 2 different nodes on the internet can
    never have the same IP address. This is
    violated in very special cases as shown later
   Routers with m connections to the net have m
    internet addresses. ??Does this make sense?
                        IPv4
   Address space: total number of addresses used
    by the protocol. 2^32 in theory
   Actual number of available addresses is much
    less
   We can write IP addresses in binary or dotted
    notation.
   Standard: do not write leading zeros in dotted
    notation
                    IPv4 addressing
   Classful addressing: Divide the address space
    into classes
   5 classes: A, B, C, D, E
   First byte of each class:
        A: 0xxxxxxx
        B:10xxxxxx 2nd byte
        C:110xxxxx 2nd byte 3rd byte
        D:1110 + fill in all rest to find addresses in this block
                   IPv4 addressing
   Class A: 128 blocks, 2^24 addresses within
    each block
   Class B: 64K blocks, block size = 64K
   Class C: 2^21 blocks. 256 in each block
   Class D: 1 block only Block size = 2^28
    (multicast)‫‏‬
   Class E: 1 block only Block size = 2^28
    (reserved)‫‏‬
                IPv4 addressing
   Class A: large organisations
   B: midsize organisations with tens of thousands
    of attached hosts
   C: small organisations
   D: multicast addresses
   E: reserved for future use
                IPv4 addressing
   Classful addressing: many addresses are
    wasted
   In A, B, C classes, the IP addresses may be
    divided into netid and hostid
   Netid: identifies group. Hostid: identifies node
    within group
   We can also use a mask (pattern of 1's and 0s)
    to extract netID and hostid
                Ipv4 addressing
   Class A: 11111111 oooooooo oooooooo
    oooooooo
   Class B: 11111111 11111111 00000000
    00000000 0000000
   Class C: 11111111 11111111 111111111
    000000000
   We can write the address masks in dotted
    decimal notation also
                         IPv4
   Dotted decimal notation: 255.0.0.0,
    255.255.0.0, 255.255.255.0
   CIDR: Classless interdomain routing notation,
    used in classless routing
   CIDR: /8, /16, /24
   Subnetting: if a large block of addresses was
    granted to an organisation, it could split this into
    smaller blocks called subnets
                             IPv4
   ?subnetting increases the number of 1s in the
    mask
   Supernetting:
       A time came when A and B addresses were
        depleted. Class C blocks were combined to make
        larger range of addresses
       ?Supernetting decreases the number of 1s in the
        mask? How is this?
       /24 --> /22
                       IPv4
   Classful addressing is obsolete. Replaced with
    classless addressing
   IANA - IANA controls numbers for protocols, the
    Country Code Top Level Domains and
    maintains the IP Address allotments.
                        ipv4
   Classless addressing: gets rid of the problems
    of classful addressing
   Ca 1993
   Addresses are still granted in blocks to
    organisations
   Size of block varies based on nature and size of
    entity
                        ipv4
   Eg: single house only 2 addresses, organisation
    1000s of addresses
   Restriction: Block is made of contiguous
    addresses, Number of addresses in block is a
    power of 2, First address must be evenly
    divisible by number of addresses (what does
    this mean?)‫‏‬
                        ipv4
   First address: convert to decimal and divide by
    16, should leave no remainder. Controls
    granularity – 16 addresses at a time
   Classless addressing: mask -Mask is a 32 bit
    number with left contiguous 1s and the rest 0.
    Mask represented x.y.z.t/n n between 0 and 31
   Address block completely specified by first
    address and /n
                             ipv4
   Number of addresses in block = 2^(32-n)‫‏‬
   Network address:
       First address in group nomally (not always) treated
        as special address
       This special address is called the network address
        and defines the organisation network. Defines
        organisation address to rest of the world
       First address is the one used by routers to direct
        information sent from outside
                       ipv4
   Router connects organisation network to the
    internet. Router has 2 network addresses: One
    belongs to user network, one belongs to
    network on the other side.
   IP addresses have hierarchy, like phone
    numbers (Area code, exchange, user id)‫‏‬
                         ipv4
   2 level hierarchy: no subnetting
   When no subnetting, only 2 levels of hierarchy
   N bits: prefix – organisation ID. 32-n bits – suffix
    – host address
   3 levels of hierarchy – with subnetting
   If organisation possesses large numbers of
    addressing – divide into subnets
                          ipv4
   Subnets: rest of the world sees only 1 network,
    internally there are many smaller networks
   All messages sent to router that connects
    network to internet. Router redirects to
    approporate subnet
   Subnets specified my masks
   Eg: suppose organisation has 17.12.40.0/26. 64
    addresses available
                         ipv4
   If we want to divide into subnets of 32, 16, 16
    then masks are /27, /28, /28
   More levels of hierarchy obviously possible –
    like for ISPs
   ICANN: Internet corporation for assigned
    names and numbers – this
   117.192.231.1
                             ipv4
   Address depletion
       Mobile devices, always on connections, more users
        and networks, inefficient address use, virtualization
                         Ipv4
   Examples of subnets etc
   Example: organisation given the block
    17.12.40.0/26 – this means 64 addresses for
    the whole network
   Split into subnets: 32+16+16. Subnets specified
    by IP address/mask
   If we want 3 subnets of size 32, 16 and 16, then
    do the following
                        Ipv4
   Want to divide the network into 3 subnets:
   17.12.40.0/26 is the network. Divide into 3
    subnets
   Size 32: n1 = 27, n2 = 28, n3 = 28
   Choose addresses as follows:
Network Address Translation (NAT)‫‏‬
   Originally, most small businesses and individual
    users used dial up connections. Connection
    was for a specified period of time.
   Now, always on ADSL or cable connections are
    being used. Many IP addresses are required
    per subscriber. With the shortage of addresses,
    this is a serious problem.
                        NAT
   Network Address Translation: large set of
    addresses used internally to the network, but a
    small set of addresses show up on the public
    Internet.
   IANA, ICANN provide three address spaces for
    private networks.
   10.0.0.0 to 10.255.255.255 - 2^24
                       NAT
   172.16.0.0 to 172.31.255.255 – 2^20 addresses
    – larger than class B by 4 times
   192.168.0.0 to 192.168.255.255 – 2^16
    addresses
   Everyone knows that these addresses are for
    provate use only (dropped by routers on the
    Internet)‫‏‬
                        NAT
   How a NAT works: hides many IP addresses
    inside a network while displaying only one or a
    few IP addresses to the public internet.
   Diagram: draw router with two ports, router
    shows some external address(es), some
    internal addresses exist on the network from the
    provate address space.
                        NAT
   The NAT runs software to enable this hiding to
    happen
   So: all outgoing packets/datagrams have their
    source address changed to the NAT address.
   All incoming packets have their destination
    addresses changed to the appropriate provate
    address.
                        NAT
   Obviously, address translation is not trivial: how
    to correctly assign the private address to the
    incoming packets with the NAT address as the
    destination address? Replacing source address
    for outgoing packets is of course easy. So, use
    a table in the NAT router.
                         NAT
   There are many ways to implement NAT, wach
    has its limitation, so we use increasingly
    sophisticated techniques to implement NAT.
   First technique: NAT-enabled router displays
    only 1 IP address externally. When a host on
    the private network connects to a host on the
    Internet, an entry is made in a table with private
    source address and external destination
    address
                       NAT
   When return packet comes from host, then NAT
    uses table to route to the correct node on the
    private network.
   This has some obvious limitations: 2 hosts
    cannot connect to the same external host,
    outside nodes cannot initiate communication –
    so‫“‏‬push”‫‏‬email‫‏‬servers‫‏‬don't‫‏‬work‫‏‬for‫‏‬example.
                       NAT
   Method 2: Use a pool of IP addresses. Now
    what happens is the following: use for example
    four global addresses for the NAT router. If 2
    nodes connect to the same external host,
    assign them different external IP addresses. But
    now at most 4 hosts can connect to the same
    external host, so still problem
                           NAT
   NAT: Use both IP addresses and port numbers
   Port number is used to indicate which node in
    the private network the incoming packets
    should be routed to.
   Table now contains: Private address, private
    port, external address, external port, transport
    protocol (TCP or UDP). Basically make your
    NAT smart by using layer 4 as well!!
          Network Layer: Delivery,
           Forwarding, Routing
   IP: unreliable service: does not inform if failure.
    Just‫“‏‬best‫‏‬effort”
   Packet: any data formatted as a packet.
    Datagram: formatted, framed data sent over an
    unreliable service
   What is connection oriented and
    connectionless?
        Delivery, Forwarding, Routing
   Delivery:
       Getting packets to their destination using the
        underlying networks
       Direct delivery: both source and destination are on
        the same physical network
       Indirect delivery: source and destination are on
        different networks, connected by routers
       Any delivery contains 1 direct delivery and the rest
        are indirect deliveries
        Delivery, Forwarding, Routing
   Forwarding
       Forwarding means sending across a packet or
        datagram from hop to hop

   Forwarding techniques:
       Next hop method; complete route method
       Remember, every hop (router) contains a routing
        table to enable it to forward packets
      Delivery, Forwarding, Routing
   Network specific routing: just enter the network
    address in the routing table
   Host specific: enter the complete host address
    in the table
   Default routing: use default path and default
    network address for routing
        Delivery, Forwarding, Routing
   Forwarding process:
       How forwarding works:
            Mask, network address, next hop, interface, ARP etc
            Draw Fig 22.6 for a network

   Address aggregation
       Network mask indicates routing information. For
        “subnetworks”‫‏‬we‫‏‬can‫‏‬aggregate‫‏‬routing‫‏‬
        information
       Aggregate networks with matching network prefix
       Deliver, Forwarding, Routing
   Even if one network appears to be a
    “subnetwork”‫‏‬of‫‏‬another,‫‏‬they‫‏‬many‫‏‬not‫‏‬be‫‏‬
    geographically colocated. Still, address
    aggregation is possible using longest mask
    matching. Put the longest mask first in the table
    for the intermediate router
        Delivery, Forwarding, Routing
   Hierarchical Routing
       To solve the problem of gigantic routing tables
       Use hierarchical routing
       Actual internet structure: International and national
        ISPs, regional ISPs, local ISPs. - networks - subnet
        Exploit this to reduce table size (refer wiki*)‫‏‬
       Geogaphical routing – use huge IP address space
        for large geographical areas (continents)‫‏‬
        Delivery, Forwarding, Routing
   Routing table
       Static routing table
       Dynamic routing table: populated by RIP, OSPF,
        BGP. Done dynamically whenever there is a
        change in network topology or connectivity.
       Mask, nw address, next hop address, interface,
        flags, reference count, use
       Flags: U, G, H, D, M. U = Up, G = Gateway?, H =
        Host specific, D, M – redirection specific information
           Unicast Routing Protocols
   Routing protocol: a combination of rules and addresses
    that allows routers on the internet to inform each other of
    changes. Dynamic routing protocols: RIP, OSPF, BGP

   Which emerging path from the router is optimum?

   Metric is defined. Compare satellite, fiber optic etc.

   Intra and interdomain routing – because a single routing
    protocol cannot update all routers on the internet
          Unicast routing protocols
   So whole net is divided into autonomous
    systems. Domains are under the authority of a
    single administration
   What is the capability difference between inter
    and intradomain routing protocols?
   Distance vector, link state – these are
    intradomain routing protocols. Path vector:
    interdomain. Distance vector: RIP. Link state:
         Unicast Routing Protocols
   Routing protocols: a set of rules/procedures that
    allows for routing/connectivity information to be
    shared among the routers on the internet
   Optimization: there may be several emerging
    paths from a router node to the target network.
    In today's internet, multipath routing is rarely
    used. We need to choose the best path based
    on locally available information so we use a
    metric for emerging paths
         Unicast Routing Protocols
   The routing tables are populated by algorithms
    such as OSPF, BGP, RIP (these are open
    protocols) and some proprietary protocols.
   Metric: minimum delay, maximum bandwidth,
    least RTT, type of link, etc
   Inter and intra domain routing: AS =
    autonomous system – a subdivision (of
    networks and routers) under the authoity of a
    single administration.
         Unicast Routing Protocols
   Inside an AS: use one or more intradomain
    routing protocols to set up the routing tables.
    Information is exchanged between AS by
    interdomain routing protocols.
   Intradomain protocols: Distance vector, link
    state. Interdomain: path vector.
   RIP: distance vector. OSPF: link state protocol.
    BGP: path vector protocol.
           Unicast Routing Protocols
   Distance Vector Routing
       Least‫‏‬cost‫‏=‏‬minimum‫“‏‬distance”.‫‏‬What‫‏‬is‫‏‬
        distance??
       Distance vector. Vector = column or table of
        distances to all reachable nodes. Also next hop
        address is included.
       ??What is the difference between distance vector
        and RIP?
         Unicast Routing Protocols
   Size of table = number of nodes (routers) in the
    internet. Easy to fill up routing tables if we have
    complete information on network topology. The
    purpose of routing protocol is to disseminate
    this information throughout the network
   Initially, every node knows only its cost to
    immediate neighbours.
         Unicast Routing Protocols
   In reality we may not even know the names (IP
    addresses) of remote routers at the start. These
    entries are assumed to be unfilled in the routing
    tables.
   At the beginning: fill up only cost to immediate
    neighbours. Next, begin an automatic process
    of distibution of this information through the
    network.
         Unicast Routing Protocols
   Transmission between routers: only first 2
    columns (target router, cost). Next hop is
    intelligently assigned by the receiving node.
    Cost is also intelligently updated. Write
    algorithm for this.
   Doubts: multiple IP addresses, so how to
    address routers uniquely?
         Unicast Routing Protocols
   ??How to analyze performance of distance
    vector protocol?
   When to update: periodic update, triggered
    update
   Instability in DV protocol: 2 node loop instability
             Unicast Routing Protocol
   2 node instability in the Distance Vector
    protocol
        How does this happen? Very simple if we examine
         a topology that contains 3 nodes, and one node
         fails (page 663)‫‏‬
        What are the effects of this – routing tables reflect
         inaccurate data. It takes a long time for the whole
         network to realize that a router has gone down. A
         lot of packets are lost trying to get through routes
         that are dead. These packets should have been
         dropped right at the source.
         Unicast Routing Protocols
   Interesting question – what is the energy
    inefficiency caused by router failure? - How long
    does it take to propagate to the rest of the
    system etc.
   Now we understand the problem, and the
    symptoms. What are the solutions? Redefine
    infinity – this constrains network size, Split
    horizon – this works as follows: don't send
    routing table information to nodes which are the
    next hop. Why is this called split horizon?
             Unicast Routing Protocols
   Split Horizon + Poison Reverse:

        Split Horizon disadvantages: since routing tables are updates
         dynamically, routing entries are killed after a timeout by the network layer
         software. This means that wen split horizon is used, if we update without
         including rows from nodes with path through destination node, then
         destination node has no information if the route was lost completely or if
         routing table infomation was lost only because of split horizon strategy.
         ??So what??

        As it doesn't know, it doesnt know whether to delete its own route or not.
         And the other question to ask is: when will the disabled router's status
         ever propagate to the rest of the network? Why isnt this a problem with
         distance vectoring without split horizon? So many questions to ask
          Unicast Routing Protocols
   To counteract this phenomenon, we include something
    called poison reverse. As the name implies, it seems
    to mean, spread information about disabled routes as
    quickly as possible to the rest of the network. Basically
    flood through the rest of the network.
   We do this by advertising the distance as infinity from
    the disabled node. This is reverse broadcast by A (the
    receiver)‫‏‬as‫‏‬soon‫‏‬as‫‏‬it‫‏‬hears‫‏‬it,‫“‏‬reverse‫‏‬poison”
         Unicast Routing Protocols
   Three node systems: stability not guaranteed.
   Beautiful 3 node instability problem – how to
    analyze this?
   X dies, A informs B and C, C's packet lost, so
    instability if the flood fails to even one node.
    Interesting!
       Routing Information Protocol
   Is an implementation of Distance Vector
    protocol.
   Uses hopcount as the routing metric
   Infinity is set at 16 to pevent 2-node instability
    problem to some extent. Maximum hop count
    also prevents routing loops from occuring
   Hop count of 16 is considered infinite distance
         Routing Information Protocol
   RIP: initial retransmit time was 30 seconds
       This caused massive traffic bursts every 30
        seconds.
       It was thought that randomization of timer would
        minimize this. But, not possible as it was shown that
        even initially randomized times would eventually
        converge. Why? Read this paper!!
       Routing Information Protocol
   even though RIP is a layer 3 protocol, it relies
    on UDP for transport at port 530!! (Runs an
    application level process as well).
   In practise, destination addresses are network
    addresses. This changes nothing in DV
    protocol. Next hop is the IP address of the
    router to which to send to.
                   DV and RIP
   Can we do a performance analysis of DV and
    RIP vs flooding? Think about this!!
   RIP example
   RIP – 1988. Superseded by more advanced DV
    protocols like EIGRP (proprietary Cisco DV
    protocol), OSPF, ISIS (linkstate protocols) that
    show superior scalability and convergence
    times.
                       RIP - example
   Page 666 Fig 22.19. To construct this example:

        Draw a topology of some routers connected by links.
        Within the links, indicate the presence of networks by bars
        Draw bars to indicate networks connected only to one router.
        Assign network addresses. Assign router IP addresses
         based on network addresses.
        Populate routing tables. Routing tables are automatically
         updated and contain: destination address, hopcount (cost or
         metric) and next hop
        Usual DV updating occurs.
                                DV and RIP
   We saw various kinds of instability problems with plain DV. RIP prevents 3 node
    instabilities by using a holddown timer (180 seconds). Prevents 2 node instabilities
    using Split Horizon and Poison Reverse.

   Counting to infinity --> Redefine infinity

        Lower settling time --> Split horizon (do not readvertise through the same
         interface that you got some routing information).

        Route poisoning: flood unreachability information through the network. But this is
         costly. Split horizon: prevent count to infinity by preventing old route data from
         being resent. But routing loops could still be present.

        To reduce the possibility of routing loops and reduce route convergence time,
         split horizon with poison reverse is introduced. If B's route to X is through A, send
         metric infinity when updating A. Reason: B says to A: never route through me.

        Remember: just split horizon prevents 2 node problem but not 3 node problem.
                         DV
   Three node instability
   RIP: Routing information protocol
             Link State Routing
   Create the whole topology at each node.
                      Reading
   Read‫“‏‬End‫ –‏‬to End Routing Behaviour in the
    Internet”‫‏‬for‫‏‬an‫‏‬interesting‫‏‬discussion‫‏‬of‫‏‬routing‫‏‬
    pathologies.
               Linkstate Routing
   Drawbacks of DV routing:
   Why LS routing:
   LS: each router tells the world about its
    neighbours. DV: Each router tells its neighbours
    about the world.
   LS: Apply Djikstra after recovering full network
    topology
         Unicast Routing Protocols
   Intradomain Routing Protocol: Routing
    Information Protocol.
   Remember, the networks are the links in the
    diagrams used in Furuozan!
         Unicast Routing Protocols
   OSPF: Open Shortest Path First – an
    intradomain outing protocol based on link state
    routing. Domain is an autonomous system
   AS --> divided into areas: collection of
    networks, hosts and routers all within an AS.
   AS can be divided into many areas
         Unicast Routing Protocols
   Area is flooded with routing information
   Border area routers summarize (routing)
    information about an area at the boundaries of
    an area and pass onto other areas.
   Backbone: a special area within the AS to
    which all other areas are connected
   Routers inside backbone – called backbone
    routers
         Unicast Routing Protocols
   Metric = cost of each route
   OSPF: 4 types of links: point to point, transient,
    stub and virtual
   P2p – a single link with no hosts connects 2
    routers
   Transient – 1 network with several routers
    attached
           Unicast Routing Protocol
   In transient topology, one of the routers is called
    “designated‫‏‬router”‫‏‏‬but‫‏‬is‫‏‬also‫‏‬a‫‏‬true‫‏‬router.‫‏‬
    Designated‫‏‬router‫‏‬handles‫‏‬all‫‏‬the‫“‏‬routing‫‏‬
    between‫‏‬routers”‫‏‬during‫‏‬advertisement‫‏‬of‫‏‬link‫‏‬
    state. Now each router has only one neighbour
    – the designated router (which is taken to be
    the network itself)‫‏‬
   Stub link: network connected to only one router
   Virtual link: a longer link created when a link is
    broken
            Unicast Routing Protocol
   Path Vector Routing
        Interdomain routing
        One (in practise could be more) node in each AS
         acts as spokesman for AS – called speaker node.
         Advertises to speaker nodes in adjoining AS.
        Speaker node advertises path, not metric. Why?
        Is PV routing compatible with both DV and LS?

   Sharing: Just like in DV, sharing is done with
    other speaker nodes
        Unicast Routing Protocols
   Some more about PV routing protocol
           Unicast Routing Protocols
   Border Gateway Protocol
       An interdomain routing protocol
       Internet is divided into Autonomous Systems
       Eg of AS: local ISP – etc – a collection of networks,
        hosts and routers.
       Types of AS: Stub AS (connected to only one
        router), Multihomed AS (connected to several
        routers but still acts only as source or sink – no
        transient traffic allowed)‫‏‬
    Unicast Routing Protocols - BGP
   Transit AS: multhomed AS that allows transient
    traffic. Eg national and international ISPs (these
    are also called internet backbones).
   BGP: returned information from speaker nodes
    in AS contain all sorts of information that can be
    used for policy routing – eg ORIGIN (which
    protocol), PATH (what is the whole path), etc
   Transport to BGP is provided via TCP and
    semipermanent links are formed.
        Multicast Routing Protocols
   Unicast – destination is a single host. Multicast
    – destination is multiple hosts. Broadcast –
    destination is the whole network.
   Unicasting – easy to understand. Router
    forwards through only one of its interfaces
   Multicasting – we can do this more efficiently
    than repeated unicasting. Forwarding by a
    router is through several interfaces
        Multicast Routing protocols
   There is a difference between multicasting and
    multiple unicasting. Multiple unicasting – copies
    of a packet (with different destination addr.) are
    presented to all routers, including the first
    router.
   Why would we want multicasting routing
    available?
   What kinds of network applications would
    generate multicast traffic?
        Multicast Routing Protocols
   We call the groups of intended destinations a
    multicast‫“‏‬group”
   We have to optimize routing (find shortest path
    tree for every group of users). Is this more
    optimal than using the unicast trees? Think
    about this..
   In multicast routing, each router needs to
    construct a tree for each group to tell it to
    forward on which interfaces
    Source Based Trees in Multicast
               Routing
   Each router has a tree for each group. The tree
    is a shortest path tree
   It is assumed that the members of a group are
    “loyal”‫ -‏‬do not change with time (although
    network conditions can change)‫‏‬
   To understand this, draw a figure with multiple
    networks, connecting routers, and groups.
        Multicast Routing Protocols
   2 approaches are available: source based trees
    – this means every router on the network has
    trees for every multicast group, and traffic
    originating at any router is sent to all
    destinations in the multicast group
   Group shared tree: multicast traffic is
    encapsulated into a unicast packet, and sent to
    a special router called the rendezvous router or
    core router that possesses multicast entries for
    all groups
        Multicast Routing Protocols
   Now we understand how the routing tables
    should look for multicasting. How are these
    tables generated? They are generated by
    multicast routing protocols – the problem is
    much more involved than unicast routing
        Multicast Routing Protocols
   MRP--> Source Based Tree --> MOSPF,
    DVMRP, PIM-DM
   MRP--> Group Shared Tree --> PIM-SM, CBT
   What are the advantages or disadvantages of
    group shared trees to source based tree? Why
    are these called so?
                      MOSPF
   MOSPF: multicast link state routing
   Unicast link state: acquire whole network
    topology, apply Djikstra's algorithm to find
    minimum spanning tree with node as root.
    Unsuitable for multicast: why? No path
    aggregation used? Discuss this..
   In multicast link state – we use a source based
    tree approach
                     MOSPF
   How multicast link state routing works: In
    addition to link costs, nodes also inform of
    which groups have members present on those
    links. This is taken into consideration when
    building the tree. Simple to build the tree:
    aggregate paths of all destinations(?) The way
    Djikstra's algorithm works this should already
    ensure an optimal multicast spanning tree is
    generated. So extension of unicast to multicast
    is straightforward
          Multicast Routing Protocols
   A real implementation of multicast linkstate routing is called
    MOSPF (multicast open shortest path first). MOSPF not used
    any more – deprecated by OSPFv3.

   How MOSPF works: Now every group has an internet address
    (as discussed in Ipv4).‫‏‬Every‫‏‬router‫‏‬sends‫‏‬a‫“‏‬LSA”‫ -‏‬link state
    advertisement reflecting various aspects of the network
    topology. This includes which group addresses the host on the
    network is connected to. When MOSPF makes its routing
    calculations, it uses the usual host address.

   MOSPF: data driven – generates the spanning tree only when it
    sees the data for the first time.
         Multicast Routing Protocols
   DVMRP: Multicast Distance Vector Routing Protocol – an
    implementation of multicast distance vectoring

   Multicast much harder with Distance Vectoring than with LS.
    Why? Multicast Routing Tables are not exchanged at all in this
    approach. Why? Instead we locally generate multicast tables
    using the unicast routing tables. Why?

   So the multicast routing software goes through an algorithmic
    process of deciding which interfaces to forward through

   Flooding: costliest but easiest to implement. Eliminate loops by
    retaining packets for a while
         Multicast Routing Protocols
   RPF: forward only if the reverse path is shortest path.
    Discuss this in detail – we consider the unicast routing
    table to do this.
   RPB: Reverse Path Broadcasting – Multiple copies may
    anyway be received as this is still a flood, albeit a slightly
    intelligent one. Now: for every network, designate a parent
    router (this can be decided upon), Forwarding into network
    is only done by the attached parent router

   Reverse Path Multicasting – Prune and Graft from leaf
    networks control the routing policy of the parent routers.
                     Transport

   Process to proces: process address is called
    port number
   IANA port numbers range: Well known <1024,
    Registered –49151, Dynamic – any application
    can bind to these ports
   IP: unreliable
                         udp

   Connectionless, unreliable transport protocol
   Many services use udp. Many dont
   Only network utilities use raw ip without
    transport
   Udp: dest port, length, checksum
   ??This should be header Checksum =
    pseudoheader + udp header + data
                          udp

   Look at example in fig 23.11 for udp checksum
    calculation
   Lack of flow and error control
   Queueing – port unreachable message sent if
    queue is not set up
                          tcp

   Connection oriented, reliable transport protocol
   Tcp – stream oriented protocol – stream of
    bytes is sent; sending and receiving buffers ae
    used to match speeds; use a circular array as a
    buffer – this is hopefully the best way to buffer
   Segmentation – done at transport layer –
    segment can be any size within limits
                         tcp

   Full duplex communication – traffic flows both
    ways
   2 numbers used – sequence number,
    acknowledge number – refers to byte number
    since tcp is byte oriented stream protocol
   Numbering starts randomly to prevent spoofing
                            tcp

   So segment contains sequence number field.
    Value of the sequence number for first byte is
    put in the tcp packet
   Acknowledgement: cumulative ack is used. This
    means acked upto currently received packet
   Flow control: flow and error control is byte
    oriented
                         tcp

   Tcp: also does congestion control. If you want
    to learn about this read the textbook
   Tcp packet is called a segment: source port,
    destination port, seq no, ack no, HLEN?,
    Reserved?, window size, urgent pointer?,
    options, padding,
   ack+data can be piggybacked together
                         tcp

   Tcp header contains flags in control field: URG:
    urgent pointer valid, ACK: acknowledge no is
    valid,‫‏‬PSH:‫“‏‬push‫‏‬the‫‏‬data?”,‫‏‬RST:‫‏‬reset‫‏‬the‫‏‬
    connection, SYN: synchronize sequence
    numbers, FIN: terminate the connection
   Window size: size of receiving window. Which
    protocol is used?
                          tcp

   Checksum: same procedure as udp. (add all,
    take 1s complement)‫‏‬
   Urgent‫‏‬pointer:‫“‏‬urgent‫‏‬data”‫‏‬to‫‏‬be‫‏‬sent.‫‏‬Is‫‏‬used‫‏‬
    only when urgent flag is set in control field. This
    pointer is an offset that must be added to
    current segment sequence number to get last
    urgent byte. When could this be used?
                         tcp

   Tcp connections: tcp is connection oriented.
   Tcp: data transmitted in full duplex mode. This
    needs 3 way handshaking
   First step: passive open: server binds to port on
    a local machine
   Second step: Active open: client binds to this
    open port on the server
                        tcp

   Active open: involves 3 way handshake
   Only need to understand sequence number,
    acknowledgement number, flags.
   Client sends SYN (synchronize). SYN flag is
    set, no data. Consumes 1 sequence number
    (byte). SYN cannot carry data, but consumes
    one byte as sequence number
                        tcp

   Server: sends SYN+ACK back to client. SYN
    and ACK bits are sent. This means open up the
    reverse connection while acknowledging the
    forward connection. Consumes one sequence
   Client: sends ACK: ACK flag set. ACK no is the
    same as the incoming SYN no. ACK consumes
    no sequence.
                             tcp

   ACKs without data carry no sequence number
   Remember 2 sequence numbers are used for
    bidirectional communication! Here in tcp this is
    called seq and ack numbers.
   SYN flooding:
        Spoof source IP, SYN requests sent to a server.
         Server tries to respond with SYN+ACK. Many
         solutions: eg use cookies
                          tcp

   Tcp: bidirectional data transfer
   PSH‫‏‬flag‫‏‬tells‫‏‬TCP‫‏‬to‫“‏‬push”‫‏‬all‫‏‬data‫‏‬to‫‏‬the‫‏‬
    server application as soon as it is received.
    Server does not set PSH flag in its packets to
    clients.
   Examples of PSH enabled applications – chat
   Urgent data: asks TCP to send data out of order
    to application
                          tcp

   Think of examples when urgent flag is needed.
   Connection termination: also with 3 way
    handshake (mostly)‫‏‬
   Why 3 way handshaking: an acknowledgement
    of an acknowledgement
   First segment: sets FIN flag (finished)‫‏‬
   Of course FIN can include data
                        tcp

   FIN: consumes 1 sequence number if it does
    not carry data
   Server: FIN+ACK. As usual, consumes 1
    sequence number if it does not consume data.
   Client: ACKs the FIN+ACK.
   Half close also possible – one end stops
    sending but keeps receiving
   Amazing: half close can be accepted by server
                            tcp
   Half close can be accepted by server by
    sending ACK and not FIN (for its own
    connection). So server can still send data
   Important to see how sequence numbers
    change: think about this!!
   Flow control: between Go Back N and Selective
    Repeat protocols. Like Go back N because
    doesnt use NAK. Like SR because rx window is
    larger for reordering
                          tcp

   Sliding window tcp is byte oriented. Frame
    oriented at layer 2. tcp sliding window is of
    variable size. Why? Discuss the tradeoffs of this
                              tcp

   Tcp error control
        Checksum, ack, timeout
        Why ACK do not consume sequence numbers:
         because they are not acknowledged!!
        Retransmission: timeout or 3 duplicate ACKs
        RTO based on RTT and is dynamic. RTO also uses
         backoff similar to DLL backoff

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:37
posted:7/14/2011
language:English
pages:255