Professional Documents
Culture Documents
Pengantar Perkuliahan Dan Pengenalan Kecerdasan Buatan
Pengantar Perkuliahan Dan Pengenalan Kecerdasan Buatan
Transfer
Reliable Delivery
• Making sure that the packets sent by the sender are
correctly and reliably received by the receiver amid
network errors, i.e., corrupted/lost packets
– Can be implemented at LL, NL or TL of the protocol stack.
Totally a design choice
RDT_Send Deliver_Data
RDT_Send Deliver_Data
Timeout
ACK arrives Time
– If received ACK, send
the next packet
– If timeout, ReTransmit
the same packet
• Receiver:
– When you receive a
packet correctly, send
an ACK
Recovering from Error
Timeout
Timeout
Timeout
Time
Timeout
Timeout
Timeout
Packet lost ACK lost Early timeout
Timeout
Timeout
Time
Timeout
Timeout
Timeout
Packet lost ACK lost Early timeout
U L/R .008
= 0.027%
= = = 0.00027
sender 30.008
RTT + L / R microsec microsec
onds onds
– 1KB pkt every 30 msec -> 33kB/sec throughput over 1 Gbps link
– network protocol limits use of physical resources!
Pipelining: Increasing Utilization
• Pipelining: sender allows multiple, “in-flight”, yet-to-be-acknowledged
pkts without waiting for first to be ACKed to keep the pipe full
– Capacity of the Pipe = RTT * BW
sender receiver
first packet bit transmitted, t = 0
last bit transmitted, t = L / R
Increase utilization
by a factor of 3!
U 3*L/R .024
sender
= = = 0.0008
RTT + L / R 30.008 microsecon
ds
Sliding Window Protocols
• Reliable, in-order delivery of packets
• 2 Generic Versions
– Go-Back-N
– Selective Repeat
Sliding Window:
Generic Sender/Receiver States
Sender Receiver
Last ACK Received Last Packet Sent Next Packet Expected Last Packet Acceptable
(LAR) (LPS) (NPE) (LPA)
… … … …
Sent & Acked Sent Not Acked Received & Acked Acceptable Packet
<= SWS
LAR LPS
Sliding Window- Receiver Side
• The receiver maintains 3 variables
– Receiver Window Size (RWS)
• Upper bound on the number of buffered packets
– Last Packet Acceptable (LPA)
– Next Packet Expected (NPE)
– We want LPS – NPE + 1 <= RWS
<= RWS
NPE LPA
Go-Back-N
Sender Receiver
Last ACK Received Last Packet Sent Next Packet Expected Last Packet Acceptable
(LAR) (LPS) (NPE) (LPA)
… … … …
SWS = N
RWS = 1 packet
Sent & Acked Sent Not Acked Received & Acked Acceptable Packet
• Timeout:
– Retransmit ALL packets that have been previously
sent, but not yet ACKed
• Therefore the name Go-Back-N
Go-Back-N: Receiver Actions
• A packet with “seqno” arrives:
– If seqno == NPE then // in-order packet
• Deliver the packet to the upper layer
• Send an ACK for pkt# = seqno
• This is called “cumulative ACK” scheme
– ACKs not only the current packet, but also all packets before it
– Can we do better?
• Yes: Buffer out-of-order packets at the receiver and do
Selective Repeat (Retransmissions) at the sender
Selective Repeat
Sender Receiver
Last ACK Received Last Packet Sent Next Packet Expected Last Packet Acceptable
(LAR) (LPS) (NPE) (LPA)
… … … …
SWS = N RWS = N
Sent & Acked Sent Not Acked Received & Acked Acceptable Packet
NPE = 5 LPA =8