网络编程基础知识02

本文深入解析TCP连接的三次握手与四次挥手过程,探讨TCP状态转换机制,包括FIN_WAIT_1至TIME_WAIT的转变,解释TIME_WAIT存在的必要性及其对端口复用的影响,以及2MSL的作用。

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

1.TCP首部

在这里插入图片描述

2.TCP三次握手、四次挥手

在这里插入图片描述

3.TCP状态转换

在这里插入图片描述

  • 当前状态可以通过netsta命令查看
  • FIN_WAIT_1 ——> TIME_WAIT:处于FIN_WAIT_1状态时直接收到带确认信息的结束报文段(而不是先收到确认报文段,再收到结束报文段)
  • TIME_WAIT:
 存在原因:
 	1.可靠地终止TCP连接
 	
 	【看下图:若报文段7丢失,那么服务器将重新发 snog结束报文段,因此处于TIME_WAIT状态下的客户端可以处理收到重复结束报文段这个情形。否则,客户端将发送RST报文段回应服务器,服务器则认为这是一个错误,因为它预期收到报文段7】
 	
 	2. 保证让迟来的TCP报文段有足够时间被识别并丢弃
 	
 	【Linux下端口默认无法复用,就是因为连接处于TIME_WAIT状态。如果不存在TIME_WAIT状态,则应用程序能够立即建立一个和刚关闭的相同端口的新连接,这个新连接可能接受到属于原来的连接的数据。】

2MSL:
	TCP报文段最大生存时间是MSL,保持2MSL确保网络上两个传输方向上尚未被接受到的、迟到的TCP报文段都已经消失(被中转路由器丢弃)。
FIN_WAIT_2: 半关闭状态,主动关闭链接的一方,发出FIN收到ACK以后进入该状态。
  • 三次握手、四次挥手原因
    在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值