栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

TCP三次握手和四次挥手

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

TCP三次握手和四次挥手

1.三次握手

传输数据之前需要先建立连接,TCP 连接的建立,称为三次握手

一开始,客户端和服务端都处于 Close 状态,

然后服务器监听某个窗口,处于Listen状态

客户端发起连接,发送SYN报文(将SYN标志位置为1),发完之后自己处于SYN_SENT状态

服务端收到SYN,立马返回SYN+ACK(即SYN和ACK),自己进入SYN_RCVD状态

客户端收到SYN+ACK(即SYN和ACK),马上发送对SYN确认的ACK,并且自己进入established状态

服务端收到对SYN确认的ACK,也进入established状态

至此,客户端和服务器端都进入established状态,连接建立了

三次握手目的是保证双方都有发送和接收的能力

 在这个过程中一共产生三个报文,第一个报文是一个SYN报文(SYN标志位设为1),第二个报文是SYN+ACK报文(SYN标志位和ACK标志位设为1),第三个报文ACK报

2.四次挥手

 

客户端发送一个Tcp首部FIN标志位被置为1的报文(即FIN报文),然后进入FIN_WAIT_1状态

服务器收到这个FIN报文,马上发送一个确认报文ACK,然后马上进入CLOSED_WAIT状态

客户端收到服务端的 ACK 应答报文后,之后进入 FIN_WAIT_2 状态

服务器处理完数据后,向客户端发送FIN报文,之后自己 马上进入LAST_ACK 状态

客户端收到这个FIN报文之后,立即向服务端发送ACK报文,而且自己进入TIME_WAIT 状态,然后等待2MSL(一来一回,所以是两个MSL)时间后,自动进入CLOSED状态

而服务器端收到ACK之后马上就进入CLOSE状态

四次挥手一共产生四个报文,两个FIN报文,两个ACK报文,所以叫四次挥手

经典问题,为什么三次握手需要三次,四次挥手需要四次?

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/913541.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号