网络拥塞

本文介绍了TCP三次握手和快速重传机制。TCP提供可靠连接服务,通过三次握手建立连接,文中详细说明了每次握手的过程。还提到可在Wireshark中查看相关流程图。快速重传不依赖定时器超时,依靠ACK确认包重传,能更高效修复TCP丢包问题,同时分析了一些TCP异常情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TCP(Transmission Control Protocol) 三次握手

TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:

位码即tcp标志位,有6种标示:

       SYN(synchronous建立联机)

        ACK(acknowledgement 确认)

       PSH(push传送)

       FIN(finish结束)

       RST(reset重置)

      URG(urgent紧急)

      Sequence number(顺序号码)

      Acknowledge number(确认号码)

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(seq=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。

 在Wireshark中,捕获完整的打开https的过程  然后在statistics-->flow graph 看到流程图。

如下图所示: 本机的4694端口 与目的主机(Web)的443端口 建立TCP链接,并且发送了 Hello报文。

 

 

快速重传

RFC5681定一个的一个过程。快速重传不依赖定时器的超时,而是依靠ACK确认包来进行重传。使用快速重传相比RTO超时重传通常可以更高效的修复TCP丢包问题。快速重传是基于一个前提:即按照RFC5681,当TCP收到一个乱序报文的时候应该立即回复ACK确认包,而不会延迟ACK(延迟ACK介绍参考之前文章介绍)确认。另外RFC5681还指出如果接收序列号空间存在洞,新接收的报文完全填充了这个洞或者部分填充了这个洞,TCP也应该立即回复一个ACK确认包以便发送端及时获取接收端相关的信息。

 

 1.[TCP Out_of_Order] 443-->4719  Ack=1796  
一般来说是网络拥塞,导致顺序包抵达时间不同,延时太长,或者包丢失,需要重新组合数据单元,因为他们可能是由不同的路径到达你的电脑上面.

2.[ TCP Retransmisson] Ack=1796  是未收到服务器的重发报文。

然后 [TCP Dup ACK 221#XX] 重复应答  ACK 221 丢失,#后面的是表示第几(14)次丢失。 
tcp previous segment not captured  意思就是报文没有捕捉到,出现报文的丢失。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值