How does SUMI differ from TCP?
SUMI’s file transfer protocol and TCP have much the same goal: reliability, guaranteed order, retransmissions. However, there are some subtle differences. Of course, SUMI’s data packets can be spoofed which is not possible with TCP. In SUMI, a client-to-server messages have high-latency. The message has to travel to the IRC server, and the IRC server has to send it to the final destination. For this reason, client-to-server acknowledgements must be minimized as much as possible; and therefore a acknowledgement mechanism similar to TCP’s own “selective acknowledgements” (see RFC2018) is used. Only the sequence numbers of missing packets are transmitted. Additionally, the window size is transmitted with each acknowledgement, implicitedly acknowledging all packets not listed as successfully received. SUMI has a window, although it does not (yet) “slide” as TCP’s does. Fortunately, the server-to-client channel has about the same bandwidth and latency as it would with TCP. In this regard, S