Title: Network Routing
1The Network Layer
Transport layer
Control Routing, signaling, error reporting
Network layer
Link layer
Physical layer
2The Internet Network layer
- Host, router network layer functions
Transport layer TCP, UDP
Network layer
Link layer
physical layer
3IP Datagram Format
IP protocol version
total datagram length (bytes) header data
type of service
head. len
header length 4 bits in unit of 4 bytes
ver
total length
fragment offset
Frag/AssemblyFlags Dont Fragment (DF) More
Fragments (MF) Offset in unit of 8 bytes
differentiated Service 6 bits ECN (Early
Congestion Notification) 2 bits
flgs
16-bit identifier
time to live
Internet checksum
protocol
max number remaining hops (decremented at each
router)
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)
4IP Address An IP Address Identifies an Interface
223.1.1.1
- IP address 32-bit identifier for host, router
interface - interface connection between host, router and
physical link - routers typically have multiple interfaces
- host may have multiple interfaces
- IP addresses associated with interface, not host,
router - /sbin/ifconfig -a
223.1.2.9
223.1.1.4
223.1.1.3
223.1.3.2 11011111 00000001 00000011 00000010
223
1
2
3
5IP Addressing
223.1.1.2
- IP address
- network part (high order bits)
- host part (low order bits)
- Whats a network ? (from IP address perspective)
- device interfaces with same network part of IP
address - can physically reach each other without
intervening router
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.0
223.1.8.1
223.1.2.6
223.1.3.27
223.1.2.1
223.1.2.2
223.1.3.2
223.1.3.1
6Getting a datagram from source to dest.
forwarding table in A
- datagram remains unchanged, as it travels source
to destination - addr fields of interest here
-
7Getting a datagram from source to dest.
forwarding table in router
misc fields
data
223.1.1.1
223.1.2.3
- Arriving at 223.1.4, destined for 223.1.2.2
- look up network address of E in routers
forwarding table - E on same network as routers interface 223.1.2.9
- router, E directly attached
- link layer sends datagram to 223.1.2.2 inside
link-layer frame via interface 223.1.2.9 - datagram arrives at 223.1.2.2!!! (hooray!)
8Router Architecture Overview
- Two key router functions
- run routing algorithms/protocol (RIP, OSPF, BGP)
- switching datagrams from incoming to outgoing link
9Input Port Functions
Physical layer bit-level reception
- Decentralized switching
- given datagram dest., lookup output port using
routing table in input port memory - goal complete input port processing at line
speed - queuing if datagrams arrive faster than
forwarding rate into switch fabric
Data link layer e.g., Ethernet see chapter 5
10Input Port Queuing
- Fabric slower that input ports combined -gt
queueing may occur at input queues - Head-of-the-Line (HOL) blocking queued datagram
at front of queue prevents others in queue from
moving forward - queueing delay and loss due to input buffer
overflow!
11Three types of switching fabrics
12Switching Via Memory
- First generation routers
- packet copied by systems (single) CPU
- speed limited by memory bandwidth (2 bus
crossings per datagram)
- Modern routers
- input port processor performs lookup, copy into
memory - Cisco Catalyst 8500
13Switching Via a Bus
- datagram from input port memory
- to output port memory via a shared bus
- bus contention switching speed limited by bus
bandwidth - 1 Gbps bus, Cisco 1900 sufficient speed for
access and enterprise routers (not regional or
backbone)
14Switching Via An Interconnection Network
- overcome bus bandwidth limitations
- Banyan networks, other interconnection nets
initially developed to connect processors in
multiprocessor - Advanced design fragmenting datagram into fixed
length cells, switch cells through the fabric. - Cisco 12000 switches Gbps through the
interconnection network
15Output Ports
- Buffering required when datagrams arrive from
fabric faster than the transmission rate - Scheduling discipline chooses among queued
datagrams for transmission
16Output port queueing
- buffering when arrival rate via switch exceeds
output line speed - queueing (delay) and loss due to output port
buffer overflow!
17NAT Network Address Translation
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, differe
nt source port numbers
18NAT Network Address Translation
- 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).
19NAT Network Address Translation
- 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
20NAT 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
21NAT Network Address Translation
- 16-bit port-number field
- 60,000 simultaneous connections with a single
LAN-side address! - NAT is controversial
- routers should only process up to layer 3
- violates end-to-end argument
- NAT possibility must be taken into account by app
designers, e.g., P2P applications - address shortage should instead be solved by IPv6
22IPv6
- Initial motivation 32-bit address space
completely allocated by 2008. - Additional motivation
- header format helps speed processing/forwarding
- header changes to facilitate QoS
- new anycast address route to best of several
replicated servers - IPv6 datagram format
- fixed-length 40 byte header
- no fragmentation allowed
23IPv6 Header (Cont)
Priority identify priority among datagrams in
flow Flow Label identify datagrams in same
flow. (concept offlow
not well defined). Next header identify upper
layer protocol for data
24IPv4 vs. IPv6
type of service
head. len
ver
total length
fragment offset
16-bit identifier
flgs
time to live
Internet checksum
protocol
32 bit source IP address
32 bit destination IP address
Options (if any)
data (variable length, typically a TCP or UDP
segment)
25Other Changes from IPv4
- Checksum removed entirely to reduce processing
time at each hop - Options allowed, but outside of header,
indicated by Next Header field - ICMPv6 new version of ICMP
- additional message types, e.g. Packet Too Big
- multicast group management functions
26Transition From IPv4 To IPv6
- Not all routers can be upgraded simultaneous
- no flag days
- How will the network operate with mixed IPv4 and
IPv6 routers? - Two proposed approaches
- Dual Stack some routers with dual stack (v6, v4)
can translate between formats - Tunneling IPv6 carried as payload in IPv4
datagram among IPv4 routers
27Dual Stack Approach
IPv6
IPv6
IPv6
IPv6
IPv4
IPv4
A-to-B IPv6
B-to-C IPv4
B-to-C IPv6
B-to-C IPv4
28Tunneling
tunnel
Logical view
IPv6
IPv6
IPv6
IPv6
Physical view
IPv6
IPv6
IPv6
IPv6
IPv4
IPv4
A-to-B IPv6
E-to-F IPv6
B-to-C IPv6 inside IPv4
B-to-C IPv6 inside IPv4
29Multicasting viaTunneling
- Q How to connect islands of multicast routers
in a sea of unicast routers?
logical topology
physical topology
- mcast datagram encapsulated inside normal
(non-multicast-addressed) datagram - normal IP datagram sent thru tunnel via regular
IP unicast to receiving mcast router - receiving mcast router unencapsulates to get
mcast datagram
30What is mobility?
- spectrum of mobility, from the network
perspective
mobile user, using same access point
mobile user, passing through multiple access
point while maintaining ongoing connections (like
cell phone)
mobile user, connecting/ disconnecting from
network using DHCP.
31How do you contact a mobile friend
I wonder where Alice moved to?
Consider friend frequently changing addresses,
how do you find her?
- search all phone books?
- call her parents?
- expect her to let you know where he/she is?
32Mobility approaches
- Let routing handle it routers advertise
permanent address of mobile-nodes-in-residence
via usual routing table exchange. - routing tables indicate where each mobile located
- no changes to end-systems
- Let end-systems handle it
- indirect routing communication from
correspondent to mobile goes through home agent,
then forwarded to remote - direct routing correspondent gets foreign
address of mobile, sends directly to mobile
33Mobility approaches
- Let routing handle it routers advertise
permanent address of mobile-nodes-in-residence
via usual routing table exchange. - routing tables indicate where each mobile located
- no changes to end-systems
- let end-systems handle it
- indirect routing communication from
correspondent to mobile goes through home agent,
then forwarded to remote - direct routing correspondent gets foreign
address of mobile, sends directly to mobile
not scalable to millions of mobiles
34Mobility Vocabulary
home network permanent home of mobile (e.g.,
128.119.40/24)
home agent entity that will perform mobility
functions on behalf of mobile, when mobile is
remote
wide area network
Permanent address address in home network, can
always be used to reach mobile e.g.,
128.119.40.186
correspondent
35Mobility more vocabulary
visited network network in which mobile
currently resides (e.g., 79.129.13/24)
Permanent address remains constant (e.g.,
128.119.40.186)
Care-of-address address in visited
network. (e.g., 79,129.13.2)
wide area network
home agent entity in visited network that
performs mobility functions on behalf of mobile.
correspondent wants to communicate with mobile
36Mobility registration
visited network
home network
wide area network
- End result
- Foreign agent knows about mobile
- Home agent knows location of mobile
37Mobility via Indirect Routing
visited network
home network
wide area network
38Indirect Routing comments
- Mobile uses two addresses
- permanent address used by correspondent (hence
mobile location is transparent to correspondent) - care-of-address used by home agent to forward
datagrams to mobile - foreign agent functions may be done by mobile
itself - triangle routing correspondent-home-network-mobil
e - inefficient when
- correspondent, mobile
- are in same network
39Forwarding datagrams to remote mobile
packet sent by home agent to foreign agent a
packet within a packet (encapsulated)
Permanent address 128.119.40.186
Care-of address 79.129.13.2
40Indirect Routing moving between networks
- suppose mobile user moves to another network
- registers with new foreign agent
- new foreign agent registers with home agent
- home agent update care-of-address for mobile
- packets continue to be forwarded to mobile (but
with new care-of-address) - Mobility, changing foreign networks transparent
on going connections can be maintained!
41Mobility via Direct Routing
correspondent forwards to foreign agent
visited network
home network
wide area network
correspondent requests, receives foreign address
of mobile
42Mobility via Direct Routing comments
- overcome triangle routing problem
- non-transparent to correspondent correspondent
must get care-of-address from home agent - What happens if mobile changes networks?
43Mobile IP
- RFC 3220
- has many features weve seen
- home agents, foreign agents, foreign-agent
registration, care-of-addresses, encapsulation
(packet-within-a-packet) - three components to standard
- agent discovery
- registration with home agent
- indirect routing of datagrams
44Mobile IP agent discovery
- agent advertisement foreign/home agents
advertise service by broadcasting ICMP messages
(typefield 9)
H,F bits home and/or foreign agent
R bit registration required
45Mobile IP registration example
46ICMP Internet Control Message Protocol
- Used by hosts, routers, gateways to communication
network-level information - error reporting unreachable host, network, port,
protocol - echo request/reply (used by ping)
- network-layer above IP
- ICMP msgs carried in IP datagrams
- ICMP message type, code plus first 8 bytes of IP
datagram causing error
Type Code description 0 0 echo
reply (ping) 3 0 dest. network
unreachable 3 1 dest host
unreachable 3 2 dest protocol
unreachable 3 3 dest port
unreachable 3 6 dest network
unknown 3 7 dest host unknown 4
0 source quench (congestion
control - not used) 8 0
echo request (ping) 9 0 route
advertisement 10 0 router
discovery 11 0 TTL expired 12 0
bad IP header
47Assignment
- What is tunneling? And what is its applications?
- How to route multicast packet within a network
composed by unicast routers and multicast
routers?
48Solution
- What is tunneling? And what is its applications?
- The use of encapsulation technique as to hide
information from non-recognized medium. - Applications
- Communication of one pair of hosts with network
protocol A pass through a network that runs
network protocol B - Passing multicast packet between multicast router
through unicast network - Support mobile IP, by encapsulate the received
packet (from corresponding node) with the foreign
agent address (COA) that the mobile node has
registered with
49Solution
- How to route multicast packet within a network
composed by unicast routers and multicast
routers? - Multicast routers form a multicast tree and
maintain next multicast routers address - Multicast packet will be flooded to the multicast
tree by encapsulating each copied packets with
all next multicast routers IP address.