07 Network Layer Slides

download 07 Network Layer Slides

of 68

Transcript of 07 Network Layer Slides

  • 7/25/2019 07 Network Layer Slides

    1/68

    Internet Technology07. Network Layer

    Paul Krzyzanowski

    Rutgers University

    Spring 2013

    1March 17, 2013 2013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    2/68

    Network Layer

    Transport Layer (Layer 4)

    Application-to-application communication

    Network Layer (Layer 3)

    Host-to-host communication

    Route The path that a packet takes through the network

    Routing

    The process of determining the path

    Forwarding Transferring a packet from an incoming link to an outgoing link

    Router

    The device that forwards packets (datagrams)

    March 17, 2013 2

    Router

    2013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    3/68

    Forwarding vs. Routing

    Routing

    Responsibility over the path Routing algorithms figure out the path a packet should take

    Forwarding

    A router consults a forwarding table

    Examines data in a packets header & uses the table to determine theoutgoing link for the packet

    Routing algorithms configure forwarding tables

    Switches vs. Routers

    Packet switches: transfer data between links based on link layer data (e.g.,

    Ethernet) Routers: transfer data between links based on network layer data (e.g., IP)

    March 17, 2013 32013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    4/68

    Network service models: our wish list

    What would we like from a network?

    Guaranteed delivery (no loss)

    Bounded (maximum) delay

    In-order packet delivery

    Guaranteed constant or minimum bandwidth

    Maximum jitter

    Jitter = variation in latency

    Endpoint authentication & encrypted delivery

    March 17, 2013 42013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    5/68

    Network service models: what do we get?

    IP gives us none of this

    Best-effort = no guarantees on delivery, delay, order

    Other network architectures provide some of these items

    E.g., ATM (Asynchronous Transfer Mode)

    ATM CBR (Constant Bit Rate)

    Connection setup specifies bandwidth

    Network provides constraints on jitter and packet loss

    Network guarantees in-order delivery

    ATM ABR (Available Bit Rate)

    In-order delivery

    Guaranteed minimum bandwidth but higher rates if resources available

    Feedback to sender if congestion is present

    March 17, 2013 52013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    6/68

    Virtual Circuit vs. Datagram Networks

    Virtual Circuit (VC) Networks

    Connection service at the network layer

    All routers in the path are involved in the connection

    Datagram Networks

    Connectionless service at the network layer

    Connection-oriented service provided at the transport layer

    Only end systems are involved

    Routers are oblivious

    IP is a datagram network

    March 17, 2013 62013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    7/68

    Virtual Circuit Networks

    Connection setup

    Set up route based on destination address Each router commits resources

    Each router builds enters the connectionin its forwarding table

    Routers maintain connection state information

    Communication

    Each packet contains a VC#

    Forwarding table determines the next link and VC#

    Destination address notneeded on each packet; just the VC#

    Teardown

    Clear connection from forwarding table on each router

    March 17, 2013 7

    Incoming

    interface

    Incoming

    VC #

    Outgoin

    g

    Interface

    Outgoing

    VC #

    1 12 2 83

    1 9 2 101

    2 4 1 151Forwarding Table

    2013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    8/68

    Datagram Networks

    Packet identified with the destination address

    No setup; routers maintain no state information

    Routers

    Use the destination address to forward the packet

    Forwarding table maps destination address to output link

    IP addresses are 32 bits

    We cant have a forwarding table with 232(4,294,967,296) entries!

    Match a range of addresses by matching a prefix

    March 17, 2013 8

    Prefix Outgoing

    Interface

    1000 0000 0000 0110 2

    0000 0111 0010 3

    0000 0111 1

    Forwarding Table= Routing Table

    192.168.*.* = Rutgers

    15.*.*.* = HP

    15.[32-47].*.* = HPlongest prefixmatching rule

    Routing Protocols

    2013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    9/68

    The Router

    March 17, 2013 92013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    10/68

    SystemTasks

    RoutingProcessor

    Router Architecture

    March 17, 2013 10

    SwitchFabric

    Control Plane

    Data Plane

    Data Plane: Packet Forwarding

    Layer 1: Retime & regenerate signal

    Layer 2: Rewrite header and checksum

    Layer 3: Look up, queue, decrement TTL,regenerate checksum, forward to output port

    Note: a porton a router refers to theinput & output interfaces, not atransport-layer port

    Control Plane: Routing & Management

    Run routing protocols & maintain routing tables

    User command interface Accounting

    ICMP

    Queue management

    Layer 2Interface

    Input Port

    Layer 2Interface

    Input Port

    Layer 2 Interface

    Output Port

    Layer 2 Interface

    Output Port

    2013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    11/68

    Router Architecture: line cards

    A line card is responsible for I/O on a specific interface

    March 17, 2013 11

    Layer 2Interface

    Input Port

    Layer 2Interface

    Output Port

    2013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    12/68

    Line Card

    Line Card

    Line Card

    Shared Memory - Conventional

    Ports

    Function as I/O devices in an OS

    Packet arrival

    CPU interrupt

    Copied to memory

    Routing CPU determines route

    Copies packet to output port

    Limitation

    Only one memory read/write at a time CPU & bus can be bottlenecks

    March 17, 2013 12

    SharedMemory

    SharedBus

    CPU

    CPUMemory

    Routing

    Table

    Line Card

    2013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    13/68

    Shared MemoryDistributed CPUs

    CPU & copy of routing table in line cards

    Lookup and data copy to outputport done by line card

    Limitation

    Only one memory

    read/write at a time Bus can be a bottleneck

    March 17, 2013 13

    SharedMemory

    SharedBus

    CPU

    CPUMemory

    Routing

    TableLine CardCPU

    Line Card

    CPU

    Line Card

    CPU

    Line Card

    CPU

    2013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    14/68

    Non-shared MemoryBus Data Path

    No shared memory

    Bus used to copy packetsdirectly from oneport to another

    Limitation

    Shared bus canbe a bottleneck

    March 17, 2013 14

    SharedBus

    CPU

    CPUMemory

    Routing

    TableLine CardCPU

    Line Card

    CPU

    Line Card

    CPU

    Line Card

    CPU

    2013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    15/68

    Non-shared MemoryCrossbar Data Path

    NN crossbar switching fabric

    One port can move a packet to another portwithout blocking otherports

    Multiple switchingfabrics can usedto route packetsto the same port

    Verdict

    Fastest solution

    $$$

    March 17, 2013 15

    CPU

    CPUMemory

    RoutingTable

    Line Card

    CPU

    Line Card

    CPU

    Line CardCPU

    Line Card

    CPUCrossbar

    Switch

    2013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    16/68

    Output Port Queuing

    If theres a queue at an output port

    A packet scheduler chooses one packet for transmission This can be simple first-come-first-served (FCFS)

    or take other factors into account(source, destination, protocol, service level)

    If the output port queue is full

    We have packet loss

    A router can decide which packet to drop

    Active Queue Management (AQM) algorithms: decide which packets to

    drop

    March 17, 2013 162013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    17/68

    Input Port Queuing

    If packets arrive faster than they could be switched

    They need to be queued at input ports If multiple queues have a packet for the same output port

    Only one will be switched at a time

    The others will be blocked and the packets behind them will be blocked too!

    Head-of-line blocking

    If the queue overflows We have packet loss

    March 17, 2013 172013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    18/68

    Head-of-line blocking

    March 17, 2013 18

    SwitchFabric

    Layer 2Interface

    Input Port

    Layer 2Interface

    Input Port

    Layer 2 Interface

    Output Port

    Layer 2 Interface

    Output Port

    Layer 2Interface

    Input Port

    Layer 2 Interface

    Output Port

    If this packet has to wait

    Then these packets have to wait

    2013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    19/68

    Internet Protocol

    March 17, 2013 192013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    20/68

    Internet Protocol: Layer 3IP

    March 17, 2013 20

    Application

    Transport

    Network

    Data Link

    Physical

    Internet protocol stack

    1

    2

    3

    4

    5

    6

    7

    IP Layer Components

    1. IP Protocol Addressing

    Datagrams Fragmentation Packet forwarding

    1. Routing Protocols

    1. ICMP Error reporting Signaling

    2013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    21/68

    IP Datagram Structure

    20 byte fixed part

    Variable-size options

    March 17, 2013 21

    Version Total Length

    Identification (Fragment)

    Data

    32 bits4 bytes

    Options (if header length > 5)

    20bytes

    Header checksum

    Source IP address

    0 1 2 3 4 5 6 78 910

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    HeaderLength DSCP ECN

    13-bit Fragment offsetFlags

    Time to Live Protocol

    Destination IP address

    2013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    22/68

    IP Datagram: Version

    4-bit identification of the protocol used: 4 = IPv4

    March 17, 2013 22

    Version Total Length

    Identification

    Data

    32 bits4 bytes

    Options (if header length > 5)

    20bytes

    Header checksum

    Source IP address

    0 1 2 3 4 5 6 78 910

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    HeaderLength DSCP ECN

    13-bit Fragment offsetFlags

    Time to Live Protocol

    Destination IP address

    2013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    23/68

    IP Datagram: Header Length

    4-bit header length (in # of 32-bit words)

    IP packets usually have no options, so this is usually 5

    March 17, 2013 23

    Version Total Length

    Identification

    Data

    32 bits4 bytes

    Options (if header length > 5)

    20bytes

    Header checksum

    Source IP address

    0 1 2 3 4 5 6 78 910

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    HeaderLength DSCP ECN

    13-bit Fragment offsetFlags

    Time to Live Protocol

    Destination IP address

    2013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    24/68

    IP Datagram: DSCP

    Differentiated Services Control Point

    Identifies class of service for QoS aware routers (e.g., VoIP)

    March 17, 2013 24

    Version Total Length

    Identification

    Data

    32 bits4 bytes

    Options (if header length > 5)

    20bytes

    Header checksum

    Source IP address

    0 1 2 3 4 5 6 78 910

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    HeaderLength DSCP ECN

    13-bit Fragment offsetFlags

    Time to Live Protocol

    Destination IP address

    2013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    25/68

    IP Datagram: ECN

    Explicit Congestion Notifications

    Routers normally do not inform endpoints of congestion ECN is an optional feature to allow them to do so

    March 17, 2013 25

    Version Total Length

    Identification

    Data

    32 bits4 bytes

    Options (if header length > 5)

    20bytes

    Header checksum

    Source IP address

    0 1 2 3 4 5 6 78 910

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    HeaderLength DSCP ECN

    13-bit Fragment offsetFlags

    Time to Live Protocol

    Destination IP address

    2013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    26/68

    IP Datagram: Total Length

    16-bit value of the entire datagram (including the 20-byte IP header)

    March 17, 2013 26

    Version Total Length

    Identification

    Data

    32 bits4 bytes

    Options (if header length > 5)

    20bytes

    Header checksum

    Source IP address

    0 1 2 3 4 5 6 78 910

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    HeaderLength DSCP ECN

    13-bit Fragment offsetFlags

    Time to Live Protocol

    Destination IP address

    2013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    27/68

    IP Datagram: Fragmentation

    Fragmentation

    Identification: Identifies fragment of an original datagram Flags: control fragmentation or identify if there are more fragments

    Fragment offset: offset of fragment relative to original data

    March 17, 2013 27

    Version Total Length

    Identification

    Data

    Options (if header length > 5)

    20bytes

    Header checksum

    Source IP address

    0 1 2 3 4 5 6 78 910

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    HeaderLength DSCP ECN

    13-bit Fragment offsetFlags

    Time to Live Protocol

    Destination IP address

    2013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    28/68

    IP Datagram: Time-To-Live

    Hop countdecremented by 1 each time the datagram hits a router

    If TTL == 0, discard the packet Keeps packets from circulating indefinitely (common TTL = 6064)

    March 17, 2013 28

    Version Total Length

    Identification

    Data

    32 bits4 bytes

    Options (if header length > 5)

    20bytes

    Header checksum

    Source IP address

    0 1 2 3 4 5 6 78 910

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    HeaderLength DSCP ECN

    13-bit Fragment offsetFlags

    Time to Live Protocol

    Destination IP address

    2013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    29/68

    IP Datagram: Protocol

    Identifies the protocol in the data portion

    TCP = 6, UDP = 17 IANA assigns the numbers

    March 17, 2013 29

    Version Total Length

    Identification

    Data

    32 bits4 bytes

    Options (if header length > 5)

    20bytes

    Header checksum

    Source IP address

    0 1 2 3 4 5 6 78 910

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    HeaderLength DSCP ECN

    13-bit Fragment offsetFlags

    Time to Live Protocol

    Destination IP address

    2013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    30/68

    IP Datagram: Header Checksum

    1s complement checksum of the header

    Router discards packet if corrupt Must be recalculated by the router since TTL (& maybe options) change

    March 17, 2013 30

    Version Total Length

    Identification

    Data

    32 bits4 bytes

    Options (if header length > 5)

    20bytes

    Header checksum

    Source IP address

    0 1 2 3 4 5 6 78 910

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    HeaderLength DSCP ECN

    13-bit Fragment offsetFlags

    Time to Live Protocol

    Destination IP address

    2013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    31/68

    IP Datagram: Source & Destination

    Identifies source and destination IP addresses

    March 17, 2013 31

    Version Total Length

    Identification

    Data

    32 bits4 bytes

    Options (if header length > 5)

    20bytes

    Header checksum

    Source IP address

    0 1 2 3 4 5 6 78 910

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    HeaderLength DSCP ECN

    13-bit Fragment offsetFlags

    Time to Live Protocol

    Destination IP address

    2013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    32/68

    IP Datagram: Options

    Extensions to the headerrarely used

    Options include: route to destination, record of route, IP timestamp

    March 17, 2013 32

    Version Total Length

    Identification

    Data

    32 bits4 bytes

    Options (if header length > 5)

    20bytes

    Header checksum

    Source IP address

    0 1 2 3 4 5 6 78 910

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    HeaderLength DSCP ECN

    13-bit Fragment offsetFlags

    Time to Live Protocol

    Destination IP address

    2013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    33/68

    IP Fragmentation & Reassembly

    Remember MTU (Maximum Transmission Unit)?

    Maximum size of payload that a link layer frame can carry This limits the size of an IP datagram (and hence a TCP or UDP segment)

    What if a router needs to forward a packet that is larger than thatlinks MTU?

    Break up the datagram into two or more fragments

    Each fragment is a separate IP datagram

    IP layer at the end system needs to reassemblethe fragments beforepassing the data to the transport layer

    March 17, 2013 332013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    34/68

    IP Fragmentation

    When an IP datagram is first created

    Sender creates an ID number for each datagram (usually value of a counter) DFbit (Dont Fragment) set to 0: fragmenting is allowed

    When a router needs to fragment a datagram

    Each fragment contains the same ID #, source address, destination address Fragment offset

    Identifies offset of the fragment relative to the original datagram in 8-byte blocks

    First datagram Offset = 0

    All fragments except for the last one have the MF(More Fragments) bit set

    March 17, 2013 34

    Identification 13-bit Fragment offsetFlags

    DF

    MF

    0

    2013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    35/68

    IP Fragmentation

    Example: send 4,000 byte datagram

    20 bytes IP header + 3980 bytes data

    Outbound link at router has a 1500-byte MTU

    March 17, 2013 35

    src=68.36.211.59 dest=128.6.4.24 ID=2222 TTL=60 Sum=xxx Offset=0MF=

    0Data = 3980 byteslen=4000

    src=68.36.211.59 dest=128.6.4.24 ID=2222 TTL=60 Sum=aaa Offset=0MF=

    1Data = 1480 byteslen=1500

    src=68.36.211.59 dest=128.6.4.24 ID=2222 TTL=60 Sum=bbb Offset=185MF=

    1Data = 1480 byteslen=1500

    src=68.36.211.59 dest=128.6.4.24 ID=2222 TTL=60 Sum=ccc Offset=370MF=

    0Data = 1020 byteslen=1040

    Fragment 1

    Fragment 2

    Fragment 3

    1858=1480

    3708=2960No more fragments

    Recompute checksumfor each datagram

    2013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    36/68

    IP Reassembly

    Identification

    Receiver knows a packet is a fragment if MF is 1 and/or Fragment Offset is not 0

    Matching & Sequencing

    Identification field is used to match fragments from the same datagram

    Offsets identify the sequence of fragments

    Size of original

    When the receiver gets the last fragment (MF==0, Offset != 0)

    It knows the size of the datagram ((offset8)+length)

    Giving up

    If any parts are missing within a time limit, discard the packet

    Linux: /proc/sys/net/ipv4/ipfrag_time (default 30 seconds)

    Once reassembled, pass to protocol that services this datagram

    March 17, 2013 362013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    37/68

    IP Addressing

    March 17, 2013 372013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    38/68

    IP Addressing

    IPv4 address: 32 bits expressed in dotted-decimal notation

    www.rutgers.edu = 0x80064489= 128.6.68.137

    Each interfaceneeds to have an IP address

    E.g., each link on a router has an address

    If your laptop is connected via Ethernet and 802.11, you have 2 IP addresses Every interface at a router has its own address

    March 17, 2013 382013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    39/68

    Route Aggregation: Subnets

    IP address = 32 bits = 232addresses

    But addresses cannot be assigned randomly Otherwise routing tables would have to be 232entries long!

    and maintaining them would be a nightmare

    Instead, assign groups of adjacent addresses to an organization

    Route aggregation = use one prefix to advertise routes to multipledevices or networks

    March 17, 2013 39

    www.rutgers.edu = 128.6.68.137

    All hosts in Rutgers start with 128.6

    First 16 bits of the IP address identify a host at Rutgers

    Routers need to know how to route to just 128.6instead ofall 65,536 (216) possible addresses

    2013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    40/68

    Subnets

    Subnet(= subnetwork = network)

    Group of IP addresses sharing a common prefix (n high-order bits) A logical network connected to a router (LAN or collection of LANs)

    Rutgers subnet = 128.6.0.0/16

    CIDRnotation (Classless Inter-Domain Routing)

    A/N: Nmost significant (leftmost) bits of address

    March 17, 2013 40

    www.rutgers.edu = 128.6.68.137

    10000000 00000110 01000100 10001001

    Network number Host number

    Top 16 bits identify thesubnetwork

    2013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    41/68

    Subnet Mask

    A subnet mask (or netmask)

    A bit mask with 1s in the network number position Address & netmask strips away host bits

    Address & ~netmask strips away network bits

    For Rutgers, the netmask is

    11111111 11111111 00000000 00000000

    255.255.0.0

    For a 221.2.1.0/26 network, the netmask is

    11111111 11111111 11111111 11000000

    255.255.255.192

    March 17, 2013 41

    6 bitshost26 bitsnetwork

    16 bitshost16 bitsnetwork

    2013 Paul Krzyzanowski

    From

  • 7/25/2019 07 Network Layer Slides

    42/68

    How are IP addresses assigned?

    IP addresses are distributed hierarchically

    Internet Assigned Numbers Authority (IANA) at the top IANA is currently run by ICANN

    Internet Corporation for Assigned Names and Numbers

    March 17, 2013 42

    RIPENCCAfriNIC LACNICARINAPNIC

    IANA

    Regional Internet Registries (RIR)

    Allocate blocks of addresses to ISPs

    ISP ISP ISP ISP ISPRIR Map

    ISP ISP

    ISP

    Your computer(or Internet gateway)- We will look at NATlater- Permanent (static) or temporary (dynamic)

    FromLecture 3:

    DNS

    2013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    43/68

    Address allocation: its a hierarchy

    March 17, 2013 43

    Allocates blocks of IP addresses

    Allocates one or more blocks of IP addresses

    Organization

    Allocates an address or one or more blocks of IP addresses

    ISP

    ARIN

    IANA

    ARIN administers 79 blocks of IP addresses

    Networks

    Allocates one or more blocks of IP addresses

    Allocates IP addresses to hosts

    ISP

    ISP gets 200.23.16.0/20

    OrgA

    OrgB

    OrgC

    200.23.16.0/23

    200.23.18.0/23

    200.23.20.0/23

    Routing: everythingto 200.23.16.0/20

    goes here

    Subnetting, dividing a network intosmaller networks, can be repeated ateach level of the hierarchy

    2013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    44/68

    Special addresses

    Network address: all host bits 0

    Rarely, if ever, used Rutgers = 128.6.0.0

    Limited broadcast address: all bits 1

    Broadcast address for this network, the local network.

    Datagrams are not forwarded by routers to other networks

    Broadcast address: all host bits 1

    All hosts on the specified subnet get datagrams sent to this address

    Routers may or may not forward broadcasts (no for outside an organization)

    Rutgers = 128.6.255.255

    Loopback address: 127.0.0.1 = localhost

    Communicate with your own device

    Uses the loopback network interface

    March 17, 2013 442013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    45/68

    Host Configuration

    How do you assign an address to a host?

    Manually, configure the device with its IP address

    Subnet mask, so it knows what addresses are local

    Gateway: default address for non-local addresses not in a routing table

    Router that connects the LAN to another network

    Name server addresses(s), so it can look up addresses

    Automatically, via the Dynamic Host Configuration Protocol (DHCP)

    March 17, 2013 452013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    46/68

    Dynamic Host Configuration Protocol

    Protocol for client to get an IP address and network parameters

    It has to work before the client has a valid address on the network!

    Use IP broadcasts

    DHCP server must be running on the same network link (LAN) Else each link must run a DHCP Relay Agentthat forwards the request to

    a DHCP server

    March 17, 2013 462013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    47/68

    DHCP: Three mechanisms for allocation

    1. Automatic allocation

    DHCP assigns an permanent IP address to a client

    2. Dynamic allocation

    DHCP assigns an IP address to a client for a limited period of time

    Allows automatic reuse of an address that is no longer needed by the client

    3. Manual allocation

    A client IP address is assigned by the network administrator

    March 17, 2013 472013 Paul Krzyzanowski

    DHCP Th P l

  • 7/25/2019 07 Network Layer Slides

    48/68

    DHCP: The Protocol

    March 17, 2013 48

    Client broadcasts DHCP Discover

    Client sends a limited broadcast DHCPDiscover UDP message to port 67

    Contains random transaction identifier

    Server responds with an offer

    Server sends a limited broadcast DHCP

    Offer UDP message to port 68

    Response contains

    Matching transaction identifier

    Proposed IP address

    Subnet mask

    Lease time

    Client broadcasts DHCP Request

    Sends back a DHCP message with acopy of the parameters

    This performs selection(if multipleoffers), confirmation of data, extension oflease

    Discover

    Offer

    Request

    Serversends DHCP ACK

    Sends configuration parameters,including committed IP address

    Client Server

    ACK

    D-O-R-A

    2013 Paul Krzyzanowski

    NAT N t k Add T l ti

  • 7/25/2019 07 Network Layer Slides

    49/68

    NAT: Network Address Translation

    Every device on the Internet needs an IP address

    Every address has to be unique otherwise, how do you address a host?

    IP addresses are not plentiful

    Does an organization with 10,000 IP hosts really need 10,000 addresses?

    March 17, 2013 492013 Paul Krzyzanowski

    NAT N t k Add T l ti

  • 7/25/2019 07 Network Layer Slides

    50/68

    NAT: Network Address Translation

    Private IP address space in the organization

    One external IP address

    NAT Translation Table

    Map source address:port in outgoing IP requests to a unique external address:port

    Inverse mapping for incoming requests

    A NAT-enabled router looks like a single device with one IP address

    March 17, 2013 50

    Internal External

    Host Port Host Port

    192.168.32.4 1200 68.36.210.55 4000

    192.168.32.6 1200 68.36.210.55 4001

    192.168.32.6 1102 68.36.210.55 4002

    192.168.32.11 9000 68.36.210.55 4003

    Translation Table in a NAT-Enabled Router

    src: 68.36.210.55:4000dest: 74.125.26.103: 80

    2013 Paul Krzyzanowski

    NAT N t k Add T l ti

  • 7/25/2019 07 Network Layer Slides

    51/68

    NAT: Network Address Translation

    NAT requires a router to look at the transport layer!

    Source port (outgoing) & destination port (incoming) changes

    TCP/UDP checksum recomputed

    March 17, 2013 51

    Internal External

    Host Port Host Port

    192.168.32.4 1200 68.36.210.55 4000

    192.168.32.6 1200 68.36.210.55 4001

    192.168.32.6 1102 68.36.210.55 4002

    192.168.32.11 9000 68.36.210.55 4003

    Translation Table in a NAT-Enabled Router

    2013 Paul Krzyzanowski

    NAT P i t Add

  • 7/25/2019 07 Network Layer Slides

    52/68

    NAT: Private Addresses

    We cannot use IP addresses of valid external hosts locally

    how will we distinguish local vs. external hosts?

    RFC 1918: Address Allocation for Private Internets

    Defines unregistered, non-routable addresses for internal networks

    March 17, 2013 52

    Address Range # addresses CIDR block

    10.0.0.010.255.255.255 16,777,216 10.0.0.0/8

    172.16.0.0172.31.255.255 1,048,576 172.16.0.0/12

    192.168.0.0192.168.255.255 65,536 192.168.0.0/16

    2013 Paul Krzyzanowski

    NAT i t

  • 7/25/2019 07 Network Layer Slides

    53/68

    NAT variants

    Static NAT

    One-to-one mapping between internal and external addresses

    Dynamic NAT

    Maps an unregistered (internal) IP address to one of several registered IPaddresses

    Overloading, or Port Address Translation (PAT)

    A form of dynamic NAT that maps multiple internal IP addresses to a singleregistered address by using different ports

    March 17, 2013 532013 Paul Krzyzanowski

    Ad t f NAT

  • 7/25/2019 07 Network Layer Slides

    54/68

    Advantages of NAT

    Internal address space can be much larger than the addressesallocated by the ISP

    No need to change internal addresses if ISP changes your address

    Enhanced security A computer on an external network cannot contact an internal computer Unless the internal computer initiated the communication

    But can only contact the computer on that specific port(this is where active mode FTP had problems)

    March 17, 2013 542013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    55/68

    ICMP

    March 17, 2013 552013 Paul Krzyzanowski

    I t t C t l M P t l (ICMP)

  • 7/25/2019 07 Network Layer Slides

    56/68

    Internet Control Message Protocol (ICMP)

    Network-layer protocol to allow hosts & routers to communicatenetwork-related information

    ICMP information is carried as IP payload

    March 17, 2013 562013 Paul Krzyzanowski

    ICMP Segment Str ct re

  • 7/25/2019 07 Network Layer Slides

    57/68

    ICMP Segment Structure

    Variable-size segment; 8-byte minimum

    Type: command or status report ID

    Code: status code for the type

    Checksum: Checksum from ICMP header & data

    Rest of header: depends on type

    Error reports contain the IP header & first 8 bytes of original datagrams data

    March 17, 2013 57

    Type Checksum

    Rest of Header (4 bytes)

    32 bits4 bytes

    8bytes

    0 1 2 3 4 5 6 78 910

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    Code

    Data (optional)

    2013 Paul Krzyzanowski

    Some ICMP Message Types

  • 7/25/2019 07 Network Layer Slides

    58/68

    Some ICMP Message Types

    March 17, 2013 58

    Type Description

    0 Echo reply (ping)

    3 Destination unreachable

    4 Source quench

    5 Redirect message

    8 Echo request

    9 Router advertisement

    10 Router solicitation

    11 TTL exceeded

    12 Bad IP header

    13 Timestamp14 Timestamp reply

    17 Address mask request

    18 Address mask reply

    2013 Paul Krzyzanowski

    Ping program

  • 7/25/2019 07 Network Layer Slides

    59/68

    Ping program

    Get a network ping (echo) from a requested host

    Test network reachability Measure round-trip time

    Optionally specify packet size

    Request/response protocol Ping Client

    Create socket (AF_INET, SOCK_RAW, IPPROTO_ICMP)

    Set IP header fields & ICMP header fields

    Send it to a destination via sendto()

    Wait for a response from the destination address via recvfrom()

    March 17, 2013 592013 Paul Krzyzanowski

    Ping program

  • 7/25/2019 07 Network Layer Slides

    60/68

    Ping program

    Request

    Send ICMP type=8 (echo request), code 0 (no options to echo)

    Reply

    Destination responds back with an ICMP type=0 (echo reply), code=0

    March 17, 2013 60

    Type = 8 ChecksumCode = 0

    Data

    Sequence numberIdentifier

    Timestamp Data

    Associatereplies with

    requests

    Type = 0 ChecksumCode = 0

    Same data

    Same sequence numberSame identifier

    same timestamp Same data

    2013 Paul Krzyzanowski

    Ping program

  • 7/25/2019 07 Network Layer Slides

    61/68

    Ping program

    Get a network ping (echo) from a requested host

    Test network reachability Measure round-trip time

    Optionally specify packet size

    Request

    Send ICMP type=8 (echo request), code 0 (no options to echo)

    Destination responds back with an ICMP type=0 (echo reply), code=0

    March 17, 2013 61

    Type Checksum

    8bytes

    0 1 2 3 4 5 6 7 8 910

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    Code

    Data

    Sequence numberIdentifier

    Time stamp Data

    2013 Paul Krzyzanowski

    Traceroute program

  • 7/25/2019 07 Network Layer Slides

    62/68

    Traceroute program

    Traceroutetrace a route to a specific host

    Send a series of UDP segments with a bogus destination port 33434 to 33534 on Linux systems

    First IP datagram has TTL=1

    Second IP datagram has TTL=2, and so on

    Keep a timer for each datagram sent

    At a router

    When the TTL expires, a router sends an ICMP warning message

    Type 11, code 0 = TTL expired

    ICMP message includes the name of the router and its IP address

    At the final destination The destination sends an ICMP warning message

    Type 3 code 3 = Destination port unreachable

    March 17, 2013 622013 Paul Krzyzanowski

    IPv6

  • 7/25/2019 07 Network Layer Slides

    63/68

    IPv6

    Weve been rapidly using up IPv4 addresses ever more rapidly

    Growth of the web Always-on IP devices

    Set-top boxes and phones

    Inefficient network allocation

    We dealt with it with

    NAT

    Name-based web hosting

    Reallocation of network allocation & subnetting

    Those solutions helped a lot but not enough

    Were out of IPv4 addresses in parts of the world

    IPv6 to the rescue!

    March 17, 2013 632013 Paul Krzyzanowski

    Highlights

  • 7/25/2019 07 Network Layer Slides

    64/68

    Highlights

    Huge address space

    128-bit addresses: 3.41038

    addresses (>7.91028

    more than IPv4) Simplified 40-byte header

    Longer addresses but far fewer fields

    Focus is to simplify routing

    Anycast address Allows a datagram to be delivered to one of a group of interfaces

    Usually used to identify the nearest host of several hosts

    Flow label

    Allows related packets that require specific levels of service to be identified

    E.g., voice, video

    Not well defined yet

    March 17, 2013 642013 Paul Krzyzanowski

    IP Datagram Structure

  • 7/25/2019 07 Network Layer Slides

    65/68

    IP Datagram Structure

    March 17, 2013 65

    Version Flow label (20 bits)

    Payload length

    Data

    32 bits4 bytes

    40byte

    s

    Source IP address (128 bits)

    0 1 2 3 4 5 6 78 910

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    Traffic class (8 bits)

    Hop limit (8 bits)Next header (8 bits)

    Destination IP address (128 bits)

    2013 Paul Krzyzanowski

    IP datagram structure

  • 7/25/2019 07 Network Layer Slides

    66/68

    IP datagram structure

    Version: protocol version (not compatible with IPv4!)

    Traffic class: category of service

    Flow label: identification tag for related flows

    Payload length: # bytes following the 40-byte datagram

    Next header: identifies higher-level protocol (e.g., TCP or UDP)

    Same as in IPv4

    Hop limit: TTL; decremented at each router

    Source & destination addresses

    Data No fragmentation!

    No header checksum! Ethernet does it; so do TCP and UDP

    March 17, 2013 662013 Paul Krzyzanowski

    Transitioning

  • 7/25/2019 07 Network Layer Slides

    67/68

    Transitioning

    IPv6 systems can bridge to IPv4 networks

    IPv4 addresses are a subset of IPv6 addresses Dual-stack systems

    Hosts with both IPv4 and IPv6 network stacks to communicate with bothprotocols

    DNS can identify if a given domain is IPv5 capable or not

    IPv4 systems cannot communicate with IPv6 systems

    Migrating to IPv6 results in a loss of global visibility in the IPv4 network

    Initial transition is not visible to end users

    Cable modems, set-top boxes, VoIP MTAs

    IPv6 access

    March 17, 2013 672013 Paul Krzyzanowski

  • 7/25/2019 07 Network Layer Slides

    68/68

    The end