默默的一块石头
发布时间:2020-08-31 16:15:39
1.tcp_init_xmit_timers()void tcp_init_xmit_timers(struct sock *sk){ inet_csk_init_xmit_timers(sk, &tcp_write_timer, &tcp_delack_timer, &tcp_keepalive_timer);}2.tcp_write_timer()static void tcp_write_timer(unsigned long data){ if (!sock_owned_by_user(sk)) { tcp_write_timer_handler(s.........【阅读全文】
发布时间:2020-08-25 20:36:18
void tcp_rcv_established(struct sock *sk, struct sk_buff *skb, const struct tcphdr *th, unsigned int len){ /* * Standard slow path. */ if (!tcp_validate_incoming(sk, skb, th, 1)) return;step5: if (tcp_ack(sk, skb, FLAG_SLOWPATH | FLAG_UPDATE_TS_RECENT) < 0) goto discard; tcp_rcv_rtt_.........【阅读全文】
发布时间:2020-08-19 11:46:02
http://chinaunix.net/uid-24683784-id-5384077.htmlPS:下面通过wireshark抓包工具看看SACK的选项中的block。 PACK#26PACK#27PACK#28 PACK#29 &.........【阅读全文】
发布时间:2020-08-19 11:08:59
The TCP SACK panic Selective acknowledgment (SACK) 是TCP裡面用到的一個機制,幫助減少丟包重傳導致的擁塞。網路的這一端點就可以利用這個機制,來告訴對端自己收到了哪部分資料,然後對端就知道只需要傳送缺失的這部分資料即可。不過,最近在Linux的SACK實現裡面發現了一個bu,可能會被遠端.........【阅读全文】
发布时间:2020-08-10 14:32:54
重傳機制超時重傳快速重傳SACKD-SACK重傳機制的其中一個方式,就是在發送數據時,設定一個定時器,當超過指定的時間後,沒有收到對方的 ACK 確認應答報文,就會重發該數據,也就是我們常說的超時重傳。TCP 會在以下兩種情況發生超時重傳:超時重傳的兩種情況我們先來了解一.........【阅读全文】