计算机网络概论
02.“蟹堡王帝国”类比计算机网络 基本架构
顾客:客户端
分店:服务端
小区转发点和城市转发分店:路由器
转发表格:网络协议
03.计算机网络基础
一、网络组成部分:
1.主机:客户端和服务端 2.路由器 3.网络协议
区域网络、城域网络和广域网(网络的网络)
二、信息交换:电路交换和分组交换
电路交换(电话):建立电路连接,独占线路
分组交换:不建立电路连接,不预留资源(带宽)接受到新的分组后,会加入输出队列,按顺序输出,队列满丢弃新到的分组(丢包)。计算机网络中,大的报文分解为小的报文,送到目的地之后由主机上的软件把分组拼为完整的报文。
三、网络分层:
物理层,链路层,网络层,运输层,应用层
1、协议:协议的存在依赖与连接(无连接,协议无意义)协议的存在避免的用错误的形式处理数据。定义了在两个及以上通信实体之间交换报文的格式和顺序。
2.标头和载荷
HTTP协议示例
HTTP请求的第一行是起始行,响应的第一行是状态行,请求和响应第二行到第一空行为止是头部,空行之后是正文
链路层-本地帧头部
Null/Loopback本地帧,表现地址和目标地址都是本地的 18 00 00 00 链路层遵循IPv6(24)
IP协议头部,第五到第四十四个字节(IP协议版本,原IP地址,目标IP地址)
TCP协议层 20个字节,包括原端口号,目标端口号,序列长度, 载荷长度信息
HTTP协议层(头部,载荷)
04.Web中的网络
一、HTTP连接模型
对头堵塞:当前请求非常大导致下一个较小的请求一直没法发送
HTTP1.0:请求结束后默认关闭TCP连接
HTTP1.1:不关闭TCP连接,无法多路复用。
HTTP2:将多个请求拆分到帧里面,通过帧的头部信息判断来自哪个请求。前三字节:载荷长度。第四字节:类型 第五字节:类型对应的Flags(标志位) 第六到九个字节:第一位为保留位,2-23位为流ID 往后字节:载荷
帧带来的额外好处: 调整相应传输的优先级 头部压缩 Server Push PS:HTTP2解决了对头堵塞问题,但在TCP上依旧存在对头堵塞问题
HTTP2:3RTT启动 TCP连接需要一个RTT,TLS连接需要两个RTT
HTTP3:QUIC,是一种基于 UDP 的传输层协议,UDP不靠谱,QUIC靠谱
QUIC-1RTT QUIC第一次访问
QUIC-0RTT QUIC第二次访问
二、CDN:NDS劫持
CDN:采用更多的缓存服务器(CDN边缘节点),布放在用户访问相对集中的地区或网络中。当用户访问网站时,利用全局负载技术,将用户的访问指向距离最近的缓存服务器上,由缓存服务器响应用户请求。
域名解析一般由网站自己处理 要加速的域名则重定向到CDN厂商的域名解析服务处理 CDN厂商根据来源确定最近的CDN服务器IP 用户直接访问最近的CDN服务器
WebSocket(从HTTP协议升级而来)
有状态的持久连接。 服务端可以主动推送消息。 用WebSocket发送消息延迟比HTTP低。
05网络安全
三要素:
机密性:攻击者无法获知通信内容
加密需要的加密算法和密钥信息统称秘密信息
实现:在没有任何前置信息的情况下,通过明文在不安全的信道上交换秘密信息是不可能的
完整性:攻击者对内容进行篡改时能被发现
身份验证:攻击者无法伪装成通信双发的任意一方与另一方进行通讯
完整性和身份验证相互关联
实现完整性,通信双发需要现有秘密信息(根证书上的公钥)
对称加密:加密解密用同样的密钥
非对称加密:加密、解密使用不同密钥(公钥和私钥),公钥加密只能用私钥解密,私钥加密只能用公钥解密
根证书(一连串为证书链)验证公钥是否为真
密码散列函数(哈希函数):
输入:任意长度内容
输出:固定长度哈希值
性质:找到两个不同的输入在经过密码散列函数后拥有相同的哈希值在计算上是不可能的
HTTPS:HTTP中明文换成密文,在进行身份验证
HTTPS = HTTP+ TLS
TLS=身份验证+加解密身份验证靠PKI
身份验证用KPI
PKI保证了普通用户不需要“面对面”和根证书机构交换根证书 验证靠。 HTTPS使用PKI完成了除客户端身份验证以外的特性,客户端身份HTTP协议实现。