TCP协议3次握手和4次挥手

一、TCP通信过程

TCP是TCP/IP体系中面对连接的传输层协议,采用多种机制来确保数据的可靠性。其中为了确保TCP成功连接和断开,TCP采用了一种三次握手和四次挥手的机制。过程如下所示


三次握手成功后,成功建立连接,然后开始传输数据信息,最后断开连接。这是TCP传输的步骤!

二、TCP三次握手

TCP三次握手都是发生在数据传输的什么时候呢?下面来共同解析

1. 源主机A的TCP向目标主机B发送连接请求报文段,其首部的SNY标志位置为1,表示想和目标主机建立连接,进行通信,并发送一个同步序列号x进行同步,表明在后面传送数据时的第一个数据字节的序号为x+1。

2. 目标主机B的TCP收到连接请求报文段后,如果同意则发出确认,再确认报中应将ACK位和SYN位置为1,确认号为x+1,同时也为自己选择一个序号y。

3. 源主机A的TCP收到目标主机B的确认后,要想目标主机B给出确认,其ACK置为1,确认号为y+1,而自己的序号为x+1。

三次握手为应用程序提供可靠的通信连接,适合一次传输大批数据的情况。


三、TCP四次挥手


四、为什么建立连接协议是三次握手,而关闭连接却是四次握手呢? 
这 是因为服务端的LISTEN状态下的SOCKET当收到SYN报文的建连请求后,它可以把ACK和SYN(ACK起应答作用,而SYN起同步作用)放在一 个报文里来发送。但关闭连接时,当收到对方的FIN报文通知时,它仅仅表示对方没有数据发送给你了;但未必你所有的数据都全部发送给对方了,所以你可以未 必会马上会关闭SOCKET,也即你可能还需要发送一些数据给对方之后,再发送FIN报文给对方来表示你同意现在可以关闭连接了,所以它这里的ACK报文 和FIN报文多数情况下都是分开发送的。



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值