一、分析方法
1.自底向上
- 从简单开始,逐渐变复杂
- 将模块逐步拼凑成一个系统
2.自顶向下
- 从复杂开始,逐渐变简单
- 从复杂的系统问题入手,拆分为模块问题
二、计算机网络基础
1.网络组成部分
- 主机:客户端和服务端
- 路由器
- 网络协议
2.网络结构:网络的网络
- 本地网络
- 三个本地网络节点的网络
- 本地网络的网络
- 区域网络、城域网和广域网
3.信息交换方式:电路交换&分组交换
- 电路交换:由于电路交换在通信之前要在通信双方之间建立一条被双方独占的物理通路(由通信双方之间的交换设备和链路逐段连接而成)
- 分组交换:分组交换采用存储转发传输方式,将一个长报文先分割为若干个较短的分组,然后把这些分组(携带源、目的地址和编号信息)逐个地发送出去
4.网络分层
- 应用层:快递员不关心包裹内容
- 运输层:卡车司机不关心车厢里拉的是什么
- 网络层:高速公路不关心开的什么车
- 物理层
- 链路层
5.协议
- 协议的存在依赖于连接
- 协议定义了在两个或多个通信实体之间交换的报文格式和顺序,以及报文发送和/或接受一条报文或 其他事件所采取的动作
6.网络协议:标头和载荷
- 收件人、寄件人关注:
- 收件地址、寄件地址
- 收件人、寄件人的性名和电话
- 包裹内容
- 快递公司关注:
- 收件人、寄件人关注的东西
- 该由哪个集散点发出,哪个集散点收
- 哪个网点派送
7.HTTP协议
- 链路层:
- 本地帧头部
- IP协议头部
- 运输层:
- TCP协议头部
- 应用层:
- HTTP协议头部
三、Web应用
1.HTTP2:帧带来的额外好处
- 调整响应传输的优先级
- 头部压缩
- Server Push
2.HTTP2:3RTT启动
3.HTTP3:QUIC
- Quick UDP Internet Connection
- 现存网络设备对TCP和UDP支持已经僵化
- UDP不靠谱但是QUIC靠谱
- QUIC可以为除HTTP协议以外的应用层协议提供支持
4.HTTP3:QUIC-1RTT
5.CDN:DNS劫持
- 域名解析一般由网站自己处理
- 要加速的域名则重定向到CDN厂商的域名解析服务处理
- CDN厂商根据来源确定最近的CDN服务器的IP
- 用户直接访问最近的CDN服务器
6.WebSocket
- 有状态的持久连接
- 服务端可以主动推送消息
- 用WebSocket发送消息延迟比HTTP低
四、网络安全
1.网络安全三要素
- 机密性:攻击者无法获知通信内容
- 加密需要加密算法和密钥等信息(统称为秘密信息)
- 网络是明文的,不安全
- 完整性:攻击者对内容进行篡改时能被发现
- 身份验证:攻击者无法伪装成通信双方的任意一方与另一方通信
2.对称加密和非对称加密
- 对称加密:加密、解密用同样的密钥
- 非对称加密:加密、解密使用不同的密钥(公钥和私钥),而且公钥加密只能用私钥解密、私钥加密只能用公钥解密
3.密码散列函数(哈希函数)
- 输入:任意长度的内容
- 输出:固定长度的哈希值
- 性质:找到两个不同的输入使之经过密码散列函数后有相同的哈希值,在计算上是不可能的
五、总结
计算机网络包含计算机网络基础、Web中的网络、网络安全等内容,需要学习的知识有很多,从网络基础结构开始,进一步了解计算机网络的整体架构,对网络分层、协议有更深的理解,同时要从网络安全的目标出发,分析实现网络安全需要解决的问题,了解网络安全的实现原理。