Rapunzel Accelerator


Software

1. Download Rapunzel Accelerator - Win32

1. Download Rapunzel Accelerator - Linux32 Testing

2. Setting Wizard

2. Setting Panel

 

Why Is It Called Rapunzel?

1. You mean the character in the film Tangled? See Wikipedia

2. You mean the software?

The first time I came up with this idea about speeding up HTTP data transfering with multi-threading technique is about one year ago. I was struggling for the slow speed network to watch Yale's education video on YouTube. However, I didn't take any action until I saw a Disney film called Tangled with my girl friend Jessica. I like the story and I like Rapunzel. I hope you will accept this name. :-)

3. You want a related story?

Rapunzel's birthday is comming and her husband, Flynn Ryder, has gone to Hollyword and made a video for her. It's a fantastic video about thier story! Rapunzel cannot wait to watch the video. However, the video is uploaded on YouTube(A world-famous video website). You know, Rapunzel's casle is far away from America, so it takes a long time for her to buffer the video. Her dear friend Maximum tells her to raise shrimps to improve the network because shrimps have the ability to carry network data from one place to another in a very short time. Therefore, Rapunzel starts to raise shrimps. She uses her shrimps to build a machine named Rapunzel Accelerator. With this machine, Rapunzel enjoys her husband's video on YouTube happily.

How Does Rapunzel Accelerator Work?

It's actually a multi-threading download software. But it differs from normal download softwares. As usual, we can divide a file into many blocks and we can make a request to the web server for one random block. Rapunzel Accelerator has a buffer pool in which every buffer points to a data block of the requesting resource sequentially instead of randomly or equally distributed as normal download softwares do. That's why it can work with video resources.

Threads to request for resources in Rapunzel Accelerator are called shrimps!

Note that every shrimp is very intelligent! They cooperate with each other to download the resource data rapidly. However, they also have the ability to fight against each other. A stronger shrimp may kill a weaker shrimp and occupy his place for getting data faster.

Their skills are described as below.

1. Cooperate
The following graph shows how they cooperate with each other.

2. Search
shrimp1 finished his work and look for another block. At last, he stopped at the fifth block.

3. Attack
shrimp2 finished his work and he found that shrimp3 was doing his work so slowly. So shrimp2 aborted shrimp3's work and occupied his place. shrimp3 was so upset, however he found another place at the sixth block as the graph shows.

4. Extend
shrimp3 became stronger and this time he finished his work earlier than any other shrimp. He looks forward for more spaces, and he extends his territory to the next block.

In Rapunzel Accelerator, things are not so simple as described above.

1. The number of shrimps and the size of buffer block are dynamic. They depends on your network bandwidth and the speed of your connection to the target server.

2. We calculate every shrimp's speed and determine their abilities. The shrimp with higher speed is stronger.

3. The accelerator will send the data in the buffer to the browser even when a shrimp is working on this buffer.

4. Every shrimp has the ability to detect whether the target server supports HTTP Range.

5. Every shrimp has a connection used to transfer data from the target server. He has the ability to check whether he needs to close the connection and open a new one when he gets another buffer block.

6. Shrimps say they know everything you know and everything you don't know...


Author: Xiaoxia (gdxxhg AT gmail.com) www.xiaoxia.org 2011/4/13 created.