websocket 最大连接数_JS核心理论之《HTTP、Websocket网络协议》

本文深入探讨了WebSocket协议,从TCP的三次握手和四次挥手,到HTTP协议的演变,包括HTTP/1.0、1.1、2.0和3.0的特点。重点讨论了WebSocket与HTTP长连接的区别,以及HTTP/2的多路复用和HTTP/3的QUIC协议如何解决队头阻塞问题。
摘要由CSDN通过智能技术生成

基础概念

OSI 是 Open System Interconnect的 缩写,意为开放式系统互联。TCP/IP模型可以看做是对OSI模型的一种简化。

cf4ff81777d71c399bd09e522c76de97.png
  • OSI模型从底层到上层依次是:物理层->链路层->网络层->传输层->会话层->表示层->应用层
  • TCP/IP模型从底层到上层依次是:物理链路层->网络层->传输层->应用层

HTTP、WebSocket 等应用层协议,都是基于 TCP 协议来传输数据的。我们可以把这些高级协议理解成对 TCP 的封装。
既然大家都使用 TCP 协议,那么大家的连接和断开,都要遵循 TCP 协议中的三次握手四次挥手 ,只是在连接之后发送的内容不同,或者是断开的时间不同。

握手原理

c571fc539c6d7c00037cf378f6e6058f.png
  • SYN:建立连接标志位
  • ACK:确认标志位
  • FIN:结束标志位
  • Seq:序列化编号
  • Ack number:确认编号

三次握手

  • 第一次握手:建立连接时,客户端A发送SYN包(SYN置为1,seq=x)到服务器B,并进入SYN_SEND状态,等待服务器B确认;
  • 第二次握手:服务器收到SYN报文段,需要对这个SYN报文段进行确认,设置Ack number为seq+1(即 Ack置为1,Ack number = x+1);
    同时,自己还要发送SYN请求信息,将SYN置为1,seq=y;服务器端将上述所有信息放到一个报文段(即SYN+ACK报文段)中,一并发送给客户端,此时服务器进入SYN_RECV状态;
  • 第三次握手:客户端收到服务器的SYN+ACK报文段,然后将Ack number设置为y+1,即(SYN位为0,ACK位为1,Ack number = y+1),向服务器发送ACK报文段,这个报文段发送完毕以后,客户端和服务器端都进入ESTABLISHED状态,完成TCP三次握手。

四次挥手

  • 第一次挥手:主机1(可以使客户端,也可以是服务器端),设置Seq 和Ack Number,向主机2发送一个
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值