HTTP的三次握手和四次挥手

三次握手和四次挥手

我尝试用简单的话来解释三次握手和四次挥手,因为我也刚刚开始学,如有错误欢迎指正。

通俗版的解释

1.1三次握手
  1. 客服端向服务器发送请求
  2. 服务端收到请求,同意发送
  3. 客户端收到了服务端的答复,并表示知道了。
1.2四次挥手
  1. 客户端表示我想要关闭连接了
  2. 服务器表示知道了(但是这时候还没有关闭,因为可能服务端的信息还没传完)。
  3. 服务器表示我已经关闭了(这时候确认信息传完了)。
  4. 客户端表示知道了。

学术点的解释

2.1三次握手
  1. 客户端准备和服务端建立连接,客户端会先发送一个SYN(SYN = j)包到服务端,并进入SYN_SEND状态,等待服务端的确认。
  2. 服务端收到SYN包,会确认客户的SYN(ACK=j+1),同时自己也发送一个包(syn=k),即SYN+ACK包。此时服务器进入SYN_RECV状态。
  3. 客户端收到服务器的包(SYN+ACK),向服务器发送确认包ACK(ack=k+1)。
2.2四次挥手

1.客户端发送一个FIN.用来关闭客户端到服务端的数据传送。
2.服务端收到这个FIN. 它发回一个ACK,确认序号为收到的序号+1。和SYN一样,一个FIN将占用一个序号。
3.服务端关闭与客户端的连接,发送一个FIN给客户端。
4.客户端发回ACK报文确认,并将确认序号设置为序号加1。

  • 其中SYN包代表的是一个请求,每次接受并确认后都会在这个SYN包上加一(即j+1)。
  • ACK包代表的是一个确认包,所以在第二次握手时服务端会给客户端一个包含了SYN和ACK的包,因为服务端确认了客户端的请求(给了一个ACK包),并准备开始和客户端进行连接(给了一个SYN包)。
  • FIN代表的是一个结束包,所以在第一次挥手时客户端给了服务端一个FIN包。

最后推荐一个写的很详细介绍三次握手和四次挥手的文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值