随笔分类 - linux tcp/ip
摘要:转载自https://www.kawabangga.com/posts/5217 途中,每根竖线的高度可以理解为一次性发送的数据多少:第一个请求中(图中第一次升高),一开始慢慢发,越发越快,这是因为 TCP 要避免出现拥塞,所以在链接刚建立的时候会 slow start,慢慢发送,如果网络能接受,就
阅读全文
摘要:TCP Tail Loss Probe(TLP) Early Retransmit机制解决了dupack较少,无法触发快速重传的问题。但是如果发生了尾丢包,由于尾包后面没有更多的数据包,也就没有办法触发任何的dupack。为解决这种尾丢包的问题,Google的几位大神提出了TLP算法。通过TLP算法
阅读全文
摘要:UDP 在多网卡的情况下,可能会发生服务器端回复报文源地址不对的情况。目前这种情况在portal 对接ac的时候经常出现 所以问题就是:需要保存本次udp 请求的local ip remote ip IP_PKTINFO 这个选项就是让内核在 socket 中保存 IP 报文的信息,当然也包括了报文
阅读全文
摘要:发送窗口、接收窗口和拥塞窗口 滑动窗口机制中涉及三个重要概念: 发送窗口 发送窗口是发送端在操作系统内开辟的一块缓冲区,用来存放当前需要发送的数据,也称为发送缓存。发送端使用发送窗口进行流量控制。 接收窗口(RWND,Receiver Window) 接收窗口是接收端在操作系统内开辟的一块缓冲区,设
阅读全文
摘要:目前google 发布了tcp bbrv2+fixbug tcp bbrv3 目前说是 BBRv3 的数据包重传率降低了 12%,延迟也略有改善 Impact of BBRv3 vs BBRv1 on Google.com and YouTube TCP public Internet traffi
阅读全文
摘要:4.2. Algorithm Organization The BBR algorithm is an event-driven algorithm that executes steps upon the following events: connection initialization, u
阅读全文
摘要:brr 算法流程: bbr算是一个完全独立的拥塞算法,具有自己的拥塞状态机.tcp_cong_control函数已经被bbr_main函数接管了 static void tcp_cong_control(struct sock *sk, u32 ack, u32 acked_sacked, int
阅读全文
摘要:Initialization Steps Upon transport connection initialization, BBR executes the following steps: BBRInit(): init_windowed_max_filter(filter=BBR.BtlBwF
阅读全文
摘要:**Network Path Model** BBR is a model-based congestion control algorithm: its behavior is based on an explicit model of the network path over which a
阅读全文
摘要:在查看google的BBR算法时,里面出现了一个 startup gain的推到过程: For simplicity, let RTT=1 unit of time. For smooth traffic to avoid queue pressure, we want the sending ra
阅读全文
摘要:这是内核协议栈里面的一个发送窗口赋值代码 tp->snd_wnd = ntohs(th->window) << tp->rx_opt.snd_wscale; snd_wscale : 4, /* Window scaling received from sender */ rcv_wscale :
阅读全文
摘要:之前的拥塞控制文档有 : 拥塞控制一 拥塞控制二 拥塞控制三 //这个说明当前的输入帧包含有数据。 #define FLAG_DATA 0x01 /* Incoming frame contained data. */ //这个说明当前的ack是一个窗口更新的ack #define FLAG_WIN
阅读全文
摘要:Delayed ACK Delayed ACK是TCP 的一种流控手段。如果有响应数据发送时,ACK会随响应数据一起发送给对方;如果没有响应数据,ACK的发送就会有延迟,以等待看是否有响应数据一起发送。 Nagle算法 Nagle算法是通过减少网络连接中<MSS的数据包的数量,从而防止网络拥塞的控制
阅读全文
摘要:翻看以前的文章 keepalive定时器 persist定时器 两者报文形式: 零窗口通知包:win=0 keepalive包:seq=ack-1, len = 1或者len = 0 keepalive报文 SLE: Sequence Left Edge of already acknowledge
阅读全文

浙公网安备 33010602011771号