P. 1
Computer Communications 7

Computer Communications 7

|Views: 214|Likes:
Published by Neel Kanak
Peer to Peer Protocols
Peer to Peer Protocols

More info:

Published by: Neel Kanak on Feb 10, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

10/23/2011

pdf

text

original

Sections

Peer-to-Peer Protocols

Peer-to-Peer Protocols
Peer-to-Peer Protocols and Service Models ARQ Protocols and Reliable Data Transfer

Overview

Peer-to-Peer protocols: many protocols involve the interaction between two peers

Service Models are discussed & examples given Detailed discussion of ARQ provides example of development of peer-to-peer protocols
HDLC protocols

Data Link Layer

Peer-to-Peer Protocols and Service Models

Peer-to-Peer Protocols
 

n + 1 peer process

n + 1 peer process

Peer-to-Peer processes execute layer-n protocol to provide service to layer-(n+1)
Layer-(n+1) peer calls layer-n and passes Service Data Units (SDUs) for transfer

SDU
n peer process

SDU
PDU
n peer process

Layer-n peers exchange Protocol Data Units (PDUs) to effect transfer
Layer-n delivers SDUs to destination layer-(n+1) peer

n – 1 peer process

n – 1 peer process





Service Models
 

The service model specifies the information transfer service layer-n provides to layer-(n+1) The most important distinction is whether the service is:
 

Connection-oriented Connectionless

Service model possible features:


 

Arbitrary message size or structure Sequencing and Reliability Timing, Pacing, and Flow control Multiplexing Privacy, integrity, and authentication

Connection-Oriented Transfer Service

Connection Establishment
 

Connection must be established between layer-(n+1) peers Layer-n protocol must: Set initial parameters, e.g. sequence numbers; and Allocate resources, e.g. buffers Exchange of SDUs

Message transfer phase

Disconnect phase Example: TCP, PPP
n + 1 peer process send
SDU

n + 1 peer process receive SDU

Layer n connection-oriented service

Connectionless Transfer Service
 


 

No Connection setup, simply send SDU Each message send independently Must provide all address information per message Simple & quick Example: UDP, IP

n + 1 peer process send

n + 1 peer process receive

SDU

Layer n connectionless service

Message Size and Structure

What message size and structure will a service model accept?

 

Different services impose restrictions on size & structure of data it will transfer Single bit? Block of bytes? Byte stream? Ex: Transfer of voice mail = 1 long message Ex: Transfer of voice call = byte stream
1 voice mail= 1 message = entire sequence of speech samples

(a) 1 call = sequence of 1-byte messages

(b)

Segmentation & Blocking

To accommodate arbitrary message size, a layer may have to deal with messages that are too long or too short for its protocol Segmentation & Reassembly: a layer breaks long messages into smaller blocks and reassembles these at the destination Blocking & Unblocking: a layer combines small messages into bigger blocks prior to transfer
1 long message 2 or more short messages

2 or more blocks

1 block

Reliability & Sequencing

Reliability: Are messages or information stream delivered error-free and without loss or duplication? Sequencing: Are messages or information stream delivered in order? ARQ protocols combine error detection, retransmission, and sequence numbering to provide reliability & sequencing Examples: TCP and HDLC

Pacing and Flow Control

Messages can be lost if receiving system does not have sufficient buffering to store arriving messages If destination layer-(n+1) does not retrieve its information fast enough, destination layer-n buffers may overflow Pacing & Flow Control provide backpressure mechanisms that control transfer according to availability of buffers at the destination Examples: TCP and HDLC

Timing

 

Applications involving voice and video generate units of information that are related temporally Destination application must reconstruct temporal relation in voice/video units Network transfer introduces delay & jitter Timing Recovery protocols use timestamps & sequence numbering to control the delay & jitter in delivered information Examples: RTP & associated protocols in Voice over IP

Multiplexing

Multiplexing enables multiple layer-(n+1) users to share a layer-n service A multiplexing tag is required to identify specific users at the destination Examples: UDP, IP

Privacy, Integrity, & Authentication

 

Privacy: ensuring that information transferred cannot be read by others Integrity: ensuring that information is not altered during transfer Authentication: verifying that sender and/or receiver are who they claim to be Security protocols provide these services Examples: IPSec, SSL

