网络层概述核心职责关键设备 → 路由器IP地址和子网IP数据报的结构IP地址结构IP地址分类(Classful routing, 有类别)私有地址空间子网划分IP地址分配静态分配动态分配地址解析协议(Address Resolution Protocol, ARP)ARP的作用和重要性ARP的工作原理ARP缓存ARP的类型ARP的安全问题ARP与IPv6总结ARP与网际通信默认网关ARP代理网络层服务面向连接的网络层服务无连接的网络层服务路由和路由协议静态路由 (Static Routing)动态路由 (Dynamic Routing)路由协议 (Routing Protocol)被路由的协议(Routed Protocol)可变长度子网掩码(VLSM)VLSM 的核心特点VLSM 的应用场景VLSM 的基本操作步骤VLSM 的优势VLSM 的注意事项无类别域间路由CIDRCIDR 的核心概念CIDR 的优势CIDR 与 VLSM 的关系因特网控制报文协议(ICMP)ICMP 的主要特点ICMP 的主要用途ICMP 报文类型ICMP报文格式差错报告报文ICMP 的常见工具PingTracerouteICMP 的局限性ICMP 在IPv4和IPv6中的区别
网络层概述
核心职责
关键词: 路径选择, 路由, 逻辑(相对于物理)寻址
- 数据转发:网络层负责将数据从源设备传输到目标设备,可能需要经过多个中间网络节点。
- 分层地址:使用IP地址来识别设备的网络位置,相比扁平化的MAC地址,更适合大型网络管理。
- 流量控制与拥塞减少:通过选择最优路径(路由),分割广播域等方式减少网络负载,提高通信效率。
- 与其他网络交流
关键设备 → 路由器

- 连接不同网络或网络段,转发数据包。
- 根据IP地址做出逻辑选择
- 基于路由表中的信息选择最佳路径(使用动态路由协议或静态路由配置)。
- 将数据包从输入端口交换到输出端口
- 路由器的每个接口都必须拥有一个独立, 唯一的网络地址(IP地址)
解析:
网络层是网络通信的核心部分,提供了在不同网络之间传递数据的能力。通过逻辑地址(IP地址)和路径选择技术,它实现了数据的跨网传输。
IP地址和子网
MAC地址属于硬件层, 而IP地址属于软件层, 可以随分配变化发生变动, 唯一确定一个计算机在网络中的实时地址
IP数据报的结构

- 版本 → 占 4 bit,指IP协议的版本. 目前的 IP 协议版本号为 4 (即 IPv4)
- 首部长度 → 占 4 bit,可表示的最大数值是
15
个单位(一个单位为 4 字节). 因此 IP 的首部长度的最大值是60字节
- 服务类型 → 占 8 bit,用来获得更好的服务. 这个字段以前一直没有被人们使用
- 总长度 → 占 16 bit,指首部和数据之和的长度, 单位为字节,因此数据报的最大长度为 65535 字节。 总长度必须不超过最大传送单元 MTU
- 标识(identification) → 占 16 bit, 它是一个计数器,用来产生数据报的标识
- 标志占 3 bit,最高位为0. MF为0表示最后一个分片
- 片偏移(13 bit)指出:较长的分组在分片后, 某片在原分组中的相对位置. 片偏移以 8 个字节为偏移单位
- 生存时间(8 bit)记为 TTL (Time To Live), 指数据报在网络中可通过的路由器数的最大值
- 协议(8 bit)字段指出此数据报携带的数据使用何种协议, 以便目的主机的 IP 层决定将数据部分上交给哪个处理过程

- 首部检验和(16 bit) → 只检验数据报的首部, 不包括数据部分。. 这里不采用 CRC 检验码而采用简单的计算方法
- 源IP地址和目的IP地址各占 4 字节
IP地址结构
- 32位二进制数(IPv4),分为网络ID(标识网络)和主机ID(标识设备)两个部分
分别至多可以占据IP地址的前三个和后三个字节

- 由四个字节组成, 使用点分十进制表示(如192.168.1.1)
IP地址分类(Classful routing, 有类别)


network部分越短, host部分越长, 网络内支持的主机数越多, 网段内的网络数越少 → 少量大块
network部分越长, host部分越短, 网络内支持的主机数越少, 网段内的网络数越多 → 大量碎块
- A类:支持大型网络,网络ID占8位(0~127, )
- Class A has 16,777,214 available hosts ()
- B类:中型网络,网络ID占16位(128~191, )
- Class B has 65,534 available hosts ()
- C类:小型网络,网络ID占24位(192~223, )
- Class C has 254 available hosts ()
- D类:用于多播
- 范围:224.0.0.0 到 239.255.255.255
- 前缀:1110(二进制)
- 本地多播地址(Reserved Link-Local Addresses)
- 范围:224.0.0.0 到 224.0.0.255
- 用途:保留给路由协议和网络管理(如 OSPF、RIP、IGMP)。
- 特性:仅限本地链路,不能被路由器转发。
- 全局多播地址
- 范围:224.0.1.0 到 239.255.255.255
- 用途:用于多播应用程序或服务,可以跨越多个网络。
- 组织范围多播地址(Organization-Scoped Multicast)
- 范围:239.0.0.0 到 239.255.255.255
- 用途:组织内部使用,类似私有IP地址。
- 点对多点通信: 数据只发送一次,但可以被多个接收者获取。
- 高效性: 节省带宽,避免在单播中多次重复发送。
- 应用场景:
- 视频流媒体广播。
- 网络管理协议(如 IGMP、MLD)。
- 路由协议(如 OSPF、PIM)。
多播地址(Multicast Address) 是指用于将数据从一个设备传输到多个特定接收设备(而非所有设备)的IP地址。它是一种在网络中高效传输数据的机制,避免了单播(逐个发送)和广播(发送给所有设备)的不必要资源消耗。
IPv4 多播地址
在 IPv4 中,多播地址的范围定义在 D类地址空间 中,其范围是:
子范围的用途
多播的特点
多播地址是一种专门设计用于点对多点通信的IP地址,主要分布在 IPv4 的 224.0.0.0 到 239.255.255.255 范围以及 IPv6 的 FF00::/8 范围。通过多播,可以在网络中有效地将数据发送给多个感兴趣的接收者,而不浪费额外的网络资源。
- E类:保留用于实验
是因为保留了全0地址作为网络地址, 全1地址作为广播地址, 均不用于标识主机.
只有具有相同网络地址的主机才能直接交流, 否则需要通过路由器
广播地址用于向网络中所有设备发送数据
“全0”和”全1”指主机字段全0或全1
私有地址空间
10.[0-255].[0-255].[0-255]
172.[16-31].[0-255].[0-255]
192.168.[0-255].[0-255]

