源路由 | 源路由网桥 / 生成树网桥

news/2025/2/8 3:32:29/

注:本文为 “源路由” 相关文章合辑

未整理去重。


什么是源路由(source routing)?

yzx99 于 2021-02-23 09:45:51 发布

考虑到一个网络节点 A 从路由器 R1 出发,可以经过两台路由器 R2、R3,到达相同的目标 B,网络节点 A 要如何把包转发给 B?

img

以前我的认知,是 R1 根据目标地址 B,通过路由算法,哪个路由节省路径,哪个路由节省时间,就往哪里走。

但还有一种路由方法,是 R1 强制标明,A 要往哪个方向走,就往哪个方向走。这就是源路由

参考:

TCP-IP 详解卷 1:协议 的 8.5 IP 源站选路选项 章节(8.5 IP Source Routing Option)


路由器关于源路由的处理

minipig114 于 2005-10-19 09:45:00 发布

源路由

一种路由算法,由发送方(源节点)决定数据包的完整传输路径。

源路由中,路由器扮演的角色是纯粹的转发者,依赖于源节点提供的完整路由信息。

特点

  1. 路由器仅作为存储转发设备: 路由器不参与路由决策,只负责按照数据包中携带的源路由信息,将数据包转发到指定的下一跳。

  2. 不查询路由表: 路由器不使用自己的路由表,而是直接根据数据包中的源路由信息进行转发。

  3. 可能导致盲目转发: 即使数据包中指定的下一跳不可达,路由器也会尝试转发,因为路由器不会主动验证下一跳的可达性。

如果源路由信息不准确或网络拓扑发生变化,数据包可能会丢失或被转发到错误的目的地。

这种方法的优点是控制灵活,但缺点是可能导致盲目转发,增加了数据包丢失的风险。


源路由 就是指定数据传输经过这个路由服务器

2014-12-17 16:02 huababy

源路由的基本概念

源路由就是指定数据传输经过这个路由服务器。先从源路由如何向连接在外地链路上的移动节点发送数据包开始。

IPv4 中的 Loose Source and Record Route Option

IPv4 在 IP 报头中定义了一个可选项:Loose Source and Record Route Option。这个可选项列出了一个或多个中间目的地址,要求数据包在到达最终的目的地址前必须经过这几个中间地址。

源主机发送数据包的处理过程

假设一台源主机需要向一台目的主机发送数据包,并且希望数据包经过从源到目的地路径上的一台特定路由器。此时,源主机将该路由器的地址作为“下一个中间目的”地址,放置在目的 IP 地址字段中,并将目的主机的 IP 地址放置在 Loose Source and Record Route Option 中。随后,数据包将根据网络前缀路由被发送到目的 IP 地址字段中指定的路由器。当该路由器接收到数据包后,它会检查可选项,发现自己仅为中间目的地。于是,它从 Loose Source and Record Route Option 中提取目的主机的地址,并将数据包转发至通往目的主机的下一跳地址。在转发数据包之前,路由器会将自己的 IP 地址记录在 Loose Source and Record Route Option 中,实际记录的是其转发数据包的端口的 IP 地址。

目的主机接收数据包的处理过程

当数据包到达目的主机时,目的主机检查可选项,确认自身为数据包的最终目的地。因此,目的主机将数据包提交至 IP 协议字段所指示的上层协议进行处理。IP 报头中定义的该可选项还要求,当目的主机对源主机进行响应时,其数据包中也需包含 Loose Source and Record Route Option。当然,目的主机应包含的是“反向”源路由。在本例中,目的主机在向原源主机发送数据包时,会在 Loose Source and Record Route Option 中包含作为中间目的地的路由器的地址。


源路由网桥 (source routing bridge)

Cainv89 于 2016-02-12 11:20:58 发布

1. 透明网桥与源路由网桥的比较

1.1 透明网桥的优缺点

  • 优点:透明网桥最大的优点就是容易安装,一接上就能工作。
  • 缺点:网络资源的利用还不充分。

1.2 源路由网桥的优缺点

源路由选择网桥的优缺点:源路由选择网桥通常用在令牌环网中。只关心那些目的地高位是 1 的帧。

1.3 透明网桥与源路由网桥的主要区别

透明网桥的网络资源利用不如源路由网桥充分,透明网桥是透明的。源路由网桥对主机不是透明的,主机必须知道网桥的标识以及连接到哪一个网段上。

在一个时期,透明网桥和源路由网桥是各自独立发展的。但随之而来的需求是要设计一种方式来满足通过透明网桥互联的局域网和通过源路由网桥互联的局域网之间的连接。

最终,所有的标准网桥都必须支持透明网桥,而源路由则被作为一个可选配的附加特性。

主要特点比较

特点透明网桥源路由网桥
面向无连接连接
透明性完全透明不透明
配置方式自动手工
路由次优化优化
定位逆向学习发查找帧
失效处理由网桥处理由主机处理
复杂性在网桥中在主机中

2. 源路由网桥的工作原理

  • 源路由 (source route) 网桥在发送帧时将详细的路由信息放在帧的首部中。

  • 源站以广播方式向欲通信的目的站发送一个发现帧,每个发现帧都记录所经过的路由。

  • 发现帧到达目的站时就沿各自的路由返回源站。

  • 源站在得知这些路由后,从所有可能的路由中选择出一个最佳路由。

  • 凡从该源站向该目的站发送的帧的首部,都必须携带源站所确定的这一路由信息。

参考文献:

