5/15/2015© 2008 raymond p. jefferis iiilect 04 - 1 the data link layer

Post on 17-Dec-2015

218 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 1

The Data Link Layer

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 2

Link Layer in OSI Model

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 3

Functions

• Packet transfer services for network layer

• Handles network uncertainties– errors (error control)– channel capacity limitations (flow control)– transfer delays (protocols)

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 4

Services• Connection-Oriented

– open and close (virtual) channel– send and receive numbered frames– detect/correct errors and ACK/NAK frames

• Connectionless– send and receive frames– detect/correct errors– ACK good frames (if acknowledged service)

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 5

Connection-Oriented Services

Services to open and close virtual data channel connection

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 6

Initiating a Connection

• Request – sender requests channel

• Indication– to recipient that channel needed

• Response– from recipient to accept/reject

• Confirm– acceptance/rejection of request

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 7

Error Control• Data to be transmitted is embedded in frames• Error control bits (redundancy) are computed from

the data and added to each frame• Computations upon reception detect (and possibly

correct) errors• Protocol deals with acknowledgement or

retransmission of unacknowledged frames

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 8

Synchronization of Frames

• Asynchronous– transmitter clock is free running– receiver clock is free running– synchronized on each character transmission

• Synchronous– transmitter clock is free running– receiver clock is derived from bit stream

(synchronous)

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 9

Start/Stop Framing (RS232C)• each character is a “frame” of 10 bits

• start pulse synchronizes clock for frame

• clock drifts over frame interval

• stop pulse terminates frame

• excessive drift produces frame error (too few bits) or overrun error (too many bits)

• 2-bit framing overhead per character

• error control: parity bit possible

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 10

RS232C Framing

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 11

Character-based Framing• Special control characters delimit frame

– DLE STX (Start of TeXt) DLE ETX (End of TeXt)

– or 01111110 for start + frame character count

• Error control bits grouped at end of frame

• Extra bits/characters “stuffed” into data stream upon arrival of special character in data (removed upon reception)

• Burdened by 2-bit overhead per character

• Advantage: error control by frames

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 12

Synchronous Framing

• Clock transmitted with data(Ethernet Manchester encoding uses XOR with data)

• Synchronous receiving clock generated from bit stream– permits long frames without clock drift– eliminates start/stop pulse overhead

• Bit pattern flags start of frame (7x 10101010)

• Frame length field specifies end of frame

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 13

Error Control• Channel noise: random XOR with data bits

• Error occurs if result is valid code word

• Code word = data bits + check bits

• For Hamming distance d (Number of differing bits) between code words, d 1-bit errors will produce an undetected error

• distance 2d+1 needed to correct d errors

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 14

Polynomial Error Detecting Codes

• IEEE 802.3 (Ethernet) error correction is by means of Cyclic Redundancy Check (CRC) detection

• Use of these codes can result in a very low probability of undetected error, and many errors can be corrected without retransmission (forward error correction).

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 15

CRC-16 (not Ethernet standard)• Detects all odd and double errors, 16-bit

bursts, 99.997% of 17-bit bursts, 99.998% of bursts 18 bits and longer

• Uses 16-bit polynomial: X16 + X15 + X2 + 1or (1 1000 0000 0000 0101)2 or (18005)16

• Usually implemented in hardware by shift register with XOR

• Undetected errors possible in large transfers

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 16

Ethernet - IEEE 802.3 CRC-32

• Can detect and correct many errors

• Uses 32-bit polynomial:X32 + X26 + X23 + X16 + X12 + X11+ X10 + X8 + X7

+ X5 + X4 + X2 + X + 1or,

(1 0000 0100 1000 0001 0001 1101 1011 0111)2

or,

(104811db7)16

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 17

CRC AlgorithmFor I:= 1 to length(message) do

If MSB of dividend=1 then

(quotient would get 1 in that position)

XOR divisor into dividend

(Note: dividend padded with length(divisor)-1 zeroes)

Shift dividend left one bit (SHL)

End up with remainder in divisor, append to message instead of zeroes

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 18

Example ComputationGenerator 1 1 0 0 1

Data + 0000 1 1 1 0 0 1 1 0 0 0 0 0XOR 0 0 1 0 1 1 1 0 0 0 0 0SHL (Remainder) 0 1 0 1 1 1 0 0 0 0 0