Private Address Space(私有地址空间)是指专门保留用于本地网络通信的IP地址范围。它们不会在全球互联网中路由,因此只能用于内部网络。私有地址通常用于局域网(LAN),比如家庭网络、企业内部网络等。
私有IP地址的范围
根据 RFC 1918 的规定,IPv4 的私有地址空间分为以下范围:
- Class A:
- 范围:10.0.0.0 到 10.255.255.255
- 子网掩码:255.0.0.0(/8)
- 可用地址数量:16,777,216 个
- Class B:
- 范围:172.16.0.0 到 172.31.255.255
- 子网掩码:255.240.0.0(/12)
- 可用地址数量:1,048,576 个
- Class C:
- 范围:192.168.0.0 到 192.168.255.255
- 子网掩码:255.255.0.0(/16)
- 可用地址数量:65,536 个
这些地址只能在局域网中使用,不会被分配给互联网上的设备。
使用私有地址的意义
- 节省公共IP地址资源: 私有地址不占用全球唯一的公共IP地址。
- 增强安全性: 私有地址不能直接访问外部互联网,降低了攻击的风险。
- 灵活的网络配置: 私有地址可以重复使用,因此适合用于多种内部网络。
访问互联网的方法
如果使用私有地址的设备需要访问互联网,通常需要通过 网络地址转换(NAT) 或 代理,由路由器将私有IP地址映射为一个公共IP地址。
IPv6 私有地址
在 IPv6 中,私有地址被称为 Unique Local Addresses (ULA),其范围是:
- FC00::/7,通常用于局域网和站点内部通信。
这种机制解决了IP地址不足的问题,同时提供了局域网内部的灵活性和独立性。
进一步解释:
私有IP地址的确可以看作是网络设备在局域网(LAN)内部的一个“内部名称”。以下是对你的问题的详细解答:
1. 私有地址是内部名称
私有IP地址只在本地网络中有效,并且不在全球互联网的路由表中被承认。也就是说,这些地址不会在互联网上直接使用或传播,因此它们只用于在局域网内标识设备。
而内部设备要接收外部数据则需要通过默认网关
例如:
- 在家庭网络中,路由器可能为设备分配 192.168.1.2。
- 即使另一个家庭也有一个设备使用 192.168.1.2,它们之间不会冲突,因为它们在不同的私有网络中。
2. 多个本地网络可能有相同的私有IP地址
这种情况非常常见。因为私有IP地址空间是通用的、可重复使用的,不同的网络可以使用相同的私有IP地址而不会引起冲突。
原因:
由于私有IP地址不能直接访问互联网,设备需要通过路由器或其他设备进行网络地址转换(NAT)来访问外部网络。NAT会将局域网中的私有IP地址映射到路由器的公共IP地址上,从而避免了地址冲突。
例如:
- 网络A中的设备A有IP地址 192.168.0.100。
- 网络B中的设备B也有IP地址 192.168.0.100。
- 由于它们在不同的局域网中,彼此独立,地址不会冲突。
3. 私有IP地址的作用与限制
- 作用:
- 为局域网设备提供地址标识。
- 减少全球IP地址的使用压力。
- 提供了一层额外的安全性,因为私有地址不会暴露在互联网上。
- 限制:
- 私有地址无法直接用于与互联网的通信,需要通过NAT或代理进行转换。
- 如果两个局域网直接连接,可能会因为地址重复引发冲突(例如企业网络合并时)。
总结
私有IP地址相当于设备的本地“代号”,用来标识局域网中的设备。因为它们只在本地范围内有效,所以全球范围内可以重复使用。通过NAT或类似技术,不同网络中的相同私有IP地址设备也可以顺利访问互联网,而不会彼此干扰。
IP耗尽的解决方案: NAT / CIDR / IPv6
子网划分

- 通过借用主机位扩展网络ID(调整子网掩码),将网络划分为更小的子网。最少借用2位, 同时至少给Host字段留下2位, 否则只剩下网络地址和广播地址, 不能接入其他主机, 子网就没有存在意义.
- 第一个子网:被认为是保留为“主网络号”(即未划分子网时的网络号)。
- 最后一个子网:其广播地址与整个网络的广播地址可能冲突。
- 子网划分后有 4 个子网:
- 子网 0(192.168.0.0/26):网络地址 192.168.0.0,广播地址 192.168.0.63。
- 子网 1(192.168.0.64/26):网络地址 192.168.0.64,广播地址 192.168.0.127。
- 子网 2(192.168.0.128/26):网络地址 192.168.0.128,广播地址 192.168.0.191。
- 子网 3(192.168.0.192/26):网络地址 192.168.0.192,广播地址 192.168.0.255。
- 子网 0(第一个子网):192.168.0.0/26的网络地址会被认为是整个网络的地址(未子网化的网络号)。
- 子网 3(最后一个子网):192.168.0.192/26的广播地址 192.168.0.255会与整个网络的广播地址冲突。
- 第一个和最后一个子网是可以使用的。
- 只要设备和路由器支持“子网广播地址”和“主网络广播地址”的正确区分,就没有必要保留这些子网。
- 向后兼容性:某些老旧设备或网络系统仍然按照早期规范工作,不支持第一个或最后一个子网。
- 减少错误风险:避免网络号和广播号的混淆,简化配置和管理。
- 习惯和默认配置:某些网络工具或规划方法可能默认跳过第一个和最后一个子网。
- 早期规范 (RFC 950):第一个和最后一个子网被保留,不能使用。
- 现代规范 (RFC 1878):这种限制被取消,第一个和最后一个子网可以正常使用。
- 实际应用:出于兼容性和管理便利性的考虑,许多网络管理员仍选择跳过第一个和最后一个子网,但这是习惯而非技术限制。
“至少借2位?”在早期的网络设计中,第一个和最后一个子网通常被认为是不可用的。这种限制主要是由于历史规范和一些技术实现中的约束,而不是技术上的硬性要求。以下是原因及其背景的详细解释:1. 历史规范的限制 (早期的子网划分标准 - RFC 950)在 RFC 950(“Internet Standard Subnetting Procedure”)中,规定子网的网络地址和广播地址不能重叠:
举例假设网络是 192.168.0.0/24,你借用 2 位划分子网:
按照 RFC 950:
因此,第一个和最后一个子网被“保留”,导致无法使用。分清楚是不能使用首尾子网还是不能使用0地址和全1地址2. 现代网络的改进 (RFC 1878)RFC 1878 修改了早期的限制,明确规定:
现代网络设备普遍支持 RFC 1878,因此这种限制在如今的网络中已经不再适用。 3. 实践中仍可能保留的原因虽然现代规范允许使用第一个和最后一个子网,但在实践中,网络管理员可能仍然避免使用它们,原因包括:
总结
按他说的来, 默认第一个和最后一个子网保留不可用. 这样划分子网则会带来更多的IP地址浪费. 所以算子网数和网段内主机数时均要. 例如对4位子网字段和4位主机字段, 有:
- 子网掩码示例:
255.255.255.0
表示前24位为网络ID,其余为主机ID. (1表示用作网络ID, 0表示用作主机ID)
- 未划分子网时也可以写出默认子网掩码:
- A类 →
255.0.0.0
- B类 →
255.255.0.0
- C类 →
255.255.255.0
- 子网可以隔离广播域
- 子网划分会增加浪费的IP地址数, 因为每划分一个子网就要额外分配一个网络地址和一个广播地址, 而二者均不能分配给主机.
- 使用主机IP地址, 和子网掩码进行按位与预算, 即可得到子网的网络地址.
解析:
IP地址和子网划分是网络通信的基础。通过合理划分子网,可以减少广播域,提高网络资源利用率。
IP地址分配
静态分配
- 必须严格维护以防止使用相同IP地址的设备产生冲突
动态分配
三个方式: RARP(Reverse ARP), BOOTP(BOOTstrap Protocol), DHCP(Dynamic Host Configuration Protocol)
当下使用的是DHCP. 它是一种自动化的网络管理协议,用于将 IP 地址、子网掩码、网关地址以及其他网络配置参数动态分配给设备(如计算机、手机或打印机)。
以下是动态分配 IP 地址的工作原理和流程:
1. DHCP 的基本原理
DHCP 服务器维护一个 IP 地址池,即一组可用的 IP 地址。它会根据设备的需求,从地址池中分配一个 IP 地址给设备(称为客户端)。每次设备连接到网络时,都会向 DHCP 服务器请求 IP 地址,而不需要手动配置。
DHCP是局域网的网络协议, 分配的是内网设备的IP地址
2. 动态分配的优势
- 自动化:无需管理员手动配置每个设备。
- 高效:节省地址空间(当设备断开后,其 IP 地址可重新分配)。
- 灵活:设备可以随时加入或离开网络,而不会发生 IP 冲突。
3. 动态分配 IP 的具体流程


