Hello, again!
I'm sorry for the delay in the answer. First, I want to thank you for the
attention and the advice, it was very helpful!
.....But I still have some issues with this situation, so I'm here to ask
some more questions. --'
In fact, dtnrecv does work even when some bundles are lost but, in my case
the order should be kept, i.e., I want to proceed with the next seq. nr.
available even when some bundles are lost. I tried to use the parameter
“-t” of dtnstream, but my dtnstream receiver keeps waiting forever, and the
video is never displayed again, although the bundles are supposedly
delivered (I've realized that accessing the API of the daemon via telnet
and using the option: protocol management->stats bundles).
Can this be a bug, or am I missing something?
Thanks (a lot) in advance!
João P. T. Loureiro
Dr. Johannes Morgenroth <johannes(a)morgenroth.me> escreveu no dia quarta,
23/12/2020 à(s) 09:21:
> Hello João.
>
>
>
> Your observation is correct. The tool dtnstream is designed to split-up a
> continuous stream into chunks and bring it into the right order at the
> receiver. As long as your DTN assures delivery without lost bundles, this
> should work. In case you are not interested in the right order, you can
> simply use dtnstream as sender and dtnrecv as receiver. The additional data
> for the streaming and reordering is stored in an extension block of the
> bundle and not within the payload. So it is possible to just receive the
> payload of the stream by calling dtnrecv.
>
>
>
> If you just looking for a timeout mechanism to skip lost bundles after a
> timeout, you can just set the parameter “-t” of dtnstream.
>
>
>
> To modify the behavior, you need to adapt the class BundleStreamBuf [1]
> within the tools package. The method __underflow(), checks if the next
> sequence number is available and blocks until this is available or a
> predefined timeout is reached [2].
>
>
>
> Kind regards,
>
> Johannes
>
>
>
> [1]
> https://github.com/ibrdtn/ibrdtn/blob/master/ibrdtn/tools/src/streaming/Bun…
>
> [2]
> https://github.com/ibrdtn/ibrdtn/blob/master/ibrdtn/tools/src/streaming/Bun…
>
>
>
>
>
> *Von:* Ibr-dtn <ibr-dtn-bounces(a)ibr.cs.tu-bs.de> *Im Auftrag von *João
> Pedro Loureiro via Ibr-dtn
> *Gesendet:* Freitag, 18. Dezember 2020 13:53
> *An:* ibr-dtn(a)ibr.cs.tu-bs.de
> *Betreff:* [ibr-dtn] dtnstream: Lost Bundles
>
>
>
> Hello!
>
>
>
> My name is João Loureiro and I'm a MSc student at University of Porto
> (Portugal) & INESC-TEC (a research institute).
>
>
>
> In my master thesis, I'm performing some tests using the IBR-DTN tool
> "dtnstream" and 3 nodes, where the first node (sender) only reaches the
> third (final destination) through the "middle" node.
>
>
>
> The problem I'm facing is the following: I want the destination (where the
> video/audio stream is being reproduced and piped into VLC player) to
> ignore lost bundles/chunks, i.e., If I receive at this node, for example,
> the chunks with the seq. nrs. 0,1 and 3, I want to have a continuous video
> streaming, ignoring the packet with seq. nr. 2, and passing from 1 to 3
> instantaneously or with a specified timeout.
>
>
>
> I've read the documentation and this paper:
> https://doi.org/10.1145/2030652.2030673, but, in my understanding, and
> following the dozens of tests I've already performed, currently dtnstream
> keeps waiting for the right sequence number instead of keep going with the
> last received one. I just wanted to confirm that is truly what is happening
> and, if it is, if there's some simple tips for modifying the code in order
> to obtain this behavior (I have already tried several modifications but
> with no success...).
>
>
>
> Thanks a lot for your help, in advance!
>
> João P. T. Loureiro
>