SHL (Remainder) 1 0 1 1 1 0 0 0 0 0

XOR 0 1 1 1 0 0 0 0 0 0SHL (Remainder) 1 1 1 0 0 0 0 0 0

XOR 0 0 1 0 1 0 0 0 0SHL (Remainder) 0 1 0 1 0 0 0 0

SHL (Remainder) 1 0 1 0 0 0 0

XOR 0 1 1 0 1 0 0SHL (Remainder) 1 1 0 1 0 0

XOR 0 0 0 1 1 0SHL (Remainder) 0 0 1 1 0

SHL (Remainder) 0 1 1 0

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 19

Example - Perfect ReceptionGenerator 1 1 0 0 1

Data + 0110 1 1 1 0 0 1 1 0 0 1 1 0

XOR 0 0 1 0 1 1 1 0 0 1 1 0SHL (Remainder) 0 1 0 1 1 1 0 0 1 1 0

SHL (Remainder) 1 0 1 1 1 0 0 1 1 0

XOR 0 1 1 1 0 0 0 1 1 0SHL (Remainder) 1 1 1 0 0 0 1 1 0

XOR 0 0 1 0 1 0 1 1 0SHL (Remainder) 0 1 0 1 0 1 1 0

SHL (Remainder) 1 0 1 0 1 1 0

XOR 0 1 1 0 0 1 0SHL (Remainder) 1 1 0 0 1 0

XOR 0 0 0 0 0 0SHL (Remainder) 0 0 0 0 0

SHL (Remainder) 0 0 0 0

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 20

Example - Error in Bit-0Generator 1 1 0 0 1

(Data XOR 000000001) + 0110 1 1 1 0 0 1 1 1 0 1 1 0

XOR 0 0 1 0 1 1 1 1 0 1 1 0SHL (Remainder) 0 1 0 1 1 1 1 0 1 1 0

SHL (Remainder) 1 0 1 1 1 1 0 1 1 0

XOR 0 1 1 1 0 1 0 1 1 0SHL (Remainder) 1 1 1 0 1 0 1 1 0

XOR 0 0 1 0 0 0 1 1 0SHL (Remainder) 0 1 0 0 0 1 1 0

SHL (Remainder) 1 0 0 0 1 1 0

XOR 0 1 0 0 0 1 0SHL (Remainder) 1 0 0 0 1 0

XOR 0 1 0 0 0 0SHL (Remainder) 1 0 0 0 0

XOR 0 1 0 0 1SHL (Remainder) 1 0 0 1

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 21

Example: IEEE 802.3 Data Framing

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 22

IEEE 802.3 Preamble

• Defines start of frame7 bytes of 10101010

1 byte frame delimiter

• Synchronizes receiving clock

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 23

IEEE 802.3 Header Components• Destination Medium Access Control

(MAC) address– 3 byte manufacturer code– 3 byte product line serial number

• Source MAC address (same structure as destination address)

• Length of data (2 bytes)

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 24

MAC Address Format

• 6-byte address format

• used for source and destination addresses

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 25

IEEE 802.3 Data and Checksum

• Frame data (46 - 1500 bytes)

• Cyclic Redundancy Check (CRC) checksum (32 bits)– for error control– can detect and correct errors

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 26

Flow Control

• Computers can generate data at rates higher than network can transmit them

• Data must be buffered

• Mechanism must be introduced to prevent buffer overflow

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 27

Source Control

• Source “hold” needed

• Methods– semaphore

• XON/XOFF control characters used for software RS-232-C

• CTS RS-232-C hardware permission to transmit

– byte count grant

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 28

Collisions (Ethernet)

• Frames transmitted from two sources at the same time can collide on a common bus network

• Solutions– retransmission with random standoff– redesigning network to use switched ports,

instead of common bus

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 29

Ethernet Transmission

• Frames are transmitted sequentially in empty (no pulse stream) time slots

• If there is a collision, frames are retransmitted after random delay

• Retransmission continues until prescribed time limit is reached

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 30

Flow Control Protocols

• Protocols are rules for the management of data transfer at both ends of the line

• Examples– Simplex, or “Stop-and-Wait”– Sliding Window

• Go Back n

• Selective Repeat

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 31

Simplex - “Stop-and-Wait”

Transmitterwhile(true)

get packet from network layer

frame it for transmission

transmit frame

Receiverwhile(true)

wait for new_frame

