Pergunta

Hypothetical situation:

Host A can send information to Host B at a rate of one bit per second.

Host B can send information to Host A at a rate of one terrabyte per second.

You'd like to send one gigabyte of random information from A to B.

How would you do it?

Is there any way to make use of B -> A to speed up A -> B?

Foi útil?

Solução

I could imagine some kind of distributed data compression scheme. Usually, in data compression, the sender (A) determines the encoding of frequent and less frequent bit sequences in the data. In Huffman coding the result is the Huffman tree.

In your case however, it would be advantageous if the receiver B could determine the encoding with some help from the sender A only.

The most simple way to achieve something like this could be to have the receiver B 'brute-force' bit sequences, transmitting them to the sender A, until the sender A acknowleges the correct sequence has been 'guessed'.

A little smarter would be an approach which makes use of some binary search to determine the data on the sender's side, where the sender's response of '0' or '1' tells the receiver which way to go in the tree.

Maybe have a look at arithmetic coding too.

This is all just hypothetical though, because the round trip time for sender and receiver would have to be taken into consideration, where low RTT implies higher data rate and vice versa, so that, in reality, one wouldn't find a sender who can only send 1bps but with a RTT of, e.g., 1ms.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top