The Data Link Layer introduction point-to-point data link protocols the multiple access problem ...

28
The Data Link Layer The Data Link Layer introduction introduction point-to-point data link point-to-point data link protocols protocols the multiple access problem the multiple access problem local area networks local area networks required reading: TBD required reading: TBD

Transcript of The Data Link Layer introduction point-to-point data link protocols the multiple access problem ...

The Data Link LayerThe Data Link Layer

introduction introduction point-to-point data link protocols point-to-point data link protocols the multiple access problem the multiple access problem local area networks local area networks required reading: TBD required reading: TBD

Data Link Layer : IntroductionData Link Layer : Introduction

Services:Services: reliably deliver a data link packet between two reliably deliver a data link packet between two physically connected machinesphysically connected machines

two link types: point-to-point, broadcast two link types: point-to-point, broadcast

point-to-point links: one sender, one receiver point-to-point links: one sender, one receiver framing: recognizing bits on the wire as packets framing: recognizing bits on the wire as packets reliable communications reliable communications

Data Link Layer : IntroductionData Link Layer : Introduction

broadcast links:broadcast links: many senders, potentially many senders, potentially many receivers many receivers

framing framing reliable communication reliable communication accessing a shared medium accessing a shared medium addressing addressing many senders many many senders many

Data Link Layer: IntroductionData Link Layer: Introduction

many problems we have seen at higher layer many problems we have seen at higher layer occur here occur here

reliable communication: ARQ, checksum, reliable communication: ARQ, checksum, timers, sequence numbers timers, sequence numbers

addressing addressing data link level addresses different from data link level addresses different from

network layer addresses! network layer addresses! why do we need different data link address? why do we need different data link address?

Point-to-point Data Link ControlPoint-to-point Data Link Control use same techniques as in transport layer use same techniques as in transport layer HDLC: high level data link protocol (it's old - data link was HDLC: high level data link protocol (it's old - data link was

"high-level" way back when) "high-level" way back when) HDLC frame format: HDLC frame format:

flag pattern (01111110) is used to mark beginning/end of flag pattern (01111110) is used to mark beginning/end of frame frame

bit stuffing: if five consecutive 1's in data, sender adds a 0, receiver bit stuffing: if five consecutive 1's in data, sender adds a 0, receiver removes removes

address of receiving node (for broadcast links) address of receiving node (for broadcast links)

HDLC: control fieldHDLC: control field

control field format for "data" frames: control field format for "data" frames: 3-bit seq number 3-bit seq number 3-bit ack number 3-bit ack number 1 bit P/F to indicate sender-to-receiver to vice-versa 1 bit P/F to indicate sender-to-receiver to vice-versa

control field format for "supervisory" frames: control field format for "supervisory" frames:

command meaning

receive ready ack

receive not ready flow control:not ready

reject NAK: resend go back N

selective reject NAK: resend selectiverepeat

Broadcast links: Multiple Access Broadcast links: Multiple Access Protocols Protocols

single shared communication channel single shared communication channel two or more simultaneous transmissions by nodes: two or more simultaneous transmissions by nodes:

interference interference only one node can send successfully at a time only one node can send successfully at a time question: how to share this broadcast channel question: how to share this broadcast channel

examples of multiple access environments: examples of multiple access environments:

Multiple Access ProtocolsMultiple Access Protocols

Distributed algorithm which determines how stations share Distributed algorithm which determines how stations share channel, i.e., determine when station can transmitchannel, i.e., determine when station can transmit

Communication about channel sharing must use channel Communication about channel sharing must use channel itself! itself!

What to look for in multiple access protocols: What to look for in multiple access protocols: synchronous or asynchronous synchronous or asynchronous information needed about other stations information needed about other stations robustness (e.g., to channel errors) robustness (e.g., to channel errors) performance performance

Some Multiple Access ProtocolsSome Multiple Access Protocols

Claim:Claim: humans use multiple access protocols all the time humans use multiple access protocols all the time class can "guess" multiple access protocols class can "guess" multiple access protocols

multiaccess protocol 1:multiaccess protocol 1:

multiaccess protocol 2:multiaccess protocol 2:

multiaccess protocol 3:multiaccess protocol 3:

multiaccess protocol 4:multiaccess protocol 4:

A taxonomy of multiple access A taxonomy of multiple access protocolsprotocols

Random access protocols:Random access protocols: stations contend for channel, collisions stations contend for channel, collisions (overlapping transmissions can occur): (overlapping transmissions can occur):

aloha aloha slotted aloha slotted aloha carrier sense multiple access: Ethernet carrier sense multiple access: Ethernet group random access group random access

