network layer

41
Network Layer Mike Freedman COS 461: Computer Networks http://www.cs.princeton.edu/courses/archive/ spr14/cos461/

Upload: joyce

Post on 06-Jan-2016

42 views

Category:

Documents


2 download

DESCRIPTION

Network Layer. Mike Freedman COS 461: Computer Networks http://www.cs.princeton.edu/courses/archive/spr14/cos461/. IP Protocol Stack: Key Abstractions. Application. Transport. Network. Link. Applications. Messages. Reliable streams. Best-effort global packet delivery. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Network Layer

Network Layer

Mike FreedmanCOS 461: Computer Networks

http://www.cs.princeton.edu/courses/archive/spr14/cos461/

Page 2: Network Layer

IP Protocol Stack: Key Abstractions

2

Best-effort local packet delivery

Best-effort global packet delivery

Reliable streams

Applications

Messages

Link

Network

Transport

Application

Page 3: Network Layer

Best-Effort Global Packet Delivery

3

Page 4: Network Layer

Circuit Switching (e.g., Phone Network)• Source establishes connection

– Reserve resources along hops in the path

• Source sends data– Transmit data over the established connection

• Source tears down connection– Free the resources for future connections

4

Page 5: Network Layer

Circuit Switching: Static Allocation

Q: Frequency-Division vs. Time-Division

5

timetime

Page 6: Network Layer

Packet Switching• Message divided into packets

– Header identifies the destination address

• Packets travel separately through the network– Forwarding based on the destination address– Packets may be buffered temporarily

• Destination reconstructs the message

7

Page 7: Network Layer

Packet Switching: Statistical (Time Division) Multiplexing

8

Packets

• Intuition: Traffic by computer end-points is bursty!– Versus: Telephone traffic not bursty (e.g., constant 56 kbps)– One can use network while others idle

• Packet queuing in network: tradeoff space for time– Handle short periods when outgoing link demand > link speed

Page 8: Network Layer

Is Best Effort Good Enough?

• Packet loss and delay– Sender can resend

• Packet corruption– Receiver can detect,

and sender can resend

• Out-of-order delivery– Receiver can put the

data back in order

• Packets follow different paths– Doesn’t matter

• Network failure– Drop the packet

• Network congestion– Drop the packet

10

Page 9: Network Layer

Packet vs. Circuit Switching?

• Predictable performance• Network never blocks senders• Reliable, in-order delivery• Low delay to send data• Simple forwarding• No overhead for packet headers• High utilization under most workloads• No per-connection network state

11

CircuitPacketCircuitPacketCircuitCircuitPacketPacket

Page 10: Network Layer

Network Addresses

12

Page 11: Network Layer

IP Address (IPv4)• A unique 32-bit number• Identifies an interface (on a host, on a router, …)• Represented in dotted-quad notation

00001100 00100010 10011110 00000101

12 34 158 5

13

Page 12: Network Layer

Grouping Related Hosts• The Internet is an “inter-network”

– Used to connect networks together, not hosts– Need to address a network (i.e., group of hosts)

LAN = Local Area Network

WAN = Wide Area Network

14

host host host

LAN 1

... host host host

LAN 2

...

router router routerWAN WAN

Page 13: Network Layer

Scalability Challenge• Suppose hosts had arbitrary addresses

– Then every router would need a lot of information– …to know how to direct packets toward every host

host host host

LAN 1

... host host host

LAN 2

...

router router routerWAN WAN

1.2.3.4 5.6.7.8 2.4.6.8 1.2.3.5 5.6.7.9 2.4.6.9

1.2.3.4

1.2.3.5

forwarding table 15

Page 14: Network Layer

Hierarchical Addressing: IP Prefixes• Network and host portions (left and right) • 12.34.158.0/24 is a 24-bit prefix with 28 addresses

00001100 00100010 10011110 00000101

Network (24 bits) Host (8 bits)

12 34 158 5

17

Page 15: Network Layer

Scalability Improved• Number related hosts from a common subnet

– 1.2.3.0/24 on the left LAN– 5.6.7.0/24 on the right LAN

host host host

LAN 1

... host host host...

router router routerWAN WAN

1.2.3.4 1.2.3.7 1.2.3.156 5.6.7.8 5.6.7.9 5.6.7.212

1.2.3.0/24

5.6.7.0/24

forwarding table 19

