分析方法
自底向上
- 从简单开始--逐渐变复杂--将模板逐步拼凑成一个系统
自顶向下
- 从复杂开始--逐渐变简单--从复杂的系统问题入手--拆分为模块问题
计算机网络基础
网络组成部分
-
主机--客户端 / 服务端--提供,接收信息
-
路由器--转发主机之间的信息
-
网络协议--提供统一格式--方便主机和路由器编码,解码
网络结构--网络的网络
-
本地网络
-
本地网络节点的网络
-
本地网络的网络
-
区域网,城域网,广域网
信息交换方式
电路交换
分组交换--计算机主要采用的交换方式
网络分层
计算机的五大分层--从低到高
物理层--链路层--网络层--运输层--应用层
协议
协议的存在依赖于连接
网络协议--标头和载荷
Web中的网络
HTTP协议
红色请求
-
第一行(起始行)
-
GET-请求方法
-
HTTP-资源路径
-
1.1-HTTP版本
-
蓝色响应
-
第一行--状态行
-
HTTP1.1-HTTP版本
-
200-状态码
-
OK-状态信息--可自定义
-
HTTP连接模型
HTTP2:帧
- 1-3字节--帧的长度
- 4字节--帧的类型
- 5字节--传递当前帧的状态
- 6字节--第一位(R)保留位--后面31位-当前帧所属流的ID
好处
- 调整响应传输的优先级
- 头部压缩
- Server Push
HTTP3:QUIC
- Quick UDP Internet Connection
- 现存网络设备对TCP和UDP支持已经僵化
- UDP不靠谱但QUIC靠谱
- QUIC可为除HTTP协议外的应用层协议提供支持
CDN-DNS劫持
- 域名分析一般由网站自己处理
- 要加速的域名则重定向到CDN厂商的域名解析服务处理
- CDN厂商根据来源确定最近的CDN服务器的IP
- 用户直接访问最近的CDN服务器
WebSocket
- 有状态的持久连接
- 服务端可以主动推送消息
- 用WebSocket发送消息延迟比HTTP低
网络安全
三要素
- 机密性--攻击者无法获知通信内容
- 加密需要加密算法和密钥等信息--统称为秘密信息
- 网络是明文的--不安全
- 完整性--攻击者对内容进行篡改时能被发现
- 身份验证--攻击者无法伪装成通信双方的任意一方与另一方通信
- 完整性和身份验证相互关联
对称性加密和非对称性加密
- 对称性加密--加密,解密用同样的密钥
- 非对称性加密--加密,解密用不同的密钥(公钥和私钥)--而且公钥加密只能用私钥解密-私钥加密只能用公钥解密
密码散列函数--哈希函数
- 输入--任意长度的内容
- 输出--任意长度的哈希值
- 性质--找到两个不同的输入使之经过密码散列函数后有相同的哈希值--在计算上是不可能的