计算机网络

TCPS三次握手和四次挥手

在建立TCP连接时,需要通过三次握手来建立

  1. 客户端向服务端发送一个SYN,并携带一个随机生成的初始序列号seq=x,此时客户端处于同步已发送状态
  2. 服务端接收到SYN后,向客户端发送一个SYN_ACK,确定号是客户端的序列号+1(ack=x+1),同时自己也生成一个初始序列号seq=y,此时服务端处于同步收到模式
  3. 客户端接收到SYN_ACK,再向服务端发送一个ACK,确定号是服务端的序列号+1(ack=y+1),此时客户端进入已建立状态,等到服务端收到ACK后,也进入已建立模式,连接正式建立
    为什么需要三次握手?
  • 为了阻止历史的重复连接,减少通信双方不必要的资源消耗
  • 帮助双方同步初始序列号

在断开TCP连接时,需要通过四次挥手来断开

  1. 客户端向服务端发送FIN,并停止发送数据,进入FIN_WAIT_1状态
  2. 服务端接收到FIN后,向客户端发送ACK,表示我收到断开连接的请求,客户端不发数据,不过服务端这边可能还有数据要处理。此时客户端进入FIN_WAIT_2 ,服务端进入CLOSE_WAIT状态
  3. 服务端处理完所有数据后,向客户端发送FIN,表示服务端现在可以断开连接,此时服务端进入LAST_ACK状态
  4. 客户端收到服务端的FIN,向服务端发送ACK,此时客户端进入TIME_WAIT,等待2MSL时间后才会真正连接才会真正关闭 。服务端一收到ACK,就立马关闭连接

浏览器发送一个请求到收到响应经历了哪些步骤

  1. 浏览器解析用户输入的URL,生成一个HTTP格式的请求
  2. 先根据URL域名从本地hosts文件查找是否有映射IP,如果没有就将域名发送发送给电脑所配置的DNS进行域名解析,得到IP地址
  3. 浏览器通过操作系统将请求通过四层网络协议发送出去
  4. 途中可能会经过各种路由器,交换器,最终到达服务器
  5. 服务器收到请求后,根据请求所指定的端口,将请求传递给绑定了该端口的应用程序,比如8080端口被tomcat占用
  6. tomcat接收到请求数据后,按照http协议的格式进行解析,解析得到所要访问的servlet
  7. 然后servlet来处理这个请求,如果是MVC中的DispatcherServlet,那么则会找到响应中的Controller中的方法,并执行该方法得到结果
  8. Tomcat得到响应结果后封装成HTTP响应的格式,并再次通过网络发送给浏览器所在的服务器
  9. 浏览器所在的服务器拿到结果后再传递给浏览器,浏览器则负责解析并渲染

HTTP3中quic协议

HTTP

HTTP 1.0到1.1的核心升级:解决连接成本问题,使用长连接,同一个TCP连接可以复用

HTTP 1.1到2.0的升级

  • 多路复用,引入了流Stream的概念,把一个TCP连接拆成无数个逻辑上的流,每个请求打散成二进制帧,到了服务端再组装
  • 二进制分帧,以前都是纯文本,机器不好解析
  • 头部压缩,通过索引ID来避免重复的head
    HTTP 2.0到3.0
  • 底层的传输层由TCP变成了UDP,使用QUIC协议,它在UDP上实现了一套可靠传输机制
  • 虽然为流,但是丢一个数据包就会暂停所有等重传,而QUIC是独立的,只阻塞丢包的流,其他正常跑
  • 以前需要三次握手+TLS握手,而QUIC把两者合并了,如果以前连过,能做到见面即就是聊天
  • 基于TCP,靠四元组识别连接,你从WiFi切到4g就会断开连接,而QUIC不看IP,它给每个连接发送唯一的Connection ID,不管ip变不变,通信继续
    QUIC并没有依赖任何UDP的任何特性(除了端口和校验和),TCP是操作系统内核实现的,改造极难,而QUIC相当于是在应用层重新实现了一遍TCP的核心功能
相关推荐
如君愿21 小时前
考研复习 Day 25 | 习题--计算机网络第三章(数据链路层 上)、数据结构(串)
数据结构·计算机网络·考研
仍然.21 小时前
初识计算机网络
网络·计算机网络
rannn_1111 天前
【中北大学计网实验报告】|《计算机网络实验:从Packet Tracer入门到交换机配置》
计算机网络·实验报告·中北大学
wefg11 天前
【计算机网络】传输层协议(UDP/TCP)
tcp/ip·计算机网络·udp
Mrlxl.cn2 天前
计算机网络——网络层
c语言·数据结构·计算机网络·考研
向往着的青绿色2 天前
Java反序列化漏洞(持续更新中)
java·开发语言·计算机网络·安全·web安全·网络安全·网络攻击模型
Mrlxl.cn2 天前
计算机网络——传输层
c语言·计算机网络·考研·排序算法
国冶机电安装2 天前
计算机网络系统安装的结构逻辑、施工重点与运维价值
运维·网络·计算机网络
Mrlxl.cn2 天前
计算机网络——应用层
运维·服务器·计算机网络
如君愿2 天前
考研复习 Day 24 | 习题--计算机网络第二章(物理层)、数据结构(栈与队列)
数据结构·计算机网络·考研·课后习题·记录考研