About

Steroid OpenFlow Service (SOS) is an OpenFlow-based network service that can seamlessly increase the performance of large data transfers over long-distance and high bandwidth networks (i.e. large delay-bandwidth-product networks). SOS leverages the fact that TCP is typically unable to utilize all the bandwidth available over large networks. TCP is only permitted to send its window-size number of packets before receiving an acknowledgement. In a large network, this means the sender must wait idle for the acknowledgement prior to sending additional data packets.


A diagram depicting the SOS architecture is show above. SOS works by redirecting the designated TCP connection of such a long distance data transfer to a local SOS agent via an in-path OpenFlow switch. The local SOS agent transparently acknowledges the packets from the source of the data transfer as if it was the intended destination. Because the local SOS agent is deployed on the source’s local network, the delay-to-acknowledgement is negligible as compared to the real destination. As such, the source can continuously transfer data to the local agent without pause.

As the source SOS agent accumulates a buffer of data from the data transfer source, a suitable destination SOS agent is located nearby the intended data transfer destination. The source and destination SOS agents establish a number of parallel TCP connections between one another to rapidly transfer the data from the source SOS agent to the destination SOS agent. The single buffer of data at the source SOS agent is fed into the multiple, parallel TCP connections. The parallel TCP connections each have the same TCP windowing problem; however, since they all operate independently, one connection’s pause for an acknowledgement does not prevent any of the other connections from transmitting data. In this way, the large network between the two agents can be utilized to its full potential and the bottleneck then migrates towards the network bandwidth itself rather than TCP.