计算机网络-网络层

24 年 6 月 2 日 星期日
2792 字
14 分钟

IP数据报分片

当IP数据报的大小超过网络传输的 最大传输单元(MTU Maximum Transmission Unit) 时,路由器会将其分割成较小的片段进行传输。

分片原因

MTU限制:MTU是指在网络中传输的最大数据包大小。当IP数据报的大小超过某个链路或设备的MTU时,就需要进行分片以适应较小的MTU。

分片方法

  1. 分片过程:将原始数据报分割成多个较小的片段,每个片段都是一个独立的IP数据报,具有自己的IP头部。每个片段都包含了原始数据报的一部分数据,并设置了相应的标志来指示它们在重组时的顺序。

  2. 标识和片偏移字段:IP数据报头部包含了 标识(Identification 唯一) 字段和片偏移(Fragment Offset 之前发送的数据长度/8)字段,用于识别和重组分片。

  3. 分片标志: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

转发过程

  1. 数据包的生成和发送
    • 源地址:发送设备的IP地址。
    • 目标地址:接收设备的IP地址。
    • 数据:实际传输的内容。
    • 协议信息:用于指导数据包传输的网络协议信息(例如TCP、UDP)。

3. 进入网络,并通过路由器来管理发送

  1. 接收数据包
  2. 检查目标IP地址
  3. 决定转发路径
    • 查找路由表,并根据路由表的结果,路由器决定将数据包转发到哪个网络接口。路由表条目通常是基于CIDR前缀长度匹配
  4. 更新数据包信息
    • 路由器可能需要更新数据包的TTL(生存时间)字段并重新计算校验和。
  5. 转发数据包
    • 路由器将数据包从选择的网络接口发送出去,沿着该接口连接的链路继续传输。

例子:数据包转发过程

假设有一个数据包从IP地址192.168.1.10(源)发送到IP地址10.0.0.20(目标):

  1. 源设备生成数据包
    • 数据包包含源IP 192.168.1.10和目标IP 10.0.0.20。
  2. 本地交换机转发
    • 源设备发送数据包到本地交换机,交换机根据MAC地址将数据包转发到连接路由器的端口。
  3. 路由器处理
    • 路由器接收数据包,查找路由表,找到与目标IP 10.0.0.20匹配的最佳路由条目。
    • 路由器更新数据包的TTL并转发到下一个合适的网络接口。
  4. 跨越多个路由器
    • 数据包可能经过多个路由器,每个路由器重复上述步骤,直至数据包到达目标网络。
  5. 目标网络处理
    • 最后的路由器将数据包发送到目标网络中的交换机,交换机根据MAC地址将数据包转发到目标设备。
  6. 目标设备接收数据包
    • 目标设备根据数据包的头部信息处理并接收数据。

最长前缀匹配

所谓“最长前缀匹配”,就是选择匹配前缀最长的那一条路由。 在转发时,路由表要将数据报传输到对应的网络,因此要在表中找到与目标ip网络地址最相近的网络,也就是前缀最相近的网络 假设目标IP地址是 200.23.24.170,路由表如下:

网络地址(前缀)链路接口
200.23.16.0/210
200.23.24.0/241
200.23.24.0/212
其他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/25192.168.1.128/25 子网。

地址聚合

地址聚合(Supernetting)是通过合并多个连续的IP地址块来减少路由表条目数量,从而简化路由器的管理和提高网络效率。

  1. 合并连续子网
    • 将多个连续的子网前缀合并为一个更大的前缀。
    • 例如,将 192.168.0.0/24192.168.1.0/24192.168.2.0/24192.168.3.0/24 聚合为 192.168.0.0/22

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)

一种用于网络管理的协议,主要用于自动分配IP地址和其他网络配置参数给网络设备,通常使用广播UDP进行通信。

DHCP的基本工作原理

  1. DHCP Discover(发现):
    • 当一个设备连接到网络时,它会发送一个DHCP Discover包,广播给网络中的所有DHCP服务器,表示它需要一个IP地址和其他网络配置。
  2. DHCP Offer(提供):
    • 网络中的DHCP服务器接收到Discover包后,会为该设备保留一个IP地址,并通过DHCP Offer包将该IP地址和其他网络配置信息(如子网掩码、网关、DNS服务器)提供给该设备。
  3. DHCP Request(请求):
    • 设备接收到一个或多个DHCP Offer包后,会选择其中一个,并发送DHCP Request包给选择的DHCP服务器,表示接受该服务器提供的IP地址和配置信息。
  4. DHCP Acknowledgement(确认):
    • DHCP服务器接收到设备的Request包后,会发送一个DHCP Acknowledgement包,确认该设备可以使用所分配的IP地址,并正式将该IP地址分配给设备。

DHCP配置参数

除了IP地址,DHCP还可以分配其他网络参数,包括但不限于:

  • 子网掩码
  • 默认网关
  • DNS服务器地址
  • 租约时间(IP地址的使用期限)

私网和公网的对比

特性私有网络(私网)公共网络(公网)
地址范围10.0.0.0/8172.16.0.0/12192.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,互联网控制消息协议)

用于发送错误消息和操作信息,例如网络不可达、主机不可达、端口不可达和时间超时等。它的主要用途是网络诊断和错误报告,而不是路由选择

文章标题:计算机网络-网络层

文章作者:Blank

文章链接:https://blankxiao.github.io/posts/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/%E7%BD%91%E7%BB%9C%E5%B1%82[复制]

最后修改时间:


商业转载请联系站长获得授权,非商业转载请注明本文出处及文章链接,您可以自由地在任何媒体以任何形式复制和分发作品,也可以修改和创作,但是分发衍生作品时必须采用相同的许可协议。
本文采用CC BY-NC-SA 4.0进行许可。