计算机网络基础 | 青训营笔记

69 阅读3分钟

计算机网络基础

组成部分

  • 主机:客户端和服务端(提供和接收信息
  • 路由器 (转发主机之间的信息
  • 网络协议 (提供统一的格式,方便主机和路由器对信息进行编码和解码

网络结构

理解为网络的网络

信息交换方式:电路交换,分组交换

网络分层

由低到高分别为:物理层,链路层,网络层传输层应用层

网络协议

协议的存在依赖于连接

协议定义了在两个或多个通信实体之间交换的报文格式顺序,报文发送/接收报文或其他事件所采取的动作。

TCP协议格式:

Web中的网络

HTTP

HTTP1 无法多路复用

HTTP2 帧 队头堵塞在TCP上 3RTT启动

帧带来的好处:

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

HTTP3 QUIC 为除HTTP协议以外的应用层协议提供支持

CDN

DNS劫持

  • 域名解析一般由网站自己处理。
  • 要加速的域名则重定向到CDN厂商的域名解析服务处理。
  • CDN厂商根据来源确定最近的CDN 服务器的IP。
  • 用户直接访问最近的CDN服务器。

WebSocket

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

网络安全

三要素

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

对称加密和非对称加密

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

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

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

机密性,完整性和身份验证

实现机密性:

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

实现完整性:

  • 密码散列函数性质:找到两个不同的输入使之经过密码散列函数后有相同的哈希值,在计算上是不可能的。
  • 有明文m,密码散列函数H 以及一个密钥s
  • 计算H(m+ s)获得哈希值h
  • 将m 和h 组合成新信息m +h
  • 接收方拆分m +h,重新计算H(m)得h,,对比h, 和h

实现身份验证:

  • 签名:用于鉴别身份和防止伪造。
  • 非对称加密性质:加密、解密使用不同的密钥(公钥和私钥),而且公钥加密只能用私钥解密、私钥加密只能用公钥解密。
  • 保证了机密性、完整性和身份验证。
  • 数字签名:对明文内容的哈希值使用私钥加密,验证者使用公钥验证。
  • 数字签名(指纹)=私钥加密(密码散列函数(原文))。
  • 消息=原文+数字签名。
  • 一般用于对公开内容(如包含公钥的证书)进行数字签名,防止篡改。