Ping Pong Protocol
Size PacketSize
Throughput = ---- = ---------------------------------------------------
Time PacketSize AckSize
Latency + ---------- + ReturnLatency + -------
Bandwidth ReturnBandwidth
Loss On Error = 1 Packet
Memory Buffer Required = 1 Packet
Go Back N
Loss On Error = 1/2 * N packets
Memory Buffer Required = 1 Packet
Assuming large file transfers and N is big enough ...
With these assumptions, the wire is always busy. Either it is sending
data, or sending acks. When we talk about size, we only care about
the data, not the acks. But the acks take time. Therefore ...
PacketSize
Throughput = Bandwidth * -------------------------
(PacketSize + AckSize)
N should be = Throughput / PacketSize * Latency + a little bit
Assuming large file transfers and N is too small ....
Assume it sends N packets. How much data does that send, and
how long does it take?
Size N * PacketSize
Throughput = ---- = -----------------------------------------------
Time Packetsize N * AckSize
Latency + N * --------- + ReturnLatency + --------
Bandwidth ReturnBandwidth
PacketSize
= N * -----------------------------------------------------------------
Latency PacketSize ReturnLatency AckSize
------- + ----------- + ------------- + --------
N Bandwidth N ReturnBandwidth
Selective Repeat
Assume that the Window size is 'W' packets
Loss On Error = 1 Packet
Memory Buffer Required = W * PacketSize
Assuming large file transfers and W is big enough
With these assumptions, the wire is always busy. Either it is sending
data, or sending acks. When we talk about size, we only care about
the data, not the acks. But the acks take time. Therefore ...
PacketSize
Throughput = Bandwidth * -------------------------
(PacketSize + AckSize)