1. 网络基础
1.1 网络模型
TCP 的全称叫传输控制协议(Transmission Control Protocol),TCP 相比 UDP 多了很多特性,比如流量控制、超时重传、拥塞控制等,这些都是为了保证数据包能可靠地传输给对方。当传输层的数据包大小超过 MSS(TCP 最大报文段长度) ,就要将数据包分块,我们把每个分块称为一个 TCP 段(TCP Segment)。
网络层最常使用的是 IP 协议(Internet Protocol),IP 协议会将传输层的报文作为数据部分,再加上 IP 包头组装成 IP 报文,如果 IP 报文大小超过 MTU(以太网中一般为 1500 字节)就会再次进行分片,得到一个即将发送到网络的 IP 报文。


网络接口层的传输单位是帧(frame),IP 层的传输单位是包(packet),TCP 层的传输单位是段(segment),HTTP 的传输单位则是消息或报文(message)。
2. 网络协议
2.1 无分类地址 CIDR
正因为 IP 分类存在许多缺点,所以后面提出了无分类地址的方案,即 CIDR
。
这种方式不再有分类地址的概念,32 比特的 IP 地址被划分为两部分,前面是网络号,后面是主机号。
比如 10.100.122.2/24,这种地址表示形式就是 CIDR,/24 表示前 24 位是网络号,剩余的 8 位是主机号。
2.2 IP地址
IP 地址分成两种意义:
- 一个是网络号,负责标识该 IP 地址是属于哪个「子网」的;
- 一个是主机号,负责标识同一「子网」下的不同主机;
怎么分的呢?这需要配合子网掩码才能算出 IP 地址 的网络号和主机号。
举个例子,比如 10.100.122.0/24,后面的/24
,代表24个1,表示就是 255.255.255.0
子网掩码。(2^(32-24)=256个)
将 10.100.122.2 和 255.255.255.0 进行按位与运算,就可以得到网络号,10.100.122.0
在寻址的过程中,先匹配到相同的网络号(表示要找到同一个子网),才会去找对应的主机。
掩码计算器:https://tool.chinaz.com/tools/subnetmask