这是我参与「第三届青训营 -后端场」笔记创作活动的第4篇笔记
网络交互
网络接入:路由->网关
1. 路由不一定是对称的;
2. 路由在那一层协议中:ARP协议
3. 路由改mac地址,找到发包址
4. 动态路由:BGP/OSPF等,路由表在动态变化
5. 路由是网状的,不一定是对称的
-
ARP协议
- ARP广播/应答:协议原理
- 免费ARP:主动广播告知MAC地址
- ARP代理:虚拟网络/伪造MAC地址
-
IP协议
- IPv4:互联网终端节点的唯一标识
- IPv6:不仅仅是IP地址长度的增加
-
NET协议
- NAT上网:家用路由器
- NAT出网:机房内网主机上外网
- NAT原理:注意不仅仅是源地址变换,源端口/校验和/SEQ等都会变化
网络传输
-
数据包:本质上是一段内存,里面存储的内存是有序的,一般是按照TCP/IP的多层协议去封装。拆包/封包都是按照协议去写内存/读内存。
-
UDP
- 协议简单
- 需要考虑可靠性的场景使用复杂
-
TCP
- 三次握手:确认传输的序列号/MSS/Option字段,建立连接
- TCP连接:是一个虚拟的概念,本质上两倍维持一段内存,记录连接状态,就是session
- TCP传输:理解sequence number/acknowledge number
- 丢包重传:理解丢包怎么感知并重传,理解快速重传发生在什么时候
- 滑动窗口
- 流量控制
-
HTTP
- HTTP比TCP好在哪里:方便
- HTTP1.1的优化:长连接是重点
-
什么时候客户端认为是丢包?
- TCP连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。http通常运行在TCP之上。指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。
-
重传怎么考虑效率?
- tcp在发送数据的时候,会设定一个定时器。当超过指定的时间后,没有收到对方的ack应答报文或者数据包丢失,就会重发这个数据。这个就是重传的一种。
- 考虑极端一点的情况,发送的包3,4,5也在传输中丢失,选择性重传涉及到多个包的计时器和往返时间,如果网络状况糟糕,出现一连串的包都丢失的情况,那么选择性重传的效率就比较低了。