tcp和udp区别
http2.0基于tcp
tcp需要三次握手,四次挥手,udp不需要(只管发出去,接没接收到不管)
udp
udp可做 丢包重穿,快速重传等等
udp头部比较小
网络这一块主要通过抓包工具,其他的什么(比如为什么要进行三次握手等)
什么是 RTO、RTT
底层的网络是不可靠的, 超时、丢包各种问题, 但 TCP 协议的设计初衷是作为一个可靠的数据传输协议, 超时重传机制是实现可靠性很重要的一个设计.
每次 TCP 握手过程都会启动一个定时器, 如果在定时器时间内没有收到, 则进行重传.
而重传的超时时间 则成为 RTO (Retransmission TimeOut)
我们知道网络是一直在波动的, 所以超时重传也是随着网络一直变化的, 那我们基于什么来计算 RTO 呢?
答案是 基于 TCP 单次握手的往返时间. 连接的往返时间成为 RTT (Round Trip Time)
QUIC 协议:
QUIC 全称:Quick UDP Internet Connections,是一种基于 UDP 的传输层协议。由 Google 自研,2012 年部署上线,2013 年提交 IETF,2021 年 5 月,IETF 推出标准版 RFC9000。
由 header 和 data 两部分组成。
header 是明文的,包含 4 个字段:Flags、Connection ID、QUIC Version、Packet Number;
data 是加密的,可以包含 1 个或多个 frame,每个 frame 又分为 type 和 payload,其中 payload 就是应用数据;
数据帧有很多类型:Stream、ACK、Padding、Window_Update、Blocked 等
浅析HTTP2与HTTPS的关系与区别:
一、HTTP2与HTTPS的关系
HTTP2与HTTPS同属为一种网络传输协议。HTTP2(原名HTTP/2.0)即超文本传输协议2.0,是下一代HTTP协议。HTTPS是以安全为目标的HTTP通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性,HTTPS在HTTP的基础下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
二、HTTP2与HTTPS的区别
HTTP2虽然是下一代HTTP协议,做了一些改动(如二进制分帧、多路复用、头部压缩、服务器推送等),但是依然采取的是不加密的传输方式,容易导致数据在传输过程中被截取或篡改,无法保证数据的完整性。
而HTTPS采用的则是加密传输,就是在HTTP协议下增加了一层SSL协议,通过对整个通信线路进行加密来防止通信内容被窃听、篡改或伪装。
总结:
在了解了HTTP2与HTTPS的关系与区别之后可以看出,通过HTTPS传输信息是非常安全的,第三者对数据无法进行窃听,而且它还具有校验机制,一旦被篡改,通信双方会立刻发现,具体双重保护作用。
dns是什么?
概括的说DNS 是计算机域名 (Domain Name System) 的缩写,它是由解析器和域名服务器组成的。
域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换
为IP地址功能的服务器。
其中域名
必须对应一个IP
地址,一个IP
地址可以同时对应多个域名
,但IP
地址不一定有域名。
https://g.pconline.com.cn/x/998/9981276.html
在找到服务器之后,浏览器会通过TCP握手机制
跟服务器建立连接,而现在大部分服务器传输都是基于https协议
的,那么会多一步tls握手
(ssl协议的后代)建立加密的隧道,保证数据传输不被监听和篡改
ssl和tls协议:https://jingyan.baidu.com/article/9113f81bd13bb76a3314c710.html
TCP和SSL 的三次握手和四次挥手:
https://www.jianshu.com/p/6811285c577d
安全协议
HTTPS的安全基础是SSL/TLS。TLS
是介于TCP
和HTTP
之间的一层安全协议,不影响原有的TCP协议和HTTP协议,所以使用HTTPS基本上不需要对HTTP页面进行太多的改动。TLS为应用层提供安全服务,其目标是保证两个应用之间通信的保密性和可靠性,可在服务器和客户机两端同时实现支持。目前Firefox、Netscape、IE等几乎所有浏览器均支持SSL/TLS协议,从而实现通信安全。
HTTPS 是先进行 TCP 三次握手,再进行 TLSv1.2
四次握手
TCP Fast Open + TLSv1.3
在前面我们知道,客户端和服务端同时支持 TCP Fast Open 功能的情况下,在第二次以后到通信过程中,客户端可以绕过三次握手直接发送数据,而且服务端也不需要等收到第三次握手后才发送数据。
如果 HTTPS 的 TLS 版本是 1.3,那么 TLS 过程只需要 1-RTT。
因此如果TCP Fast Open + TLSv1.3
情况下,在第二次以后的
通信过程中,TLS 和 TCP 的握手过程是可以同时进行的。
TLSv1.3
还有个更厉害到地方在于会话恢复机制
,再重连
TLSv1.3
只需要 0-RTT,用“pre_shared_key”和“early_data”扩展,在 TCP 连接后立即就建立安全连接发送加密消息
如果基于 TCP Fast Open 场景下的 TLSv1.3 0-RTT 会话恢复过程,不仅 TLS 和 TCP 的握手过程是可以同时进行的,而且 HTTP 请求也可以在这期间内一同完成。
原文:https://blog.csdn.net/qq_34827674/article/details/123458410