End-to-End vs. Hop-by-Hop

A service feature can be provided by implementing a protocol

end-to-end across the network across every hop in the network Perform error control at every hop in the network or only between the source and destination? Perform flow control between every hop in the network or only between source & destination?

Example:

We next consider the tradeoffs between the two approaches

Error control in Data Link Layer
Packets

(a)
Data link layer Frames

Packets Data link layer Physical layer

A

Physical layer

B

(b)

12

3

21

12

3
2 1

Medium
B
Physical layer entity
Data link layer entity Network layer entity

21

A
1

Data Link operates over wire-like, directly-connected systems Frames can be corrupted or lost, but arrive in order Data link performs error-checking & retransmission Ensures error-free packet transfer between two systems

2
3

Error Control in Transport Layer

Transport layer protocol (e.g. TCP) sends segments across network and performs end-to-end error checking & retransmission Underlying network is assumed to be unreliable
Messages
Transport layer

Messages Segments
Network layer Network layer Data link layer

Transport layer
Network layer

Network layer

End system Physical A
layer

Data link layer

Data link layer Physical layer

Data link layer Physical layer

Physical layer

End system B

Network

Segments can experience long delays, can be lost, or arrive out-of-order because packets can follow different paths across network End-to-end error control protocol more difficult

C

1 2

3

2 1

End System α
4 3 21

End System β
12

3

2 1

1 2 Medium

3
2 1

2 1

1 2 3 4

A

B

Network
3
Network layer entity

4 Transport layer entity

End-to-End Approach Preferred
Hop-by-hop

Hop-by-hop cannot ensure E2E correctness
Data Data 2 ACK/ NAK ACK/ NAK 3 ACK/ NAK Data 4 ACK/ NAK Data 5

1

Faster recovery Simple inside the network
More scalable if complexity at the edge

End-to-end
ACK/NAK

1 Data

2
Data

3
Data

4
Data

5

ARQ Protocols and Reliable Data Transfer

Automatic Repeat Request (ARQ)

Purpose: to ensure a sequence of information packets is delivered in order and without errors or duplications despite transmission errors & losses We will look at:


