Re: [ibr-dtn] interruption of transmission
According to my understanding this value is only related to the TCP stack on the system. It can not be influenced by IBR-DTN (well maybe it could if you try setting some special option on the sockets that the TCP Convergence Layer uses, but AFAIK ibr-dtn doesn not do it).
Basically TCP is a black box as far as the daemon is concerned: It stuffs bytes in, and sometimes get some bytes out. But TCP is fault-tolerant. When IBR-DTN puts bytes in and it has problems it will silently buffer them, trying to deliver them without telling the daemon about it. Only if after some time (on your system 15-20) seconds TCP still can not manage to deliver the bundle it will tell the daemon "Oops, something broke. The connection is gone". Only then IBR-DTN learns about the state of the connection and fragments the payload.
So the timeout you are seeing is related to the TCP stack on your system. It might be possible to modify it, but I do not know how to achieve this. The time will be a combination of a defined number of TCP retries and the measured RTT used for the specific connection you are using.
Sebastian
Am 01.07.2013 um 12:32 schrieb Bruno Tavares bmpt@ua.pt:
Thank you for your quick answer Mr Schildt
The thing is that if the interface is down for less than 15/20 seconds the bundle is not fragmented and it does not assume that the connection was lost for that period of time. after those 15/20 seconds in continues to send the bundle. If the interface is down for more than 20 seconds the bundle is fragmented and it is assumed that the connection was down. I just wanted to understand why this value and where can I change it.
Best regards,
Bruno Tavares ________________________________________ De: ibr-dtn-bounces@ibr.cs.tu-bs.de [ibr-dtn-bounces@ibr.cs.tu-bs.de] em nome de ibr-dtn-request@ibr.cs.tu-bs.de [ibr-dtn-request@ibr.cs.tu-bs.de] Enviado: segunda-feira, 1 de Julho de 2013 11:00 Para: ibr-dtn@ibr.cs.tu-bs.de Assunto: Ibr-dtn Digest, Vol 36, Issue 1
Send Ibr-dtn mailing list submissions to ibr-dtn@ibr.cs.tu-bs.de
To subscribe or unsubscribe via the World Wide Web, visit https://www.ibr.cs.tu-bs.de/mailman/listinfo/ibr-dtn or, via email, send a message with subject or body 'help' to ibr-dtn-request@ibr.cs.tu-bs.de
You can reach the person managing the list at ibr-dtn-owner@ibr.cs.tu-bs.de
When replying, please edit your Subject line so it is more specific than "Re: Contents of Ibr-dtn digest..."
Today's Topics:
- interruption of transmission (Bruno Tavares)
- Re: interruption of transmission (Sebastian Schildt)
Message: 1 Date: Mon, 1 Jul 2013 08:26:02 +0000 From: Bruno Tavares bmpt@ua.pt Subject: [ibr-dtn] interruption of transmission To: "ibr-dtn@ibr.cs.tu-bs.de" ibr-dtn@ibr.cs.tu-bs.de Message-ID: 90494CFA1222DC45A1855F79747890D8207D50C1@DBXPRD0210MB358.eurprd02.prod.outlook.com
Content-Type: text/plain; charset="us-ascii"
Hello all
After running some tests I noticed that if I break the connection between two nodes for small amount of time (let's say 4 or 5 seconds) and then connect again the bundle is not fragmented and the tcp connection does not go down. It assumes that no connection break happen and continues to deliver the bundle.
I would like to know where I can find in the code where this small break of connection can be traced to make some debug.
Can anyone help me?
Best regards
Bruno Tavares
Message: 2 Date: Mon, 1 Jul 2013 10:45:21 +0200 From: Sebastian Schildt schildt@ibr.cs.tu-bs.de Subject: Re: [ibr-dtn] interruption of transmission To: "ibr-dtn@ibr.cs.tu-bs.de" ibr-dtn@ibr.cs.tu-bs.de Message-ID: 8739DF1D-FCE3-4E59-AAAE-676088E49766@ibr.cs.tu-bs.de Content-Type: text/plain; charset=us-ascii
There should be a "Connection Down" even logged, when the TCP connection to another node breaks (I think even if you start the daemon with -v you should see that, even if you do not set a higher debug level). Before that IBR-DTN has no way of knowing that TCP hangs, because TCP is designed to play over small outages. Depending on the TCP configuration of your operating system, and the performance of the TCP connection until then, the TCP timeout could be up to a few minutes.
Sebastian
Am 01.07.2013 um 10:26 schrieb Bruno Tavares bmpt@ua.pt:
Hello all
After running some tests I noticed that if I break the connection between two nodes for small amount of time (let's say 4 or 5 seconds) and then connect again the bundle is not fragmented and the tcp connection does not go down. It assumes that no connection break happen and continues to deliver the bundle.
I would like to know where I can find in the code where this small break of connection can be traced to make some debug.
Can anyone help me?
Best regards
Bruno Tavares
-- !! This message is brought to you via the `ibr-dtn' mailing list. !! Please do not reply to this message to unsubscribe. To unsubscribe or adjust !! your settings, send a mail message to ibr-dtn-request@ibr.cs.tu-bs.de !! or look at https://www.ibr.cs.tu-bs.de/mailman/listinfo/ibr-dtn.
-- !! This message is brought to you via the `ibr-dtn' mailing list. !! Please do not reply to this message to unsubscribe. To unsubscribe or adjust !! your settings, send a mail message to ibr-dtn-request@ibr.cs.tu-bs.de !! or look at https://www.ibr.cs.tu-bs.de/mailman/listinfo/ibr-dtn.
End of Ibr-dtn Digest, Vol 36, Issue 1
Hello.
That is not quite correct. The timeout noticed here depends on convergence layer specific keep-alive messages. http://tools.ietf.org/html/draft-irtf-dtnrg-tcp-clayer-02#section-5.5
By default this keepalive interval is set to 10 seconds and IBR-DTN closes a connection if there is no data for twice the interval. The "10" is set on every instantiation of the TCPConnection class. So search for this (and similar) lines of code and change it according to your needs.
TCPConnection *obj = new TCPConnection(*this, node, client, 10);
Kind regards, Johannes Morgenroth
Am 01.07.2013 13:28, schrieb Sebastian Schildt:
According to my understanding this value is only related to the TCP stack on the system. It can not be influenced by IBR-DTN (well maybe it could if you try setting some special option on the sockets that the TCP Convergence Layer uses, but AFAIK ibr-dtn doesn not do it).
Basically TCP is a black box as far as the daemon is concerned: It stuffs bytes in, and sometimes get some bytes out. But TCP is fault-tolerant. When IBR-DTN puts bytes in and it has problems it will silently buffer them, trying to deliver them without telling the daemon about it. Only if after some time (on your system 15-20) seconds TCP still can not manage to deliver the bundle it will tell the daemon "Oops, something broke. The connection is gone". Only then IBR-DTN learns about the state of the connection and fragments the payload.
So the timeout you are seeing is related to the TCP stack on your system. It might be possible to modify it, but I do not know how to achieve this. The time will be a combination of a defined number of TCP retries and the measured RTT used for the specific connection you are using.
Sebastian
Oops :) Seems I have to eat my words.
Am 01.07.2013 um 13:28 schrieb Sebastian Schildt schildt@ibr.cs.tu-bs.de:
According to my understanding this value is only related to the TCP stack on the system. It can not be influenced by IBR-DTN (well maybe it could if you try setting some special option on the sockets that the TCP Convergence Layer uses, but AFAIK ibr-dtn doesn not do it).
Basically TCP is a black box as far as the daemon is concerned: It stuffs bytes in, and sometimes get some bytes out. But TCP is fault-tolerant. When IBR-DTN puts bytes in and it has problems it will silently buffer them, trying to deliver them without telling the daemon about it. Only if after some time (on your system 15-20) seconds TCP still can not manage to deliver the bundle it will tell the daemon "Oops, something broke. The connection is gone". Only then IBR-DTN learns about the state of the connection and fragments the payload.
So the timeout you are seeing is related to the TCP stack on your system. It might be possible to modify it, but I do not know how to achieve this. The time will be a combination of a defined number of TCP retries and the measured RTT used for the specific connection you are using.
Sebastian
Am 01.07.2013 um 12:32 schrieb Bruno Tavares bmpt@ua.pt:
Thank you for your quick answer Mr Schildt
The thing is that if the interface is down for less than 15/20 seconds the bundle is not fragmented and it does not assume that the connection was lost for that period of time. after those 15/20 seconds in continues to send the bundle. If the interface is down for more than 20 seconds the bundle is fragmented and it is assumed that the connection was down. I just wanted to understand why this value and where can I change it.
Best regards,
Bruno Tavares ________________________________________ De: ibr-dtn-bounces@ibr.cs.tu-bs.de [ibr-dtn-bounces@ibr.cs.tu-bs.de] em nome de ibr-dtn-request@ibr.cs.tu-bs.de [ibr-dtn-request@ibr.cs.tu-bs.de] Enviado: segunda-feira, 1 de Julho de 2013 11:00 Para: ibr-dtn@ibr.cs.tu-bs.de Assunto: Ibr-dtn Digest, Vol 36, Issue 1
Send Ibr-dtn mailing list submissions to ibr-dtn@ibr.cs.tu-bs.de
To subscribe or unsubscribe via the World Wide Web, visit https://www.ibr.cs.tu-bs.de/mailman/listinfo/ibr-dtn or, via email, send a message with subject or body 'help' to ibr-dtn-request@ibr.cs.tu-bs.de
You can reach the person managing the list at ibr-dtn-owner@ibr.cs.tu-bs.de
When replying, please edit your Subject line so it is more specific than "Re: Contents of Ibr-dtn digest..."
Today's Topics:
- interruption of transmission (Bruno Tavares)
- Re: interruption of transmission (Sebastian Schildt)
Message: 1 Date: Mon, 1 Jul 2013 08:26:02 +0000 From: Bruno Tavares bmpt@ua.pt Subject: [ibr-dtn] interruption of transmission To: "ibr-dtn@ibr.cs.tu-bs.de" ibr-dtn@ibr.cs.tu-bs.de Message-ID: 90494CFA1222DC45A1855F79747890D8207D50C1@DBXPRD0210MB358.eurprd02.prod.outlook.com
Content-Type: text/plain; charset="us-ascii"
Hello all
After running some tests I noticed that if I break the connection between two nodes for small amount of time (let's say 4 or 5 seconds) and then connect again the bundle is not fragmented and the tcp connection does not go down. It assumes that no connection break happen and continues to deliver the bundle.
I would like to know where I can find in the code where this small break of connection can be traced to make some debug.
Can anyone help me?
Best regards
Bruno Tavares
Message: 2 Date: Mon, 1 Jul 2013 10:45:21 +0200 From: Sebastian Schildt schildt@ibr.cs.tu-bs.de Subject: Re: [ibr-dtn] interruption of transmission To: "ibr-dtn@ibr.cs.tu-bs.de" ibr-dtn@ibr.cs.tu-bs.de Message-ID: 8739DF1D-FCE3-4E59-AAAE-676088E49766@ibr.cs.tu-bs.de Content-Type: text/plain; charset=us-ascii
There should be a "Connection Down" even logged, when the TCP connection to another node breaks (I think even if you start the daemon with -v you should see that, even if you do not set a higher debug level). Before that IBR-DTN has no way of knowing that TCP hangs, because TCP is designed to play over small outages. Depending on the TCP configuration of your operating system, and the performance of the TCP connection until then, the TCP timeout could be up to a few minutes.
Sebastian
Am 01.07.2013 um 10:26 schrieb Bruno Tavares bmpt@ua.pt:
Hello all
After running some tests I noticed that if I break the connection between two nodes for small amount of time (let's say 4 or 5 seconds) and then connect again the bundle is not fragmented and the tcp connection does not go down. It assumes that no connection break happen and continues to deliver the bundle.
I would like to know where I can find in the code where this small break of connection can be traced to make some debug.
Can anyone help me?
Best regards
Bruno Tavares
-- !! This message is brought to you via the `ibr-dtn' mailing list. !! Please do not reply to this message to unsubscribe. To unsubscribe or adjust !! your settings, send a mail message to ibr-dtn-request@ibr.cs.tu-bs.de !! or look at https://www.ibr.cs.tu-bs.de/mailman/listinfo/ibr-dtn.
-- !! This message is brought to you via the `ibr-dtn' mailing list. !! Please do not reply to this message to unsubscribe. To unsubscribe or adjust !! your settings, send a mail message to ibr-dtn-request@ibr.cs.tu-bs.de !! or look at https://www.ibr.cs.tu-bs.de/mailman/listinfo/ibr-dtn.
End of Ibr-dtn Digest, Vol 36, Issue 1
-- !! This message is brought to you via the `ibr-dtn' mailing list. !! Please do not reply to this message to unsubscribe. To unsubscribe or adjust !! your settings, send a mail message to ibr-dtn-request@ibr.cs.tu-bs.de !! or look at https://www.ibr.cs.tu-bs.de/mailman/listinfo/ibr-dtn.
participants (2)
-
Johannes Morgenroth
-
Sebastian Schildt