计算机网络——三次握手、四次挥手

以下内容总结自 从输入URL到页面加载的过程?如何由一道题完善自己的前端知识体系!

三次握手的过程如下

  1. 客户端请求连接发送请求同步包SYN,并将标志位置为1,序列号seq=J,客户端进入SYN_SENT状态
  2. 服务端收到之后由标志位为1得知客户端请求连接,服务端会发送一个请求确认包ACK并将标志位置为J+1,序列号seq=K,同时发送请求同步包标志位置为1给客户端,服务端进入SYN_RCVD状态
  3. 客户端接收到以后首先确认请求确认包的标志位是否位J+1.如果正确,则发送一个请求确认包将标志位置为K+1到服务端,服务端检查请求确认包的标志位是否为K+1,如果正确则建立连接成功,客户端和服务端都进入ESTABLISHED状态,完成三次握手。之后就可以开始传输数据了

四次挥手过程如下

  1. 客户端发送连接释放报文,释放报文首部FIN=1,序列号seq=U,此时关闭客户端到服务器的数据发送
  2. 服务端收到连接释放报文,发出确认报文,确认序号位U+1
  3. 此时服务端还没有关闭发送数据到客户端,可以继续发送数据。如果无数据发送,就向客户端发送连接释放报文,序列号seq=W
  4. 客户端收到连接释放报文后,发出确认报文,确认序号为W+1.到此完成了四次挥手

名称解释:SYN表示请求连接,FIN表示关闭连接,ACK表示确认。

这里需要补充的是浏览器是有tcp/ip的并发数限制的,浏览器对同一域名的并发tcp连接限制在2-10个不等,谷歌浏览器之前试过是6个。而在http1.0中默认一个http请求对应一个tcp/ip的连接,这是十分耗时的,而在http1.1中默认使用长连接,即请求头部加Connection:keep-alive属性,这样http请求结束之后tcp连接是不会断开的。

posted @ 2021-03-31 15:11  竹本君  阅读(226)  评论(0)    收藏  举报