动态分配过程遵循 DHCP 工作流程,包括 4 个主要步骤(称为 DORA 流程):
1. Discovery(发现)
- 当设备(客户端)连接到网络时,它会通过广播发送一个 DHCP Discover 数据包,询问是否有可用的 DHCP 服务器。
DHCP的数据包使用的是UDP, 因为相较而言TCP没有广播和多播功能
- 这个数据包的目的地址是广播地址(例如 255.255.255.255),因为客户端此时尚未获得 IP 地址。
- IP 广播地址
255.255.255.255
是特殊的 IP 地址,表示“网络中的所有设备”。 - 当 DHCP 客户端发送 Discover 数据包时,它尚未获得有效的 IP 地址,因此无法指定一个特定的目标 IP。
- 为了确保数据包能够被所有设备接收(尤其是 DHCP 服务器),它会使用
255.255.255.255
作为目的 IP 地址。 - 只在本地网络有效:255.255.255.255 的广播数据包不会跨越路由器,因为路由器通常会阻止广播数据包转发到其他网络。
- 这意味着广播的作用范围仅限于同一个广播域(例如局域网中的所有设备)。
- 定向广播的地址是特定的,例如:
- 如果子网是
192.168.1.0/24
,其定向广播地址为192.168.1.255
。 - 使用这种广播,数据包会发送到子网
192.168.1.0/24
的所有主机。 - 区别:
255.255.255.255
是全局本地广播地址,而定向广播是针对某一具体子网的。 - 客户端尚未知道自己的网络配置(没有 IP 地址、子网掩码、网关等信息)。
255.255.255.255
是唯一能够覆盖所有设备的广播地址。
IP广播地址:1. IP 广播地址
使用255.255.255.255
作为广播地址时,无论主机位于哪个网段,数据包都会在本地网络(广播域)内被广播到所有设备。这种广播方式称为 本地广播(Local Broadcast)本地广播的特点
2. 与其他广播的区别网络中还有另一种广播形式,称为 定向广播(Directed Broadcast),它也可以用于向整个子网广播:
3. 应用场景在 DHCP Discover 阶段,客户端使用255.255.255.255
是因为:
这确保了 DHCP 服务器能够收到广播数据包并提供响应。
2. Offer(提供)
- 网络中的 DHCP 服务器收到 Discover 请求后,会从自己的 IP 地址池中选取一个可用地址,并以 DHCP Offer 数据包回复客户端。
- Offer 包含:
- 提议的 IP 地址。
- 子网掩码、默认网关、DNS 服务器等配置信息。
- 租约期限(IP 地址的使用期限)。
3. Request(请求)
- 客户端收到多个 DHCP 服务器的 Offer 后,选择其中一个(通常是最快响应的服务器),并向该服务器发送 DHCP Request 数据包,请求确认所提供的 IP 地址。
先来先服务FCFS
- Request 中会明确指定选中的 DHCP 服务器,并拒绝其他服务器的 Offer。
4. Acknowledgment(确认)
- DHCP 服务器收到客户端的 Request 后,发送 DHCP ACK(Acknowledgment) 数据包,确认分配的 IP 地址及相关配置。
- 客户端接收 ACK 后,正式启用分配的 IP 地址。
4. DHCP 地址租约机制
动态分配的 IP 地址不是永久的,而是基于“租约”机制:
- 租约期限:DHCP 服务器在 ACK 中提供租约时间(例如 24 小时)。
- 续租:当租约到期前,客户端会主动向 DHCP 服务器发送续租请求,更新租约。
- 释放:如果设备断开网络或释放 IP 地址,DHCP 服务器会将该 IP 地址回收到地址池中以供其他设备使用。
5. 动态分配的变种
动态分配
- IP 地址从地址池中动态分配,每次可能不同。
自动分配
- DHCP 服务器为设备分配一个 IP 地址后,会将此记录存储下来。同一设备再次连接时,通常分配相同的 IP 地址。
静态 DHCP(保留分配)
- 根据设备的 MAC 地址,DHCP 服务器始终为其分配特定的 IP 地址。
6. 动态分配的实际应用
动态 IP 分配主要用于以下场景:
- 企业网络:自动管理大量员工设备。
- 家庭网络:路由器通过 DHCP 动态为连接的设备(如手机、平板、电脑)分配 IP 地址。
- 公共网络:如咖啡馆、酒店的 Wi-Fi 网络,简化连接过程。
7. 动态分配的优缺点
优点
- 简化配置和管理。
- 减少人为错误(如 IP 冲突)。
- 更灵活地管理 IP 地址资源。
缺点
- 需要 DHCP 服务器支持,依赖其稳定性。
- IP 地址是动态分配的,因此客户端的地址可能会经常更换,不适合需要固定 IP 的设备(如服务器或打印机)。
- DHCP欺骗





总结
动态分配 IP 地址通过 DHCP 协议自动完成设备与网络的连接配置,使网络管理更加高效和灵活。它在现代网络中得到了广泛应用,特别是在设备数量众多且需求动态变化的环境中。
为什么DHCP不属于网络层而属于应用层? 因为它是网络层的管理者, 必然在更高层.DHCP(动态主机配置协议)被归类为应用层协议的主要原因是它的功能和作用范围:1. 作用范围和功能• DHCP的功能:DHCP用于动态分配IP地址以及网络配置(如子网掩码、网关地址、DNS服务器等)给主机。它的主要作用是简化网络管理和设备配置。• 网络层的职责:网络层负责数据包的路由和传递(如IP协议),它处理的是数据包的转发和路径选择,而不是主机的配置管理。DHCP的主要功能与网络层的职责无关,而是用于初始化和管理网络参数,这更符合应用层的作用。2. 运行机制• DHCP使用UDP协议进行通信,而UDP属于传输层协议。• DHCP工作在客户端和服务器之间,通过特定的UDP端口(67和68)交换消息。这种设计符合应用层协议的模式,即依赖传输层来传递数据。3. 面向用户的交互• DHCP协议直接支持网络管理和配置任务,例如动态分配IP、续租、释放IP等。这些是应用程序或操作系统中的功能,面向用户层面。• 应用层协议通常用于实现类似的服务逻辑,因而DHCP被归为此类。4. 与网络层协议的关系DHCP与网络层协议(如IP)的关系是提供支持和配置:• 在设备还没有获得IP地址之前,DHCP通过广播通信工作。• DHCP实际上是在帮助网络层协议的运行(分配IP地址和其他网络参数),但它本身不负责数据包的转发或路由。总结DHCP是应用层协议,因为它的作用是提供网络配置服务,这是一种应用级别的功能,而不是直接参与数据包的转发或路由。
地址解析协议(Address Resolution Protocol, ARP)
通过IP地址寻找MAC地址
ARP(地址解析协议)是一个在计算机网络中广泛使用的协议,主要用于在IPv4网络中将网络层的IP地址映射到数据链路层的MAC地址。它是局域网中设备互相通信的一个基本工具,特别是在以太网(Ethernet)和其他链路层技术上。
ARP的作用和重要性
在OSI模型中,网络层(第三层)和数据链路层(第二层)分别负责不同的任务。网络层主要处理的是IP地址,而数据链路层则处理的是MAC地址。因为数据链路层上的通信需要通过MAC地址来传输帧,而网络层使用的是IP地址。两者之间的映射是通过ARP协议来完成的。
具体来说,ARP的作用是:
- IP地址到MAC地址的映射:ARP使得设备能够从目标设备的IP地址找到它对应的MAC地址,从而在局域网内正确地发送数据帧。
IP地址和MAC地址的关系就像是住宅地址和身份证号, 二者配合工作才能精确定位一个主机/人
ARP的工作原理

