Announcement
Download
1 / 34

Announcement - PowerPoint PPT Presentation


  • 86 Views
  • Uploaded on

Announcement. CTEC code for TA CS 340 Lin Code: 322. Last class. Network layer - introduction Virtual circuit and datagram networks Routing algorithms Link state. 5. 3. 5. 2. 2. 1. 3. 1. 2. 1. x. z. w. y. u. v. Link-state algorithm: example. D(v),p(v) 2,u 2,u 2,u.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Announcement' - xanthus-fox


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Announcement
Announcement

  • CTEC code for TACS 340LinCode: 322


Last class
Last class

  • Network layer - introduction

  • Virtual circuit and datagram networks

  • Routing algorithms

    • Link state


Link state algorithm example

5

3

5

2

2

1

3

1

2

1

x

z

w

y

u

v

Link-state algorithm: example

D(v),p(v)

2,u

2,u

2,u

D(x),p(x)

1,u

D(w),p(w)

5,u

4,x

3,y

3,y

D(y),p(y)

2,x

Step

0

1

2

3

4

5

N'

u

ux

uxy

uxyv

uxyvw

uxyvwz

D(z),p(z)

4,y

4,y

4,y


Overview
Overview

  • Distance vector

  • IP: Internet Protocol

    • Datagram format

    • IPv4 addressing

    • ICMP

    • IPv6


  • Distance vector algorithm 1
    Distance Vector Algorithm (1)

    Bellman-Ford Equation (dynamic programming)

    Define

    dx(y) := cost of least-cost path from x to y

    Then

    dx(y) = min {c(x,v) + dv(y) }

    where min is taken over all neighbors of x


    Bellman ford example 2

    5

    3

    5

    2

    2

    1

    3

    1

    2

    1

    x

    z

    w

    u

    y

    v

    Bellman-Ford example (2)

    Clearly, dv(z) = 5, dx(z) = 3, dw(z) = 3

    B-F equation says:

    du(z) = min { c(u,v) + dv(z),

    c(u,x) + dx(z),

    c(u,w) + dw(z) }

    = min {2 + 5,

    1 + 3,

    5 + 3} = 4

    Node that achieves minimum is next

    hop in shortest path ➜


    Distance vector algorithm 3
    Distance Vector Algorithm (3)

    • Estimates:

      • Dx(y) = estimate of least cost from x to y

      • Distance vector: Dx = [Dx(y): y є N ]

    • Each node x:

      • Node x knows cost to each neighbor v: c(x,v)

      • Node x maintains Dx = [Dx(y): y є N ]

      • Node x also maintains its neighbors’ distance vectors

        • For each neighbor v, x maintains Dv = [Dv(y): y є N ]


    Distance vector algorithm 4
    Distance vector algorithm (4)

    Basic idea:

    • Each node periodically sends its own distance vector estimate to neighbors

    • When a node x receives new DV estimate from neighbor, it updates its own DV using B-F equation:

    Dx(y) ← minv{c(x,v) + Dv(y)} for each node y ∊ N

    • Under minor, natural conditions, the estimate Dx(y) converge the actual least cost dx(y)


    Distance vector algorithm 5

    Iterative, asynchronous: each local iteration caused by:

    local link cost change

    DV update message from neighbor

    Distributed:

    each node notifies neighbors only when its DV changes

    neighbors then notify their neighbors if necessary

    The algorithm doesn’t know the entire path – only knows the next hop

    wait for (change in local link cost of msg from neighbor)

    recompute estimates

    if DV to any dest has changed, notify neighbors

    Distance Vector Algorithm (5)

    Each node:


    cost to

    x y z

    x

    0 2 7

    y

    from

    z

    2

    1

    7

    z

    x

    y

    Dx(z) = min{c(x,y) + Dy(z), c(x,z) + Dz(z)}

    = min{2+1 , 7+0} = 3

    Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)} = min{2+0 , 7+1} = 2

    node x table

    cost to

    cost to

    x y z

    x y z

    x

    0 2 3

    x

    0 2 3

    y

    from

    2 0 1

    y

    from

    2 0 1

    z

    7 1 0

    z

    3 1 0

    node y table

    cost to

    cost to

    cost to

    x y z

    x y z

    x y z

    x

    x

    0 2 7

    2 0 1

    x

    0 2 3

    y

    y

    from

    2 0 1

    y

    from

    from

    2 0 1

    z

    z

    7 1 0

    z

    3 1 0

    node z table

    cost to

    cost to

    cost to

    x y z

    x y z

    x y z

    x

    0 2 7

    x

    0 2 3

    x

    ∞ ∞ ∞

    y

    y

    2 0 1

    from

    from

    y

    2 0 1

    from

    z

    z

    z

    3 1 0

    3 1 0

    7

    1

    0

    time


    Distance vector link cost changes

    1

    4

    1

    50

    x

    z

    y

    Distance Vector: link cost changes

    Link cost changes:

    • node detects local link cost change

    • updates routing info, recalculates distance vector

    • if DV changes, notify neighbors

    At time t0, y detects the link-cost change, updates its DV,

    and informs its neighbors.

    At time t1, z receives the update from y and updates its table.

    It computes a new least cost to x and sends its neighbors its DV.

    At time t2, y receives z’s update and updates its distance table.

    y’s least costs do not change and hence y does not send any

    message to z.

    “good

    news

    travels

    fast”


    Distance vector link cost changes1

    60

    4

    1

    50

    x

    z

    y

    Distance Vector: link cost changes

    Link cost changes:

    • good news travels fast

    • bad news travels slow - “count to infinity” problem!

    • 44 iterations before algorithm stabilizes: see text

      Poissoned reverse:

    • If Z routes through Y to get to X :

      • Z tells Y its (Z’s) distance to X is infinite (so Y won’t route to X via Z)

    • will this completely solve count to infinity problem?


    Comparison of ls and dv algorithms

    Message complexity

    LS: with n nodes, E links, O(nE) msgs sent

    DV: exchange between neighbors only

    convergence time varies

    Speed of Convergence

    LS: O(n2) algorithm requires O(nE) msgs

    may have oscillations

    DV: convergence time varies

    may be routing loops

    count-to-infinity problem

    Robustness: what happens if router malfunctions?

    LS:

    node can advertise incorrect link cost

    each node computes only its own table

    DV:

    DV node can advertise incorrect path cost

    each node’s table used by others

    error propagate thru network

    Comparison of LS and DV algorithms


    Overview1
    Overview

    • Distance vector

  • IP: Internet Protocol

    • Datagram format

    • IPv4 addressing

    • ICMP

    • IPv6


  • The internet network layer

    Host, router network layer functions:

    • ICMP protocol

    • error reporting

    • router “signaling”

    • IP protocol

    • addressing conventions

    • datagram format

    • packet handling conventions

    • Routing protocols

    • path selection

    • RIP, OSPF, BGP

    forwarding

    table

    The Internet Network layer

    Transport layer: TCP, UDP

    Network

    layer

    Link layer

    physical layer


    Ip datagram format

    IP protocol version

    number

    32 bits

    total datagram

    length (bytes)

    header length

    (bytes)

    type of

    service

    head.

    len

    ver

    length

    for

    fragmentation/

    reassembly

    fragment

    offset

    “type” of data

    flgs

    16-bit identifier

    max number

    remaining hops

    (decremented at

    each router)

    upper

    layer

    time to

    live

    Internet

    checksum

    32 bit source IP address

    32 bit destination IP address

    upper layer protocol

    to deliver payload to

    E.g. timestamp,

    record route

    taken, specify

    list of routers

    to visit.

    Options (if any)

    data

    (variable length,

    typically a TCP

    or UDP segment)

    IP datagram format

    how much overhead with TCP?

    • 20 bytes of TCP

    • 20 bytes of IP

    • = 40 bytes + app layer overhead


    Ip fragmentation reassembly

    network links have MTU (max.transfer size) - largest possible link-level frame.

    different link types, different MTUs

    large IP datagram divided (“fragmented”) within net

    one datagram becomes several datagrams

    “reassembled” only at final destination

    IP header bits used to identify, order related fragments

    IP Fragmentation & Reassembly

    fragmentation:

    in: one large datagram

    out: 3 smaller datagrams

    reassembly


    Ip fragmentation and reassembly

    length possible link-level frame.

    =1500

    length

    =1500

    length

    =4000

    length

    =1040

    ID

    =x

    ID

    =x

    ID

    =x

    ID

    =x

    fragflag

    =0

    fragflag

    =1

    fragflag

    =1

    fragflag

    =0

    offset

    =0

    offset

    =0

    offset

    =370

    offset

    =185

    One large datagram becomes

    several smaller datagrams

    IP Fragmentation and Reassembly

    Example

    • 4000 byte datagram

    • MTU = 1500 bytes

    1480 bytes in data field

    offset =

    1480/8


    Overview2
    Overview possible link-level frame.

    • Distance vector

  • IP: Internet Protocol

    • Datagram format

    • IPv4 addressing

    • ICMP

    • IPv6


  • Ip addressing introduction

    IP address: possible link-level frame. 32-bit identifier for host, router interface

    interface: connection between host/router and physical link

    router’s typically have multiple interfaces

    host may have multiple interfaces

    IP addresses associated with each interface

    223.1.1.2

    223.1.2.1

    223.1.3.27

    223.1.3.1

    223.1.3.2

    223.1.2.2

    IP Addressing: introduction

    223.1.1.1

    223.1.2.9

    223.1.1.4

    223.1.1.3

    223.1.1.1 = 11011111 00000001 00000001 00000001

    223

    1

    1

    1


    Subnets

    IP address: possible link-level frame.

    subnet part (high order bits)

    host part (low order bits)

    What’s a subnet ?

    device interfaces with same subnet part of IP address

    can physically reach each other without intervening router

    Subnets

    223.1.1.1

    223.1.2.1

    223.1.1.2

    223.1.2.9

    223.1.1.4

    223.1.2.2

    223.1.1.3

    223.1.3.27

    LAN

    223.1.3.2

    223.1.3.1

    network consisting of 3 subnets


    Subnets1

    Recipe possible link-level frame.

    To determine the subnets, detach each interface from its host or router, creating islands of isolated networks. Each isolated network is called a subnet.

    223.1.1.0/24

    223.1.2.0/24

    223.1.3.0/24

    Subnets

    Subnet mask: /24


    Subnets2

    Q. possible link-level frame. How many?

    A. The IP definition of a subnet is not restricted to Ethernet segments

    Subnets

    223.1.1.2

    223.1.1.1

    223.1.1.4

    223.1.1.3

    223.1.7.0

    223.1.9.2

    223.1.9.1

    223.1.7.1

    223.1.8.1

    223.1.8.0

    223.1.2.6

    223.1.3.27

    223.1.2.1

    223.1.2.2

    223.1.3.1

    223.1.3.2


    Ip addressing cidr

    host possible link-level frame.

    part

    subnet

    part

    11001000 0001011100010000 00000000

    200.23.16.0/23

    IP addressing: CIDR

    Before CIDR: only 8-, 16-, and 24- bit masks were available (A, B, and C class networks)

    CIDR:Classless InterDomain Routing

    • subnet portion of address of arbitrary length

    • address format: a.b.c.d/x, where x is # bits in subnet portion of address


    Ip addresses how to get one
    IP addresses: how to get one? possible link-level frame.

    Q: How does host get IP address?

    • hard-coded by system admin in a file

      • Wintel: control-panel->network->configuration->tcp/ip->properties

      • UNIX: /etc/rc.config

    • DHCP:Dynamic Host Configuration Protocol: dynamically get address from as server

      • “plug-and-play”

        (more in a couple of weeks)


    Ip addresses how to get one1
    IP addresses: how to get one? possible link-level frame.

    Q: How does network get subnet part of IP addr?

    A: gets allocated portion of its provider ISP’s address space

    ISP's block 11001000 00010111 00010000 00000000 200.23.16.0/20

    Organization 0 11001000 00010111 00010000 00000000 200.23.16.0/23

    Organization 1 11001000 00010111 00010010 00000000 200.23.18.0/23

    Organization 2 11001000 00010111 00010100 00000000 200.23.20.0/23

    ... ….. …. ….

    Organization 7 11001000 00010111 00011110 00000000 200.23.30.0/23


    Hierarchical addressing route aggregation

    200.23.16.0/23 possible link-level frame.

    200.23.18.0/23

    200.23.30.0/23

    200.23.20.0/23

    .

    .

    .

    .

    .

    .

    Hierarchical addressing: route aggregation

    Hierarchical addressing allows efficient advertisement of routing

    information:

    Organization 0

    Organization 1

    “Send me anything

    with addresses

    beginning

    200.23.16.0/20”

    Organization 2

    Fly-By-Night-ISP

    Internet

    Organization 7

    “Send me anything

    with addresses

    beginning

    199.31.0.0/16”

    ISPs-R-Us


    Hierarchical addressing more specific routes

    200.23.16.0/23 possible link-level frame.

    200.23.18.0/23

    200.23.30.0/23

    200.23.20.0/23

    .

    .

    .

    .

    .

    .

    Hierarchical addressing: more specific routes

    ISPs-R-Us has a more specific route to Organization 1

    Organization 0

    “Send me anything

    with addresses

    beginning

    200.23.16.0/20”

    Organization 2

    Fly-By-Night-ISP

    Internet

    Organization 7

    “Send me anything

    with addresses

    beginning 199.31.0.0/16

    or 200.23.18.0/23”

    ISPs-R-Us

    Organization 1


    Ip addressing the last word
    IP addressing: the last word... possible link-level frame.

    Q: How does an ISP get block of addresses?

    A: ICANN: Internet Corporation for Assigned

    Names and Numbers

    • allocates addresses

    • manages DNS

    • assigns domain names, resolves disputes


    Nat network address translation
    NAT: Network Address Translation possible link-level frame.

    rest of

    Internet

    local network

    (e.g., home network)

    10.0.0/24

    10.0.0.1

    10.0.0.4

    10.0.0.2

    138.76.29.7

    10.0.0.3

    Datagrams with source or

    destination in this network

    have 10.0.0/24 address for

    source, destination (as usual)

    All datagrams leaving local

    network have same single source NAT IP address: 138.76.29.7,

    different source port numbers


    Nat network address translation1
    NAT: Network Address Translation possible link-level frame.

    • Motivation: local network uses just one IP address as far as outside word is concerned:

      • no need to be allocated range of addresses from ISP: - just one IP address is used for all devices

      • can change addresses of devices in local network without notifying outside world

      • can change ISP without changing addresses of devices in local network

      • devices inside local net not explicitly addressable, visible by outside world (a security plus).


    Nat network address translation2
    NAT: Network Address Translation possible link-level frame.

    Implementation: NAT router must:

    • outgoing datagrams:replace (source IP address, port #) of every outgoing datagram to (NAT IP address, new port #)

      . . . remote clients/servers will respond using (NAT IP address, new port #) as destination addr.

    • remember (in NAT translation table) every (source IP address, port #) to (NAT IP address, new port #) translation pair

    • incoming datagrams:replace (NAT IP address, new port #) in dest fields of every incoming datagram with corresponding (source IP address, port #) stored in NAT table


    Nat network address translation3

    3 possible link-level frame.

    1

    2

    4

    S: 10.0.0.1, 3345

    D: 128.119.40.186, 80

    S: 138.76.29.7, 5001

    D: 128.119.40.186, 80

    1: host 10.0.0.1

    sends datagram to

    128.119.40, 80

    2: NAT router

    changes datagram

    source addr from

    10.0.0.1, 3345 to

    138.76.29.7, 5001,

    updates table

    S: 128.119.40.186, 80

    D: 10.0.0.1, 3345

    S: 128.119.40.186, 80

    D: 138.76.29.7, 5001

    NAT: Network Address Translation

    NAT translation table

    WAN side addr LAN side addr

    138.76.29.7, 5001 10.0.0.1, 3345

    …… ……

    10.0.0.1

    10.0.0.4

    10.0.0.2

    138.76.29.7

    10.0.0.3

    4: NAT router

    changes datagram

    dest addr from

    138.76.29.7, 5001 to 10.0.0.1, 3345

    3: Reply arrives

    dest. address:

    138.76.29.7, 5001


    Nat network address translation4
    NAT: Network Address Translation possible link-level frame.

    • 16-bit port-number field:

      • 60,000 simultaneous connections with a single LAN-side address!

    • NAT is controversial:

      • Port numbers are to address processes – not hosts

      • routers should only process up to layer 3

      • violates end-to-end argument

        • NAT possibility must be taken into account by app designers, eg, P2P applications

      • address shortage should instead be solved by IPv6


    ad