计算机网络概述 | 青训营笔记
一、前言介绍
学习目标:
- 通过一个示例建立对计算机网络的整体认识
- 建立对网络协议分层的认知
- 分析HTTP 1、2、3的关系
- 介绍CDN运行的基本原理
- 了解网络安全的最基本原则
两种分析方法:
自底向上:
- 从简单开始,逐渐变复杂
- 将模块逐步拼凑成一个系统 自顶向下:
- 从复杂开始,逐渐变简单
- 从复杂的系统问题入手,拆分为模块问题
二、课程引入-蟹堡王帝国
- 蟹堡王顾客:客户端
- 蟹堡王分店:服务端
- 小区转发点和蟹堡王城市转发分店:路由器
- 转发表格:网络协议
三、网络基础
1.网络组成部分:
- 主机:客户端和服务端
- 路由器
- 网络协议
2.网络结构:网络的网络
- 本地网络,本地网络节点的网络,本地网络的网络
- 区域网,城域网,广域网
3.信息交换方式:
电路交换和分组交换(交换方式和区分,计算机网络中使用分组交换)
4.网络分层:
分清职责,物理层、链路层、网络层、运输层和应用层
5.网络协议(标头和载荷):
协议的存在依赖于连接,协议定义了在两个或多个通信实体之间交换的报文格式和顺序,以及报文发送和/或接受一条报文或其他事件所采取的动作。
6.HTTP协议简介:
- 链路层-本地帧头部
- 链路层-IP协议头部
- 运输层-HTTP协议头部
- 运输层-TCP协议头部
- 应用层-HTTP协议头部
7.TCP协议格式:
四、WEB中的网络
1.web应用中HTTP协议和链接模型
2.http2解决了多路复用但是TCP上的对头堵塞没有解决
3.QuIc:
- Quick UDP Internet Connection
- 现存网络设备对TCP和UDP支持已经僵化
- UDP不靠谱但是QUIC靠谱
- QUIC可以为除HTTP协议以外的应用层协议提供支持
4.CDN: DNS 劫持
- 域名解析一般由网站自己处理
- 要加速的域名则重定向到CDN厂商的域名解析服务处理
- CDN厂商根据来源确定最近的CDN服务器的IP
- 用户直接访问最近的CDN服务器
5.WebSocket
- 有状态的持久连接
- 服务端可以主动推送消息
- 用WebSocket 发送消息延迟比 HTTP低
五、网络安全
1.网络安全(对称加密和非对称加密):
- 对称加密:加密、解密用同样的密钥
- 非对称加密:加密、解密使用不同的密钥(公钥和私钥),而且公钥加密只能用私钥解密、私钥加密只能用公钥解密
2.网络安全:密码散列函数(哈希函数)
- 输入:任意长度的内容
- 输出:固定长度的哈希值
- 性质:找到两个不同的输入使之经过密码散列函数后有相同的哈希值,在计算上是不可能的
3.网络安全:机密性
- 加密需要加密算法和密钥等信息(统称为秘密信息)
- 网络是明文的,不安全
4.网络安全:完整性和身份验证完整性和身份验证
5.网络安全:如何实现机密性
- 已知:网络是明文的
- 如果双方可以通过明文通信商量出秘密信息,那么攻击者也可以
- 所以想要通过明文通信交换秘密信息,通信双方需要先有秘密信息
6.网络安全:如何实现身份验证
- 签名:用于鉴别身份和防止伪造
- 非对称加密性质:加密、解密使用不同的密钥(公钥和私钥),而且公钥加密只能用私钥解密、私钥加密只能用公钥解密
- 蟹老板用自己的私钥对信件进行加密,并发送给海绵宝宝
- 海绵宝宝使用蟹老板的公钥进行解密,获得原文
- 保证了机密性、完整性和身份验证
- 数字签名∶对明文内容的哈希值使用私钥加密,验证者使用公钥验证
- 数字签名(指纹)=私钥加密(密码散列函数(原文))
- 消息=原文+数字签名
- 一般用于对公开内容(如包含公钥的证书)进行数字签名,防止篡改
7.网络安全:HTTPS
把HTTP 的明文换成密文,再验证身份,即HTTPS,
HTTPS = HTTP + TLS TLS=身份验证+加解密身份验证靠PKI
服务端身份验证靠PKI,客户端身份验证靠HTTP协议。
网络安全小结:
- 网络安全三要素:机密性、完整性和身份验证
- 在没有提前交换秘密信息的前提下,无法在不安全的信道交换秘密信息
- PKI保证了普通用户不需要“面对面”和根证书机构交换根证书
- HTTPS使用PKI完成了除客户端身份验证以外的特性,客户端身份验证靠HTTP协议实现