Sumi is a new file sharing program that aims for total anonymity for the uploader. It is a work in progress; although anonymous file transfer works there are some rough edges. Sumi is the first P2P program to use IP spoofing with proxied acknowledgement.
Sumi uses a covert channel for client-to-server communication to keep the address of the server secret (on, for example, IRC), and a faster spoofed UDP channel for server-to-client data transfer. Both channels are required to successfully transmit data with flow control and retransmissions. It should also be possible in the future to use other transmission mechanisms.
Here is a list of the features of Sumi:
- Anonymous serving with adjustable source addresses
- No proxies needed = no slow down
- Cross-platform client GUI
- Open source
- UDP, ICMP direct, ICMP echo modes (use any pingable host as a proxy)
- Integrate with mIRC, xchat, AIM, or Tor
- XDCC-like server file listing
- Optional raw socket proxy and raw socket priviledge seperation program for better security
- Strong Cryptography
- Torrent-like .sumi files (in 0.8.13 or newer)
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, 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 and negative acknowledgements are 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, SUMI is asymmetric. TCP uses the same channel for both directions, Sumi uses a data channel (such as UDP) for data (server to client) and a transport for error control (client to server). Sumi has some advantages, however. TCP is and has always been a stream protocol. Sumi is not. Thousands of packets can be sent; and any one can be missed and data can continue flowing. The missed packets can be resent later. The file doesn’t have to be received as one contigious whole, although it must be in order. Sequence numbers take care of that.Review by Jared Moya
Sumi has an average rating 0 out of 5 based on 0 user ratings.