COS 461: Computer Networks Lecture 2: Link Layer

56
COS 461: Computer Networks Lecture 2: Link Layer Kyle Jamieson Fall 2021 http://www.cs.princeton.edu/courses/archive/fall21/cos461/

Transcript of COS 461: Computer Networks Lecture 2: Link Layer

Page 1: COS 461: Computer Networks Lecture 2: Link Layer

COS 461: Computer NetworksLecture 2: Link Layer

Kyle JamiesonFall 2021

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

Page 2: COS 461: Computer Networks Lecture 2: Link Layer

Protocol Layers

2

HTTP

TCP

IP

Ethernetinterface

HTTP

TCP

IP

Ethernetinterface

IP IP

Ethernetinterface

Ethernetinterface

SONETinterface

SONETinterface

host host

router router

HTTP message

TCP segment

IP packet IP packetIP packet

Ethernet frame Ethernet frameSONET frame

Page 3: COS 461: Computer Networks Lecture 2: Link Layer

Link = Medium + Adapters

3

Page 4: COS 461: Computer Networks Lecture 2: Link Layer

What is a Link?

4

Communication Medium Network Adapter

Page 5: COS 461: Computer Networks Lecture 2: Link Layer

Broadcast Links: Shared Media

5

Page 6: COS 461: Computer Networks Lecture 2: Link Layer

Adaptors Communicating

• Sending side– Encapsulates packet

in a frame– Adds error checking

bits, flow control, etc.

• Receiving side– Looks for errors, flow

control, etc.– Extracts datagram and

passes to receiving node6

sendingnode

frame

receivingnode

packet

frame

adapter adapter

link layer protocol packet

Page 7: COS 461: Computer Networks Lecture 2: Link Layer

Link-Layer Services• Encoding– Represent the 0s and 1s

• Framing– Encapsulate packet into frame, adding header/trailer

• Error detection– Receiver detecting errors with checksums

• Error correction– Receiver optionally correcting errors

• Flow control– Pacing between sending and receiving nodes

7

Page 8: COS 461: Computer Networks Lecture 2: Link Layer

Addresses

8

Page 9: COS 461: Computer Networks Lecture 2: Link Layer

Medium Access Control Address

• Identify the sending and receiving adapter– Unique identifier for each network adapter– Identifies the intended receiver(s) of the frame– … and the sender who sent the frame

9

Page 10: COS 461: Computer Networks Lecture 2: Link Layer

Medium Access Control Address• MAC address (e.g., 00-15-C5-49-04-A9)– Numerical address used within a link– Unique, hard-coded in the adapter when it is built– Flat name space of 48 bits

• Hierarchical allocation: Global uniqueness!– Blocks: assigned to vendors (e.g., Dell) by the IEEE– Adapters: assigned by the vendor from its block

• Broadcast address (i.e., FF-FF-FF-FF-FF-FF)– Send the frame to all adapters

10

Page 11: COS 461: Computer Networks Lecture 2: Link Layer

As an Aside: Promiscuous Mode• Normal adapter: receives frames sent to– The local MAC address– Broadcast address FF-FF-FF-FF-FF-FF

• Promiscuous mode– Receive everything, independent of destination MAC

• Useful for packet sniffing– Network monitoring– E.g., wireshark, tcpdump

11

Page 12: COS 461: Computer Networks Lecture 2: Link Layer

Why Not Just Use IP Addresses?• Links can support any network protocol– Not just for IP (e.g., IPX, Appletalk, X.25, …)– Different addresses on different kinds of links

• An adapter may move to a new location – So, cannot simply assign a static IP address– Instead, must reconfigure the adapter’s IP address

• Must identify the adapter during bootstrap– Need to talk to the adapter to assign it an IP address

12

Page 13: COS 461: Computer Networks Lecture 2: Link Layer

Who Am I: Acquiring an IP Address

13

???? DHCP server

• Dynamic Host Configuration Protocol (DHCP)–Broadcast “I need an IP address, please!”–Response “You can have IP address 1.2.3.4.”

71-65-F7-2B-08-53 1A-2F-BB-76-09-AD

Page 14: COS 461: Computer Networks Lecture 2: Link Layer

Who Are You: Discovering the Receiver

• Address Resolution Protocol (ARP)–Broadcast “who has IP address 1.2.3.6?”–Response “0C-C4-11-6F-E3-98 has 1.2.3.6!”

14

71-65-F7-2B-08-531.2.3.4 1.2.3.5

0C-C4-11-6F-E3-981.2.3.6

1A-2F-BB-76-09-AD

Page 15: COS 461: Computer Networks Lecture 2: Link Layer

Sharing the Medium

15

Page 16: COS 461: Computer Networks Lecture 2: Link Layer

Collisions

• Single shared broadcast channel– Avoid having multiple nodes speaking at once– Otherwise, collisions lead to garbled data

