Skip to content

Commit

Permalink
Optimize DTLS Handshake and ICE Handling for Improved Performance (#3)
Browse files Browse the repository at this point in the history
1. Merge ICE and DTLS ARQ max retry options into a single handshake timeout.
2. Utilize DTLS server role to prevent ARQ, as the peer DTLS client will handle ARQ.
3. Replace IO from DTLSContext with a callback function.
4. Measure and analyze the time cost for each step in the process.
5. Implement DTLS BIO callback for packet fragmentation using BIO_set_callback.
6. Generate private key and certificate prior to ICE for faster handshake.
7. Refine DTLS MTU settings using SSL_set_mtu and DTLS_set_link_mtu.
8. Provide callback for DTLS state, returning errors when DTLS encounters issues or closes.
9. Consolidate ICE request/response handling and DTLS handshake into a single function.
  • Loading branch information
winlinvip authored Jun 7, 2023
1 parent d68c259 commit 6777437
Show file tree
Hide file tree
Showing 2 changed files with 691 additions and 503 deletions.
18 changes: 3 additions & 15 deletions doc/muxers.texi
Original file line number Diff line number Diff line change
Expand Up @@ -1361,21 +1361,9 @@ This muxer supports the following options:

@table @option

@item ice_arq_max @var{integer}
Set the maximum number of retransmissions for the ICE ARQ mechanism.
Default value is 5.

@item ice_arq_timeout @var{integer}
Set the start timeout in milliseconds for the ICE ARQ mechanism.
Default value is 30.

@item dtls_arq_max @var{integer}
Set the maximum number of retransmissions for the DTLS ARQ mechanism.
Default value is 5.

@item dtls_arq_timeout @var{integer}
Set the start timeout in milliseconds for the DTLS ARQ mechanism.
Default value is 50.
@item handshake_timeout @var{integer}
Set the timeout in milliseconds for ICE and DTLS handshake.
Default value is 5000.

@item pkt_size @var{integer}
Set the maximum size, in bytes, of RTP packets that send out.
Expand Down
Loading

0 comments on commit 6777437

Please sign in to comment.