计算机网络(二):HTTPDNS、IPv6、QUIC

HTTPDNS

介绍:

  • 系统的是 UDP去localDNS找,HTTPDNS是用HTTP去 HTTP服务器上找
  • 让我们的手机App 发起一个HTTP请求(这个请求地址多数使用ip直连,如果使用域名那么依然针对此请求依然有传统DNS的问题),这个请求可以携带用户所在的运营商,地理位置,精确到省市,然后服务器根据这些信息 返回一个最佳的ip地址给App,然后App将这个域名-ip的映射关系设置到我们的okhttp中。这样手机中的大部分请求就会直接使用我们HTTP服务器返回的ip地址而不是运营商的地址了。

优势:

  • 防劫持
  • 精准调度
  • 实时解析生效

IPv6

介绍:

  • 采用128位正整数表示,需要16字节存储,可以提供约2128≈3.4x1038个地址,可分配的地址数量是大的惊人;
  • 以每 16 位作为一组,冒号十六进制法来表示IPv6地址
  • 简化方式1:允许将每个16进制值的前导0省略
  • 简化方式2:某些情况下,一个IPv6地址可能包含很长的一段0,可以把一段连续的0压缩为::。但为了保持地址解析的一致性,零压缩在一个地址中只能使用一次

优势:

  • 充足的地址空间和层次化的结构
  • 增强的组播支持和对流控制
  • 更小的路由表,更灵活的路由机制
  • 动态配置状态地址
    • 可自动配置,即使没有 DHCP 服务器也可以实现自动分配IP地址,真是便捷到即插即用啊。
  • 更有效的认证安全机制
    • 有应对伪造 IP 地址的网络安全功能以及防止线路窃听的功能,大大提升了安全性。
  • 省流高效
    • 包头包首部长度采用固定的值 40 字节,去掉了包头校验和,简化了首部结构,减轻了路由器负荷,大大提高了传输的性能。
  • 扩展灵活

QUIC(Quick UDP Internet Connection)

介绍:

  • QUIC融合了包括TCP,TLS,HTTP/2等协议的特性,但基于UDP传输。
  • QUIC协议实现在用户态,建立在内核态的UDP的基础之上,集成了TCP的可靠传输特性,集成了TLS1.3协议,保证了用户数据传输的安全。
  • 把连接的管理和安全性合二为一融为一体

优势:

  • 建连快
    • 1-RTT 握手
    • 0-RTT 传输
  • 连接迁移
    • 以一个 64 位的随机数作为 ID 来标识,这样就算 IP 或者端口发生变化时,只要 ID 不变,这条连接依然维持着,上层业务逻辑感知不到变化,不会中断,也就不需要重连,从而提高业务层的体验。由于这个 ID 是客户端随机产生的,并且长度有 64 位,所以冲突概率非常低。
  • 解决TCP队头阻塞问题
    • 丢包阻塞。HTTP2的传输层用的TCP,TCP的实现是在内核态的,而流是实现在用户态度,TCP是看不到"流"的,所以在TCP中,它不知道这个数据包是请求1还是请求2的,只会根据seq number来判断包的先后顺序。
  • 更优的拥塞控制算法
    • TCP的RTT测量往往不准确,QUIC的RTT测量是准确的。
    • 不同于TCP,QUIC的拥塞控制算法是可插拔的,由于其实现在用户态,服务可以根据不同的业务,甚至不同的连接灵活选择使用不同的拥塞控制算法。(Reno、New Reno、Cubic、BBR等算法都有自己适合的场景)
    • 在TCP协议中,初始包和重传包的序号是一样的,拥塞控制算法进行计算RTT的时候,无法区别是初始包还是重传包,这将导致RTT的计算值要么偏大,要么偏小。
    • QUIC通过Packet Number来标识包的序号,而且规定Packet Number只能单调递增,这也就解决了初始包和重传包的二义性。从而保证RTT的值是准确的。
  • 两级流量控制
    • 不仅有连接这一个级别的流控,还有流这个级别的流控。每个流都有自己的可用窗口,可用窗口的大小取决于最大窗口数减去发送出去的最大偏移数,跟中间已经发送出去的数据包,是否按顺序收到了对端的ACK 无关。
相关推荐
lazy H11 小时前
【计算机网络】第 13 篇:NAT 和端口映射是什么?为什么本地服务外网访问不了?
java·网络·网络协议·学习·计算机网络·408
lazy H2 天前
【计算机网络】第 12 篇:IPv6 详解——地址格式、地址类型与双栈网络
网络·经验分享·后端·学习·计算机网络·408
Frag0ut4 天前
Chrome 140+ WebTransport:2026年低延迟双向通信工程化实战
谷歌浏览器·quic·webgpu·http/3·webtransport·低延迟通信·chrome 140
承渊政道4 天前
Linux网络学习【从深入理解网络层原理到IP分片与重组全过程剖析】
linux·计算机网络·ubuntu·ip分片与重组
局部有解4 天前
计算机网络:概论知识点整理
计算机网络
KobeSacre5 天前
计算机网络概览
网络·计算机网络
流浪0015 天前
计算机网络篇8:传输层——序列化与反序列化,TCP 面向字节流的报文边界由应用层自己切
网络协议·tcp/ip·计算机网络·1024程序员节·序列化反序列化·面向字节流·面向数据包
lazy H6 天前
【计算机网络】第 5 篇:TCP 和 UDP 有什么区别?从 Java 后端场景理解两种传输协议
经验分享·后端·网络协议·tcp/ip·计算机网络·1024程序员节
2501_915106326 天前
跨平台抓包工具怎么选?TraceEagle抓包鹰 的四种跨平台能力
网络协议·计算机网络·网络安全·ios·adb·https·udp