Controlled access protocols:Controlled access protocols: stations reserve or are assigned channel, no stations reserve or are assigned channel, no collisions collisions

predetermined channel allocation: time division multiple access predetermined channel allocation: time division multiple access demand adaptive channel allocation demand adaptive channel allocation

reservation protocols reservation protocols token passing (token bus, token ring) token passing (token bus, token ring)

The Aloha ProtocolThe Aloha Protocol

simple:simple: if you have pkt to send, "just do it" if you have pkt to send, "just do it" if pkt suffers collision, will try resending later if pkt suffers collision, will try resending later

Analyzing the Aloha ProtocolAnalyzing the Aloha Protocol

Goal:Goal: quantitative understanding of performance of Aloha protocol quantitative understanding of performance of Aloha protocol fixed length pkts fixed length pkts pkt transmission time is unit of time pkt transmission time is unit of time throughput:throughput: SS - number pkts successfully (without - number pkts successfully (without collision)collision) transmitted per unit transmitted per unit

time time in previous example, in previous example, SS = 0.2 pkt/unit time = 0.2 pkt/unit time

offered load:offered load: GG - number pkt transmissions attempted per unit time - number pkt transmissions attempted per unit time note:note: S<GS<G, but , but SS depends on depends on G G Poisson model:Poisson model: probability of probability of kk pkt transmission attempts in t time units: pkt transmission attempts in t time units:

Prob[Prob[kk trans in trans in t t ] = ((] = ((GtGt)^)^kk )(e^(- )(e^(-GtGt))/())/(kk!) !)

capacity of multiple access protocol: maximum value of S over all values of Gcapacity of multiple access protocol: maximum value of S over all values of G

Analyzing Aloha (cont)Analyzing Aloha (cont)

Focus on a given attempted packet transmissionFocus on a given attempted packet transmission

SS = rate attempted pkt trans * prob[trans successful] = rate attempted pkt trans * prob[trans successful]

= = GG*prob[no other pkt's overlap with attempted trans] *prob[no other pkt's overlap with attempted trans]

= = GG*prob[0 other attempted trans in 2 time units] *prob[0 other attempted trans in 2 time units]

= = GGe*(-2e*(-2GG))

Aloha throughputAloha throughput

Note:Note: maximum thorughput is 18% of physical channel maximum thorughput is 18% of physical channel capacity capacity

you buy 1 Mb link, thoughput will never be more than you buy 1 Mb link, thoughput will never be more than 180Kb! 180Kb!

Slotted AlohaSlotted Aloha synchronous system: time divided into slots synchronous system: time divided into slots slot size equals fixed packet transmission time slot size equals fixed packet transmission time when pkt ready for transmission, wait until start of when pkt ready for transmission, wait until start of

next slot next slot packets overlap completely or not at all packets overlap completely or not at all

Slotted Aloha performanceSlotted Aloha performance

SS = = GG*prob[no other transmissions overlap] *prob[no other transmissions overlap]

= = GG*prob[0 other attempted transmissions] *prob[0 other attempted transmissions]

= = GG*prob[0 other arrivals in previous slot] *prob[0 other arrivals in previous slot]

= = GGe**(-e**(-GG))

Carrier Sensing ProtocolsCarrier Sensing Protocols

Aloha is inefficient (and rude!): doesn't listen before talking! Aloha is inefficient (and rude!): doesn't listen before talking! Carrier Sense Multiple Access: CSMA Carrier Sense Multiple Access: CSMA

non-persistent CSMA:non-persistent CSMA:

1.sense (listen to) channel 1.sense (listen to) channel

2.if {channel sensed busy} 2.if {channel sensed busy}

then wait random time; go to 1 then wait random time; go to 1

else transmit packetelse transmit packet

Carrier Sensing Protocols (cont)Carrier Sensing Protocols (cont)

p-persistent CSMA:p-persistent CSMA:

1.sense (listen to) channel 1.sense (listen to) channel

2.when {channel sensed idle} 2.when {channel sensed idle}

transmit with probability transmit with probability pp

else wait random time, go to 1else wait random time, go to 1

Carrier sensing protocols (cont)Carrier sensing protocols (cont)

channel sensing will not avoid all collisions: channel sensing will not avoid all collisions:

performance will depend on channel length performance will depend on channel length large propagation delays: poor performance large propagation delays: poor performance length of CSMA networks must be limited length of CSMA networks must be limited

Can we do better?Can we do better?

CSMA/CDCSMA/CD

