计算机网络(第四章)
网络层
一、网络层提供的两种服务
- 虚电路 :虚电路是一种在通信开始之前建立连接的方式。它类似于电话通话,双方在通话前要建立连接;
- 数据报 :数据报是一种无连接的通信方式。每个数据包(数据报)独立地发送,可能会经过不同的路径;
二、IP 协议
背景:
- IP 协议:核心协议,负责数据包的传输与寻址,是互联网通信的基础。
- 与 IP 协议配套使用的还有三个协议:
- 地址解析协议 ARP(AddressResolutionProtocol):用于根据 IP 地址查询 MAC 地址。
- 网际控制报文协议 ICMP(InternetControlMessageProtocol):用于查询报文转发路径、反馈网络故障。
- 网际组管理协议 IGMP(InternetGroupManagementProtocol):用于控制、管理组播设备和报文。
-
IP 地址的结构:
- IP 地址通常由 32 位二进制数构成,分为四个 8 位部分(即四个字节),以十进制形式表示时,通常用点分十进制表示,如 192.168.1.1。
- 通常其 IP 地址分为两个固定长度的字段:
- 网络号 net-id
- 主机号 host-id
- IP 地址的两个字段随着不同位数的大小划分为多种类型的地址,常见的三种类型如下:
- A 类地址 (Class A):
- 从 1.0.0.0 到 126.0.0.0
- 每个网络可以拥有约 1677 万个主机(224 - 2)
- 适用于大型网络,如大型公司和互联网服务提供商(ISP)
- B 类地址 (Class B):
- 从 128.0.0.0 到 191.255.0.0
- 每个网络可以拥有约 65,000 个主机(216 - 2)
- 适用于中型网络,如大学校园和中型企业。
- C 类地址 (Class C):
- 从 192.0.0.0 到 223.255.255.0
- 每个网络可以拥有约 254 个主机(28 - 2)
- 适用于小型网络,如小型企业和家庭网络。
- A 类地址 (Class A):
- 网络号和主机号
- 全 0 地址 (0.0.0.0):表示一个未指定的地址,通常用于表示“当前主机”或“未知主机”
- 全 1 地址 (255.255.255.255):全 1 地址是一个广播地址,用于在本地网络上发送广播消息。
- 从 127.0.0.0 到 127.255.255.255 是特殊的回环地址(Loopback Address),用于网络设备自我测试和内部通信。
- 超网、IP 地址划分子网和子网掩码:
- 使用 CIDR 地址块可以表示很多地址,它使得路由表中的一个项目可以表示很多个(例如上千个)原来传统分类地址的路由,这被称为路由聚合,路由聚合也称为构成超网(supernetting)。
- 子网是将一个大的网络分割成多个小网络的过程。每个小网络称为子网,目的是提高网络的管理效率和性能。
- 子网掩码是一种用于区分 IP 地址中网络部分和主机部分的工具。它与 IP 地址相结合,帮助路由器和设备确定数据包的发送方向。
- 划分子网纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络。
- 掩码的表示:
- 十进制表示:例如,常见的子网掩码有 255.255.255.0。
- CIDR 表示:使用斜杠表示法,如 192.168.1.0/24,表示前 24 位是网络部分,剩余的 8 位是主机部分
- 子网掩码的每一位与 IP 地址的对应位进行“与”运算(AND),可以提取出网络地址
- 子网划分:
- 假设你有一个 IP 地址 192.168.1.0/24,想将其划分为 4 个子网,则为 22 ,新增两位,如果是划分 8 个,则为 23 :
即划分子网时,每增加 N 倍的子网数量,就需要在原来的子网掩码基础上增加 log₂(N) 位
- 路由聚合:路由聚合是将多个 IP 地址块合并为一个更大的地址块的过程,以减少路由表中的条目数量。
- 减少路由表大小:通过聚合,路由器可以更有效地管理路由信息,降低内存和处理的需求。
- 提高路由效率:减少查找时间,加快数据包转发速度。
- 如果有多个子网 192.168.1.0/24、192.168.2.0/24 和 192.168.3.0/24,可以聚合为 192.168.0.0/22
- 路由表查找:
- 二叉线索查找是一种基于二叉树的数据结构,用于高效查找和存储 IP 地址及其对应的路由信息。二叉线索查找是一种基于二叉树的数据结构,用于高效查找和存储 IP 地址及其对应的路由信息
- IP 地址的重要特定:
- 分级地址结构:主要由网络号和主机号组成。
- 管理便利:IP 地址管理机构只需分配网络号,主机号由用户自行分配,简化了管理。
- 路由效率:路由器根据网络号转发数据包,减少路由表项目数,从而降低存储需求。
- 多归属主机:
- 一个主机若连接到多个网络,需拥有不同的 IP 地址,称为多归属主机(multihomed host)。
- 路由器通常连接至少两个网络,需具备两个不同的 IP 地址,以实现网络间的转发。
- 局域网连接:
- 通过转发器、网桥或交换机连接的多个局域网可视为一个网络,拥有相同的网络号(net-id)。
- 网络平等性:
- 所有分配到相同网络号的网络,无论是局域网还是广域网,都被视为平等。
- 分级地址结构:主要由网络号和主机号组成。
- IP 数据报的格式:
背景梳理:
- 字段(Field):每个独立的数据单元,具有特定的功能。例如,版本、首部长度、服务类型等都是字段。
- 字(Word):在 IP 首部的上下文中,32 位字(4 字节)是一个数据单位。首部长度字段以 32 位字为单位表示。
- 首部(Header):整个 IP 数据报的前面部分,由多个字段组成。首部包含控制和路由信息,用于正确传输数据包。包含固定部分(20 字节)+ 可变部分。
字段 | 长度(位) | 描述 |
---|---|---|
版本 | 4 | IP 协议版本号,IPv 4 为 4 。 |
首部长度 | 4 | IP 首部的长度,其值用来表示首部字的数量,当其数值转为十进制 15 时,则此时首部总长度为 15*4 字节(固定+可变) |
服务类型 | 8 | 指示数据报的优先级和服务质量。只有在使用区分服务(DiffServ)时,这个字段才起作用。在一般的情况下都不使用这个字段 |
总长度 | 16 | 数据报的总长度,包括首部和数据部分,以字节为单位,其值用来表示整个 IP 中字的数量。 |
标识 | 16 | 数据报的唯一标识符,用于分片和重组。它是一个计数器,用来产生 IP 数据报的标识。被切片的多个数据报标识一致。 |
标志 | 3 | 控制分片的标志位,指示是否分片及最后一个分片。标志字段的最低位是 MF(MoreFragment)。MF=1 表示后面“还有分片”。MF=0 表示最后一个分片。标志字段中间的一位是 DF(Don’tFragment)。只有当 DF=0 时才允许分片。 |
片偏移 | 13 | 指示当前片在原始数据报中的位置。片偏移——占 13 位,指出:较长的分组在分片后某片在原分组中的相对位置。注意:片偏移以8个字节为偏移单位。 |
生存时间(TTL) | 8 | 数据报在网络中的生存时间,防止数据包在网络中无限循环。指示数据报在网络中可通过的路由器数的最大值。 |
协议 | 8 | 表示数据部分使用的传输层协议(如 TCP、UDP)。以便目的主机的 IP 层将数据部分上交给那个处理过程 |
首部检验和 | 16 | 对 IP 首部进行错误检测的检验和。只检验数据报的首部,不检验数据部分。这里不采用 CRC 检验码而采用简单的计算方法,以减少工作量。 |
源 IP 地址 | 32 | 发送方的 IP 地址。 |
目的 IP 地址 | 32 | 接收方的 IP 地址。 |
选项 | 可变 | 可选字段,提供额外的功能,如时间戳或安全设置。 |
数据部分 | 可变 | 实际传输的数据,根据协议类型(如 TCP、UDP)而变化。 |
三、ARP 协议
.
定义
- ARP(Address Resolution Protocol)是一种网络协议,用于将网络层地址(如 IPv 4 地址)映射到链路层地址(如 MAC 地址)。在以太网和其他基于 IP 的网络中,ARP 是实现设备间通信的关键。
作用
- 地址解析:将主机的 IP 地址转换为对应的 MAC 地址,以便在局域网中进行数据包的传输。
- 设备识别:帮助网络设备识别和定位其他设备,确保数据能够被正确路由到目标设备。
作用原理:
- ARP 请求:
当主机想要发送数据到某个 IP 地址,但不知道对应的 MAC 地址时,它会发送一个 ARP 请求。请求内容包括目标 IP 地址和源 IP 地址、源 MAC 地址。
这个请求是广播的,所有在同一局域网中的设备都会接收到这个请求。 - ARP 响应:
网络中的设备检查 ARP 请求中的目标 IP 地址。如果某个设备的 IP 地址与请求中的目标 IP 地址匹配,则该设备会发送一个 ARP 响应,包含其 MAC 地址。
ARP 响应是单播的,直接发送给发起请求的设备。 - 更新 ARP 缓存:
发起请求的设备收到 ARP 响应后,会将目标 IP 地址和对应的 MAC 地址存储在 ARP 缓存中,以便后续使用。 - 数据传输:
一旦设备获得目标 MAC 地址,就可以将数据包封装在以太网帧中,通过该 MAC 地址将数据发送到目标设备。
在这里插入图片描述
四、ICMP 协议
.
定义:
- ICMP(Internet Control Message Protocol)是互联网协议套件中的一部分,主要用于网络设备之间传递控制信息和错误消息。它并不用于传输数据,而是用于报告网络问题、进行故障排除和诊断
结构组成:
-
功能:
- 确认 IP 包是否成功到达目标地址
- 通知在发送过程中 IP 包被丢弃的原因
- .ICMP 是基于 IP 协议工作的,但是它并不是传输层的功能,因此仍然把它归结为网络层协议
- . ICMP 只能搭配 IPv 4 使用,如果是 IPv 6 的情况下, 需要是用 ICMPv 6
应用:
-
Ping 是基于 ICMP 的 Echo Request(回显请求) 和 Echo Reply(回显应答) 实现的。
-
Ping 主要用于检测网络连通性,并统计往返时间(RTT, Round Trip Time) 和 TTL(生存时间)。
-
具体过程:
- Ping 向目标主机发送 ICMP Echo Request(ICMP 类型 8,代码 0)。
- 目标主机收到后,回复 ICMP Echo Reply(ICMP 类型 0,代码 0)。
- 如果收到回复,则说明网络连通,并统计时间和 TTL。
- 如果没有回复:
- 可能目标主机不可达。
- 可能目标主机 ICMP 被禁用。
- 可能网络丢包。
ping 没有端口号,因为 ICMP 属于网络层(Layer 3),而端口号只存在于传输层(Layer 4)(如 TCP/UDP)。
-
-
Traceroute 也是基于 ICMP(Linux/macOS)或 UDP(Windows) 实现的,目的是追踪数据包经过的路由路径。
- 具体过程:
- Traceroute 发送 ICMP Echo Request / UDP 数据包,但每次发送时 TTL 递增。
- 当数据包 TTL 变为 0 时,路由器丢弃数据包,并返回 ICMP Time Exceeded(类型 11,代码 0)。
- Traceroute 通过每次 TTL 递增,直到到达目标主机,逐步打印出路径上所有经过的路由器 IP。
- 具体过程:
五、路由选择协议
.
路由器基础
- IP 数据报转发过程
- 接收数据报:路由器通过其网络接口接收一个 IP 数据报。
- 解析数据报头:路由器检查数据报的头部,提取目的 IP 地址。
- 查找路由表:根据提取的目的 IP 地址,路由器在路由表中查找匹配的路由条目,以确定最佳的转发路径。
- 选择下一跳:如果找到匹配的路由条目,路由器确定数据报的下一跳地址和出口接口。如果没有找到匹配,可能会使用默认路由。
- 更新数据报:在转发之前,路由器可能更新数据报的头部信息,例如 TTL(生存时间)值。- 转发数据报:路由器通过选定的出口接口将数据报发送到下一跳路由器或最终目的主机。
- 完成转发:数据报在网络中继续被转发,直到到达目标地址。
- 默认路由:默认路由是路由表中用于处理无法匹配的目的地址的特殊路由条目。
- 当路由器接收到一个数据包,其目的 IP 地址不在路由表中时,默认路由指示路由器将该数据包转发到预设的下一跳地址或接口。
- 默认路由通常被表示为一个特定的路由条目,其目的地址为 0.0.0.0,子网掩码为 0.0.0.0。
路由算法(又叫选路算法,算法的目的是找到一条从源路由器到目的路由器的最佳路径)
- 分组转发算法
- 距离向量算法
- 链路状态算法
分层次路由选择
- 自治系统(AS):自治系统(Autonomous System,简称 AS)是指在网络中由一个或多个网络运营商管理的 IP 网络集合,对外具有统一的路由策略和管理。每个自治系统在互联网中都有一个唯一的编号,称为 AS 编号(ASN)。
- IGP 与 EGP 的分层设计:
- 第一层:IGP 主要负责自治系统内部的路由选择和管理,确保数据在内部网络中高效传输。允许快速收敛和动态调整。
- 第二层:EGP 负责不同自治系统之间的路由信息交换,管理跨 AS 的数据流动。处理复杂的路由策略和路径选择,确保互联网的稳定性和可靠性。
- 自治系统之间的路由选择也叫做域间路由选择(interdomain routing),在自治系统内部的路由选择叫做域内路由选择(intradomain routing)。
路由协议 (又叫路由选择协议,指定路由器如何相互通信以分发信息使其能够在计算机网络上的节点之间选择路径。)
- 内部网关协议 (IGP)
- 内部网关协议主要用于单个自治系统(AS)内部的路由选择,一个 AS 内部可以同时支持运行多种路由协议。常见的内部网关协议包括:
- RIP (Routing Information Protocol) 路由信息协议:
- 是一种分布式、基于距离向量的路由选择协议;
- 要求每一个路由器内部维护一个从它到其他每一个目的网络的距离记录(从路由器到直接相连的网络距离为 1,其余的就是非连接网络路由器数加 1,故也称为跳数);
- RIP 不能在两个网络之间同时使用多条路由,优先选择路由器最少的路由;
- 特点:
- 仅和相邻路由器交换信息;
- 路由器自己有内部的路由表,即在 AS 中各网络的最短 RIP 距离;
- 周期性交换(但如果网络拓扑发生变化,路由器要及时向相邻路由器通告拓扑变化后的路由信息,这称为触发更新)
- 缺:限制网络规模,最大距离为 15 (16 为不可达)、随着网络规模大,开销大、坏消息传播慢,收敛时间长。
- 种类:
- RIP 1:
- 是最早的距离向量路由协议,使用跳数作为度量标准,最大跳数为 15。
- 不支持子网掩码,所有网络使用相同的网络掩码。
- RIP 2:
- 对 RIP 1 的增强,支持 CIDR(无类域间路由)和路由认证。
- 能够传递更多的路由信息,包括子网掩码,以支持更复杂的网络结构。
- RIP 1:
- OSPF (Open Shortest Path First) 开放最短路径优先:
- OSPF工作原理
- 链路状态协议:OSPF是链路状态协议,每个路由器维护网络的链路状态数据库(LSDB),用于计算最短路径。
- 区域划分:OSPF支持将网络划分成多个区域,以减少路由信息的复杂性。所有区域最终汇聚到一个骨干区域(Area 0)。
- Dijkstra算法:OSPF使用Dijkstra算法计算从路由器到其他所有路由器的最短路径。
- OSPF的组成部分
- 路由器类型:
- 内部路由器(Internal Router):所有接口都在同一OSPF区域内。
- 边界路由器(ABR, Area Border Router):连接多个区域的路由器。
- 自治系统边界路由器(ASBR, Autonomous System Boundary Router):连接到其他协议(如BGP)的路由器。
- 区域:OSPF将网络划分为多个区域,不同区域之间通过ABR连接。区域的划分减少了路由计算的复杂性。
- 路由器类型:
- OSPF数据结构
- OSPF 不用 UDP 而是直接用 IP 数据报传送。
- 使用洪泛法发送更新分组。
- 链路状态广告(LSA):
- OSPF路由器通过LSA向其他路由器通告其链接状态信息。
- LSAs包含路由器的接口、成本和状态等信息。
- 链路状态数据库(LSDB):
- 每个路由器维护一份LSDB,包含从所有邻居路由器接收到的LSA。
- LSDB的内容在同一区域内保持一致。
- OSPF的消息类型
- Hello消息:用于发现邻居路由器并维持邻接关系。(确定可达性)
- DB Description消息:用于交换LSDB摘要,帮助路由器了解邻居的数据库状态。(达到数据库同步)
- Link State Request消息:请求特定LSA的详细信息。(以下代表新情况的同步)
- Link State Update消息:发送新的LSA或更新现有的LSA。
- Link State Acknowledgment消息:确认接收到的LSA。
- 特点:
- OSPF的优点
- 快速收敛:OSPF的收敛速度快,适合大型网络。
- 支持VLSM和CIDR:支持可变长度子网掩码(VLSM)和无类域间路由(CIDR)。
- 区域划分:通过区域划分,OSPF减少了路由计算的复杂性和路由表的大小。
- 负载均衡:OSPF支持多路径负载均衡,可以在多个等价路径之间分发流量。
- 最短路径的度量可以是距离、带宽、价格等;
- 可以根据 IP 数据报的区分服务字段,为不同种类的数据选择不同路径;
- 使用洪泛法推送链路状态,某个网络无法访问时,这一信息可以较快更新到其他路由器。
- OSPF的缺点
- 复杂性:配置和管理相比RIP等协议更复杂。
- 内存和CPU使用:对资源的需求较高,尤其是在大型网络中。
- OSPF的优点
- OSPF工作原理
- RIP (Routing Information Protocol) 路由信息协议:
- 内部网关协议主要用于单个自治系统(AS)内部的路由选择,一个 AS 内部可以同时支持运行多种路由协议。常见的内部网关协议包括:
应用场景:适用于企业网络、校园网络等单一管理域的环境。
- 外部网关协议 (EGP)
- 外部网关协议用于不同自治系统之间的路由选择。最常见的外部网关协议是:
- BGP
- 概述
- 路径向量协议:BGP是一个用于互联网的路径向量协议,主要用于在不同自治系统(AS)之间进行路由选择。
- 主要路由协议:它是互联网的主要路由协议,支持多个路由选择标准,使不同网络之间能够有效地交换路由信息。
- BGP的工作原理
- 自治系统(AS):BGP主要在不同的AS之间工作。每个AS都有一个唯一的编号(AS编号)。
- 路径向量:BGP路由器维护一个包含可达路径的路由表,每个路径由经过的AS列表组成。BGP使用这些路径信息来选择最佳路由。
- 路由更新:BGP路由器通过发送BGP更新消息来传播路由信息,包括新增、撤销和修改路由。
- BGP消息类型
- OPEN:用于建立BGP连接并交换基本信息。
- UPDATE:用于通告新路由或撤销现有路由。
- KEEPALIVE:用于保持BGP会话的活跃。
- NOTIFICATION:用于报告错误或异常情况。
- BGP的主要特点
- 路径选择:BGP使用多种标准(如路径长度、政策等)来选择最佳路径。
- 策略控制:管理员可以设置路由选择策略,控制路由的传播和接收。
- 支持CIDR:BGP支持无类域间路由(CIDR),提高了地址空间的使用效率。
- 可扩展性:BGP可以处理大型网络,适合于互联网规模。
- BGP 发言人的路由选择过程
- 建立邻接关系:BGP路由器通过TCP建立连接,并发送OPEN消息。
- 交换路由信息:一旦建立连接,路由器通过UPDATE消息交换网络可达性信息。
- 路径选择:根据以下标准选择最佳路径:
- 最长前缀匹配
- AS路径长度
- 本地优先级
- MED(多出口鉴别标记)
- 路由来源(IGP、EGP、外部等)
- 更新路由表:选择最佳路径后,路由器更新其路由表,并将路由信息传播给邻居。
- BGP路由表的结构
- 目的网络:目标IP地址范围。
- 下一跳(Next Hop):到达目的网络的下一跳路由器的IP地址。
- AS路径:经过的AS列表。
- 本地优先级:用于路由选择的本地优先级值。
- MED:用于影响外部路由的选择。
![[Pasted image 20250414113748.png]]
- 概述
适用于互联网服务提供商(ISP)和大型企业网络,涉及多个自治系统
路由器的构成:
- 路由选择部分——负责连接不同网络以及根据协议进行路由表构建
- 分组转发部分:
- 输入端口
- 输出端口
- 交换结构——根据转发表对分组进行处理转发
- 通过存储器——路由器输入端口接受分组,中断方式通知处理机,然后讲分组复制到存储器,后续就是进行查表转发;
- 通过总线——直接通过共享总线传到合适输出端口(不需要路由处理器,目前大部分家庭采用)
- 通过纵横交换结构——在输入端口和输出端口之间设置一个由交叉点组成的网格,每个交叉点都能建立连接。输入端口发来的分组通过控制逻辑控制交叉点的闭合,从而将分组快速地传送到对应的输出端口。这种结构支持多个分组同时转发,适用于高速路由器。
1 这里端口指的是硬件接口,且具备物理层、数据链路层和网络层的处理模块
2 路由表是根据路由选择算法(选择协议)得出,而转发表从路由表中得出
3 分组丢弃——路由器处理分组速率赶不上分组进入输入和输出队列的处理速度,造成队列溢出进而丢弃
六、IPV 6
背景:
IPV 4 :32 位
IPV 6:128 位
IPV 6 数据报组成(两大部分):
- 基本首部(40 字节)
- 版本字段——4 位,标明协议版本,此为 6
- 通信量类——8 位,区分不同 IPV 6 数据报类别或优先级
- 流标号——20 位,标记同一个流的数据报
- 有效载荷长度——16 位,所有扩展首部都算在有效载荷之内,最大值位 64 kb
- 下一个首部——8 位,相当于 ipv 4 的协议字段或可选字段,可以用来指定上层协议和下一个扩展首部的类型
- 跳数限制——8 位,原为 TTL
- 源地址——128 位
- 目的地址——128 位
- 有效载荷(净载荷)——可以携带多个扩展首部,再后面是数据部分
- 即 IPV 6 数据报途径路由器不识别该扩展首部,只有在目的或者源地址才进行处理
IPV 6 数据报目的地址类型:
- 单播:点对点
- 多播:1 对多点
- 任播:一组计算机,但数据报只交付给其中应该,通常是距离最近的
IPV 6 将实现 IPV 6 的主机和路由器称为结点。且 ipv 6 地址是分配给结点上的接口,一个接口考研有多个单播地址
![[Pasted image 20250414160028.png|400]]
IPV 6 有多种表示法:
- 冒号十六进制记法:68 E6:8C 64:FFFF:FFFF:0000:1180:960 A:FFFF
- 零压缩——在十六进制记法中,允许把数字前面的 0 省略:68 E6:8C 64:FFFF:FFFF:0:1180:960 A:FFFF
- 点分十进制记法的后缀——冒号十六进制记法可结合使用点分十进制记法的后缀:0:0:0:0:0:0: 128.10.2.1——>: : 128.10.2.1
- CIDR 的斜线表示法仍然可用: 60 位的网络前缀 12 AB 00000000 CD 3 可记为 12 AB:0000:0000:CD30:0000:0000:0000:0000 /60
从 IPV 4 到 IPV 6 的过渡:
- 使用双协议栈——一个主机拥有两个协议栈 IPV 4 和 IPV 6,根据 DNS 返回地址类型选择不同的协议栈
- 使用隧道技术——IPV 6 要进 IPV 4 网络,将其封装位 IPV 4,当离开时,再恢复为之前的 IPV 6
- ICMPv 6:利用 ICMP 反馈 IPV 6 的差错信息
- ARP 和 IGMP 都合并到 ICMPv 6
- ICMPv 6 是面向报文的协议,利用报文来报告差错,获取信息,当然其内部也增加了 ND、MLD 等协议
七、多播知识点
背景:
- D 类 IP 地址专门用于多播,范围是
224.0.0.0
到239.255.255.255
- 以太网多播地址是一种特殊的 MAC 地址,用于在局域网中进行多播传输
关系:IP 地址的最后 23 位映射到以太网多播地址的后 23 位
IP 多播
- 定义:IP 多播是一种网络传输方式,允许一个源设备将数据同时发送给多个接收设备。与单播(一个对一个)和广播(一个对所有)不同,多播只发送给特定的一组接收者。
- 地址范围:
- IP 多播使用特定的地址范围,通常是
224.0.0.0
到239.255.255.255
。例如,224.0.0.1
表示所有主机,这样数据可以发送给所有听众。 - 运行在网络层(Layer 3),通过 IP 地址识别多播组。
- 适用于跨多个网络(如互联网或广域网)的通信,如视频会议、在线直播等。
- IP 多播使用特定的地址范围,通常是
- 特点:
- 带宽效率:只需发送一次数据包,从而减少网络负担,适合视频会议、在线直播等应用。
- 多播地址只能用于目的地址,不能用于源地址
- 多播数据报使用 D 类 IP 做目的地址,且不会产生 ICMP 差错报文
- 工作流程:
- 创建多播组:设定多播 IP 地址。
- 加入多播组:主机通过 IGMP 发送加入请求。
- 路由器管理:更新多播组成员信息。
- 发送数据:源设备向多播地址发送数据包。
- 路由器转发:路由器将数据转发给所有接收主机。
- 接收数据:主机处理接收到的多播数据。
- 离开多播组:主机可通过 IGMP 发送离开请求
局域网进行硬件多播
- 定义:在局域网(LAN)中,硬件多播通过以太网多播 MAC 地址实现。它允许数据包从一个设备发送到多个设备。
- 多播 MAC 地址
- 格式:以太网多播 MAC 地址以
01:00:5E
开头,后面的部分由具体的多播组决定。 - 转换:IP 多播地址的最后 23 位被映射到以太网多播 MAC 地址中。
- 运行在数据链路层(Layer 2),使用以太网多播 MAC 地址。
- 更适合局域网(LAN)环境,直接在局域网内的设备间传输数据,如游戏、局域网广播等
- 格式:以太网多播 MAC 地址以
- 工作流程
- 发送数据:源设备将数据包发送到特定的多播 MAC 地址。
- 交换机转发:支持多播的交换机会将数据包转发给所有订阅该多播地址的设备。
- IGMP 的作用:接收设备使用 IGMP 来通知网络它们希望接收哪些多播数据。
IGMP 和多播路由选择协议
- IGMP Snooping
- 定义:IGMP Snooping 是网络交换机的一项功能,用于监控网络中的 IGMP 消息,以优化多播流量的转发。
- 工作原理:
- 监控 IGMP 消息:交换机监听主机的 IGMP 加入和离开请求,了解哪些主机希望接收特定的多播流。
- 建立转发表:根据 IGMP 消息,交换机维护一个转发表,仅将多播流量转发给已加入多播组的主机。
- 优势
- 减少广播流量:降低网络带宽使用。
- 提高效率:确保多播数据仅在必要时发送到特定端口。
- IGMP(互联网组管理协议)
- 作用:IGMP 是一种用于主机和路由器之间的协议,帮助管理多播组的成员关系。它允许设备加入或离开多播组。
- 工作机制
- 加入多播组:当一台主机想要接收某个多播组的数据时,它会发送 IGMP 加入请求。
- 离开多播组:主机可以发送 IGMP 离开请求,通知路由器它不再需要接收该多播数据。
- 查询:路由器定期发送 IGMP 查询消息,以检查哪些主机仍然在特定的多播组。
- 多播路由选择协议
- 定义:用于在网络中选择传输多播数据的路径。常见的多播路由选择协议包括:
- PIM(Protocol Independent Multicast):可以在任何单播路由协议的基础上工作,灵活性高。
- DVMRP(Distance Vector Multicast Routing Protocol):适用于较小的网络,基于距离向量算法。
- MOSPF(Multicast Open Shortest Path First):扩展了 OSPF 协议,支持多播。
- 多播路由选择协议在转发多播数据报时使用以下三种方法:
- 洪泛(广播)与剪除:
- 在网络中初始发送多播数据包到所有可能的路径,然后根据接收者的反馈剪除不必要的路径。
- 反向路径转发RBP 是一种用于防洪的技术。在转发多播数据时,路由器会检查接收者的路径是否与发送者的路径相同。如果路径一致,数据包会被转发;如果不一致,数据包则会被丢弃,以防止网络中的冗余流量。
- 隧道技术(Tunneling):
- 通过在单播路由中封装多播数据包,使其在不支持多播的网络中传输。
- 基于核心的发现技术:
- 通过核心路由器建立多播树,确保数据高效传输到所有接收者,减少冗余流量
- 洪泛(广播)与剪除:
- 定义:用于在网络中选择传输多播数据的路径。常见的多播路由选择协议包括:
八、MPLS VPN && NAT
- MPLS VPN
- 定义:MPLS(多协议标签交换)VPN 是一种通过 MPLS 网络提供虚拟专用网络(VPN)服务的技术。它允许在同一物理网络上为多个客户提供隔离的虚拟网络。
- 工作原理:
- 标签交换:使用标签代替传统的 IP 地址进行数据包转发,提高转发效率。
- 虚拟路由器:每个 VPN 拥有独立的虚拟路由器,确保数据隔离。
- 隧道技术:通过 MPLS 隧道在不同的站点之间传输数据,确保安全性和数据完整性。
- 优势
- 流量工程:能够优化网络资源利用,提高带宽效率。
- 安全性:提供数据隔离,保护客户数据。
- 灵活性:支持不同类型的服务(如数据、语音、视频)。
- NAT(网络地址转换)
- 定义:NAT 是一种网络技术,用于将私有 IP 地址转换为公共 IP 地址,从而允许多个设备共享一个公共 IP 地址,连接到互联网。
- 工作原理
- 地址转换:当内部设备发送数据包到外部网络时,NAT 会将其私有 IP 地址替换为公共 IP 地址,并记录连接状态。
- 反向转换:当外部响应返回时,NAT 将公共 IP 地址转换回相应的私有 IP 地址。
- 类型
- 静态 NAT:将一个私有 IP 地址映射到一个公共 IP 地址。
- 动态 NAT:将私有 IP 地址映射到公共 IP 地址池中的任意地址。
- PAT(端口地址转换):多个私有 IP 地址共享一个公共 IP 地址,通过不同的端口进行区分。
- 优势
- 节省 IP 地址:通过共享公共 IP 地址,节省了可用 IP 地址。
- 增强安全性:隐藏内部网络结构,防止直接访问内部设备。