ARP的工作过程分为几个步骤,下面详细解释每个步骤:
- ARP请求:
- 当源设备(比如主机A)想要与同一网络中的另一台设备(比如主机B)通信时,源设备首先会检查它的ARP缓存(一个本地存储IP地址和MAC地址映射的表格),看看是否已经知道目标设备的MAC地址。
- 如果没有找到目标设备的MAC地址,源设备就会发送一个ARP请求。这个请求是一个广播帧,意味着它会发送到网络上的所有设备,而不仅仅是目标设备。
- ARP请求包的内容包括:源设备的MAC地址、源设备的IP地址、目标设备的IP地址(这是源设备想要找到MAC地址的IP地址)。
- ARP响应:
- 所有设备接收到ARP请求后,会检查请求包中的目标IP地址,只有与请求中目标IP地址匹配的设备(即目标设备)才会响应。
- 目标设备会发送一个ARP响应,它是一个单播帧,包含目标设备的MAC地址以及它自己的IP地址。这个响应包将直接发送给源设备。
- 更新ARP缓存:
- 当源设备收到目标设备的ARP响应后,它会将目标设备的IP地址和MAC地址的映射关系存储到ARP缓存中。这样,在未来与目标设备通信时,源设备就不需要再次进行ARP请求了。
- 通常,ARP缓存中的映射会有一个过期时间,超过一定时间后会被清除,避免ARP缓存表中的信息过时。
- 数据传输:
- 一旦源设备得到了目标设备的MAC地址,它就可以将数据封装成以太网帧,并使用目标设备的MAC地址作为目的地址来发送数据。这个过程是通过数据链路层进行的。
ARP缓存
每个设备都有一个ARP缓存表,这个表格存储了设备已知的IP地址与MAC地址的映射。ARP缓存有以下特点:
- 动态更新:当设备发出ARP请求并收到ARP响应时,ARP缓存会自动更新。
- 过期时间:为了避免ARP缓存中的条目变得过时,缓存条目通常会有一个有效期(例如几分钟)。如果某个条目过期,设备将需要再次通过ARP请求获取目标设备的MAC地址。
ARP的类型
ARP有两种常见类型:
- ARP请求:用于请求目标设备的MAC地址,通常是一个广播包,发送给网络中的所有设备。
- ARP响应:用于应答ARP请求,包含目标设备的MAC地址,是一个单播包,直接发送给请求设备。
ARP的安全问题
虽然ARP在局域网中是非常有用的,但它也存在一些安全风险。由于ARP请求是广播的,任何设备都可以伪造ARP响应(即“ARP欺骗”或“ARP中毒”)。恶意设备可能会通过伪造ARP响应来改变网络中设备的MAC地址映射,从而导致数据流向错误的设备,甚至被中间人窃听或篡改。
为了解决这个问题,有些网络采用静态ARP表,或通过加密、认证等手段增强ARP协议的安全性。此外,也有一些工具和技术(例如动态ARP检查)用于检测和防止ARP欺骗。
ARP与IPv6
在IPv6中,ARP被邻居发现协议(NDP)所取代。NDP提供了与ARP相似的功能,但它采用了更先进的安全机制,如使用ICMPv6协议,并支持IP地址的自动配置。
总结
ARP是计算机网络中不可或缺的一部分,它帮助设备在局域网内通过IP地址查找MAC地址,并实现数据链路层上的通信。理解ARP的工作原理对于网络管理、故障排除以及安全防护都是非常重要的。
ARP与网际通信
网际通信的途径: 默认网关与ARP代理
默认网关
本地网络与其他网络的界面
默认网关(Default Gateway)是计算机网络中用来将本地网络与其他网络(通常是互联网)连接的设备或路由器。默认网关充当一个中介,负责将数据包从本地网络转发到目标网络(例如外部网络)上去。
基本原理
当一台设备要与另一个设备通信时:
- 如果目标设备在同一局域网(LAN)内,数据直接发送到目标设备。
- 如果目标设备不在同一局域网内,数据就会发送给默认网关,由默认网关将数据转发到其他网络或目的地。
默认网关的作用
- 在网络通信中,如果设备找不到目标地址,它会将数据发送到默认网关,由网关决定如何进一步转发数据。
- 默认网关是出局数据的“出口”。
一个简单的例子
假设你的电脑 IP 地址是 192.168.1.2,默认网关是 192.168.1.1(通常是你的路由器地址)。当你想访问外部网站(如 www.example.com)时:
- 你的电脑发送请求给默认网关 192.168.1.1。
- 默认网关(路由器)将请求转发到互联网服务提供商(ISP)的网络,再到网站服务器。
- 服务器响应数据通过默认网关返回给你的电脑。
配置与查看
- 在 Windows 系统中,可以通过命令行 ipconfig 查看默认网关。
- 在 Linux 和 macOS 系统中,可以通过 route -n 或 ip route 命令查看。
总结:默认网关是设备在无法直接找到目标地址时,所发送数据包的“去向”设备,它通常是路由器。
ARP代理
ARP代理(ARP Proxy)是一种网络技术,它允许一个网络设备代替另一个设备响应ARP请求。通常情况下,ARP是由设备直接处理的,用于解析IP地址到MAC地址的映射。然而,在一些特定的网络配置中,可能会需要通过ARP代理来代理ARP请求和响应。
何时需要ARP代理?
在以下几种情况下,ARP代理非常有用:
- 路由器或网关的作用:
- 如果设备(如路由器)位于两个不同子网之间,ARP代理可以帮助路由器在子网之间“代理”ARP请求。例如,一个设备在子网A上,它需要与子网B上的设备通信。当设备A发出ARP请求时,它实际上并不直接与目标设备的MAC地址通信,而是将请求发送给路由器,路由器会代理请求并返回其在子网B上的MAC地址。这样,设备A可以通过路由器与子网B上的设备通信。
- 多个子网中的跨网段通信:
- 在大型网络中,可能会存在多个子网,且这些子网的IP地址属于不同的网络段。在这种情况下,ARP代理使得来自不同子网的设备能够通过代理的方式发送ARP请求,避免跨子网的ARP请求广播。
- 网络桥接:
- 在某些网络架构中,两个物理或逻辑分隔的子网通过一个桥接设备(比如交换机或路由器)连接。ARP代理可以帮助这个桥接设备转发或响应ARP请求,使得这些设备看起来像是在同一个网络中。
ARP代理的工作原理
ARP代理的工作原理基于一个简单的概念:当设备(通常是路由器或网关)接收到ARP请求时,它不会将请求广播到整个网络,而是直接回应请求。具体来说,ARP代理的工作步骤如下:
- 设备发送ARP请求:
- 假设设备A(在子网A中)希望与设备B(在子网B中)通信。设备A会发出一个ARP请求,询问目标IP地址对应的MAC地址。
- 这个ARP请求是广播的,所有设备都会收到这个请求。
2. ARP代理接收到请求:
- 在这个例子中,设备A和设备B位于不同的子网,且它们之间的通信通过一个路由器(或其他网络设备)来完成。假设路由器有多个网卡,一个连接到子网A,另一个连接到子网B。
- 路由器会接收到设备A发出的ARP请求,询问设备B的MAC地址。路由器知道目标IP地址位于子网B,因此路由器就会代理ARP请求。
3. ARP代理响应:
- 路由器(ARP代理)在收到ARP请求后,不会把请求转发到子网B。相反,它会向设备A回应自己的MAC地址(即它在子网A的接口的MAC地址),告诉设备A它是设备B的代理。
- 设备A收到响应后,会将数据发送到路由器,路由器负责将数据转发到设备B。
4. 通信继续进行:
- 设备A通过路由器将数据包发送到子网B,路由器会把这些数据包转发给设备B。
- 设备B可以通过类似的方式与设备A进行通信,只是ARP代理的角色有所变化。
ARP代理的应用场景
- 跨子网的通信:
- 在大型网络中,子网之间的ARP请求和响应通常会被路由器或网关拦截和代理。这样,不同子网中的设备不需要直接广播ARP请求,而是通过代理进行通信。ARP代理有助于减少广播流量,并且可以确保不同子网之间的设备能够进行通信。
- NAT(网络地址转换)和VPN:
- 在NAT环境下,外部IP地址可能会映射到内部网络中的多个设备,ARP代理可以确保外部网络能够正确地解析内部设备的MAC地址。
- 在VPN(虚拟专用网络)环境中,ARP代理也可以帮助通过VPN隧道转发ARP请求,从而使VPN内的设备能够与本地网络上的设备进行通信。
- 高可用性和负载均衡:
- ARP代理也常用于高可用性和负载均衡的场景中。例如,使用ARP代理来支持多个服务器共享一个虚拟IP地址。当客户端发送ARP请求时,ARP代理会提供虚拟IP地址对应的MAC地址,帮助客户端访问到不同的服务器。
ARP代理与ARP请求/响应的区别
- ARP请求:当设备需要知道目标设备的MAC地址时,发出ARP请求,通常是广播到网络上的所有设备。
- ARP响应:当设备收到ARP请求,并且目标设备对应的IP地址与自己匹配时,目标设备会发送ARP响应,告知源设备自己的MAC地址。
- ARP代理:当路由器或网关设备接收到ARP请求,并代理响应时,它代替目标设备返回MAC地址,而不是将ARP请求广播给目标设备。
ARP代理的优缺点
优点:
- 减少网络广播:通过代理ARP响应,ARP代理可以避免在不同子网之间频繁的ARP广播,减少网络上的带宽消耗。
- 简化路由:允许跨子网通信,不需要设备在物理上位于同一子网内,也能够通过代理ARP响应进行通信。
- 支持虚拟IP地址:支持虚拟IP地址的实现,在负载均衡和高可用性设置中尤其有用。
缺点:
- 增加网络设备负担:ARP代理需要额外的处理步骤,会增加路由器或网关的工作负担。
- 安全性问题:ARP代理可能会被滥用来实施ARP欺骗或中间人攻击,从而可能导致数据包被拦截或篡改。
总结
ARP代理是一种网络技术,它允许路由器或网关设备代替目标设备响应ARP请求,特别用于跨子网的通信和多个子网间设备的互联。它通过代理ARP响应来确保通信设备能够正确地识别彼此的MAC地址,从而完成数据链路层的通信。ARP代理在现代网络中非常重要,尤其是在复杂的网络架构和大规模部署中。
网络层服务
面向连接的网络层服务

