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

84 阅读4分钟

1. 前言 & 课程介绍

目标和收益

建立对计算机网络的整体认知,对计算机网络中的各种概念(网络分层、网络协议、网络应用等)有初步的理解。进而可以在后续的实际工作中能高效解决网络问题

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

分析方法

  1. 自底向上
    • 从简单开始,逐渐变复杂
    • 将模块逐步拼凑成一个系统
  2. 自项向下
    • 从复杂开始,逐渐变简单
    • 从复杂的系统问题入手,拆分为模块问题

2. 蟹堡王帝国

  • 蟹堡王顾客:客户端
  • 蟹堡王分店:服务端
  • 小区转发点和蟹堡王城市转发分店: 路由器
  • 转发表格:网络协议

image.png

image.png

3. 计算机网络基础

网络组成部分

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

网络结构:网络的网络

  • 比奇堡和小区网络:本地网络
  • 北京和上海分店 + 比奇堡:三个本地网络节点的网络
  • 全国通信网络:本地网络的网络
  • 区域网络、城域网和广域网

信息交换方式

电路交换 & 分组交换(计算机网络中使用的是分组交换)

网络分层

目的:让职责更加清晰,降低各层的使用成本

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

协议的存在依赖于连接

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

网络协议

  • 基本结构:标头和载荷
  • 每一层都会将上一层的标头和载荷视为这一层的载荷,并添加自己的标头

4. Web中的网络

HTTP协议

image.png

CDN解决了HTTP协议之外的问题

提升Web应用的性能

WebSocket(从HTTP协议升级而来)

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

5. 网络安全

三要素

机密性完整性身份验证
说明攻击者无法获知通信内容攻击者对内容进行篡改时能被发现攻击者无法伪装成通信双方的任意一方与另一方通信
如何实现已知:网络是明文的,如果双方可以通过明文通信商量出秘密信息,那么攻击者也可以,所以想要通过明文通信交换秘密信息,通信双方需要先有秘密信息1. 有明文m,密码散列函数 H ,以及一个密钥 s
2. 计算 H(m + s) 获得哈希值 h
3. 将 m 和 h 组合成新信息 m + h
4. 接收方拆分 m + h,重新计算 H(m + s)得h’,对比h’和h是否一致
1. 签名:用于鉴别身份和防止伪造
2. 蟹老板用自己的私钥对信件进行加密,并发送给海绵宝宝
3. 海绵宝宝使用蟹老板的公钥进行解密,获得原文
4. 保证了机密性、完整性和身份验证
5. 数字签名︰对明文内容的哈希值使用私钥加密,验证者使用公钥验证
6. 数字签名(指纹)=私钥加密(密码散列函数(原文))
7. 消息=原文+数字签名
8. 一般用于对公开内容(如包含公钥的证书)进行数字签名,防止篡改
附加根证书是证书链的尽头
验证的一连串证书称为证书链
分发证书、验证证书的基础设施称为PKI,Public Key Infrastructure
所以想要实现身份验证,通信双方需要先有秘密信息,即根证书中的公钥

对称加密和非对称加密

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

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

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

HTTPS

  • 把HTTP的明文换成密文,再验证身份,即HTTPS
  • HTTPS = HTTP+TLS
  • TLS =身份验证+加解密身份验证靠PKI
  • 服务端身份验证靠PKI,客户端身份验证靠HTTP协议

课程总结

image.png