Think of the internet as garden hose. Now let’s say that this hose has a kink and the amount of water flowing through the hose is constricted. By bringing in acceleration technology, the kink is removed and now the flow can be as much as the hose can take. The diameter of the hose will be your bandwidth, the higher the diameter the more data we can push, but we can’t push anymore data than the diameter of that hose. In other words, we only take care of the kink.
- Our expectations and demands for immediacy and our perception of urgency. It is a natural and instinctual craving/need for our productivity and manifestation to match our own human brain’s capability to instantaneously envision an outcome or finished product.
Think of two people having a conversation. When these people are in the same room, the conversation can occur without a hitch (unless it’s an argument of course). But what happens when these people are further and further apart? Or even worse, what if they are in two different rooms?
Imagine in order to communicate, these people pick a messenger that will walk between the two rooms to relay their messages. Now there’s a delay in the conversation as the messenger walks between the rooms. Now imagine if the two rooms are at the opposite side of a building. The messenger will have to walk for several minutes before they can relay the last message, which is a true latency. The messenger could get really tired of walking, so he gets a “helper” and they agree each of them will walk half of the distance between the rooms and will then meet in middle, always at a specific spot. This causes the latency to increase because the messengers have to stop to relay the message.
- Current file transfer technology via TCP based protocol such as FTP, FTPS, or SFTP.
If we go back to the previous example with two messengers each walking half of the way between the two rooms to relay the message, imagine now the two people communicating decide to send each other small packages, like a pen or a notebook. The messengers can only carry as much stuff as they can fit in their hands. Smaller packages still send easily, but what happens if the two people decide to send something larger, like 500 pens? They now have to send pens via the messengers handful by handful. Each time they send another handful of pens, they want to ensure the last handful of pens made it before handing over the next bunch. I’m sure you can see how this process could take a while as each handful of pens passes from the sender to messenger, then to the other messenger, before finally getting handed over to the receiver in the other room, on the other side of the building. Because the sender is expecting a confirmation that the last bunch of pens was delivered, the messengers have to walk back with the confirmation before the next bunch of pens can be sent.
Fast forward to FileCatalyst acceleration
We still have the sender and the receiver, we still only have two messengers walking back and forth, those messengers can still only carry a handful of pens, and the rooms are still on opposite sides of the building.
The only change we make is instructing the messengers to immediately return once they either relay the message or drop off the pens.
We also tell the sender not to worry about getting the confirmation that last bunch of pens arrived okay. We also tell the receiver to keep a list of the pens that were lost on the way. Once all the pens have been delivered, then the receiver will send that list back to the sender. Why?
Here is how things look now:
- Messengers are always busy and are always doing something
- There are twice as many pens on the way to the other room
- The receiver keeps track of how many pens they have received so far
- At the end, the receiver sends the number of “lost” pens to back to the sender
- Once the sender receives this list, he sends the last few missing pens at the very end (if there are any)
- The pens are delivered twice as fast!!
With this analogy, think of 500 pens as the file and the number of pens that can be carried by each messenger, at any single time, as your bandwidth. The time it takes for one message to go from one room to the other represents network latency, while the pens lost on the way as packet loss. The two messengers symbolize network hops, and sending of the final lost pens list back to sender as re-transmission.
By changing only a few small rules, we cut the time it takes to move those pens in half. That’s the magic of computer science.