CSMA with collision detection(CD): CSMA with collision detection(CD): listen while talking! listen while talking! stop transmitting when another pkt has collided with your pkt stop transmitting when another pkt has collided with your pkt

wait random time before attempting to resend wait random time before attempting to resend worst case time to detect a collision? worst case time to detect a collision? performance depends (as in CSMA) on channel performance depends (as in CSMA) on channel

length length

Case Study: EthernetCase Study: Ethernet CSMA/CD, 1-persistent CSMA/CD, 1-persistent IEEE 802.3 standard IEEE 802.3 standard channel: coaxial cable (typically) channel: coaxial cable (typically) TT: minimum randomization interval : minimum randomization interval collision resolution: binary backoff: pkt arrives (from upper layer) for collision resolution: binary backoff: pkt arrives (from upper layer) for

transmission. transmission.

1. 1. Set L=1, mark pkt as "ready" Set L=1, mark pkt as "ready"

2. after successful transmission, all hosts with "ready" pkt can send 2. after successful transmission, all hosts with "ready" pkt can send

3. if {collision} 3. if {collision}

L=L*2, up to 1024 L=L*2, up to 1024

wait random amt of time over next L*T time units wait random amt of time over next L*T time units

after waiting, pkt is again "ready" after waiting, pkt is again "ready"

go to 2 go to 2

Ethernet: exampleEthernet: example

More on ethernetMore on ethernet

10 Mb/sec 100 Mb/sec standards 10 Mb/sec 100 Mb/sec standards packet format: packet format:

preamble:preamble: 7 bytes to allow sender/receiver clock synch 7 bytes to allow sender/receiver clock synch start-of-frame:start-of-frame: 1 byte, denotes start of from (like HDLC) 1 byte, denotes start of from (like HDLC) destination address: destination address:

48 bit address "physical address" 48 bit address "physical address" different from IP address!!!! different from IP address!!!! each Ethernet board in world has own unique address hard-wired (IEEE and each Ethernet board in world has own unique address hard-wired (IEEE and

vendor assigned) vendor assigned) dest. address all 1's for broadcast pkt: will be received by all hosts attached to dest. address all 1's for broadcast pkt: will be received by all hosts attached to

LAN LAN

More on ethernetMore on ethernet

source address:source address: 48-bit physical address 48-bit physical address length:length: 2 bytes, max packet length in 1500 bytes 2 bytes, max packet length in 1500 bytes

recall IP fragmentation recall IP fragmentation

data:data: contains (is) packet (e.g., IP packet) handed contains (is) packet (e.g., IP packet) handed down from upper layer down from upper layer

padding:padding: used to insure data plus padding > 46 bytes used to insure data plus padding > 46 bytes checksumchecksum

Group Random Access ProtocolsGroup Random Access Protocols

rather than random backoff to separate colliding rather than random backoff to separate colliding stations, structured "search for exactly one station stations, structured "search for exactly one station

enable group of stations enable group of stations if collisions occur, divide group until only one ready if collisions occur, divide group until only one ready

station is enabled station is enabled treewalk: think of stations at leaves on logical binary treewalk: think of stations at leaves on logical binary

tree: tree:

1. all stations rooted at rootnode enabled 1. all stations rooted at rootnode enabled

2. if {no stations send) 2. if {no stations send) return return else if (one station sends) else if (one station sends) return return else /* collision */ else /* collision */ resolve(leftchild(rootnode)) resolve(leftchild(rootnode)) resolve(rightchild(rootnode))resolve(rightchild(rootnode))

Group Random Access: exampleGroup Random Access: example

suppose stations 2,3,7,8 ready with pktsuppose stations 2,3,7,8 ready with pkt

A enabled, collisions A enabled, collisions

B enabled collisions B enabled collisions

D enabled, SUCCESS by 2 D enabled, SUCCESS by 2

E enabled SUCCESS by 2 E enabled SUCCESS by 2

C enabled, collisions C enabled, collisions

F enabled, idle F enabled, idle

G enabled, collisions(could have avoided!) G enabled, collisions(could have avoided!)

7 enabled, SUCCESS 7 enabled, SUCCESS

8 enabled, SUCCESS8 enabled, SUCCESS

Token Passing ProtocolsToken Passing Protocols token circulates among stations token circulates among stations media: media:

token ring connection: IEEE802.5, FDDI token ring connection: IEEE802.5, FDDI token bus, IEEE802.4 token bus, IEEE802.4

to transmit to transmit station must seize token station must seize token transmit packet while holding token transmit packet while holding token release (send out) token release (send out) token