TCP的三次握手与四次断开

什么是TCP?

TCP:Transmission Control Protocol(传输控制协议),是一种面向连接的、可靠的传输层通信协议。

什么是面向连接?如何保障面向连接?

面向连接是在传递数据前进行协商,确保数据在后续的发送过程中双方能够发送以及能够发送到数据。

保障面向连接:TCP三次握手机制

也就是说,三次握手的目的是为了确认客户端和服务端的收发功能是正常的。

什么是TCP的三次握手机制?

简单来说,第一次握手就是客户端给服务器端发送一个报文(SYN字段置为1)表示需要建立TCP连接,但客户端此刻并不清楚自己的发报功能是否正常,报文是否发出又是否被服务器接收到,如果当第一次握手的报文被送达服务端的时候,服务端就知道自己的接收功能是完好的了。
第二次就是服务器收到报文之后,会应答一个报文给客户端。在第一次握手中,客户端发送的报文中有一个参数是seq=x,而在第二次应答报文中,它会返回一个参数ack=x+1,这样客户端就会知道自己的发送功能是正常的。同时,服务器端也需要知道自己的发生功能是否正常,所以它也发出了一个seq=y的参数以待客户端应答。
第三次握手就是客户端收到报文后再给服务器发送一个报文,三次握手就成功了。此刻客户端收到了服务器的报文(ack=x+1),验证了自身接收功能正常,最后他再给服务器端发一个带ack=y+1的报文,当服务器接收到这个报文后就知道自己的发送能力也是正常的,这就是tcp的三次握手机制。

什么是四次挥手?

 由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。

第一次挥手:客户端发送断开TCP连接请求的报文并将报文中的FIN字段置为1,表示需要断开TCP连接。

第二次挥手:服务端会回复客户端发送的TCP断开请求报文,其中ack=seq的值+1,以便客户端收到信息时,知晓自己的TCP断开请求已经得到验证。

第三次挥手:服务端在回复完客户端的TCP断开请求后,不会马上进行TCP连接的断开,服务端会先确保断开前,所有传输到A的数据是否已经传输完毕,一旦确认传输数据完毕,就会随机生成一个seq=h值并发给客户端。

第四次挥手:客户端收到服务端的TCP断开请求后,会回复服务端的断开请求,包含随机生成的一个seq的值和ack=h+1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值