Linux 内核网络参数

来源:互联网 发布:橙e付网络支付 编辑:程序博客网 时间:2024/04/26 17:19

滑动窗口(通告窗口):接收端根据自己设置的缓存大小决定该窗口的大小, 缓存大小的设置根据BDP(Bandwidth Delay Product) 来设置, BDP = link_bandwidth * RTT

拥塞窗口:发送端根据自己估计的网络拥塞程度而设置的窗口值,是来自发送端的流量控制

 

2.  TCP有3种基本机制控制报文的发送

2.1 TCP维持一个变量,它等于最大报文段长度MSS?

2.2 应用层指明要求发送报文端, 通过TCP头部的push 字段(急迫比特)

2.3 计时器时间到, 把缓存的数据发送出去


3. Nagle 算法, TCP_NODELAY 可以关闭该算法

1. 发送端应用进程将欲发送的数据逐个字节的送到发送端的TCP缓存, 则发送端就将第一个字符先发送出去,将后面的字符都缓存起来

2. 当收到对前一个报文的确认,将缓存中的所有字符组装成一个报文段发送出去

3. 当缓存的字符达到窗口的一半或者以达到最大报文段长度,就立即发送


4. 糊涂窗口综合症(silly window syndrome) : 可以让接受端等待一段时间


5. 拥塞控制算法

慢开始:由小到大逐渐增大发送端的拥塞窗口数值,初始值是一个MSS值,收到确认后增加至多一个MSS值

拥塞避免算法:拥塞窗口每经过一个返回时延RTT就增加一个MSS的大小

慢开始门限(ssthresh)

当cwnd < ssthresh : 慢开始算法

当cwnd > ssthresh : 拥塞避免双方

当cwnd == ssthresh : 两个都可以

网络出现拥塞处理方法:将慢开始门限ssthresh设置为出现拥塞时的发送窗口值的一半, 将拥塞窗口设置为1,重新执行慢开始算法

 

快重传:发送端只要一连接收到三个重复的ACK,即可断定有分组丢失

快恢复: cwnd = ssthresh + n* MSS;

 

乘法减少:ssthresh = cwnd * 0.5

加法增大:cwnd++

 

6. 随机早期丢弃(Random Early Discard):  路由器采用的算法