注: 面向连接的网络服务并不是有连接的网络服务(线路交换), “连接”建立在逻辑层面而非物理层面
面向连接的网络层服务(Connection-Oriented Network Layer Service)是一种网络通信服务模型,其中在发送数据之前,通信双方必须首先建立一个明确的通信连接。这种服务模型在网络层(如OSI模型中的第三层)中提供可靠的数据传输,确保数据的正确顺序、完整性以及可靠的传输。
面向连接的网络层服务与无连接的网络层服务(如IP协议)相对,后者不需要建立连接即可进行数据传输,通信双方每次传输的数据都是独立的。
面向连接的网络层服务的工作原理
面向连接的网络层服务可以分为几个阶段,包括连接的建立、数据传输和连接的拆除。以下是详细的工作过程:
- 连接建立:
在通信开始之前,发送方和接收方需要先建立一个连接。这通常由网络层协议(如X.25或ATM)通过特定的信令协议来完成。连接建立阶段包括以下几个步骤:
- 初始通信:发送方和接收方之间交换控制消息,确认彼此的存在和准备好建立连接。
- 资源分配:网络层会为该连接分配必要的资源,比如带宽、缓存和路由路径等,确保数据传输的质量和可靠性。
- 连接确认:当双方的系统都准备好后,连接建立成功,双方可以开始数据传输。
2. 数据传输:
一旦连接建立,数据的传输可以在双方之间进行。这时,网络层协议会确保数据包按照顺序传送,不会丢失,并且如果出现错误或丢包,协议会进行重传。
- 顺序保证:面向连接的服务保证发送的数据包按照发送的顺序被接收。
- 可靠性保证:数据的可靠传输通常通过确认机制、重传机制和错误检测来保证。例如,发送方在发送数据包后,会等待接收方的确认,若确认没有收到或数据丢失,发送方会重新发送数据包。
- 连接拆除:
当数据传输完成,通信双方需要结束连接。在这一阶段,发送方和接收方会通过一系列控制消息来拆除连接,释放资源,确保网络的资源得到正确管理。
- 拆除过程:连接的拆除需要双方协商,确保数据传输的完整性和网络资源的回收。
- 断开确认:双方会交换断开连接的确认消息,确保双方都同意断开连接。
面向连接的网络层服务的特点
面向连接的网络层服务具备以下主要特点:
- 可靠性:
- 在数据传输过程中,面向连接的服务提供可靠性保证。例如,通过使用确认机制(ACK)来确认数据是否成功到达接收方。如果发送的数据丢失或发生错误,网络层会进行重传,确保数据最终能被可靠传输。
- 顺序控制:
- 数据包会按照发送的顺序到达接收方。如果数据包到达的顺序错误,接收方会重新排序数据包,确保数据的顺序是正确的。
- 流量控制:
- 面向连接的服务通常提供流量控制机制,防止发送方过快地发送数据导致接收方的缓冲区溢出。流量控制确保网络层不会导致拥塞或数据丢失。
- 错误检测与恢复:
- 网络层协议会使用校验和等技术来检测数据在传输过程中是否出现了错误。一旦检测到错误,协议会进行纠正和重传,保证数据完整性。
- 资源预留:
- 在建立连接时,面向连接的网络层服务通常会为通信提供所需的网络资源,如带宽、路由路径、缓存等。这些资源在连接结束后会被释放。
面向连接的网络层服务的例子
一些典型的面向连接的网络层协议包括:
- X.25:X.25是一个广泛使用的面向连接的网络协议,它在传输数据之前建立一个虚拟电路,并提供可靠的数据传输。X.25协议通过确认和重传机制确保数据的可靠传输,并使用流量控制和错误恢复来提高通信质量。
- ATM(异步传输模式):ATM是一种面向连接的通信协议,它提供高效的、面向连接的数据传输。ATM将数据分割成固定大小的小单元(称为单元,cell),并为每个单元分配一个虚拟通道标识符(VCI)来管理网络连接。ATM保证数据的顺序和可靠性。
- Frame Relay:Frame Relay是一种面向连接的宽带协议,常用于连接局域网和广域网。它在连接建立后提供可靠的数据传输,确保数据按顺序到达,并通过虚拟电路的方式管理传输。
面向连接的网络层服务与无连接服务的对比
面向连接的网络层服务与无连接的网络层服务(如IP协议)有着显著的区别:
特性 面向连接的服务 无连接的服务
连接要求 需要在数据传输前建立连接 不需要建立连接,数据包可以直接发送
可靠性 提供可靠的数据传输,支持重传和错误恢复 不保证可靠性,数据可能丢失或乱序
数据顺序 保证数据按顺序到达 不保证数据顺序
资源分配 需要为连接分配网络资源(带宽、缓存等) 不涉及资源分配,数据包按需传输
流量控制和拥塞控制 提供流量控制,防止网络拥塞 不提供流量控制
协议示例 X.25、ATM、Frame Relay IP、UDP
面向连接的网络层服务的优势与劣势
优势:
- 高可靠性:面向连接的服务通过确认机制、重传机制等保障数据的可靠传输。
- 顺序保障:确保发送的数据按正确顺序到达接收方,不需要接收方重新排序。
- 流量控制:避免因发送速率过快导致接收方拥塞。
劣势:
- 建立和拆除连接的开销:建立和拆除连接需要交换多次控制信息,增加了通信的延迟。
- 资源消耗:需要为每个连接分配网络资源,增加了系统的复杂性和资源的消耗。
- 不适合实时应用:由于建立连接、传输和拆除的过程较为复杂,面向连接的服务可能不适用于对实时性要求高的应用(如流媒体、视频通话等)。
总结
面向连接的网络层服务通过在通信之前建立连接、确保数据的可靠传输、顺序控制、错误恢复等机制,提供了可靠、稳定的数据传输。虽然这种服务模型在一些场景下非常有用,但它也有一定的开销和复杂性,因此在不要求高可靠性或实时性的应用中,更多的网络层服务使用无连接的协议,如IP。
无连接的网络层服务

