计算机网络概论|青训营笔记

69 阅读3分钟

网络基础

  • 网络组成部分:主机,路由器,交换机等
  • 网络结构:网络的网络
  • 信息交换方式:电路交换,分组交换
  • 网络分层:分清职责,物理层,链路层,网络层,传输层,应用层
  • 网络协议:标头和载荷
  • TCP协议格式 image.png

Web应用

http连接模型

image.png

http1.1

无法实现多路复用。按行交错发送,无法判断每一行属于哪一个请求。

http2

解决了多路复用问题,将每个请求拆分到多个帧,用头部来表示帧属于哪个请求,并且帧的形式带来了额外好处:

  • 调整响应传输的优先级
  • 头部压缩
  • Server Push

http2虽然结局了http层面的对头堵塞,但在TCP层面,仍然可能出现对头堵塞。

http3:

QUIC (Quick UDP Internet Connection)

  • 现存网络设备对TCP和UDP支持已经僵化
  • UDP不靠谱但是QUIC靠谱
  • QUIC考研为除HTTP协议意外的应用层协议提供支持
  • 首次1RTT,后续0RTT

CDN:DNS劫持

  • 域名解析一般由网站自己处理
  • 要加速的域名则重定向到CDN厂商的域名解析服务处理
  • CDN厂商根据来源确定最佳的CDN服务器的IP
  • 用户直接访问最近的CDN服务器
  • 拉策略(用户决定CDN上的拷贝)
  • 推策略(网站决定CDN上的拷贝)

WebSocket

  • 有状态的持久连接
  • 服务端可以主动推送消息
  • 用WebSocket发送消息延迟比HTTP低
  • 由HTTP升级而来

网络安全

三要素

  • 机密性:攻击者无法获知通信内容
  • 完整性:攻击者对内容进行篡改时能被发现
  • 身份验证:攻击者无法伪装成通信双方的任意一方与另一方通信

对称加密和非对称加密

  • 对称加密:加密,解密用同样的密钥
  • 非对称加密:加密,解密使用不同的密钥(公钥和私钥),而且公钥加密只能用私钥解密,私钥加密只能用公钥解密

密码散列函数(哈希函数)

  • 输入:任意长度的内容
  • 输出:固定长度的哈希值
  • 性质:找到两个不同的输入使之经过密码散列函数后有相同的哈希值,在计算上是不可能的

机密性

  • 加密需要加密算法和密钥等信息(统称为秘密信息)
  • 网络是明文的,不安全

如何实现机密性

  • 已知:网络是明文的
  • 如果双方可以通过明文通信商量出秘密信息,那么攻击者也可以
  • 所以想要通过明文通信交换秘密信息,通信双方需要现有秘密信息

如何实现身份验证

  • 签名:用于鉴别身份和防止伪造
  • 非对称加密性质:加密,解密使用不同的密钥(公钥和私钥),而且公钥加密只能用私钥解密,私钥加密只能用公钥解密
  • 数字签名:对明文内容的哈希值使用私钥加密,验证者使用公钥验证
  • 数字签名(指纹)=私钥加密(密码散列函数)
  • 消息=原文+数字签名
  • 一般用于对公开内容(如包含公钥的证书)进行数字签名,防止篡改
  • 根证书是证书链的尽头
  • 验证的一连串证书称为证书链
  • 分发证书,验证证书的基础设施称为PKI,Public Key Infrastructure
  • 所以想要实现身份验证,通信双方需要现有秘密信息,即根证书中的公钥

HTTPS

  • HTTPS = HTTP + TLS
  • TLS = 身份验证 + 加解密
  • 身份验证靠PKI
  • 服务端身份验证靠PKI,客户端身份验证靠HTTP协议