三次握手和四次挥手
三次握手过程:
专业版:
- 1首先客户端向服务端发送一个带有 SYN 标志,以及随机生成的序号 100(0 字节)的报文
- 2服务端收到报文后返回一个报文(SYN200(0 字节),ACK1001(字节+1))给客户端
- 3客户端再次发送带有 ACK 标志 201(字节+)序号的报文给服务端至此三次握手过程结束,客户端开始向服务端发送数据。
接地气版:
- 1客户端向服务端发起请求:我想给你通信,你准备好了么?
- 2服务端收到请求后回应客户端:I’ok,你准备好了么
- 3客户端礼貌地再次回一下客户端:准备就绪,咱们开始通信吧!
接电话版
整个过程跟打电话的过程一模一样:
- 1 喂,你在吗
- 2 在,我说的你听得到不
- 3 恩,听得到(接下来请开始你的表演)
补充:SYN:请求询问,ACK:回复,回应。
四次挥手过程:
由于 TCP 连接是可以双向通信的(全双工),因此每个方向都必须单独进行关闭(这句话才是精辟,后面四个挥手过程都是其具体实现的语言描述)
四次挥手过程,客户端和服务端都可以先开始断开连接
- 1客户端发送带有 fin 标识的报文给服务端,请求通信关闭
- 2服务端收到信息后,回复 ACK 答应关闭客户端通信(连接)请求
- 3服务端发送带有 fin 标识的报文给客户端,也请求关闭通信
- 4客户端回应 ACK 给服务端,答应关闭服务端的通信(连接)请求