LAN 2

Page 16: Network Layer

Easy to Add New Hosts• No need to update the routers

– E.g., adding a new host 5.6.7.213 on the right– Doesn’t require adding a new forwarding-table

entry

host host host

LAN 1

... host host

LAN 2

...

router router routerWAN WAN

1.2.3.4 1.2.3.7 1.2.3.156 5.6.7.8 5.6.7.9 5.6.7.212

host

5.6.7.213

20

1.2.3.0/24

5.6.7.0/24

forwarding table

host

Page 17: Network Layer

History of IP Address Allocation

21

Page 18: Network Layer

Classful Addressing• In the olden days, only fixed allocation sizes

– Class A: 0*• Very large /8 blocks (e.g., MIT has 18.0.0.0/8)

– Class B: 10*• Large /16 blocks (e.g,. Princeton has 128.112.0.0/16)

– Class C: 110*• Small /24 blocks (e.g., AT&T Labs has 192.20.225.0/24)

– Class D: 1110* for multicast groups– Class E: 11110* reserved for future use

• This is why folks use dotted-quad notation!

22

Page 19: Network Layer

Classless Inter-Domain Routing (CIDR)

23

IP Address : 12.4.0.0 IP Mask: 255.254.0.0

00001100 00000100 00000000 00000000

11111111 11111110 00000000 00000000

Address

Mask

for hosts Network Prefix

Written as 12.4.0.0/15

• Use two 32-bit numbers to represent network:Network number = IP address + Mask

Page 20: Network Layer

Hierarchical Address Allocation• Hierarchy is key to scalability

– Address allocated in contiguous chunks (prefixes)– Today, the Internet has about 400,000 prefixes

24

12.0.0.0/8

12.0.0.0/16

12.254.0.0/16

12.1.0.0/1612.2.0.0/1612.3.0.0/16

:::

12.3.0.0/2412.3.1.0/24

::

12.3.254.0/24

12.253.0.0/1912.253.32.0/19

12.253.160.0/19

:::

::

Page 21: Network Layer

Obtaining a Block of Addresses• Internet Corporation for Assigned Names and

Numbers (ICANN)– Allocates large blocks to Regional Internet Registries

• Regional Internet Registries (RIRs)– E.g., ARIN (American Registry for Internet Numbers)– Allocates to ISPs and large institutions

• Internet Service Providers (ISPs)– Allocate address blocks to their customers– Who may, in turn, allocate to their customers…

25

Page 22: Network Layer

Long Term Growth (1989-2005)

30

Today we are up to ~400,000 prefixes

Pre CIDR CIDR’s effect

DotCom Boom

Post Boom

Page 23: Network Layer

Packet Forwarding

31

Page 24: Network Layer

Hop-by-Hop Packet Forwarding• Each router has a forwarding table

– Maps destination address to outgoing interface

• Upon receiving a packet– Inspect the destination address in the header– Index into the table– Determine the outgoing interface– Forward the packet out that interface

• Then, the next router in the path repeats

32

Page 25: Network Layer

IP Router

SwitchingFabric

Processor

Adapter

Adapter

Adapter

Adapter

Adapter

Adapter

data planecontrol plane

33

Page 26: Network Layer

Switch Fabric: From Input to OutputQueuePacket

BufferMemory

BufferMemory

QueuePacket

BufferMemory

BufferMemory

QueuePacket

BufferMemory

BufferMemory

Data Hdr

Data Hdr

Data Hdr

1

2

N

1

2

N

Page 27: Network Layer

Separate Forwarding Entry Per Prefix• Prefix-based forwarding

– Map the destination address to matching prefix– Forward to the outgoing interface

host host host

LAN 1

... host host host

LAN

...

router router routerWAN WAN

1.2.3.4 1.2.3.7 1.2.3.156 5.6.7.8 5.6.7.9 5.6.7.212

1.2.3.0/24

5.6.7.0/24

forwarding table 35

Page 28: Network Layer

CIDR Makes Packet Forwarding Harder• Forwarding table may have many matches

– E.g., entries for 201.10.0.0/21 and 201.10.6.0/23– The IP address 201.10.6.17 would match both!

201.10.0.0/21

201.10.0.0/22 201.10.4.0/24 201.10.5.0/24 201.10.6.0/23

Provider 1 Provider 2

36

201.10.6.0/23

Page 29: Network Layer

