计算机网络——三次握手、四次挥手
以下内容总结自 从输入URL到页面加载的过程?如何由一道题完善自己的前端知识体系!
三次握手的过程如下
- 客户端请求连接发送请求同步包SYN,并将标志位置为1,序列号seq=J,客户端进入SYN_SENT状态
- 服务端收到之后由标志位为1得知客户端请求连接,服务端会发送一个请求确认包ACK并将标志位置为J+1,序列号seq=K,同时发送请求同步包标志位置为1给客户端,服务端进入SYN_RCVD状态
- 客户端接收到以后首先确认请求确认包的标志位是否位J+1.如果正确,则发送一个请求确认包将标志位置为K+1到服务端,服务端检查请求确认包的标志位是否为K+1,如果正确则建立连接成功,客户端和服务端都进入ESTABLISHED状态,完成三次握手。之后就可以开始传输数据了
四次挥手过程如下
- 客户端发送连接释放报文,释放报文首部FIN=1,序列号seq=U,此时关闭客户端到服务器的数据发送
- 服务端收到连接释放报文,发出确认报文,确认序号位U+1
- 此时服务端还没有关闭发送数据到客户端,可以继续发送数据。如果无数据发送,就向客户端发送连接释放报文,序列号seq=W
- 客户端收到连接释放报文后,发出确认报文,确认序号为W+1.到此完成了四次挥手
名称解释:SYN表示请求连接,FIN表示关闭连接,ACK表示确认。
这里需要补充的是浏览器是有tcp/ip的并发数限制的,浏览器对同一域名的并发tcp连接限制在2-10个不等,谷歌浏览器之前试过是6个。而在http1.0中默认一个http请求对应一个tcp/ip的连接,这是十分耗时的,而在http1.1中默认使用长连接,即请求头部加Connection:keep-alive属性,这样http请求结束之后tcp连接是不会断开的。

浙公网安备 33010602011771号