01 前言&课程介绍
1. 通过一个示例建立对计算机网络的整体认识
2. 建立对网络协议分层的认知
3. 分析HTTP1、2、3的关系
4. 介绍CDN运行的基本原则
5. 了解网络安全的最基本原则
分析方法
自底向上
·从简单开始,逐渐变复杂
·将模块逐步拼凑成一个系统
自顶向下
·从复杂开始,逐渐变简单
·从复杂的系统问题入手,拆分为模块问题
02 蟹堡王帝国
03 计算机网络基础
网络组成部分
主机:客户端和服务器
路由器
网络协议
网络结构:网络的网络
·比奇堡和小区网络:本地网络
·上海和上海分店+比奇堡:三个本地网络节点的网络
·全国通信网络:本地网络的网络
·区域网络、城域网和广域网
电路交换&分组交换
网络分层
{快递员、卡车司机、高速公路}
由低到高:物理层、链路层、网络层、运输层、应用层
协议(协议的存在依赖于连接)
协议定义了在两个或多个通信实体之间交换的报文格式和顺序,以及报文发送和或接受一条报文或其他事件所采取的动作。
第一行:
第二行(Lookback)HTTP协议示例:链路层-本地帧头部
第三行 IP层:链路层-IP协议头部
第四行 运输层-TCP协议头部
第五行 HTTP协议层:应用层-HTTP协议头部
报文=链层头+IP协议的头+TCP协议的头+HTTP协议的头
小结
·网络组成部分:由主机、路由器、交换机等组成
·网络结构:网络的网络
·信息交换方式:电路交换和分组交换
·网络分层:分清职责,物理层、链路层、网络层、运输层和应用层
·网络协议:标头和载荷
04 Web中的网络
HTTP协议
第一行 GET/HTTP/1.1 (请求的方法、资源路径、HTTP的版本)
后面 头部名称(不区分大小写):头部的值
响应
第一行(状态行) HTTP/1.1 200 OK (HTTP版本、状态码、状态信息)
后面 头部名称(不区分大小写):头部的值
队头堵塞
当单个(慢)对象阻止其他/后续的对象前进时。
当顺序发送的请求序列中的一个请求因为某种原因被阻塞时,在后面排队的所有请求也一并被阻塞,会导致客户端迟迟收不到数据。
HTTP 2:帧带来的额外好处
·调整响应传输的优先级
·头部压缩
·Server Push
CDN:DNS劫持
·域名解析一般由网站自己处理
·要加速的域名则重定向到CDN厂商的域名解析服务处理
·CDN厂商根据来源确定最近的CDN服务器的IP
·用户直接访问最近的CDN服务器
WebSocket
·有状态的持久连接
·服务端可以主动推送消息
·用WebSocket发送消息延迟比HTTP低
小结
·HTTP 1 2 3 的演变历史
·CDN解决了HTTP协议之外的问题
·WebSocket从HTTP协议升级而来
05 网络安全
网络完全:三要素
·机密性:攻击者无法获知通信内容
·完整性:攻击者对内容进行篡改能被发现
·身份验证:攻击者无法伪装成通信双方的任意一方与另一方通信
网络安全:对称加密和非对称加密
·对称加密:加密、解密用同样的密钥
·非对称加密:加密、解密使用不同的密钥(公钥和私钥),而且公钥加密只能用私钥加密、私钥加密只能用公钥解密
网络安全:密码散列函数(哈希函数)
·输入:任意长度的内容
·输出:固定长度的哈希值
·性质:找到两个不同的输入使之经过密码散列函数后有相同的哈希值,在计算上是不可能的
网络安全:机密性
·加密需要加密算法和密钥等信息(统称为秘密信息)
·网络是明文的,不安全
网络安全:完整性和身份验证
完整性和身份证验证相互关联
网络安全:如何实现机密性
·已知:网络是明文的
·如果双方可以通过明文通信商量出秘密信息,那么攻击者也可以
·所以想要通过明文通信交换秘密信息,通信双方需要先有秘密信息
网络安全:HTTPS
把HTTP的明文换成密文,再验证身份,即HTTPS
HTTPS=HTTP + TLS
TLS=身份验证 + 加解密
身份验证靠PKI
服务端身份验证靠PKI,客户端身份验证靠HTTP协议
小结
·网络安全三要素:机密性、完整性和身份验证
·在没有提前交换秘密信息的前提下,无法在不安全的信通交换秘密信息
·PKI保证了普通用户不需要“面对面”和根证书机构交换根证书
·HTTPS使用PKI完成了除客户端身份验证以外的特性,客户端身份验证靠HTTP协议实现