Longest Prefix Match Forwarding• Destination-based forwarding

– Packet has a destination address– Router identifies longest-matching prefix– Cute algorithmic problem: very fast lookups

4.0.0.0/84.83.128.0/17201.10.0.0/21201.10.6.0/23126.255.103.0/24

201.10.6.17destination

forwarding table

Serial0/0.1outgoing link

37

Page 30: Network Layer

Creating a Forwarding Table• Entries can be statically configured

– E.g., “map 12.34.158.0/24 to Serial0/0.1”

• But, this doesn’t adapt – To failures– To new equipment– To the need to balance load

• That is where the control plane comes in– Routing protocols

38

Page 31: Network Layer

Data Control Management

Time-scale

Packet (ns)Event

(10 ms to sec)

Human

(min to hours)

Tasks

Forwarding, buffering, filtering,

scheduling

Routing, signaling

Analysis, configuration

LocationLine-card hardware

Router software

Humans or scripts

Data, Control, & Management Planes

39

SwitchingFabric

Processor

Page 32: Network Layer

Q’s: MAC vs. IP Addressing

41

• Hierarchically allocatedA) MAC B) IP C) Both D) Neither

• Organized topologicallyA) MAC B) IP C) Both D) Neither

• Forwarding via exact match on addressA) MAC B) IP C) Both D) Neither

• Automatically calculate forwarding by observing dataA) Ethernet switches B) IP routers C) Both D)

Neither • Per connection state in the network

A) MAC B) IP C) Both D) Neither• Per host state in the network

A) MAC B) IP C) Both D) Neither

Page 33: Network Layer

IP Packet Format

42

Page 34: Network Layer

IP Packet Structure

4-bitVersion

4-bitHeaderLength

8-bitType of Service

(TOS)16-bit Total Length (Bytes)

16-bit Identification3-bitFlags 13-bit Fragment Offset

8-bit Time to Live (TTL) 8-bit Protocol 16-bit Header Checksum

32-bit Source IP Address

32-bit Destination IP Address

Options (if any)

Payload

43

Page 35: Network Layer

Conclusion• Best-effort global packet delivery

– Simple end-to-end abstraction– Enables higher-level abstractions on top– Doesn’t rely on much from the links below

• IP addressing and forwarding– Hierarchy for scalability and decentralized control– Allocation of IP prefixes– Longest prefix match forwarding

• Next time: transport layer44

Page 36: Network Layer

Backup Slides

45

Page 37: Network Layer

IP Header: Version, Length, ToS• Version number (4 bits)

– Necessary to know what other fields to expect– Typically “4” (for IPv4), and sometimes “6” (for IPv6)

• Header length (4 bits)– Number of 32-bit words in the header– Typically “5” (for a 20-byte IPv4 header)– Can be more when “IP options” are used

• Type-of-Service (8 bits)– Allow different packets to be treated differently– Low delay for audio, high bandwidth for bulk transfer

46

Page 38: Network Layer

IP Header: Length, Fragments, TTL• Total length (16 bits)

– Number of bytes in the packet– Max size is 63,535 bytes (216 -1)– … though most links impose smaller limits

• Fragmentation information (32 bits)– Supports dividing a large IP packet into fragments– … in case a link cannot handle a large IP packet

• Time-To-Live (8 bits)– Used to identify packets stuck in forwarding loops– … and eventually discard them from the network

47

Page 39: Network Layer

IP Header: Transport Protocol• Protocol (8 bits)

– Identifies the higher-level protocol• E.g., “6” for the Transmission Control Protocol (TCP)• E.g., “17” for the User Datagram Protocol (UDP)

– Important for demultiplexing at receiving host• Indicates what kind of header to expect next

48

IP header IP header

TCP header UDP header

protocol=6 protocol=17

Page 40: Network Layer

IP Header: Header Checksum• Checksum (16 bits)

– Sum of all 16-bit words in the header– If header bits are corrupted, checksum won’t match– Receiving discards corrupted packets

49

134+ 212

= 346

134+ 216

= 350

Mismatch!

Page 41: Network Layer

IP Header: To and From Addresses• Destination IP address (32 bits)

– Unique identifier for the receiving host– Allows each node to make forwarding decisions

• Source IP address (32 bits)– Unique identifier for the sending host– Recipient can decide whether to accept packet– Enables recipient to send a reply back to source

50