TCP连接详解

 我来答
黑科技1718
2022-07-20 · TA获得超过5872个赞
知道小有建树答主
回答量:433
采纳率:97%
帮助的人:81.6万
展开全部

通过设置linux参数 net.ipv4.tcp_fin_timeout = 30 ,可以调整
如发现系统存在大量TIME_WAIT状态的连接,通过调整内核参数解决:
编辑文件/etc/sysctl.conf,加入以下内容

tcp 通过序列号seq记录已经发送的数据刻度,通过ack记录已经接收的数据量。seq记录的是发送的数据,ack记录的是接收的数据量。单位是字节(8bit)

tcp在每次发包时都会计算往复时间及其偏差。将这个往返时间和偏差相加,重发超时时间就是比这个总和要稍大一点的值。
由于最初的数据包还不知道往返时间,所以其重发超时一般设置为6s左右。

在建立tcp连接时,三次握手的时候会计算mss(最大消息长度),建立连接的双方会把自己的接口能适应的mss值放到tcp首部里面发送给对方,最后取较小的那个mss。

tcp窗口大小指的是无需等待确认应答而可以继续发送数据的最大值,窗口大小为4个端。即在收到确认应答之前可以发送的数据的段数。
接收端没有按序列顺序收到数据端时,会不停的发送确认应答,并将当前收到的顺序出问题的数据放到缓冲区。发送端连续三次收到相同序列号的数据段时,会重新发送该段的数据。接收端在接收到遗失的数据的时候会将数据与缓冲区的数据组合,重新按顺序确定ack的序列号,继续接收数据。
tcp窗口的大小是由接收端的处理能力决定的,接收端会在ack的tcp首部中将能处理的窗口大小传给发送端。

拥塞窗口是限制每次发送的数据的大小,初始值是1mss,也就是慢启动。随着正常的收发的进行,拥塞窗口的值会不断的增加。但是不会超过接收端处理窗口的大小。
一开始拥塞窗口每次都会翻倍的增长,在超过慢启动阈值后增长速度会减慢。
增长速率=一个数据段的大小 / 拥塞窗口的大小 *一个数据段的大小
超时重发时,拥塞窗口会变为1mss, 慢启动阈值为原有窗口的一半
重复确认应答时,慢启动阈值为原有窗口的一半,拥塞窗口会变为慢启动阈值+3数据端,

1、已发送的数据收到了ack回执
2、可以发送mss大小的数据时
只有以上两个数据都满足时才发送数据。会有延迟,对延迟敏感的需求可以关。

1、收到2*最大端长度的数据
2、最大延迟0.5s发送确认应答

将tcp的确认应答和回执数据通过一个包发送。
接收数据之后等待应用处理生成返回数据以后在发送回复时同时发送回执。
需要开启延迟确认应答。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Storm代理
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto... 点击进入详情页
本回答由Storm代理提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式