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)