无连接的网络层服务(Connectionless Network Layer Service)是一种网络通信服务模型,在这种模型中,数据包的传输不需要建立和维护通信连接。每个数据包都是独立的,发送方直接将数据包发送到目标地址,不需要事先协商或保持持续的连接状态。无连接服务是网络中传输数据的一种简洁、高效但可能不可靠的方式。
无连接的网络层服务的工作原理
在无连接的网络层服务中,数据包的传输过程不依赖于任何预先建立的连接。每个数据包都包含完整的目的地址和其他必要信息,独立处理,不需要与其他数据包建立依赖关系。以下是无连接服务的基本工作步骤:
- 数据包的发送:
- 发送方创建一个数据包并附上目标设备的IP地址。数据包通过网络直接发送,而不需要与接收方建立任何持久的连接。
- 数据包的传输:
- 数据包在传输过程中可能经过多个路由器或交换机。每个路由器根据目的IP地址转发数据包,直到数据包到达目标设备。
- 数据包传输过程中,各个数据包是独立的,即使它们属于同一通信会话,它们的传输并不依赖于其他数据包。
- 接收方的处理:
- 接收方收到数据包后,根据数据包中的目标地址处理该数据包。如果有多个数据包,它们可能会乱序到达,但接收方会将其按正确的顺序重新排列(如果协议支持此功能),或丢弃无法正确重组的数据包。
无连接的网络层服务的特点
无连接的网络层服务具备以下特点:
- 不需要建立连接:
- 在发送数据之前,无连接的服务不需要进行连接的建立和拆除。发送方直接将数据包发送到目标地址,目标地址通常是目标设备的IP地址。
- 数据包独立性:
- 每个数据包都是独立处理的,它们之间没有依赖关系。即使多个数据包属于同一个会话,它们也会被当作独立的单元处理和传输。
- 不保证可靠性:
- 无连接的服务通常不提供数据传输的可靠性保证。数据包可能会丢失、损坏或乱序到达,且发送方不会等待确认响应。
- 不提供顺序保证:
- 数据包的到达顺序不被保证,接收方接收到的数据包可能与发送顺序不一致。
- 低开销:
- 无连接的服务没有连接建立和维护的开销,因此通常比面向连接的服务效率更高,适用于需要低延迟的应用。
- 路由选择:
- 数据包在传输过程中,每个数据包可能选择不同的路由。每个数据包包含目的地址,路由器根据该地址决定数据包的转发路径。
无连接的网络层服务的协议
最典型的无连接网络层协议是 IP协议(Internet Protocol)。IP协议是现代互联网通信的基础,几乎所有的网络设备和互联网通信都依赖于IP协议来进行数据包的路由和转发。
- IP协议(IPv4/IPv6):
- IPv4 和 IPv6 都是无连接协议。它们负责在网络中进行数据包的路由,确定数据包的源和目标地址,但它们本身不提供数据传输的可靠性保证。IP协议只确保数据包能够被传输到正确的目的网络地址,不保证数据包按顺序到达或不丢失。
- 在IP协议中,每个数据包被称为“IP数据报”。每个数据报都是独立的,它携带完整的源和目的IP地址信息,可以通过不同的路径进行转发。路由器在转发数据报时会根据目的地址选择最优路径,但这并不意味着数据报的顺序或完整性得到保证。
无连接的网络层服务的优势与劣势
优势:
- 低延迟和高效率:由于不需要建立连接和维护状态,数据传输过程简洁高效,适合延迟要求高的应用。
- 灵活性:每个数据包都是独立的,它可以通过不同的路径进行路由。这使得网络能够灵活地应对路由器故障和网络拓扑变化。
- 较少的资源消耗:没有连接的维护和拆除过程,网络资源(如带宽、缓冲区)消耗较少。
劣势:
- 不可靠:数据包可能丢失、乱序或损坏,且不进行重传或错误恢复。需要依赖上层协议(如TCP)来提供可靠性。
- 缺乏顺序保证:由于每个数据包是独立的,接收方可能会接收到乱序的数据包。
- 应用层需额外处理:上层协议(如TCP、UDP)或应用层需要自己处理数据的可靠性、顺序和完整性。
无连接的网络层服务的应用
无连接的网络层服务特别适合于以下应用场景:
- 实时通信:如语音和视频通话,通常对延迟要求较高,而无需严格的可靠性和顺序保证。在这种场景下,丢失少量的数据包对最终体验影响不大。
- 流媒体应用:例如在线视频流和广播电视流。对于流媒体应用,数据传输速度和延迟更为重要,且可以容忍一定程度的数据丢失。
- 互联网的基础传输:IP协议作为互联网的核心协议,广泛应用于各种网络设备之间的通信。尽管IP本身不提供可靠性,但它提供了一个灵活且高效的数据传输机制。
总结
无连接的网络层服务提供了高效、低开销的通信方式,它通过独立的数据包传输不需要事先建立连接或维持通信状态。尽管它不保证数据的可靠性和顺序,但在许多应用中,这种高效、低延迟的特点使得无连接的服务成为了理想的选择。
路由和路由协议

