[gnutls-help] DTLS Out Of Order and Lost Packets
Wanner, Charles W [US] (AS)
charles.wanner at ngc.com
Thu Nov 22 01:38:08 CET 2018
To: GNU TLS Library Help Forum
Hello. I am new to the GNU TLS Library. I am writing a DTLS Server and Client software package. My client and server software will only be communicating with each other. I will not have to deal with a DTLS Server or Client that I have not developed. The DTLS Server and Client will be in an environment that communications between them will experience packets out of order and loss. In this environment, using a TCP based protocol will be problematic.
When I first started, I was under the assumption that the GNU DTLS Library would handle packets being out of order or retransmit packets that were lost. The main reason for this thought was that I my assumption that computing the next Nonce would require the previous packet. But I am reading the source code, it does not appear that the GNU TLS library does not handle out of order packets or lost packets for the application data. It appears the Nonce is based on just the sequence number in the DTLS application data header.
Before I start trying to deal with this issue, I would like to ask some questions:
1) I am using the function gnutls_record_recv_seq to receive the DTLS application data. I am can detect when packets are received out of order and when a packet loss occurs. But I do not see in the interface away to use the sequence number to request the packet to be retransmitted. Does the sequence number only provide the ability to detect packets being out of order or packet loss?
2) If the answer is yes to the question above, does that mean I will have to write my own overhead to identify which packet was lost and mechanism to request the server to retransmit the data that was loss at the application layer?
3) Are there any examples of source code with a DTLS Server and Client handling out of order packets and packet lost?
Any help or guidance would be appreciated.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Gnutls-help