- 传输性能的提升
最简单的传输方式:发送一个报文,收到一个应答,发送另一个报文
优化:
批量发送,批量确认
2. 窗口大小
最大可以到1G
启动窗口扩大因子
wws@wws-virtual-machine:~/桌面$ cat /proc/sys/net/ipv4/tcp_window_scaling
1
发送方在syn报文中发送这个选项,别动连接方一看发送方有这个选项了,自己也会打开这个选项.告诉它我窗口(接收窗口)最大能到多少.
- 如何确定最大传输速度
带宽*网络时延=带宽时延积,它代表网络中飞行报文的数量,已发送但未确定的报文数量的上限是发送窗口的大小,所以发送窗口窗口不能超出带宽时延积.
- 调节影响发送窗口大小的参数
wws@wws-virtual-machine:~/桌面$ cat /proc/sys/net/ipv4/tcp_wmem
4096 16384 4194304
第一个参数是发送窗口动态变化的最小值,第二个是初始值,第三个是最大值.动态窗口根据接收窗口的大小动态调整.
5. 名词解释
发送缓冲区=发送窗口
接收缓冲区=接收窗口
- 调节接收缓冲区的参数
wws@wws-virtual-machine:~/桌面$ cat /proc/sys/net/ipv4/tcp_rmem
4096 131072 6291456
最小值 初始值 最大值 单位 字节
打开调节接收缓冲区的功能
wws@wws-virtual-machine:~/桌面$ cat /proc/sys/net/ipv4/tcp_moderate_rcvbuf
1
tcp发送窗口的大小由接收窗口与带宽延时积,拥塞控制确定,tcp接收窗口的大小由系统空闲内存确定
查看tcp内存变化范围
wws@wws-virtual-machine:~/桌面$ cat /proc/sys/net/ipv4/tcp_mem
21678 28905 43356
单位是页,一页=4kb
当tcp所占内存小于第一个数的时候,不需要动态调节tcp接收窗口的大小,直接使用默认值
当tcp所占内存在第一个数与第二个数之间的时候,动态调节tcp接收窗口的大小,根据tcp_rmem
当大于第三个数的时候,内核不再为tcp分配内存,无法建立连接,最后一个参数是系统能够分配给用于tcp连接的最大内存
上面的这些值在系统启动时自动算出