IP数据报分片
当IP数据报的大小超过网络传输的 最大传输单元(MTU Maximum Transmission Unit) 时,路由器会将其分割成较小的片段进行传输。
分片原因
MTU限制:MTU是指在网络中传输的最大数据包大小。当IP数据报的大小超过某个链路或设备的MTU时,就需要进行分片以适应较小的MTU。
分片方法
-
分片过程:将原始数据报分割成多个较小的片段,每个片段都是一个独立的IP数据报,具有自己的IP头部。每个片段都包含了原始数据报的一部分数据,并设置了相应的标志来指示它们在重组时的顺序。
-
标识和片偏移字段:IP数据报头部包含了 标识(Identification 唯一) 字段和片偏移(Fragment Offset 之前发送的数据长度/8)字段,用于识别和重组分片。
-
分片标志:IP数据报头部的分片标志字段包括3个位:DF(Don't Fragment)、MF(More Fragments)和片偏移字段。DF位用于指示是否允许分片,如果设置为1,则禁止分片。MF位用于指示是否还有更多片段,如果设置为1,则表示还有更多片段需要重组。片偏移字段表示当前片段在原始数据报中的位置。 ![[ip数据包分片.png]]
IP地址的划分
IP地址分为两部分:网络号(Network ID)和主机号(Host ID)。子网掩码(Subnet Mask)用于确定这两部分。IP地址的前几位用于网络号,剩余的位用于主机号。具体的划分取决于IP地址的类别(A类、B类、C类)或根据CIDR的配置。
A、B、C三类地址
A类地址
- 范围:1.0.0.0 到 126.0.0.0
- 默认子网掩码:255.0.0.0 (/8)
- 网络号长度:8位
- 主机号长度:24位
- 网络数量:126个(2^7 - 2,排除0和127)
- 每个网络的主机数量:16,777,214个(2^24 - 2,排除网络地址和广播地址) 用途:A类地址主要用于非常大的网络,例如大型企业、国际组织或服务提供商。
B类地址
- 范围:128.0.0.0 到 191.255.0.0
- 默认子网掩码:255.255.0.0 (/16)
- 网络号长度:16位
- 主机号长度:16位
- 网络数量:16,384个(2^14,排除保留地址)
- 每个网络的主机数量:65,534个(2^16 - 2,排除网络地址和广播地址) 用途:B类地址通常用于中型网络,例如中型企业和大学校园网络。
C类地址
- 范围:192.0.0.0 到 223.255.255.0
- 默认子网掩码:255.255.255.0 (/24)
- 网络号长度:24位
- 主机号长度:8位
- 网络数量:2,097,152个(2^21,排除保留地址)
- 每个网络的主机数量:254个(2^8 - 2,排除网络地址和广播地址) 用途:C类地址通常用于小型网络,例如小型企业和家庭网络。
CIDR(无类别域间路由,Classless Inter-Domain Routing)
CIDR允许更加精细地划分地址空间。例如,使用 /23 前缀可以分配给一个有512个IP地址需求的网络(/23代表前23位代表网络地址),避免浪费。
子网
通过将大型网络划分为多个较小的网络段(子网)来提高网络的管理效率和安全性,每个子网在逻辑上独立,可以减少广播域范围,提高网络性能和安全性。
子网掩码
子网掩码(Subnet Mask),用于将IP地址分割成网络地址和主机地址两部分。通过子网掩码,可以确定一个IP地址所属的子网及其范围。子网掩码解决了以下问题:
子网掩码的使用
子网掩码通过与IP地址进行逐位“与”运算,用于确定网络地址
![[子网掩码题.png]]
子网掩码与ip相与,得到网络号180.80.76.0
,其后面的零都是主机号的位置,对应的广播需要主机号全为1,则答案为180.80.79.255
转发过程
- 数据包的生成和发送
- 源地址:发送设备的IP地址。
- 目标地址:接收设备的IP地址。
- 数据:实际传输的内容。
- 协议信息:用于指导数据包传输的网络协议信息(例如TCP、UDP)。
3. 进入网络,并通过路由器来管理发送
- 接收数据包:
- 检查目标IP地址:
- 决定转发路径:
- 查找路由表,并根据路由表的结果,路由器决定将数据包转发到哪个网络接口。路由表条目通常是基于CIDR前缀长度匹配
- 更新数据包信息:
- 路由器可能需要更新数据包的TTL(生存时间)字段并重新计算校验和。
- 转发数据包:
- 路由器将数据包从选择的网络接口发送出去,沿着该接口连接的链路继续传输。
例子:数据包转发过程
假设有一个数据包从IP地址192.168.1.10(源)发送到IP地址10.0.0.20(目标):
- 源设备生成数据包:
- 数据包包含源IP 192.168.1.10和目标IP 10.0.0.20。
- 本地交换机转发:
- 源设备发送数据包到本地交换机,交换机根据MAC地址将数据包转发到连接路由器的端口。
- 路由器处理:
- 路由器接收数据包,查找路由表,找到与目标IP 10.0.0.20匹配的最佳路由条目。
- 路由器更新数据包的TTL并转发到下一个合适的网络接口。
- 跨越多个路由器:
- 数据包可能经过多个路由器,每个路由器重复上述步骤,直至数据包到达目标网络。
- 目标网络处理:
- 最后的路由器将数据包发送到目标网络中的交换机,交换机根据MAC地址将数据包转发到目标设备。
- 目标设备接收数据包:
- 目标设备根据数据包的头部信息处理并接收数据。
最长前缀匹配
所谓“最长前缀匹配”,就是选择匹配前缀最长的那一条路由。
在转发时,路由表要将数据报传输到对应的网络,因此要在表中找到与目标ip网络地址最相近的网络,也就是前缀最相近的网络
假设目标IP地址是 200.23.24.170
,路由表如下:
网络地址(前缀) | 链路接口 |
---|---|
200.23.16.0/21 | 0 |
200.23.24.0/24 | 1 |
200.23.24.0/21 | 2 |
其他 | 3 |
- 将
200.23.24.170
转换为二进制:11001000 00010111 00011000 10101010
200.23.16.0/21
->11001000 00010111 00010
(前21位匹配)200.23.24.0/24
->11001000 00010111 00011000
(前24位匹配)200.23.24.0/21
->11001000 00010111 00011
(前21位匹配) 根据最长前缀匹配法则,200.23.24.0/24
前缀最长(24位),因此选择链路接口1。
地址划分和聚合总结
地址划分和聚合总结分别用于优化IP地址的分配和提高路由效率。
地址划分
地址划分(Subnetting)是将一个较大的网络划分成多个较小的子网,以便更有效地管理和利用IP地址空间。主要方法包括使用CIDR(无类别域间路由)。
例如,将 192.168.1.0/24
划分成两个 192.168.1.0/25
和 192.168.1.128/25
子网。
地址聚合
地址聚合(Supernetting)是通过合并多个连续的IP地址块来减少路由表条目数量,从而简化路由器的管理和提高网络效率。
- 合并连续子网:
- 将多个连续的子网前缀合并为一个更大的前缀。
- 例如,将
192.168.0.0/24
、192.168.1.0/24
、192.168.2.0/24
和192.168.3.0/24
聚合为192.168.0.0/22
。
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)
一种用于网络管理的协议,主要用于自动分配IP地址和其他网络配置参数给网络设备,通常使用广播UDP进行通信。
DHCP的基本工作原理
- DHCP Discover(发现):
- 当一个设备连接到网络时,它会发送一个DHCP Discover包,广播给网络中的所有DHCP服务器,表示它需要一个IP地址和其他网络配置。
- DHCP Offer(提供):
- 网络中的DHCP服务器接收到Discover包后,会为该设备保留一个IP地址,并通过DHCP Offer包将该IP地址和其他网络配置信息(如子网掩码、网关、DNS服务器)提供给该设备。
- DHCP Request(请求):
- 设备接收到一个或多个DHCP Offer包后,会选择其中一个,并发送DHCP Request包给选择的DHCP服务器,表示接受该服务器提供的IP地址和配置信息。
- DHCP Acknowledgement(确认):
- DHCP服务器接收到设备的Request包后,会发送一个DHCP Acknowledgement包,确认该设备可以使用所分配的IP地址,并正式将该IP地址分配给设备。
DHCP配置参数
除了IP地址,DHCP还可以分配其他网络参数,包括但不限于:
- 子网掩码
- 默认网关
- DNS服务器地址
- 租约时间(IP地址的使用期限)
私网和公网的对比
特性 | 私有网络(私网) | 公共网络(公网) |
---|---|---|
地址范围 | 10.0.0.0/8 ,172.16.0.0/12 ,192.168.0.0/16 | 除私网和保留地址外的所有IP |
路由可达性 | 不可在互联网中路由 | 在互联网中可路由 |
使用场景 | 内部网络通信 | 互联网间通信 |
地址分配 | 不需要全球唯一,内部自行分配 | 由IANA和RIR分配 |
安全性 | 提供一定的内网安全 | 需要额外的安全措施 |
Network Address Translation(NAT,网络地址转换)
允许多台设备共享一个公共IP地址访问互联网,同时保持内部网络的私有性。NAT通过修改IP数据包头部的信息,实现私有IP地址和公共IP地址之间的转换。 根据NAT转换表,将不同的端口转换成对应的本地ip地址 ![[NAT公私ip转换.png]]
自治系统(AS)
网络在一个共同的管理实体控制下,共同使用统一的路由策略对外进行路由选择。每个AS都有一个唯一的AS编号(ASN)
内部路由(Intra-AS Routing)
指自治系统(AS)内部进行的路由选择和数据传输,内部路由协议(IGP,如OSPF和EIGRP)负责在AS内部的路由器之间传播路由信息,并计算最优路径。
OSPF:用于在自治系统(AS)内部计算最短路径并传播路由信息的链路状态路由协议。
外部路由(Inter-AS Routing)
指在不同的自治系统(AS)之间进行的路由选择和数据传输。外部路由协议(EGP,如BGP)负责在AS之间交换路由信息,并根据策略选择最优路径。
BGP:用于在不同自治系统(AS)之间交换和更新路由信息的路径向量路由协议。
ICMP(Internet Control Message Protocol,互联网控制消息协议)
用于发送错误消息和操作信息,例如网络不可达、主机不可达、端口不可达和时间超时等。它的主要用途是网络诊断和错误报告,而不是路由选择。