16

71-65-F7-2B-08-53 1A-2F-BB-76-09-AD

0C-C4-11-6F-E3-98

Page 17: COS 461: Computer Networks Lecture 2: Link Layer

Multi-Access Protocol• Divide the channel into pieces– in frequency vs. in time

17

Page 18: COS 461: Computer Networks Lecture 2: Link Layer

Multi-Access Protocol• Take turns– Do not transmit w/o token

– With token, transmit for upto some max time/length

– Pass token to right

• Punt– Let collisions happen– … and detect and recover from them

18

Page 19: COS 461: Computer Networks Lecture 2: Link Layer

• Carrier sense– Listen before speaking– …and don’t interrupt!

• Collision detection– Detect simultaneous talking– … and shut up!

• Random access– Wait for a random period of time– … before trying to talk again!

Like Human Conversation…

19

Page 20: COS 461: Computer Networks Lecture 2: Link Layer

Carrier Sense Multiple Access• Listen for other senders– Then transmit your data

• Collisions can still occur– Propagation delay– Wasted transmission

20

Page 21: COS 461: Computer Networks Lecture 2: Link Layer

CSMA/CD Collision Detection• Detect collision– Abort transmission– Jam the link

• Wait random time– Transmit again

• Hard in wireless– Must receive data

while transmitting

21

Page 22: COS 461: Computer Networks Lecture 2: Link Layer

Comparing the Three Approaches• Channel partitioning is

(a) Efficient/fair at high load, inefficient at low load(b) Inefficient at high load, efficient/fair at low load

• “Taking turns” (a) Inefficient at high load(b) Efficient at all loads(c) Robust to failures

• Random access(a) Inefficient at low load (b) Efficient at all load(c) Robust to failures

22

Page 23: COS 461: Computer Networks Lecture 2: Link Layer

Error Control

24

Page 24: COS 461: Computer Networks Lecture 2: Link Layer

Error control: Motivation

• A priori, any string of bits is an “allowed” message– Hence any changes to the bits (bit errors) the sender

transmits produce “allowed” messages

• Therefore without error control, receiver wouldn’t know errors happened!

25

Sender Receiver

Network

message

0001101100011011

“Allowed” messages

Page 25: COS 461: Computer Networks Lecture 2: Link Layer

• Transport layer– Internet Checksum (IC) over

TCP/UDP header, data

26

Error control in the Internet stack

IC TCP payloadTCP header

Page 26: COS 461: Computer Networks Lecture 2: Link Layer

Error control in the Internet stack

27

IC IP payloadIP header

• Transport layer– Internet Checksum (IC) over

TCP/UDP header, data

• Network layer (L3)– IC over IP header only

IC TCP payloadTCP header

Page 27: COS 461: Computer Networks Lecture 2: Link Layer

Error control in the Internet stack

28

LL header LL payload LL CRC

• Transport layer– Internet Checksum (IC) over

TCP/UDP header, data

• Network layer (L3)– IC over IP header only

• Link layer (L2)– Cyclic Redundancy Check (CRC)

IC IP payloadIP header

IC TCP payloadTCP header

Page 28: COS 461: Computer Networks Lecture 2: Link Layer

Error control in the Internet stack

29

LL header LL payload LL CRC

• Transport layer– Internet Checksum (IC) over

TCP/UDP header, data

• Network layer (L3)– IC over IP header only

• Link layer (L2)– Cyclic Redundancy Check (CRC)

• Physical layer (PHY)– Error Control Coding (ECC),or– Forward Error Correction (FEC)

IC IP payloadIP header

IC TCP payloadTCP header

PHY payload

Page 29: COS 461: Computer Networks Lecture 2: Link Layer

Error control: Key Ideas• Reduce the set of “allowed” messages– Not every string of bits is an “allowed” message– Receipt of a disallowed string of bits means that the message

was garbled in transit over the network

• We call an allowable message (of n bits) a codeword– Not all n-bit strings are codewords!– The remaining n-bit strings are “space” between codewords

• Plan: Receiver will use that space to both detect and correct errors in transmitted messages

30

Page 30: COS 461: Computer Networks Lecture 2: Link Layer

Encoding and decoding

• Problem: Not every string of bits is “allowed” – But we want to be able to send any message!– How can we send a “disallowed” message?

• Answer: Codes, as a sender-receiver protocol– The sender must encode its messages ➜ codewords– The receiver then decodes received bits ➜messages

• The relationship between messages and codewords isn’t always obvious!

31

Page 31: COS 461: Computer Networks Lecture 2: Link Layer

A simple error-detecting code

• Let’s start simple: suppose messages are one bit long

• Take the message bit, and repeat it once– This is called a two-repetition code

32

00

11

01

10

Sender:

0

1

