SABUL Graphs
Gnuplots of the SABUL Protocol




The server sent 146220 packets of new data and 19911 retransmits for a total of 166131 packets. The client reported receiving 148317 packets of which 2097 were duplicates. When the client receives all the packets it was expecting, it quits.
The client notifies the server of losses in 2 ways. As soon as it receives a seqno greater than the one expected, an ERR packet is sent. Also, periodically--every 20ms--a collective loss report is sent. The client reported losses of 11544 packets and re-reported 8497 of these losses again in the periodic reports. Looking at the reported duplicates, each of the 2097 duplicate packets were received exactly twice but the server sent the 19911 retransmits anywhere from 2 to 10 times! This may be a result of duplicate reporting or the fact that acks are perhaps spaced too far apart??-- acks are sent every 100ms.
Why are there so many losses when you would expect 16-20? Good Question! Looking at the graphs, the retransmits/losses/duplicates seem to be periodic probably as a result of the periodic communication between server and client. Looking at the actual packets received, the losses do seem to be real...more investigation is needed to see why there are so many on a private net that would expect 16-20 drops in a file transfer of this size.


Even with the wasteful use of the bandwidth, Sabul is able to consistently produce 80-87Mbs in thruput on a private network that is limited to 92.8 Mbs as noted by iperf. The IPD(inter-packet delay) starts out at 10us but, in this transfer, was slowly increased to 117us and generally stayed between 110us and 117us. Many of the losses/drops/retransmits occur at the beginning when the sending rate is so high. The IPD is not adjustable by the user.