get frame from physical layer

detect errors

if not(frame_error)send packet to network layer

else

discard packet

Note: No ACK or NAK of frames to transmitter

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 32

Petri Diagrams

• Used to diagram protocols– Places

• accept and hold tokens

– Tokens• activate transitions

– Transitions• triggered by external events

• can fire if one token at each input and outputs can each accept token

Transition

Placewith

Token

Place

Input Output

Input Output

Inputs Output

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 33

Petri Net Firing Rules

• Transition activated if all input places have token

• Each output place gets one token when transition fires

• Each input place loses one token upon firing

Place 1 t1

Outputt2

ActivatedTransition

Place 2

Non-activatedTransition

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 34

Use of Petri Diagrams

• Can illustrate simplex protocol

• Follow packets through system

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 35

Simplex Petri Diagram

t1PacketBuffer Packet

t2Frame

t3 ReceivedFrame

Transmitter Receiver

t1: get packet, t2: frame packet, t3: send frame

Packets in buffer, t1 enabled

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 36

Simplex Petri Diagram

t1PacketBuffer Packet

t2Frame

t3 ReceivedFrame

Transmitter Receiver

t1: get packet, t2: frame packet, t3: send frame

Packet obtained, t2 enabled

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 37

Simplex Petri Diagram

t1PacketBuffer Packet

t2Frame

t3 ReceivedFrame

Transmitter Receiver

t1: get packet, t2: frame packet, t3: send frame

Packet framed, t3 enabled

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 38

Simplex Petri Diagram

t1PacketBuffer Packet

t2Frame

t3 ReceivedFrame

Transmitter Receiver

t1: get packet, t2: frame packet, t3: send frame

Packet received, no acknowledgment necessary

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 39

Assumptions (Unrealistic ideal)

• Channel can accept packets at any rate

• There are no buffer space limitations

• Receiver is always ready

• Processing time can be ignored

• No packets are lost

• There are no errors

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 40

Improved “Stop & Wait”Transmitterwhile(true)

if not(resend)get packet from network layer

set ACK timeout

frame for transmission

transmit frame

waitfor (event)

if timeout or error

resend:=true

else resent:=false

Receiverwhile(true)

wait for new_frame

get frame from physical layer

detect errors

if not(frame_error)send packet to network layer

return ACK frame to transmitter

else

return NAK frame to transmitter

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 41

Improved “Stop & Wait”t1Packet

Buffer Packett2

Framet3 Received

Frame

Transmitter Receiver

ReceiverReady

t4

t5

t6

t6

t7

t8

ReceivedACK

ReadyACKBuffer

DataReady

PacketGetPacket

FramePacket

Timeout

SendFrame

GetFrame

FrameBuffer Full

Check

SendData

SendACK

Flag

Receive

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 42

Get Packett1Packet

Buffer Packett2

Framet3 Received

Frame

Transmitter Receiver

ReceiverReady

t4

t5

t6

t6

t7

t8

ReceivedACK

ReadyACKBuffer

DataReady

PacketGetPacket

FramePacket

Timeout

SendFrame

GetFrame

FrameBuffer Full

Check

SendData

SendACK

Flag

Receive

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 43

Frame Packett1Packet

Buffer Packett2

Framet3 Received

Frame

Transmitter Receiver

ReceiverReady

t4

t5

t6

t6

t7

t8

ReceivedACK

ReadyACKBuffer

DataReady

PacketGetPacket

FramePacket

Timeout

SendFrame

GetFrame

FrameBuffer Full

Check

SendData

SendACK

Flag

Receive

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 44

Send Framet1Packet

Buffer Packett2

Framet3 Received

Frame

Transmitter Receiver

ReceiverReady

t4

t5

t6

t6

t7

t8

ReceivedACK

ReadyACKBuffer

DataReady

PacketGetPacket

FramePacket

Timeout

SendFrame

GetFrame

FrameBuffer Full

Check

SendData

SendACK

Flag

Receive

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 45

Get Framet1Packet

Buffer Packett2

Framet3 Received

Frame

Transmitter Receiver

ReceiverReady

t4

t5

t6

t6

t7

t8

ReceivedACK

ReadyACKBuffer

DataReady

PacketGetPacket

FramePacket

Timeout

SendFrame

GetFrame

FrameBuffer Full

Check

SendData

SendACK

Flag