路由是网络通信的核心,涉及数据包在网络中的路径选择。根据不同的配置和管理方式,可以分为静态路由、动态路由和路由协议。
静态路由 (Static Routing)
定义:
静态路由是网络管理员手动配置的一条固定路由路径。这些路由不会根据网络状况自动更新,始终按照管理员配置的路径转发数据。
特点:
- 固定性:路由表中的路径由管理员手动定义,保持不变,除非管理员手动更新。
- 简单性:适用于网络拓扑结构简单且变化较少的场景。
- 高效性:因为无需计算动态路由,减少了路由器的计算开销。
优点:
- 控制力强,适用于小型网络或关键连接。
- 不会产生路由协议的额外开销。
缺点:
- 难以适应网络变化,需要手动修改配置。
- 不适合大型动态变化的网络。
应用场景:
- 小型网络,结构稳定,拓扑简单。
- 特定路径需要明确控制时,例如公司总部到分支机构的专线连接。
动态路由 (Dynamic Routing)
定义:
动态路由是由路由器自动生成的路由路径,根据网络变化实时更新。通过路由协议实现,动态路由可以自动适应网络拓扑的变化。
特点:
- 自适应性:网络变化时,动态路由可以自动更新。
- 复杂性:需要路由协议支持,例如 OSPF、RIP、EIGRP 等。
- 计算开销:路由器需要计算最佳路径并更新路由表。
优点:
- 高度自动化,减少人工配置。
- 能动态适应网络拓扑的变化。
- 适合复杂、大型、动态变化的网络。
缺点:
- 需要额外的资源来运行路由协议。
- 配置和管理复杂度较高。
应用场景:
- 大型企业网络、运营商网络等复杂网络环境。
- 网络拓扑频繁变化的场景。
路由协议 (Routing Protocol)
主要职责: 计算最短路径, 维护路由表
定义:
路由协议是动态路由的核心,用于在路由器之间交换路由信息,并根据协议规则计算最优路径。仅用于网络设备之间的通信(维护路由表),不直接负责实际数据的传输。
分类:
自治系统是指在单一技术管理机构下运行的一组网络,使用统一的路由策略对外进行路由信息的交换。自治系统是互联网的基本组成单元,每个自治系统有一个唯一标识,称为自治系统号 (ASN, Autonomous System Number)。
自治系统的关键特性
- 单一管理:
- 一个自治系统通常由一个网络运营商、企业或组织管理。
- 其内部使用一致的路由策略或规则。
- 对外行为一致:
- 对外展现为一个整体,与其他自治系统通过边界网关协议 (BGP) 交换路由信息。
- 内部如何管理路由信息对外部是透明的。
- 路由策略自主性:
- 每个自治系统可以根据自己的需求设定路由策略(如流量优先级、带宽分配等)。
自治系统在 BGP 中的角色
在边界网关协议 (BGP) 中,自治系统是路由信息的关键单位,BGP 的主要功能是:
- 维护自治系统之间的连通性。
- 计算数据包的最优路径,基于自治系统路径 (AS Path)。
- 内部网关协议 (IGP): 在同一自治系统 (Autonomous System) 内运行的协议。
- RIP (Routing Information Protocol): 一种距离矢量路由协议,使用跳数(Hop Count)作为度量标准来确定数据包传输路径的优劣。
- 跳数:数据包从源路由器到达目标路由器所经过的中间路由器数量。
- 特点
- 协议类型:距离矢量路由协议(Distance Vector)。
- 度量标准:跳数(最大跳数为 15,超过 15 视为不可达)。
- 更新周期:每 30 秒广播一次路由信息,容易占用网络带宽。
- 适用规模:小型网络。
- 版本:
- RIPv1:不支持子网掩码,属于无类路由协议(Classful)。
- RIPv2:支持子网掩码,属于有类路由协议(Classless)。
- 优缺点
- 优点:配置简单,适合小型网络。
- 缺点:收敛速度慢,容易产生路由环路,不适合大规模网络。
- IGRP(Enhanced Interior Gateway Routing Protocol): 内部网关路由协议, 使用DVP
- OSPF (Open Shortest Path First): 一种链路状态路由协议,使用最短路径优先(SPF)算法,也称为 Dijkstra 算法,根据链路的代价(Cost)计算到达目标的最佳路径。适用于复杂拓扑
- 协议类型:链路状态路由协议(Link-State)。
- 度量标准:代价(Cost),通常基于带宽。
- 更新机制:当网络拓扑发生变化时,触发更新;不像 RIP 定期广播。
- 分区结构:OSPF 将网络分为区域(Areas),提高可扩展性,减少资源消耗。
- 适用规模:适合中大型网络,支持复杂的网络拓扑结构。
- 无环路:通过 SPF 算法保证无路由环路。
- 优点:收敛速度快、支持大规模网络、无路由环路、高效使用带宽。
- 缺点:配置复杂,资源消耗较高。
- EIGRP (Enhanced Interior Gateway Routing Protocol): 思科私有协议,兼顾效率与灵活性。
- 距离矢量路由协议DVP和链路状态路由协议LSP的区别


特点
优缺点



- 外部网关协议 (EGP): 在不同自治系统之间交换路由信息的协议。
- BGP (Border Gateway Protocol): 主要用于互联网中,处理跨自治系统的路由。
路由协议的工作流程:
- 路由信息共享: 路由器通过路由协议交换路由表信息。
- 计算路径: 根据协议算法(如距离矢量或链路状态)计算最优路径。
- 更新路由表: 动态更新路由表,反映网络拓扑变化。
特点:
- 自适应:根据网络动态变化实时调整路由路径。
- 多样性:根据网络需求选择不同的协议类型。
被路由的协议(Routed Protocol)
- 定义:Routed Protocol 是指可以通过路由器传输的数据协议,即数据包在网络中进行实际传输时使用的协议。
- 功能:
- 定义数据包的格式和结构。
- 提供网络层的寻址功能(比如 IP 地址)。
- 支持数据的实际传输。
- 常见的 Routed Protocol:
- IPv4(Internet Protocol version 4)
- IPv6(Internet Protocol version 6)
- IPX(Internetwork Packet Exchange,较老的协议)
- AppleTalk(已过时的协议)
- 关键点:
- Routed Protocol 定义了数据的传输方式,是实际数据通信的基础。
Routing Protocol 支持 Routed Protocol:Routing Protocol 的作用是帮助路由器动态地学习和更新路由表,而 Routed Protocol 则使用路由表中的信息来决定数据包的转发路径。二者相互配合, 一个确定路径, 一个使用路径传输数据.
总结:
Routing Protocol 是负责路径发现和选择的“导航工具”,而 Routed Protocol 是负责数据传输的“交通工具”。两者结合,保证了数据在复杂网络中的高效传输和动态适应性。
可变长度子网掩码(VLSM)

可变长度子网掩码(VLSM,Variable Length Subnet Mask)是一种灵活的IP地址分配方法,允许在同一网络中使用不同长度的子网掩码。这种技术通过根据实际需求精细划分子网来提高IP地址的利用率,从而避免地址浪费。相当于划分子网的子网.
VLSM 的核心特点
- 灵活性
不同子网可以有不同的大小,具体取决于网络需求。较大的子网用于需要更多主机的部分,而较小的子网用于只需少量主机的部分。
- 高效利用地址空间
通过按需分配IP地址,VLSM 有助于减少未使用的IP地址浪费,特别适用于有限的IPv4地址场景。
- 层次化子网设计
VLSM 允许网络设计者将一个网络反复划分成多个更小的子网(递归划分)。
VLSM 的应用场景
- 局域网和广域网混合环境
- 局域网可能需要支持数十或数百台设备,子网掩码较短。
- 广域网连接(例如路由器之间的点对点链路)通常只需要两个IP地址,子网掩码可以更长(如 /30 或 /31)。
- 多层网络结构
- 企业网络中,核心层、汇聚层和接入层可以根据每层需求设计不同的子网大小。
VLSM 的基本操作步骤
- 确定网络需求
识别每个子网需要的主机数量。
- 按主机数量选择子网掩码
使用公式 ,计算每个子网的合适掩码。
- 分配地址块
从可用地址空间中按需分配地址块,确保地址不重叠。
- 记录分配结果
确保每个子网的网络地址、广播地址和有效主机范围清晰明了。
VLSM 的优势
- 地址节省:相比固定长度子网掩码(FLSM),能显著节省IP地址。
- 适配性强:满足不同网络规模的需求。
- 易扩展:新增子网时可以更灵活地调整。
- 路由聚合: 几个子网可以由一个路由器统一聚合管理(是一种层次化管理), 可以减少路由表表项的个数, 也可以用来独立管理拓扑变更. 即使几个子网本来不是连续的也可以用VLSM来聚合.