Stop-and-Wait ARQ Go-Back N ARQ Selective Repeat ARQ Error-detecting code with high error coverage ACKs (positive acknowledgments NAKs (negative acknowlegments) Timeout mechanism

Basic elements of ARQ:
   

Stop-and-Wait ARQ
Transmit a frame, wait for ACK
Packet
Information frame

Error-free packet Transmitter (Process A)
Control frame

Timer set after each frame transmission

Receiver (Process B)

Header Information packet
Information frame

CRC Header

CRC

Control frame: ACKs

Need for Sequence Numbers
(a) Frame 1 lost
A Frame 0 ACK Time-out Time

Frame 1

Frame 1 ACK

Frame 2

B

(b) ACK lost
A
Frame 0 ACK

Time-out Time
Frame 1 ACK

Frame 1
ACK

Frame 2

B


In cases (a) & (b) the transmitting station A acts the same way But in case (b) the receiving station B accepts frame 1 twice Question: How is the receiver to know the second frame is also frame 1? Answer: Add frame sequence number in header Slast is sequence number of most recent transmitted frame

Sequence Numbers
(c) Premature Time-out
Time-out

A

Time
Frame 0
ACK

Frame 0

B
   

ACK

Frame 1

Frame 2

The transmitting station A misinterprets duplicate ACKs Incorrectly assumes second ACK acknowledges Frame 1 Question: How is the receiver to know second ACK is for frame 0? Answer: Add frame sequence number in ACK header

 

Rnext is sequence number of next frame expected by the receiver Implicitly acknowledges receipt of all prior frames

1-Bit Sequence Numbering Suffices
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

Slast

Rnext

Timer
Transmitter A Rnext Slast Receiver B

Global State: (Slast, Rnext)

(0,0)

Error-free frame 0 arrives at receiver

(0,1)

ACK for frame 1 arrives at transmitter (1,0)

Error-free frame 1 arrives at receiver

ACK for frame 0 arrives at transmitter
(1,1)

Stop-and-Wait ARQ
Transmitter Ready state
 

Receiver Always in Ready State


  

Await request from higher layer for packet transfer When request arrives, transmit frame with updated Slast and CRC Go to Wait State


Wait for arrival of new frame When frame arrives, check for errors If no errors detected and sequence number is correct (Slast=Rnext), then
   

Wait state
Wait for ACK or timer to expire; block requests from higher layer If timeout expires

accept frame, update Rnext, send ACK frame with Rnext, deliver packet to higher layer

retransmit frame and reset timer
If sequence number is incorrect or if errors detected: ignore ACK If sequence number is correct (Rnext = Slast +1): accept frame, go to Ready state

If no errors detected and wrong sequence number
 

If ACK received:
 

discard frame send ACK frame with Rnext discard frame

If errors detected

Applications of Stop-and-Wait ARQ

 

IBM Binary Synchronous Communications protocol (Bisync): character-oriented data link control Xmodem: modem file transfer protocol Trivial File Transfer Protocol (RFC 1350): simple protocol for file transfer over UDP

Performance Issues
  

Stop and Wait ARQ works well on channels that have low propagation delay. Becomes inefficient when the propagation delay is much greater than the time to transmit a frame. Suppose we are transmitting 1000 bits long over a channel that has a speed of 1.5Mbps and suppose that the time that elapses from the beginning of the frame transmission to the receipt of its acknowledgement is 40ms.
 

No. of bits that can be transmitted over the channel in 40ms = 60,000bits But Stop and wait protocol can transmit only 1000 bits in this period of time,

Efficiency = 1000/60,000 = 1.6%

Stop-and-Wait Efficiency
First frame bit enters channel Last frame bit enters channel ACK arrives

Channel idle while transmitter waits for ACK

A

t

B

t
Last frame bit arrives at receiver Receiver processes frame and prepares ACK

First frame bit arrives at receiver
 

10000 bit frame @ 1 Mbps takes 10 ms to transmit If wait for ACK = 1 ms, then efficiency = 10/11= 91% If wait for ACK = 20 ms, then efficiency =10/30 = 33%

Delay Bandwidth Product

Delay Bandwidth Product is the product of the bit rate and the delay that elapses before an action can takes place.

i.e) the maximum number of bits that can be transmitted at any given time.

In Stop and wait protocol the Delay Bandwidth Product can be viewed as a measure of lost opportunity in terms of transmitted bits.

Stop-and-Wait Model
t0 = total time to transmit 1 frame
A

tproc
B

tprop

frame tf time

tproc

tack

tprop

t0  2t prop  2t proc  t f  t ack na  2t prop  2t proc   R R nf

bits/info frame
bits/ACK frame

channel transmission rate

S&W Efficiency on Error-free channel no. of overhead
Effective transmission rate:
R
0 eff

bits in a frame given by bits for header & CRC

number of informatio n bits delivered to destination n f  no   , total time required to deliver the informatio n bits t0

Effect of frame overhead Transmission efficiency: which n f  no no represents the 1 Reff nf loss in t0 0    . transmission na 2(t prop  t proc ) R R R efficiency due to 1  nf nf the need to Effect of ACK frame i.e) loss in provide headers efficiency due to the time and CRC required for the ack. Message. Effect of na is the no. of bits in ACL/NAK Delay-Bandwidth Product where frame Reaction Time = 2(t prop  t proc)

Example: Impact of DelayBandwidth Product
nf=1250 bytes = 10000 bits, na=no=25 bytes = 200 bits
2xDelayxBW Efficiency

1 ms 103 88% 106 1%

10 ms 104 49% 107 0.1%

100 ms 105 9% 108 0.01%

1 sec 106 1% 109 0.001%

1 Mbps 1 Gbps

Stop-and-Wait does not work well for very high speeds or long propagation delays

S&W Efficiency in Channel with Errors


 

Pf = probability frame arrives with error Let 1 – Pf = probability frame arrives w/o errors Avg. # of transmissions to first correct arrival is then 1/ (1–Pf ) “If 1-in-10 get through without error, then 1 – Pf = 0.1, then avg. 10 times has to be transmitted to get success” Avg. Total Time per frame is then tsw = t0/(1 – Pf) to a frame n f  no through. no t0 1 Reff 1  Pf nf  SW    (1  Pf ) na 2(t prop  t proc) R R R 1  nf nf
Effect of frame loss

