1. 计算机网络基础
-
网络组成部分
-
主机:客户端和服务端
提供信息和接受信息 -
路由器
转发主机之间的信息 -
网络协议
提供统一的格式,方便主机和路由器进行编码和解码
-
-
网络结构:网络的网络
-
区域网络
-
城域网
-
广域网
-
-
信息交换方式
-
电路交换
-
分组交换
-
-
网络分层
-
物理层
-
链路层
-
网络层
-
运输层
-
应用层
-
-
协议
-
协议的存在依赖于连接。
-
协议定义了在两个或多个通信实体之间交换的报文格式和顺序,以及报文发送或接受一条报文或其他事件所采取的动作。
-
标头和载荷
-
2. Web中的网络
-
HTTP连接模型
-
HTTP1.1:无法多路复用
-
HTTP2:帧
-
帧带来得好处
- 调整响应传输的优先级
- 头部压缩
- Server Push
-
3RTT启动
-
-
HTTP3:QUIC
-
Quick UDP Internet Connection
-
现存网络设备对TCP和UDP支持已经僵化
-
UDP不靠谱但是QUIC靠谱
-
QUIC可以为除HTTP协议以外的应用协议提供支持
-
QUIC-1RTT QUIC第一次访问
-
QUIC-0RTT QUIC第二次访问
-
-
CDN
-
CDN:DNS劫持
- 域名解析一般由网站自己处理
- 要加速的域名则重定向到CDN厂商的域名解析服务处理
- CDN厂商根据来源确定最近的CDN服务器的IP
- 用户直接访问最近的CDN服务器
-
3. 网络安全
-
三要素
-
机密性:攻击者无法获知通信内容
-
如何实现?
- 已知:网络是明文的
- 如果双方可以通过明文通信商量出秘密信息,那么攻击者也可以
- 所以想要通过明文通信交换秘密信息,通信双方需要先有秘密信息
-
-
完整性:攻击者对内容进行篡改时能被发现
-
如何实现?
- 密码散列函数的性质:找到两个不同的输入使之经过密码散列函数后有相同的哈希值,在计算上是不可能的
- 有明文m,密码散列函数H,以及一个密钥s
- 计算H(m+s)获得哈希值h
- 将m和h组合成新信息m+h
- 接收方拆分m+h,重新计算H(m+s)得h', 对比h'和h
- 所以想要实现完整性,通信双方需要先有秘密信息
-
-
身份验证:攻击者无法伪装成通信双方的任意一方与另一方通信
-
-
对称加密和非对称加密
-
对称加密:加密、解密用同样的密钥
-
非对称加密:加密、解密使用不同的密钥(公钥和私钥),而且公钥加密只能用私钥解密、私钥加密只能用公钥解密
-
-
密钥散列函数(哈希函数)
-
输入:任意长度的内容
-
输出:固定长度的哈希值
-
性质:找到两个不同的输入使之经过密码散列函数后有相同的哈希值,在计算上是不可能的
-
书籍推荐:
[1] 计算机网络(第七版),机械工业出版社
[2] HTTP权威指南,人民有点出版社
[3] 密码编码学与网络安全(第6版),电子工业出版社