第一天 计算机网络概率
学习目标
- 通过示例建立对计算机网络的整体认知。
- 建立对网络分层的认识。
- 分析HTTP1、2、3的关系。
- 介绍CDN运行的基本原理
- 了解网络安全的最基本原则
一、“蟹堡王帝国”
通过对“蟹堡王帝国”例子的分析,自底向上了解计算机网络。
一共完成三个目标:
- 比奇堡外卖;
- 北京和上海分店;
- 全国分店和网络通信。
在该例子中:
- 蟹堡王顾客:客户端
- 蟹堡王分店:服务器
- 小区转发点和城市转发点:路由器
- 转发表格:网络协议
二、网络基础
- 网络组成部分:主机、路由器、交换机等组成
- 网络结构:网络的网络
- 信息交换方式:电路交换和分组交换
其中: 电路交换
电路交换需要建立一条专用的数据通信路径,这条路径上可能包含许多中间节点。
这条通信路径在整个通信过程中将被独占,直到通信结束才会释放资源。
电路交换适合实时性要求较高的大量数据传输的情况。
电路交换的优点主要包括以下几个方面:
- 通信时延小。通信双方通过专用线路进行通信,数据可以直达。当数据传输量较大时,优点将十分显著。
- 线路独占,没有冲突。
- 实时性强。一旦通信线路建立,双方可以实时通信。
电路交换的缺点主要包括以下几个方面:
- 线路独占,利用率太低。
- 连接建立时间过长。``
分组交换
分组交换是将大的数据块分割成小的分组,并添加源地址、目的地址和分组编号等信息。
分组交换的优点主要包括以下几个方面:
- 无需建立连接。
- 线路利用率高。
- 相对报文交换,分组长度固定,缓冲区容易管理。
- 分组比报文小,因此传输时间更短。
分组交换的缺点主要包括以下几个方面:
- 仍然存在时延。
- 需要传输包括源地址、目的地址、分组编号等额外信息。
- 分组可能遇到失序、丢失、重复等问题。
分组交换还可以进一步细分为数据报方式和虚电路方式。
数据包为网络层提供无连接服务,不同分组到达目的节点可能会乱序、重复或丢失。
分组在交换节点时,可能会带来一定的时延。数据报方式适用于突发性通信,不适合长报文、会话式通信。
虚电路方式将数据报方式与电路交换结合,发挥两者优点。
虚电路在源节点和目的节点建立一条逻辑链路,
与电路交换不同的地方在于虚电路并不是独占链路资源的。虚电路方式避免了分组的乱序、重复和丢失等问题。
- 网络分层:分清职责,物理层,链路层,网络层,运输层和应用层
- 网络协议:标头和载荷:标头类似于门牌号,载荷为房间内容
三、Web中的网络
HTTP协议
HTTP1的不足: 无法多路复用
HTTP2的帧带来的额外好处:
- 调整响应传输的优先级
- 头部压缩
- Server Push
不足:
- TCP队头堵塞
HTTP3:QUIC: Quick UDP Internet Connection
需要突破的限制:
- 受物理距离限制
- 价格昂贵
- 能够承载的流量有限
解决方法:CDN
DNS劫持:
选择CDN时,要选择节点少的线路
一般策略:
拉策略:
用户决定CDN时长拷贝
推策略
网站决定CDN时长拷贝
WebSocket
- 有状态的持久连接
- 服务端可以主动推送消息
- 用WebSocket发送消息延迟比HTTP低
WebSocket是HTTTP的升级
四、网络安全
网络安全三要素
- 机密性:攻击者无法获知通信内容
- 完整性:攻击者对内容篡改时可以被发现
- 身份验证:攻击者无法伪装成通信双方的一方与另一方通信
对称加密和非对称加密
- 对称加密:加密、解密用相同的密钥
- 非对称加密:加密解密用不同的密钥(公钥和私钥),且公钥加密只能用私钥解密、私钥加密只能用公钥解密
密码散列函数(哈希函数)
- 输入:任意长度的内容
- 输出:固定长度的哈希值
- 性质:找到两个不同的输入使之经过密码散列函数后有相同的哈希值,在计算上是不可能的
机密性
- 秘密信息(最重要):加密算法、密钥等信息
- 在不安全的信道里交换信息
完整性和身份验证
- 完整性和身份验证相互关联
如何实现机密性
- 想要通过明文通信交换秘密信息,双方必须先有秘密信息
如何实现完整性
- 密码散列函数性质:找到两个不同的输入使之经过密码散列函数后有相同的哈希值,在计算上是不可能的
如何实现身份验证
- 数字签名技术:对明文内容的哈希值使用私钥加密,验证者用公钥验证
- 性质:可鉴别、不可伪造
- 根证书:证书链的尽头
- 分发证书、验证证书的基础设施:PKI
- 所以想要实现身份验证,通信双方需要有秘密信息,即根证书中的公钥。
证书链实例
HTTPS
- 把HTTP的明文换成密文再验证身份,即HTTPS
- HTTPS=HTTP+TLS
- TLS=身份验证+加解密
- 身份验证考PKI
服务端身份验证靠PKI,客户端身份验证靠HTTPS