Example: Impact Bit Error Rate
nf=1250 bytes = 10000 bits, na=no=25 bytes = 200 bits Find efficiency for random bit errors with p=0, 10 -6, 10-5, 10-4

1  Pf  (1  p)

nf

for large n f and small p

1 – Pf
Efficiency

0 1 88%

10-6 0.99 86.6%

10-5 0.905 79.2%

10-4 0.368 32.2%

1 Mbps & 1 ms

Bit errors effect the performance of Stop and wait ARQ dramatically

Go-Back-N

 


Improve Stop-and-Wait by not waiting! Keep channel busy by continuing to send frames Allow a window of up to W s outstanding frames Use m-bit sequence numbering If ACK for oldest frame arrives before window is exhausted, we can continue transmitting If window is exhausted, pull back and retransmit all outstanding frames Alternative: Use timeout

Go-Back-N ARQ
Go-Back-4:
fr 0 fr 1 fr 2 fr 3 fr 4

4 frames are outstanding; so go back 4
fr 5 fr 6 fr 3 fr 4 fr 5 fr 6

A

fr 7

fr 8

fr 9

Time

B
A C K 1 A C K 2 A C K 3

out of sequence frames

A C K 4

A C K 5

A C K 6

A C K 7

A C K 8

A C K 9

Rnext

0

1

2

3

3

4

5

6

7

8

9


Frame transmission are pipelined to keep the channel busy Frame with errors and subsequent out-of-sequence frames are ignored Transmitter is forced to go back when window of 4 is exhausted

Window size long enough to cover round trip time
Stop-and-Wait ARQ A
fr 0

Time-out expires
fr 0 fr 1

Time

B
Receiver is looking for Rnext=0
A C K 1

Go-Back-N ARQ

Four frames are outstanding; so go back 4
fr 0

A

fr 1

fr 2

fr 3

fr 0

fr 1

fr 2

fr 3

fr fr 4 5

fr 6

Time

B
Receiver is Out-oflooking for sequence Rnext=0 frames

A C K 1

A C K 2

A C K 3

A C K 4

A C K 5

A C K 6

Go-Back-N with Timeout

Problem with Go-Back-N as presented:

If frame is lost and source does not have frame to send, then window will not be exhausted and recovery will not commence When timeout expires, resend all outstanding frames

Use a timeout with each frame

Go-Back-N Transmitter & Receiver
Transmitter
Send Window ...
Frames transmitted S last and ACKed

Receiver
Receive Window

Srecent Buffers

Slast+W s-1 oldest unACKed frame
Frames received

Rnext

Timer

Slast Slast+1
...

Timer

Timer

Srecent
...

most recent transmission max Seq # allowed

Receiver will only accept a frame that is error-free and that has sequence number Rnext When such frame arrives Rnext is incremented by one, so the receive window slides forward by one

Slast+Ws-1

Sliding Window Operation
Transmitter
Send Window ...
Frames transmitted S last and ACKed

m-bit Sequence Numbering

Srecent

Slast+W s-1

2m –

1

0

1

Transmitter waits for error-free ACK frame with sequence number Slast
When such ACK frame arrives, Slast is incremented by one, and the send window slides forward by one

2
Slast

send i window i+1 i + Ws – 1

Maximum Allowable Window Size is W s = 2m-1
M = 22 = 4, Go-Back - 4: Transmitter goes back 4

fr A 0

fr 1

fr 2

fr 3

fr 0

fr 1

fr 2

fr 3

Time

B
Rnext 0

A C K 1

A C K 2

A C K 3

A C K 4

1

2

3

4

Receiver has Rnext= 0, but it does not know whether its ACK for frame 0 was received, so it does not know whether this is the old frame 0 or a new frame 0

M = 22 = 4, Go-Back-3:

Transmitter goes back 3

A

fr 0

fr 1

fr 2

fr 0

fr 1

fr 2

Time

B
Rnext 0

A C K 1

A C K 2

A C K 3

1

2

3

Receiver has Rnext= 3 , so it rejects the old frame 0

ACK Piggybacking in Bidirectional GBN
Transmitter
SArecent RA next

