蟹堡王:
自低向上,又一个个小的模块组成一个通信网络
计算机网络基础:
网络组成部分:
- 主机:客服端、服务器 用于提供信息或接收信息
- 路由器:负责转发主机之间的信息
网络协议:信息的格式,便于主机和路由器进行编码和解码
信息交换方式
电路交换,分组交换
网络分层:
- 网络层
- 运输层
- 应用层
- 协议的存在依赖于连接,实体之间必须可以进行信息交换,否则协议就没有存在的意义
网络协议:标头和载荷
Web中的网络:
采用请求响应,只有一个请求收到响应后,才会进行下一个请求
队头堵塞:
- 1.1 建立多条http连接,但是这种会影响效率
-
- 将多个http请求拆分到帧里面 通过每个帧的头部信息,便可以分析当前帧属于哪个流,进而可以确定帧的载荷属于哪个请求,最终在浏览器或服务器里面重组为网络请求 帧带来的好处: 调整相应传输的优先级 头部压缩 Server Push 这些在1.1中是无法实现的 ,解决了多路复用和队头堵塞,但在TCP的队头堵塞未解决
- 3.使用QCIP协议
网络安全三要素:
- 机密性:攻击者无法获得通信内容
- 完整性:攻击者对内容进行篡改时能被发现
- 身份验证:攻击者无法伪装成通信双方任意一方与另一方通信
加密方式
对称加密和非对称方式
- 对称加密:加密、解密使用同样的密钥
- 非对称加密:加密、解密使用不同的密钥(公钥和私钥),公钥加密只能用私钥解密,私钥加密只能用公钥解密
- 加密算法和密钥,保证机密性
- 完整性和身份验证相互关联
一条信息的到来,接收方要确定这个信息的发出者是否正确,以及发的信息是否正确,即信息有没有被篡改。这里确认发出者便是身份验证,确认信息便是完整性
如何实现机密性:
最关键的一环,如何在不安全的环境中协商出只有双方知道的信息 要想实现这一环,双方先要共享秘密信息,再去不安全的环境中进行信息传递
如何实现完整性:
密码散列函数性质:不同的输入,获得定长的哈希值
通信双方必须要现有秘密信息
身份验证:
数字签名:可鉴别不可伪造
- 采用不对称加密,可实现机密性,完整性,身份验证但这样效率不高
- 可以采用密码散列函数进行加密
- 但数字签名有个前提:公钥和私钥必须对应,公钥可以被根证书中的公钥来证明
所以,在实现身份验证的时候,通信双方先有的秘密信息就是根证书的公钥
如何验证客户端:可以通过token来验证