Page 32: COS 461: Computer Networks Lecture 2: Link Layer

Receiving the two-repetition code

• Suppose the network causes no bit error

• Receiver removes repetition to correctly decode themessage bits

33

00

11

Sender: Receiver:Network:

0

1

00 0➜

11 1➜

01

10

Page 33: COS 461: Computer Networks Lecture 2: Link Layer

Detecting one bit error• Suppose the network causes up to one bit error• The receiver can detect the error:– It received a non-codeword

• Can the receiver correct the error?– No! The other codeword could have been sent as well

34

00

11

Sender: Receiver:Network:

0

1

00 0➜

11 1➜

01

10

Error detected

Error detected

01

10

Page 34: COS 461: Computer Networks Lecture 2: Link Layer

Reception with two bit errors

• Can receiver detect presence of two bit errors?– No: It has no way of telling which codeword was sent!• Enough bit errors that the sent codeword “jumped over”

the space between codewords

35

00

11

Sender: Receiver:Network:

0

1

00 0➜

11 1➜

01

10Space betweencodewords:

Page 35: COS 461: Computer Networks Lecture 2: Link Layer

Hamming distance

• Measures the number of bit flips to change one codeword into another

• Hamming distance between two messages m1, m2: The number of bit flips needed to change m1 into m2

• Example: Two bit flips needed to change codeword 00 to codeword 11, so they are Hamming distance of two apart:

36

00 01 11

Page 36: COS 461: Computer Networks Lecture 2: Link Layer

How many bit errors can we detect?

• Suppose the minimum Hamming distance between any pairof codewords is dmin

• Then, we can detect at most dmin− 1 bit errors– Will land in space between codewords, as we just saw

– Receiver will flag message as “Error detected”

37

dmin = 3

2 bit errors

Page 37: COS 461: Computer Networks Lecture 2: Link Layer

Decoding error detecting codes

• The receiver decodes in a two-step process:

1. Map received bits à codeword• Decoding rule: Consider all codewords

– Choosethe one that exactly matches the received bits– Return “error detected” if none match

2. Map codeword à source bits and “error detected”• Use the reverse map of the sender

38

Page 38: COS 461: Computer Networks Lecture 2: Link Layer

A simple error-correcting code

39

000

010

100

011

101

110111

000

001

010

100

011

101

110111

➜0

1 ➜

0

1

Sender: Receiver:Network:

001

• Let’s look at a three-repetition code

• If no errors, it works like the two-repetition code:

Page 39: COS 461: Computer Networks Lecture 2: Link Layer

Correcting one bit error• Receiver chooses the closest codeword (measured

by Hamming distance) to the received bits– A decision boundary exists halfwaybetween codewords

40

000

010

100

011

101

110111

000

001

010

100

011

101

110111

➜0

1 ➜

0

1

Sender: Receiver:Network:

001Fix error

Fix error

Decision boundary

Page 40: COS 461: Computer Networks Lecture 2: Link Layer

Decoding error correcting codes

• The receiver decodes in a two-step process:

1. Map received bits à codeword• Decoding rule: Consider all codewords

– Choose one with the minimum Hamming distance to the received bits

2. Map codeword à source bits• Use the reverse map of the sender

41

Page 41: COS 461: Computer Networks Lecture 2: Link Layer

How many bit errors can we correct?

• There is ≥ dminHamming distance between any two codewords

• So we can correct ≤ !𝒅!"#"𝟏𝟐 bit flips:

– This many bit flips can’t move received bits closer to another codeword, across the decision boundary:

42

dmin = 5

2 bit errors

Decision boundary

Page 42: COS 461: Computer Networks Lecture 2: Link Layer

Code rate• Suppose codewords of length n, messages length k (k < n)

• The code rate R = k/n is a fraction between 0 and 1

• So, we have a tradeoff:

– High-rate codes (R approaching one) generally correct fewer errors, but add less overhead

– Low-rate codes (R close to zero) generally correct more errors, but add more overhead

43

Page 43: COS 461: Computer Networks Lecture 2: Link Layer

Parity bit

• Given a message of k data bits D1, D2, …, Dk, append a parity bit P to make a codeword of length n = k + 1

– P is the exclusive-or of the data bits: • P = D1⊕ D2⊕⋯⊕ Dk

– Pick the parity bit so that total number of 1’s is even

44

011100 1

k data bits parity bit

Page 44: COS 461: Computer Networks Lecture 2: Link Layer

Checking the parity bit

• Receiver: counts number of 1s in received message– Even: received message is a codeword

– Odd: isn’t a codeword, and error detected• But receiver doesn’t know where, so can’t correct

• What about dmin?– Change one data bit à change parity bit, so dmin = 2• So parity bit detects 1 bit error, corrects 0

• Can we detect and correct more errors, in general?

45

Page 45: COS 461: Computer Networks Lecture 2: Link Layer

