计算机网络基础
网络组成部分
- 主机:客户端+服务端 (提供和接收信息)
- 路由器 (转发主机之间的信息)
- 网络协议 (提供统一的格式,方便路由器或主机进行编码解码)
网络结构
网络的网络 本地网络LAN
区域网络MAN 城域网CAN 广域网WAN
电路交换&分组交换
信息交换的方式
网络分层
各层互不关心下一层的内容
协议
协议规定两个及以上通信实体之间交换的报文的格式和顺序,以及收发报文等其他动作
标头和载荷
HTTP协议
例如:
- 链路层
- 本地帧头部 4字节
- 第三行 IP协议头部 5-44字节
- 运输层
- 第四行 TCP协议头部 20个字节
- 第五行 Http协议层
报文=链路层头+IP协议头+TCP协议头+http协议头+http正文
协议
web应用
HTTP协议
基本结构
请求
请求方式 自然路径 http版本 头部,使用冒号分隔,左边为头部名称,右边为值
响应
状态行,包括http的版本、状态栏、信息
http连接模型
队头阻塞 http1.1 无法多路复用 http2 使用帧 (帧的长度、类型、不同帧的含义、状态),解决了对头堵塞,但TCP包1(含main.js)丢失 http 2:3 RTT启动 http3 QUIC(基于UDP)靠谱
比如前三字节:载荷长度 第四字节:类型 第五字节:类型对应的Flags 第六到九字节:第1位是保留位,2-32位是流ID 随后8192字节:载荷
帧的额外好处:
- 调整响应传输的优先级
- 头部压缩
- Sever Push
CDN
最多跳两次
DNS 劫持
- 域名解析网站自己处理
- 需加速的域名重定向到CDN厂商的域名解析服务
- CDN厂商根据来源确定最近的CDN服务器IP
- 用户直接访问最近的CDN服务器
WebSocket (由http升级)
有状态的持久连接、 服务端可主动推送消息、 发送消息延迟比HTTP低、