Receiver Transmitter

Receiver

SBrecent RB next

“A” Receive Window

“B” Receive Window

RA next

RB next “B” Send Window ... SB last
Timer

“A” Send Window ...
SA last
Timer
Timer Timer

SA last+WA s-1
Buffers SA last SA last+1 ... SArecent ...

SB last+W B s-1
Buffers SB last SBlast+1 ... SBrecent ...

A A Timer S last+W s-1

Note: Out-ofsequence error-free frames discarded after Rnext examined

Timer Timer

Timer

SB last+W B s-1

Applications of Go-Back-N ARQ

HDLC (High-Level Data Link Control): bitoriented data link control V.42 modem: error control over telephone modem links

Required Timeout & Window Size
Tout Tproc

Tprop

Tf

Tf

Tprop

Timeout value should allow for:

Two propagation times + 1 processing time: 2 Tprop + Tproc A frame that begins transmission right before our frame arrives Tf Next frame carries the ACK, Tf

Ws should be large enough to keep channel busy for Tout

Required Window Size for Delay-Bandwidth Product
Frame = 1250 bytes =10,000 bits, R = 1 Mbps
2(tprop + tproc) 2 x Delay x BW Window

1 ms
10 ms 100 ms

1000 bits
10,000 bits 100,000 bits

1

2 11 101

1 second

1,000,000 bits

Efficiency of Go-Back-N

GBN is completely efficient, if W s large enough to keep channel busy, and if channel is error-free Assume Pf frame loss probability, then time to deliver a frame is:
 

tf tf + Wstf /(1-Pf)

if first frame transmission succeeds (1 – Pf ) if the first transmission does not succeed Pf

tGBN  t f (1  Pf )  Pf {t f  n f  no 1 

Ws t f 1  Pf

}  t f  Pf

Ws t f 1  Pf

and

GBN

tGBN  R

no nf

1  (Ws  1) Pf

(1  Pf )

Delay-bandwidth product determines W s

Example: Impact Bit Error Rate on GBN
nf=1250 bytes = 10000 bits, na=no=25 bytes = 200 bits Compare S&W with GBN efficiency for random bit errors with p = 0, 10-6, 10-5, 10-4 and R = 1 Mbps & 100 ms 1 Mbps x 100 ms = 100000 bits = 10 frames → Use W s = 11
Efficiency

0
8.9%

10-6
8.8%

10-5
8.0%

10-4
3.3%

S&W

GBN

98%

88.2%

45.4%

4.9%

Go-Back-N significant improvement over Stop-and-Wait for large delay-bandwidth product Go-Back-N becomes inefficient as error rate increases

Selective Repeat ARQ

Go-Back-N ARQ inefficient because multiple frames are resent when errors or losses occur Selective Repeat retransmits only an individual frame
 

Timeout causes individual corresponding frame to be resent NAK causes retransmission of oldest un-acked frame

Receiver maintains a receive window of sequence numbers that can be accepted

Error-free, but out-of-sequence frames with sequence numbers within the receive window are buffered Arrival of frame with Rnext causes window to slide forward by 1 or more

Selective Repeat ARQ
fr 0

A

fr 1

fr 2

fr 3

fr 4

fr 5

fr 6

fr 2

fr 7

fr 8

fr fr fr fr 9 10 11 12

Time

B
A C K 1 A C K 2 N A K 2 A C K 2 A C K 2 A C K 2 A C K 7 A C K 8 A C K 9 A C K 1 0 A C K 1 1 A C K 1 2

Selective Repeat ARQ
Transmitter
Send Window ...
Frames transmitted S last and ACKed

Receiver
Receive Window
Frames received Rnext

Srecent

Slast+ W s-1

Rnext + W r-1

Timer

Buffers Slast Slast+ 1 ... Srecent ...

Buffers Rnext+ 1 Rnext+ 2 ...

Timer

Timer

Rnext+ W r- 1

max Seq # accepted

Slast+ W s - 1

Send & Receive Windows
Transmitter Receiver

2m-1

0

1
2 Slast

2m-1

0

1

Rnext
receive window

2 j
i

send i window i+1 i + Ws – 1 Moves k forward when ACK arrives with Rnext = Slast + k k = 1, …, W s-1