计算机网络 (第 5 版)》谢希仁 —— 第三章 3.5


网桥(生成树网桥和源路由网桥)

张朝阳的博客 于 2018-10-12 21:57:37 发布

生成树网桥

网桥收到一个数据帧以后,执行地址表扩充和帧转发,地址表扩充是指查看信源结点地址,进行地址表的扩充,从而使网桥了解哪些节点在哪些子网中;帧转发是指如果本地址表有信源地址里所有的结点,则直接进行转发;如果没有,则向本网桥除接收端口之外的所有端口进行广播。

此种方法得以实现的原因是俩个网桥之间有一条通路,在进行网桥设备冗余时,可能会形成环路。为了避免形成环路,则需要用到生成树算法;即选择一个中心网桥作为支撑树的根,选择一个与其相连的网桥加入支撑树(前提是不会形成环路),直至支撑树可以互联所有的子网,剩下的网桥留作备用。

源路由网桥

该网桥的核心思想是由帧的发送者显式地指出路由信息 RI,RI 信息包括网桥地址和局域网标志符的序列,网桥只需根据包含的路由信息进行转发即可,网桥可根据 RI 信息知道自己是否在转发路径中,并确定转发方向。

源节点如果没有到达目标节点的路由信息,则发送一个测试功能的广播帧,广播镇被每个网桥接收。接收到该广播帧的网桥如果在 RI 信息包含的节点中,则不必进行回应;如果没有,则向 RI 信息中增加本段号,继续进行转发到与其连接的不在 RI 信息中的网号的子网,直到转发到目标节点,目标节点返回给源节点一个应答帧,由于广播,会接收到多个应答帧。由源节点选出最佳路径,该算法可能会引发广播风暴。


via:

  • 什么是源路由(source routing)?-CSDN 博客
    https://blog.csdn.net/yzx99/article/details/113972472

  • 路由器关于源路由的处理 - CSDN 博客
    https://blog.csdn.net/minipig114/article/details/508972

  • 源路由 就是指定数据传输经过这个路由服务器 - huababy - 博客园
    https://www.cnblogs.com/lehaha/p/4169635.html

  • 源路由网桥 (source routing bridge)-CSDN 博客
    https://blog.csdn.net/cainv89/article/details/50654342

  • 网桥(生成树网桥和源路由网桥)_生成树协议与源路由网桥 - CSDN 博客
    https://zhangzhaoyang.blog.csdn.net/article/details/83032907


http://www.ppmy.cn/news/1570224.html

相关文章

Unity 2D实战小游戏开发跳跳鸟 - 游戏开始UI界面及逻辑

有了游戏核心的计分逻辑之后,现在我们需要对游戏整体的流程进行控制和交互,这时需要实现游戏流程的UI界面,让用户可以通过UI的交互来开始游戏或者在跳跳鸟死亡时重新开始游戏等。 游戏开始界面 搭建一个游戏开始的UI界面,其结构如下所示。 首先创建一个空的游戏物体命名为…

【大数据技术】本机PyCharm远程连接虚拟机Python

本机PyCharm远程连接虚拟机Python 注意:本文需要使用PyCharm专业版。 pycharm-professional-2024.1.4VMware Workstation Pro 16CentOS-Stream-10-latest-x86_64-dvd1.iso写在前面 本文主要介绍如何使用本地PyCharm远程连接虚拟机,运行Python脚本,提高编程效率。 注意: …

C# 压缩图片并保存到本地

本文主要介绍如何使用C#将图片进行压缩并保存到本地。 接收一个原始图片的字节数组、需要保存的图片类型、输出路径和图片质量。方法首先将字节数组转换为一个内存流,然后使用Image.FromStream方法将内存流转换为一个Image对象。接下来,方法创建一个编码…

深度学习篇---深度学习中的超参数张量转换模型训练

文章目录 前言第一部分:深度学习中的超参数1. 学习率(Learning Rate)定义重要性常见设置 2. 批处理大小(Batch Size)定义重要性常见设置 3. 迭代次数(Number of Epochs)定义重要性常见设置 4. 优…

FreeRTOS学习 --- 列表和列表项

列表和列表项的简介 列表是 FreeRTOS 中的一个数据结构,概念上和链表有点类似,列表被用来跟踪 FreeRTOS中的任务。 列表项就是存放在列表中的项目 列表相当于链表,列表项相当于节点,FreeRTOS 中的列表是一个双向环形链表。 列表…

CEF132 编译指南 Windows 篇 - 安装 Git 和 Python (三)

1. 引言 在之前的文章里,我们成功地安装并配置了 Visual Studio 2022,为编译 CEF 132 做好了基础准备。接下来,我们需要安装 Git 和 Python 这两个至关重要的工具。它们在 CEF 132 的编译过程中扮演着不可或缺的角色:Git 用于获取…

【产品小白】什么是微服务

在数字化浪潮汹涌澎湃的当下,软件系统的规模持续扩张,复杂度呈指数级攀升。如何高效地开发软件,确保其后续的维护轻松便捷,同时具备强大的扩展能力,已然成为广大开发者待攻克的核心难题。微服务作为一种应运而生的前沿…

数据结构(Java)—— 优先级队列(堆)

1. 概念 优先级队列是一种抽象数据类型(ADT),它允许队列中维护的元素按优先级排序,优先级最高的元素会优先被处理。 2. 使用 2.1 优先级队列的构造 构造器 功能介绍 PriorityQueue() 创建一个空的优先级队列,默认容量…