Receive

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 46

Check Framet1Packet

Buffer Packett2

Framet3 Received

Frame

Transmitter Receiver

ReceiverReady

t4

t5

t6

t6

t7

t8

ReceivedACK

ReadyACKBuffer

DataReady

PacketGetPacket

FramePacket

Timeout

SendFrame

GetFrame

FrameBuffer Full

Check

SendData

SendACK

Flag

Receive

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 47

Send Ackt1Packet

Buffer Packett2

Framet3 Received

Frame

Transmitter Receiver

ReceiverReady

t4

t5

t6

t6

t7

t8

ReceivedACK

ReadyACKBuffer

DataReady

PacketGetPacket

FramePacket

Timeout

SendFrame

GetFrame

FrameBuffer Full

Check

SendData

SendACK

Flag

Receive

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 48

Send Datat1Packet

Buffer Packett2

Framet3 Received

Frame

Transmitter Receiver

ReceiverReady

t4

t5

t6

t6

t7

t8

ReceivedACK

ReadyACKBuffer

DataReady

PacketGetPacket

FramePacket

Timeout

SendFrame

GetFrame

FrameBuffer Full

Check

SendData

SendACK

Flag

Receive

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 49

Receive ACKt1Packet

Buffer Packett2

Framet3 Received

Frame

Transmitter Receiver

ReceiverReady

t4

t5

t6

t6

t7

t8

ReceivedACK

ReadyACKBuffer

DataReady

PacketGetPacket

FramePacket

Timeout

SendFrame

GetFrame

FrameBuffer Full

Check

SendData

SendACK

Flag

Receive

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 50

Error Case

• Lost ACK frame

• Timeout remains activated

• After timeout, original frame retransmitted

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 51

Initial Statet1Packet

Buffer Packett2

Framet3 Received

Frame

Transmitter Receiver

ReceiverReady

t4

t5

t6

t6

t7

t8

ReceivedACK

ReadyACKBuffer

DataReady

PacketGetPacket

FramePacket

Timeout

SendFrame

GetFrame

FrameBuffer Full

Check

SendData

SendACK

Flag

Receive

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 52

Get Packett1Packet

Buffer Packett2

Framet3 Received

Frame

Transmitter Receiver

ReceiverReady

t4

t5

t6

t6

t7

t8

ReceivedACK

ReadyACKBuffer

DataReady

PacketGetPacket

FramePacket

Timeout

SendFrame

GetFrame

FrameBuffer Full

Check

SendData

SendACK

Flag

Receive

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 53

Frame Packett1Packet

Buffer Packett2

Framet3 Received

Frame

Transmitter Receiver

ReceiverReady

t4

t5

t6

t6

t7

t8

ReceivedACK

ReadyACKBuffer

DataReady

PacketGetPacket

FramePacket

Timeout

SendFrame

GetFrame

FrameBuffer Full

Check

SendData

SendACK

Flag

Receive

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 54

Send Framet1Packet

Buffer Packett2

Framet3 Received

Frame

Transmitter Receiver

ReceiverReady

t4

t5

t6

t6

t7

t8

ReceivedACK

ReadyACKBuffer

DataReady

PacketGetPacket

FramePacket

Timeout

SendFrame

GetFrame

FrameBuffer Full

Check

SendData

SendACK

Flag

Receive

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 55

Get Framet1Packet

Buffer Packett2

Framet3 Received

Frame

Transmitter Receiver

ReceiverReady

t4

t5

t6

t6

t7

t8

ReceivedACK

ReadyACKBuffer

DataReady

PacketGetPacket

FramePacket

Timeout

SendFrame

GetFrame

FrameBuffer Full

Check

SendData

SendACK

Flag

Receive

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 56

Check Framet1Packet

Buffer Packett2

Framet3 Received

Frame

Transmitter Receiver

ReceiverReady

t4

t5

t6

t6

t7

t8

ReceivedACK

ReadyACKBuffer

DataReady

PacketGetPacket

FramePacket

Timeout

SendFrame

GetFrame

FrameBuffer Full

Check

SendData

SendACK

Flag

Receive

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 57

Send Ackt1Packet

Buffer Packett2

Framet3 Received

Frame

Transmitter Receiver

ReceiverReady

t4

t5

t6

t6

t7

t8

ReceivedACK

ReadyACKBuffer

DataReady

PacketGetPacket

