计算机网络概论
- 比喻
- 开通外卖
- 点到点的电话线路
- 固定流程(谁吃,吃什么,送到哪)->表格代替->传真发送表格
- 开分店
- 各个分店销售数据
- 赚了多少钱、原料数量、是否需要新分店、促销信息
- 分店到总店的通信线路
- 转发表格(销售数据)
- 重复请求
- 在全国开分店并开通外卖
- 小区的转发点
- 开通外卖
- 实际
- 顾客-客户端
- 分店-服务端
- 小区转发点和城市转发分店-路由器
- 转发表格-网络协议
网络协议分层
协议定义了在两个或多个通信实体之间交换的报文格式和顺序,以及报文发送和接受一条报文或其他事件所采取的动作
- 物理层
- 链路层
- 网络层-高速公路-不关心开的什么车
- 运输层-卡车-不担心路怎么走和卡车里的内容
- 应用层-快递员-
- 协议 语言
HTTP1 2 3
线路长度 路由选择 方法 路径 http资源版本 版本 状态码 重要信息 请求响应 HTTP 明文展示 请求后-服务端完整响应-第二个请求(网络利用率低) cookie重复发送 无法压缩 增加报文的体积
http1.0 每个请求都要创建新的TCP连接 发完之后销毁 http1.1 keep alive 保持连接一段时间 持久连接模型 队头阻塞-大请求需要处理很长的时间,导致小请求需要等待很久的时间 同时建立多个tcp连接去解决队头堵塞问题 - 但是成本巨大-请求数量超过tcp连接数量依然需要排队 tcp连接不能无限增加-tcp连接增大,每条连接带宽减少-浏览器限制tcp连接数量(6)
无法多路复用
http管线 允许发送多个请求,服务端按顺序进行响应-没有应用-无法解决队头堵塞,潜在的安全问题
http2: 帧 每个数据包都有自己的身份,进而实现多路复用 帧格式 调整响应传输的优先级 头部压缩 ServerPush
http3 :HTTP2不够快 TCP层面会出现队头阻塞 https SSL协议 TLS TCP握手 TLS握手双倍握手延迟 tcp缺少对上层信息的理解,导致http2上队头堵塞 无法对TCP改造进行优化 QUIC Qick UDP Internet Connection 开发新运输层 : 需要非常久的时间才能得以应用 首次连接1RTT 后续连接0RTT
3RTT启动TCP1RTT TLS2RTT
CDN
物理线路的极限 网络节点利用需要消耗金钱 单点故障 崩溃 DNS劫持 (一个域名对应一个IP,一般只有一台服务器使用这个IP)(多台服务器共享一个IP,谷歌) 加速域名-新的DNS地址(CDN管理)-最近的CDN服务器的IP(地理位置、跳数)
拉策略
推策略
WebSocket http升级而来 有状态的持久连接 服务端可以主动推送消息 用WebSocket发送消息延迟比HTTP低
网络安全
机密性 完整性 身份验证
对称加密 非对称加密 密码散列函数
交换秘密信息 双方需要先有秘密信息
签名 数字签名