TCP的三次握手和四次挥手

本文详细介绍了TCP协议中建立连接的三次握手过程和关闭连接的四次挥手过程。三次握手确保了客户端和服务端都能发送和接收数据,而四次挥手则确保双方确认数据传输完毕。通过理解这两个过程,可以更好地理解TCP连接的工作原理。
摘要由CSDN通过智能技术生成

HTTP请求是在TCP连接的基础上去进行的。
TCP保证通信的三个步骤:三次握手,传输内容,四次挥手。
三次握手是建立连接的过程,四次挥手是关闭连接的过程。

三次握手

三次握手的主要目的是为了确认进行通信的两台主机(客户端和服务端)都具备收消息和发消息的能力。

三次握手实际上就是客户端和服务端之间发送了三条消息,客户端需要确认服务端可以收也可以发,服务端也需要确认客户端可以发也可以收。

第一次握手:
客户端向服务器端发送消息

主要传递两个信息:一是请求建立连接(SYN=1),二是发出一个序列号(seq=n,n为一个数)
第一次握手可以让服务端知道客户端能够发送消息

第二次握手:
服务器端向客户端发送消息

传递三个信息:一是同意建立连接(SYN=1),二是确认收到刚才的消息(ack=刚才的seq+1),三是发出自己的序列号(seq=x,x为一个数)
第二次握手可以让客户端知道服务端能够发消息也能收消息

第三次握手:
客户端向服务端发送消息

传递三个信息:一是表示现在开始发送(SYN=0),二是确认收到刚才的消息(ack=刚才的seq+1),三是消息序列号(seq=最开始发出的序列号+1)
第三次握手可以让服务端知道客户端能够接收消息

在这里插入图片描述

四次挥手

四次挥手主要是为了确认客户端已经发完消息,以及服务端已经接收完消息。

所以四次挥手是:发完了,知道发完了,收完了,知道收完了。

第一次挥手:
传递两个信息:一是请求连接终止(FIN=1),二是发出序列号(seq=n)

第一次挥手客户端告诉服务端数据发完了

第二次挥手:
传递三个信息:一是确认收到终止信号(ACK=1),二是确认收到刚才的消息(ack=n+1),三是发送自己的序列号(seq=x)

第二次挥手服务端知道客户端数据发完了

第三次挥手:
传递三个信息:一是已经准备好释放连接(FIN=1,ACK=1),二是确认号(ack=n+1),三是发送自己的序列号(seq=y)

第三次挥手服务端告诉客户端数据收完了

第四次挥手:
传递三个信息:一是接收到服务器准备好终止连接的信号(ACK=1),二是发送确认号(ack=y+1),三是序列号(seq=n+1)

第四次挥手客户端知道服务端数据收完了

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值