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

52 阅读3分钟

1 前言

建立对计算机网络的整体认知,对计算机网络中的各种概念(网络分层、网络协议、网络应用等)有初步的理解。

进而可以在后续的实际工作中能高效解决网络问题。

  • 通过一个示例建立对计算机网络的整体认识
  • 建立对网络协议分层的认知
  • 分析HTTP 1、2、3 的关系
  • 介绍 CDN 运行的基本原理
  • 了解网络安全的最基本原则

2 蟹堡王帝国

  • 本地网络
  • 多个本地网络
  • 本地网络之间的网络
  • 信息转发
  • 城域网
  • 广域网

3 计算机网络基础

网络组成部分

  • 主机:客户端和服务端
  • 路由器
  • 网络协议

网络结构

  • 本地网络
  • 本地网络节点的网络
  • 本地网络的网络

区域网络、城域网和广域网

信息交换方式

  • 电路交换
  • 分组交换

网络分层

  • 物理层
  • 链路层
  • 网络层
  • 运输层
  • 应用层

协议

标头和载荷

4 Web中的网络

HTTP

HTTP连接模型

HTTP 1

  • 短连接和长连接
  • HTTP管线
  • HTTP队头堵塞

HTTP 2

  • 头部压缩
  • Server Push

HTTP 3

  • QUIC
  • TCP队头堵塞
  • ORTT连接

CDN

  • CDN服务器分布
  • CDN服务器选择
  • DNS劫持
  • CDN服务器内容管理策略

WebSocket

  • HTTP协议升级

5 网络安全

网络安全三要素

机密性

攻击者无法获知通信内容

如何实现机密性

  • 已知:网络是明文的
  • 如果双方可以通过明文通信商量出秘密信息,那么攻击者也可以
  • 所以想要通过明文通信交换秘密信息,通信双方需要先有秘密信息
  • 加密需要加密算法和密钥等信息(统称为秘密信息)

网络是明文的,不安全

完整性

攻击者对内容进行篡改时能被发现

如何实现完整性

  • 有明文m,,密码散列函数 H,以及一个密钥 s
  • 计算H(m + s)获得哈希值 h
  • 将 m 和 h 组合成新信息 m + h
  • 接收方拆分 m + h,重新计算H(m + s)得h',对比h'和h
  • 所以想要实现完整性,通信双方需要先有秘密信息

身份验证

攻击者无法伪装成通信双方的任意一方与另一方通信

如何实现身份验证

签名

用于鉴别身份和防止伪造

  • 数字签名:对明文内容的哈希值使用私钥加密,验证者使用公钥验证
  • 数字签名(指纹)=私钥加密(密码散列函数(原文))
  • 消息=原文+数字签名
  • 一般用于对公开内容(如包含公钥的证书)进行数字签名,防止篡改

PKI

保证了普通用户不需要“面对面”和根证书机构交换根证书。

证书链

非对称加密和对称加密

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

密码散列函数

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