TCP 三次握手 四次挥手

TCP的连接和建立

TCP报文格式
TCP的连接和建立主要关注报文中的几个字段

字段长度(bit)含义
序号32TCP链接中传输的数据流中每个字节都编上一个序号。序号字段的值指的是本报文段所发送的数据的第一个字节的序号。
确认号32是期望收到对方的下一个报文段的数据的第1个字节的序号,即上次已成功接收到的数据字节序号加1。只有ACK标识为1,此字段有效。
ACK1确认号有效标识。只有当ACK=1时确认号字段才有效。当ACK=0时,确认号无效。
SYN1同步序号标识,用来发起一个连接。SYN=1表示这是一个连接请求或连接接受请求。
FIN1发端完成发送任务标识。用来释放一个连接。FIN=1表明此报文段的发送端的数据已经发送完毕,并要求释放连接。

三次握手

TCP/IP采用三次握手来建立连接
三次握手

过程报文含义
第一次握手SYN = 1, seq = xClient向Server发送一个连接请求 SYN = 1(表示这个报文是一个连接请求),同时发送自己的序号seq = x
第二次握手SYN = 1, ACK = 1, ack = x + 1, seq = y收到Client发来的报文,回复Client一个确认报文作为应答 ACK = 1(确认报文),接着发送一个确认号ack = x + 1(+1是代表它收到了SYN标识),SYN = 1(代表连接接受请求),同时发送自己的序号seq = y
第三次握手ACK = 1, ack = y + 1Client收到Server的响应报文,它也要回复确认报文 ACK = 1(代表确认报文),ack = Y + 1(对方的序号+1,表示收到对方的SYN标识)

:为啥要3次握手
前两次握手 客户端可以知道服务器可以收到报文,也可以发送给我,但是服务器并不知道客户端能否收到,所有需要三次握手,即客户端再发送一个确认报文

四次挥手

TCP/IP采用四次挥手来关闭连接
四次挥手

过程报文含义
第一次挥手FIN = 1, seq = xClient发送一个FIN = 1的包(代表要释放连接),同时发送自己的序号 seq = x
第二次挥手ACK = 1, ack = x + 1Server收到Client的FIN包,则发送一个确认包,表示自己接受到Client的关闭连接请求(还没准备好关闭连接)
第三次挥手FIN = 1, seq = y当Server准备好关闭连接时,向Client发送结束连接请求,FIN置为1,同时发送自己的序号seq = y
第四次挥手ACK = 1, ack = y + 1Client接收到Server的关闭请求,发送一个确认包,Server收到确认包,就会关闭连接,进入CLOSED状态,Server关闭后,将不再回应Client,Client等待某个时间后,将会自行关闭,进入CLOSED状态,这时完成TCP连接释放
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值