FEC前向纠错
QUIC协议的每个数据包除了本身的数据以外,会带有其他数据包的部分数据,在少量丢包的情况下,可以使用其他数据包的冗余数据完成数据组装而无需重传,从而提高数据的传输速度。具体实现类似于RAID5,将N个包的校验和(异或)建立一个单独的数据包发送,这样如果在这N个包中丢了一个包可以直接恢复出来。除此之外还可以用来校验包的正确性(已废弃)
关键包发送多次
同时,对于一些非常重要的包,QUIC在发送后的短时间内如果没收到回包,便会重发请求,以确保重要的节点不被Delay
DNS协议DNS(Domain Name System)服务是和HTTP协议一样位于应用层的协议.它提供域名到IP地址之间的解析服务
计算机既可以被赋予IP地址,也可以被赋予主机名和域名.比如
用户通常使用主机名或域名来访问对方的计算机,而不是直接通过IP地址访问.因为与IP地址的一组纯数字相比,用字母配合数字的表示形式来指定计算机名更符合人类的记忆习惯
DNS协议提供通过域名查找IP地址,或逆向从IP地址反向查域名的服务
获得的IP地址的做法如下:
同一台用户主机上运行着DNS应用的客户端
浏览器从URL中抽取出主机名,并将这台主机名传给DNS应用的客户端
DNS客户向DNS服务器发送一个包含主机名的请求
DNS客户最后会收到一份回答报文,其中含有对应于该主机名的IP地址.
一旦浏览器接收到来自DNS的该IP地址,它能够向位于该IP地址80端口的HTTP服务器进程发起一个TCP连接
通过DNS服务器查询IP地址的过程如下:
根DNS服务器:有400多个根名字服务器遍及全世界.这些根名字服务器由13个不同组织管理
顶级域服务器:对于每个顶级域(如com,org,net,edu和gov)和所有的国家的顶级域(如uk,fr,ca和jp),都有TLD服务器(或服务器集群
本地服务器:严格来说,一个本地DNS服务器并不属于该服务器的层次结构,但它对DNS层次结构是至关重要的.每个ISP都有一台本地DNS服务器(也叫默认名字服务器).当主机与某个ISP连接时,该ISP提供一台主机的IP地址,该主机具有一台或多台其本地DNS服务器的IP地址(通常通过DHCP)
DNS缓存:为了改善时延性能并减少在因特网上到处传输的DNS报文数量,DNS广泛运用了缓存技术.
原理是,在一个请求链中,当某DNS服务器接受一个DNS回答时,它能将映射缓存在本地存储器中.
HTTPS HTTP与HTTPS的区别HTTP 是超文本传输协议,信息是明文传输,存在安全风险的问题。HTTPS 则解决 HTTP 不安全 的缺陷,在 TCP 和 HTTP 网络层之间加入了 SSL/TLS 安全协议,使得报文能够加密传输。
HTTP 连接建立相对简单, TCP 三次握手之后便可进行 HTTP 的报文传输。而 HTTPS 在 TCP 三次握手之后,还需进行 SSL/TLS 的握手过程,才可进入加密报文传输。
HTTP 的端口号是 80,HTTPS 的端口号是 443。
HTTPS 协议需要向 CA(证书权威机构)申请数字证书,来保证服务器的身份是可信的。
HTTP的痛点
窃听风险,比如通信链路上可以获取通信内容,用户号容易没。
篡改风险,比如强制植入垃圾广告,视觉污染,用户眼容易瞎。
冒充风险,比如冒充淘宝网站,用户钱容易没。
HTTPS如何解决这些问题?
HTTPS 在 HTTP 与 TCP 层之间加入了 SSL/TLS 协议,可以很好的解决了上述的风险:
信息加密:交互信息无法被窃取,但你的号会因为「自身忘记」账号而没。
校验机制:无法篡改通信内容,篡改了就不能正常显示,但百度「竞价排名」依然可以搜索垃圾 广告。
身份证书:证明淘宝是真的淘宝网,但你的钱还是会因为「剁手」而没。
信息加密的三种方式
对称加密:加密和解密同用一个密钥的方式称为共享密钥加密,也被叫做对称密钥加密.
常用的对称加密算法有DES,AES加密
问题是如何安全的转交密钥到对方手中呢?