FramePacket

Timeout

SendFrame

GetFrame

FrameBuffer Full

Check

SendData

SendACK

Flag

Receive

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 58

Send Datat1Packet

Buffer Packett2

Framet3 Received

Frame

Transmitter Receiver

ReceiverReady

t4

t5

t6

t6

t7

t8

ReceivedACK

ReadyACKBuffer

DataReady

PacketGetPacket

FramePacket

Timeout

SendFrame

GetFrame

FrameBuffer Full

Check

SendData

SendACK

Flag

Receive

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 59

ACK Lostt1Packet

Buffer Packett2

Framet3 Received

Frame

Transmitter Receiver

ReceiverReady

t4

t5

t6

t6

t7

t8

ReceivedACK

ReadyACKBuffer

DataReady

PacketGetPacket

FramePacket

Timeout

SendFrame

GetFrame

FrameBuffer Full

Check

SendData

SendACK

Flag

Receive

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 60

Re-send Framet1Packet

Buffer Packett2

Framet3 Received

Frame

Transmitter Receiver

ReceiverReady

t4

t5

t6

t6

t7

t8

ReceivedACK

ReadyACKBuffer

DataReady

PacketGetPacket

FramePacket

Timeout

SendFrame

GetFrame

FrameBuffer Full

Check

SendData

SendACK

Flag

Receive

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 61

Problems• Frame error

– no ACK sent– frame is resent– receiver must discard bad frame

• ACK frame lost or timeout (TMO)– frame is resent– two copies at receiver– receiver must discard redundant frame (frames must be numbered for this)

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 62

Positive Acknowledgment• Frames contain sequence number (byte)

• Receiver ACKs correctly received frames– frame removed from transmit list– retransmission on loss of ACK

• Receiver NAKs incorrectly received frames– frame retransmitted and stays in transmit list– retransmission on loss of NAK

• Receiver discards redundant frames

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 63

Sliding Window Protocols• n frames in buffer can be awaiting ACK

• frames have sequence numbers

• window defined of size less than addressable by sequence numbers

• frame queue needed, for windowed frames

• window slides forward as ACKs received

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 64

Sliding Window Transmitter

• Maintains list of frames to be transmitted until each acknowledged (window)

• removes ACK frames from transmit list

• retransmits NAK or TMO frames

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 65

Sliding Window Protocol

• Frames transmitted sequentially

• Each correct frame acknowledged

• No errorsDashed lines represent acknowledged frames

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 66

Sliding Window Receiver

• Maintains list of frames expected (window)

• discards duplicate frames

• sends ACK or NAK for received frames

• prepares packets for Network Layer and places them in correct order

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 67

Go Back n Process

• Window size = 1

• Receiver sends ACK for good frames

• Receiver discards all frames after bad one

• Transmitter times out on non-ACK frames

• Transmitter retransmits from last ACK

• Receiver discards duplicates

• Good frames sent to Network Layer

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 68

Selective Repeat Protocol

• Unacknowledged frames retransmitted after timeout

• Acknowledged frames sent to network layer in order

• Inefficient, due to lack of overlap

Frame 2 does not arrive

Frame 2 retransmitted after timeout

Frames 2-5 sent to network layer

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 69

Selective Repeat

• Window size = n

• Receiver sends ACK for good frames

• Receiver stores all good frames

• Non-ACK frames time out

• Transmitter resends non-ACK frames

• Window, filled with good frames, sent to Network Layer

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 70

Selective Repeat Protocol

• Acknowledged frames removed from retransmit list

• Unacknowledged frames retransmitted after timeout

• Reordering of frames may be required

Frame 2 does not arrive

Frame 2 retransmitted after timeout

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 71

Selective Repeat Protocol

• Acknowledged frames removed from retransmit list

• Unacknowledged frames retransmitted after timeout

• Multiple copies must be removed

Frame 2 ACK lost

Frame 2 retransmitted after timeout - 2 copies!

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 72

Selective Repeat with Buffer

• Simpler to implement (no queue)

• Adjustable window size

04/18/23 © 2008 Raymond P. Jefferis III Lect 04 - 73

Selective Repeat Protocol

• Unacknowledged frames retransmitted after timeout

• Acknowledged frames sent to network layer in order

Frame 2 does not arrive

Frame 2 retransmitted after timeout

Frames 2-5 sent to network layer

top related