这是我参与「第三届青训营 -后端场」笔记创作活动的第2篇笔记
1. ARP协议
网络层协议
ARP协议就是根据IP地址获取mac地址.当前主机在局域网内发送广播,请求包含目标主机IP地址,并接收返回消息,以此确定目标主机的MAC地址。
本质是查处下一跳的MAC
2.NAT协议
提供给私网地址访问外网的能力。解决ipv4地址不够用的问题。
特点:
- 网络被分为私网和公网两部分,NAT网关设置在私网到公网的路由出口位置。
- 网络访问只能由私网部分发起,公网无法主动访问私网主机
- NAT网关在两个访问方向上完成两次地址的转换,出方向做源信息替换,入方向做目的信息替换
- NAT网关的存在对通信双方透明
- NAT网关为了实现双向转换功能,需要维护一张表,把会话信息保存下来
实现方式
- 静态NAT,私网IP和公网IP一对一转换
- 动态NAT,路由器有一个公网IP地址池,内部主机访问公网时从IP地址池获取一个IP地址。
- NAPT,私网IP映射为路由器的一个端口
缺点:
- 地址转换增加时延
- 无法进行端到端的IP跟踪
- 主机程序接收数据端口和发送数据端口不在一个端口会无法正常运行
3. DNS
将域名解析为IP地址的协议
- 首先客户端会先查看主机的host文件。
- 如果没有找到对应的域名,则去操作系统缓存查找。
- 如果没有找到,则向本地DNS域名服务器发起查询。
- 如果本地DNS域名服务器没有缓存该域名,则会由本地域名服务器以此对根域名服务器,顶级域名服务器,权威域名服务器发起查询,如果找到该域名则停止迭代。
4. UDP
不可靠的,面向报文段,无连接,尽最大努力交付的传输层协议。
最好将长度限制在1500-20-8=1472字节内。1500字节是数据链路层帧的最大数据长度MTU,不包含头部,只计算数据长度。20是IP数据头部,8是UDP首部字段长度
5. TCP
可靠的,面向字节流,有连接,的传输层协议
三次握手,SYN攻击,快速握手,流量控制,拥塞控制(慢启动,快速重传,快速恢复,选择重传),队头阻塞,time-wait的2msl
6. HTTP
超文本传输协议。为什么不用TCP?HTTP让用户更清晰,更简洁。
HTTP1.0
短连接,只有get,post,head
HTTP1.1
- 长连接
- 新增了put,delete,trace等操作
- 新增了host头部字段,指定主机名。
- 新增了缓存策略
HTTP2.0
- 多路复用(未解决TCP头部阻塞)
- 二进制传输
- header压缩
- 服务端推送
HTTP3.0
该用基于UDP的quic协议,解决了对头阻塞问题。
7. HTTPS
采用对称加密和非对称加密结合。还可以防止中间人攻击。