Two-dimensional parity

• Break up data into multiple rows– Parity bit across each row (pi)– Parity bit down each column (qi)– Add a parity bit r covering row

parities

• This example has rate 16/25:

46

d1,1 d1,2 d1,3 d1,4 p1

d2,1 d2,2 d2,3 d2,4 p2

d3,1 d3,2 d3,3 d3,4 p3

d4,1 d4,2 d4,3 d4,4 p4

q1 q2 q3 q4 r

pj = dj,1 ⨁ dj,2 ⨁ dj,3 ⨁ dj,4qj = d1,j ⨁ d2,j ⨁ d3,j ⨁ d4,jr = p1 ⨁ p2 ⨁ p3 ⨁ p4

Page 46: COS 461: Computer Networks Lecture 2: Link Layer

Two-dimensional parity: Properties

• Flip 1 data bit, 3 parity bits flip• Flip 2 data bits, ≥ 2 parity bits flip• Flip 3 data bits, ≥ 3 parity bits flip

• Therefore, dmin = 4, so– Can detect ≤ 3 bit errors– Can correct single-bit errors (how?)

• 2-D parity detects most four-bit errors

47

d1,1 d1,2 d1,3 d1,4 p1

d2,1 d2,2 d2,3 d2,4 p2

d3,1 d3,2 d3,3 d3,4 p3

d4,1 d4,2 d4,3 d4,4 p4

q1 q2 q3 q4 r

Page 47: COS 461: Computer Networks Lecture 2: Link Layer

Ethernet

48

Page 48: COS 461: Computer Networks Lecture 2: Link Layer

Ethernet• Dominant wired LAN technology • First widely used LAN technology• Kept up with speed race: 10 Mbps – 40 Gbps

Metcalfe’s Ethernetsketch

49

Page 49: COS 461: Computer Networks Lecture 2: Link Layer

Ethernet Uses CSMA/CD• Carrier Sense: wait for link to be idle– Channel idle: start transmitting– Channel busy: wait until idle

• Collision Detection: listen while transmitting– No collision: transmission is complete– Collision: abort transmission, and send jam signal

• Random Access: exponential back-off– After collision, wait random time before trying again– After mth collision, choose K randomly from {0, …, 2m-1}– … and wait for K*512 bit times before trying again

50

Page 50: COS 461: Computer Networks Lecture 2: Link Layer

Limitations on Ethernet Length

• Latency depends on physical length of link– Time to propagate a packet from one end to other

• Suppose A sends a packet at time t– And B sees an idle line at a time just before t+d– … so B happily starts transmitting a packet

• B detects a collision, and sends jamming signal– But A doesn’t see collision till t+2d

latency dA B

51

Page 51: COS 461: Computer Networks Lecture 2: Link Layer

Limitations on Ethernet Length

• A needs to wait for time 2d to detect collision– So, A should keep transmitting during this period– … and keep an eye out for a possible collision

• Imposes restrictions on Ethernet– Maximum length of the wire: 2500 meters– Minimum length of the packet: 512 bits (64 bytes)

latency dA B

52

Page 52: COS 461: Computer Networks Lecture 2: Link Layer

Ethernet Frame Structure• Sending adapter encapsulates packet in frame

• Preamble: synchronization– Seven bytes with pattern 10101010, followed by one

byte with pattern 10101011– Used to synchronize receiver, sender clock rates

53

Page 53: COS 461: Computer Networks Lecture 2: Link Layer

Ethernet Frame Structure• Addresses: source and destination MAC addresses – Adaptor passes frame to network-level protocol• If destination is local MAC address or broadcast address

– Otherwise, adapter discards frame

• Type: indicates the higher layer protocol – Usually IP– But also Novell IPX, AppleTalk, …

• CRC: cyclic redundancy check– Checked at receiver– If error is detected, the frame is simply dropped

54

Page 54: COS 461: Computer Networks Lecture 2: Link Layer

Unreliable, Connectionless Service• Connectionless– No handshaking between send and receive adapter

• Unreliable– Receiving adapter doesn’t send ACKs or NACKs– Packets passed to network layer can have gaps– Gaps can be filled by transport protocol (e.g., TCP)– Otherwise, the application will see the gaps

55

Page 55: COS 461: Computer Networks Lecture 2: Link Layer

Summary: Multiple Layers• Different devices switch different things– Network layer: packets (routers)– Link layer: frames (bridges and switches)– Physical layer: electrical signals (repeaters and hubs)

Application

Transport

Router

Bridge, switch

Repeater, hub

Frameheader

Packetheader

TCPheader

Userdata

56

Page 56: COS 461: Computer Networks Lecture 2: Link Layer

Conclusion• Links– Connect two or more network adapters– … each with a unique address– … over a shared communication medium

• Coming next– Network layer (IP)

57