01 网络基础
- 网络组成部分“
-
- 主机:客户端和服务端
-
- 路由器
-
- 网络协议
- 网络结构:网络的网络
-
- 区域网络、城域网、广域网
- 信息交换方式
-
- 电路交换
-
- 分组交换(一般使用的方式。不会进行电路连接)
- 网络分层
-
- 物理层、链路层、网络层、运输层、应用层
- 协议
-
- 协议的存在依赖于连接
-
- 计算机的数据都是以二进制的形式存在的
-
- 协议定义了在两个或多个通信实体之间交换的报文格式和顺序,以及保温发送和/或接收一条报文或其他事件所采取的行动。
- 标头和载荷
-
- 近似于快递上信息的收件人和寄件人应该关注的信息
- HTTP协议示例
-
- 链路层 - 本地帧头部(前第四个字节)
-
- 链路层 - IP协议头部(第五个字节到第四十四个字节),包括ip协议的版本,目标地址,源地址
-
- 运输层 - TCP协议(20个字节)序列号、架构信息等
-
- 应用层 - HTTP协议头部
- TCP协议格式
-
- 0-1 源端口号
-
- 2-4 目标端口号
-
- 5-8 序列号
02 Web中的网络
- HTTP协议
-
- 请求 + 响应
-
- 请求:请求方式、版本、头部
-
- 响应:HTTP版本、状态信息、头部
- HTTP连接模型
-
- 典型的请求、响应模型,利用率不高,无法在同一条件下进行复用
-
- HTTP1.0:每次请求要重新建立
-
- Persistent connection:连接重用,数据大时,造成资源浪费
-
- HTTP Pipelining::服务端按顺序进行响应,存在潜在的安全问题,成本大
-
- HTTP1.1:无法多路复用
-
- HTTP2:拆分帧,流数据的传递方式,可以标识每个数据包属性哪个,解决多路复用问题,存在队头堵塞
-
- HTTP3:QUIC(Quick UDP Internet connection)可以除HTTP协议以外的应用层协议提供支持
-
- WebSocket:有状态的持久连接、服务端可以主动推送消息、用WebSocket发送消息延迟
03 网络安全
- 网络安全三要素
-
- 机密性:加密需要加密算法和密钥等信息(秘密信息)
-
-
- 通过明文通信交换秘密信息,通信双方需要先有秘密信息
-
-
- 完整性:完整性和身份验证相互关联
-
-
- 使用密码散列函数来实现,通信双方需要有秘密信息
-
-
- 身份验证
-
-
- 使用签名,签名用于鉴别身份和防止伪造,同时通信双发需要先有秘密信息,即根证书中的公钥
-
-
-
- 数字签名(指纹) = 私钥加密
-
-
-
- 消息 = 原文 + 数字签名
-
-
-
- 一般用于对公开内容进行数字签名,防止篡改
-
- 网络安全
-
- 对称加密
-
- 非对称加密
-
-
- 性值:使用不同的密钥
-
- 密码散列函数(哈希函数)
-
- 输入:任意长度的内容
-
- 输出:固定长度的哈希值
-
- 性质:找到两个不同的输入使之经过密码散列函数后有相同的哈希值,在计算上是不可呢的
- 网络安全:HTTPS
-
- HTTPS = HTTP + TLS
-
- TLS = 身份验证 + 加解密
-
- HTTPS使用PKI完成了除客户端身份验证以外的特性,客户端的身份验证使用HTTP协议实现