VLSM 的注意事项
- 规划过程中需要仔细避免子网地址的重叠(只有未用的子网才可以被进一步用可变长度子网掩码划分)。
- 在网络设备(如路由器)上配置时,需支持 VLSM 功能(例如运行RIPv2、OSPF、EIGRP 等支持 VLSM 的路由协议)。
- 支持VLSM的协议: OSPF / Integrated IS-IS / EIGRP / RIP v2 / 静态路由
- VLSM的产物: 打破原来ABC类的固定IP类别划分, 产生无类别域间路由CIDR, 网络规模可以通过路由聚合和划分子网的子网灵活调整
对比FLSM:
在不可变长度子网掩码(FLSM,Fixed Length Subnet Mask)的情况下,网络
192.168.1.0/24
会被划分为若干大小相等的子网,每个子网的掩码长度相同。这种方法的特点是不允许子网进一步灵活划分。FLSM 的限制与特点
- 固定长度
每个子网的大小相等,即掩码长度必须一致。例如, 192.168.1.0/24 的子网只能划分为:
192.168.1.0/25
和192.168.1.128/25
(两个子网,每个子网有 128 个地址)。
- 或进一步划分为
192.168.1.0/26
、192.168.1.64/26
、192.168.1.128/26
、192.168.1.192/26
(四个子网,每个子网有 64 个地址)。
- 缺乏灵活性
如果不同子网的主机需求差异较大,就可能导致 IP 地址的浪费。例如:
- 一个子网需要 100 台主机,而另一个子网只需 10 台主机,在 FLSM 中,它们都必须分配相同大小的子网(如
192.168.1.0/25
),从而造成小子网的地址浪费。
- 适用于简单网络
FLSM 适合主机需求基本相同的场景,比如早期的网络设计或小型网络。在使用 FLSM 时,网络
192.168.1.0/24
不是“完全不可划分”,而是必须按照统一的掩码长度划分为多个大小相等的子网。这种方式简单,但缺乏灵活性,容易导致 IP 地址浪费,尤其是在主机需求差异较大的网络中。无类别域间路由CIDR
CIDR(Classless Inter-Domain Routing, 无类别域间路由) 是一种用于优化IP地址分配和路由的技术。它突破了传统的IP地址分类方法(A类、B类、C类网络),使IP地址的划分和分配更加灵活高效。
CIDR 的核心概念
- 无类
CIDR 不使用传统的A类、B类、C类网络边界,而是允许通过任意长度的子网掩码对地址进行划分。
例如:
- 传统C类网络: 的默认子网掩码是 ,即 /24。
- CIDR 允许将 细分为多个更小的子网(如 /26、/28),或合并为更大的网络(如 /22)。
- CIDR 表示法
使用斜杠“/”后接子网掩码的位数表示网络。例如:
- 192.168.1.0/24:子网掩码为 255.255.255.0。
- 192.168.1.0/26:子网掩码为 255.255.255.192。
- 10.0.0.0/8:子网掩码为 255.0.0.0。
- 聚合路由
CIDR 支持路由聚合(Supernetting),通过将多个连续的网络合并为一个更大的地址块,减少路由表项的数量。例如:
- 192.168.0.0/24 和 192.168.1.0/24 可以聚合为 192.168.0.0/23。
CIDR 的优势
- 更高的地址利用率
- 不再被限制于固定的A、B、C类网络边界。
- 根据实际需求分配地址,避免浪费。
- 灵活的网络划分
- 支持任意长度的子网掩码,可以根据主机数量灵活调整子网大小。
- 更少的路由表项
- 通过路由聚合(Supernetting),ISP 和核心路由器可以用更少的条目管理更多的网络。
- 兼容性强
- CIDR 是现代路由协议(如 OSPF、BGP)的基础,并取代了旧的基于类别的路由。
CIDR 与 VLSM 的关系
- CIDR 是一种全局地址分配技术,旨在高效分配地址和减少路由表项。
- VLSM 是在单个网络中灵活划分子网的技术。
两者结合使用可以最大化 IP 地址的利用率。
总结
CIDR 是现代IP地址管理和路由的核心技术,解决了早期基于类别的网络设计中的很多问题。它通过灵活的地址分配和高效的路由,成为IPv4 和 IPv6 网络中的标准。
因特网控制报文协议(ICMP)
Auxiliary
因特网控制报文协议(ICMP,Internet Control Message Protocol) 是一种用于网络设备之间传递控制信息和错误消息的网络层协议。它是 IP协议 的辅助协议,通常由路由器、主机等网络设备用于诊断网络问题和管理网络连接。
ICMP 的主要特点
- 网络层协议
ICMP 工作在网络层(OSI模型的第3层),用于传递与IP相关的控制信息。
- 报文辅助功能
它不是用于传输数据,而是为IP协议提供错误报告、诊断和网络状况通知。
- 无连接
ICMP 是一种无连接协议,不提供可靠的数据传输。
ICMP 的主要用途
- 错误报告
- 当数据包无法到达目标,或网络出现问题时,ICMP 报告错误。例如:
- 主机不可达(Destination Unreachable)
- 超时(Time Exceeded)
- 重定向消息(Redirect)
- 网络诊断
- 用于诊断网络连接问题:
ping
命令:测试目标设备是否可达。
traceroute
命令:确定数据包到达目标路径上的中间跳数。
3. 状态查询
- 查询网络设备或主机的状态,例如时间戳请求(Timestamp Request)。
ICMP 报文类型
ICMP 报文分为两大类:
- 错误报文 / 差错报告报文
- 目的地不可达(Type 3):目标地址不可达或协议不支持。
- 时间超时(Type 11):数据包在传输过程中超时。
- 参数问题(Type 12):IP数据包的头部格式错误。
- 源抑制(Type 4):通知源主机减少发送速率(现代网络中几乎不使用)。
- 改变路由
- 信息报文 / 查询报文
- 回显请求和应答(Type 8 和 Type 0):用于 ping 命令。
- 时间戳请求和应答(Type 13 和 Type 14):同步设备间的时间。
- 地址掩码请求和应答(Type 17 和 Type 18):获取子网掩码(现代网络中很少使用)。
- 路由器询问和通告
ICMP报文格式
ICMP报文是IP层数据报的数据, 和数据报首部共同组成IP数据报被发送出去

差错报告报文


ICMP 的常见工具
Ping
- 基于 ICMP 的回显请求和回显应答。
- 用于测试目标设备是否在线以及网络延迟。

Traceroute
- 使用 ICMP 的超时报文(或 UDP、TCP),跟踪数据包到达目标的路径。
ICMP 的局限性
- 安全性问题
- ICMP 可被攻击者利用,如:
- ICMP 洪泛攻击(Ping Flood):利用大量的 Ping 请求耗尽网络资源。
- ICMP 重定向攻击:伪造 ICMP 重定向消息,劫持流量。
- 出于安全考虑,许多网络设备限制 ICMP 的使用。
- 非数据传输协议
- 只用于控制和诊断,不能传输用户数据。
ICMP 在IPv4和IPv6中的区别
- IPv4 使用 ICMPv4
- 与 IPv4 协议配合使用。
- IPv6 使用 ICMPv6
- 除了错误报告和网络诊断,还支持邻居发现协议(NDP)等功能,显著扩展了其用途。
总结
ICMP 是网络通信中不可或缺的一部分,它为 IP 提供了错误检测、网络诊断和管理能力。虽然功能简单,但它在定位网络故障和优化网络性能方面发挥了重要作用。