j + Wr – 1
Moves forward by 1 or more when frame arrives with Seq. # = Rnext

Selective Repeat ARQ
Transmitter Ready state

Blocking state


Await request from higher layer for packet transfer When request arrives, transmit frame with updated Srecent set to the lowest number available in the send window and CRC If Srecent = Slast +W s -1 Go to Blocking State else remains in the ready state. If error free ACK frame is received with Rnext in the range between Slast and Srecent , then the send window slides forward by Slast = Rnext or outside the range between Slast and Srecent , the frame will be discarded If error free NAK frame is received with Rnext in the range between Slast and Srecent , then the frame with Sequence number is retransmitted and then the send window slides forward by Slast = Rnext The maximum window number is Slast +W s -1

When the send window is empty Srecent = Slast +W s -1

And the transmitter refuses to accept requests from the higher layers.

If error free ACK frame is received with Rnext in the range between Slast and Srecent , then the send window slides forward by Slast = Rnext then the maximum send window number to Slast +W s -1 and then transmitter changing to the ready state If error free NAK frame is received with Rnext in the range between Slast and Srecent , then the frame with Sequence number is retransmitted and then the send window slides forward by Slast = Rnext then the maximum send window number to Slast +W s -1 and the transmitter changes to the ready state. If error free ACK frame is received with Rnext outside the range between Slast and Srecent , the frame will be discarded and no further action will takes place.

Selective Repeat ARQ
Receiver Always in Ready State


Wait for arrival of new frame When frame arrives, check for errors If no errors detected and sequence number is in the range Rnext to Rnext+W R-1, then the frame is accepted and buffered and an acknowledgement frame is transmitted. The received number is Rnext and if Rnext +1 upto Rnext + k -1 have already been received, then the receive sequence number is incremented to Rnext + k, the receive window slides forward and the corresponding packets are delivered. If no errors detected and outside the range

discard frame send ACK frame with Rnext
discard frame

If errors detected

What size Ws and Wr allowed?

Example: M=22=4, Ws=3, Wr=3
Frame 0 resent

Send Window

{0,1,2} {1,2} A
fr0

{2}
fr1

{.}
fr2 fr0

Time

B

Receive Window

ACK1

ACK2

ACK3

{0,1,2} {1,2,3}

{2,3,0}

{3,0,1}

Old frame 0 accepted as a new frame because it falls in the receive window

Ws + Wr = 2m is maximum allowed

Example: M=22=4, Ws=2, Wr=2
Frame 0 resent

Send Window
A

{0,1}
fr0

{1}

{.}
fr1 fr0

Time

B

Receive Window

ACK1

ACK2

{0,1}

{1,2}

{2,3}

Old frame 0 rejected because it falls outside the receive window

Why Ws + Wr = 2m works

 

Transmitter sends frames 0 to Ws-1; send window empty All arrive at receiver All ACKs lost Transmitter resends frame 0


Receiver window starts at {0, …, W r}
Window slides forward to {W s,…,W s+W r-1}

Receiver rejects frame 0 because it is outside receive window

2m-1

0 Slast

1
2

2m-1
Ws +Wr-1

0

1
2

send window

receive window

Rnext Ws

Ws-1

Applications of Selective Repeat ARQ

TCP (Transmission Control Protocol): transport layer protocol uses variation of selective repeat to provide reliable stream service Service Specific Connection Oriented Protocol: error control for signaling messages in ATM networks

Efficiency of Selective Repeat

Assume Pf frame loss probability, then number of transmissions required to deliver a frame is:

tf / (1-Pf)

 SR 

n f  no t f /(1  Pf ) R

no  (1  )(1  Pf ) nf

Example: Impact Bit Error Rate on Selective Repeat
nf=1250 bytes = 10000 bits, na=no=25 bytes = 200 bits Compare S&W, GBN & SR efficiency for random bit errors with p=0, 10-6, 10-5, 10-4 and R= 1 Mbps & 100 ms
Efficiency

0 8.9% 98% 98%

10-6 8.8% 88.2% 97%

10-5 8.0% 45.4% 89%

10-4 3.3% 4.9% 36%

S&W GBN SR

Selective Repeat outperforms GBN and S&W, but efficiency drops as error rate increases

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->