mirror of
https://gitee.com/bianbu-linux/linux-6.6
synced 2025-04-24 14:07:52 -04:00
dccp: make implementation of Syn-RTT symmetric
This patch is thanks to Andre Noll who reported the issue and helped testing. The Syn-RTT sampled during the initial handshake currently only works for the client sending the DCCP-Request. TFRC penalizes the absence of an RTT sample with a very slow initial speed (1 packet per second), which delays slow-start significantly, resulting in sluggish performance. This patch mirrors the "Syn RTT" principle by adding a timestamp also onto the DCCP-Response, producing an RTT sample when the (Data)Ack completing the handshake arrives. Also changed the documentation to 'TFRC' since Syn RTTs are also used by CCID-4. Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
a7d13fbf85
commit
59b80802a8
2 changed files with 16 additions and 3 deletions
|
@ -529,7 +529,7 @@ int dccp_insert_options(struct sock *sk, struct sk_buff *skb)
|
|||
if (DCCP_SKB_CB(skb)->dccpd_type == DCCP_PKT_REQUEST) {
|
||||
/*
|
||||
* Obtain RTT sample from Request/Response exchange.
|
||||
* This is currently used in CCID 3 initialisation.
|
||||
* This is currently used for TFRC initialisation.
|
||||
*/
|
||||
if (dccp_insert_option_timestamp(skb))
|
||||
return -1;
|
||||
|
@ -562,6 +562,10 @@ int dccp_insert_options_rsk(struct dccp_request_sock *dreq, struct sk_buff *skb)
|
|||
if (dccp_feat_insert_opts(NULL, dreq, skb))
|
||||
return -1;
|
||||
|
||||
/* Obtain RTT sample from Response/Ack exchange (used by TFRC). */
|
||||
if (dccp_insert_option_timestamp(skb))
|
||||
return -1;
|
||||
|
||||
if (dreq->dreq_timestamp_echo != 0 &&
|
||||
dccp_insert_option_timestamp_echo(NULL, dreq, skb))
|
||||
return -1;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue