热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

网桥工作原理1

网桥的工作原理(1)缓存:网桥首先会对收到的数据帧进行缓存并处理过滤:判断入帧的目标节点是否位于发送这个帧的网段中(同一端口中),如果是,网桥就不把帧转发到网桥的其他端口转发:如果帧的目标节点位于另

网桥的工作原理(1)


缓存:网桥首先会对收到的数据帧进行缓存并处理
过滤:判断入帧的目标节点是否位于发送这个帧的网段中(同一端口中) ,如果是,网桥就不把帧转发到网桥的其他端口

转发:如果帧的目标节点位于另一个网络,网桥就将帧发往正确的网段 (向另一端口转发) 

网桥的工作原理(2) 


学习:当帧经过网桥,网桥首先在网桥表中查找帧的源MAC地址
如果该地址不在网桥表中,则将有该MAC地址及其所对应的网桥端口信息加入(逆向学习法)

aa

扩散:如果在表中找不到目标地址,则按扩散的办法将该数据发送给与该网桥连接的除发送该数据的网段外的所有网段。

以混杂方式工作(接收连接到该网桥的局域网上传送的所有帧)。
每个桥维护了一个基于MAC地址的过滤数据库,网桥根据这个数据库,把收到的帧往相应的局域网(端口)进行转发。

在过滤数据库中,列出了每个可能的目的地(目的MAC地址),以及它属于哪一条输出线路(一个端口号,即表示转发给哪个LAN),每个表项还有一个超时设置

(可以及时学习改变了的地址) 


假设桥在端口x上接收到一个MAC帧,有如下规则
1查询过滤数据库,决定该目的MAC地址是否列在除端口x外的其它端口中。

2如果目的MAC地址没有找到,把该帧往除了它所到来的端口外的所有端口发送,即进行扩散。

3如果目的地址列在过滤数据库中的某个端口y中,其中,决定是否端口y处在阻塞或转发状态。在以后的生成树算法中我们可以看到,一个端口可能有时候是阻塞的,以防止它接收或发送帧。

4如果端口y是非阻塞的,把该帧通过端口y转发到它所连接的LAN中




网桥会把广播帧向网桥的到来端口外的所有其它端口转发,即通过网桥连接的站点位于同一个广播域(broadcast
 domain),这些节点能相互接收彼此的广播帧。 

ss


学习:站点A给B发送数据,网桥通过察看帧的源地址了解到A在端口1,过滤数据库中加入
扩散:网桥并不知道B在何处,因此把帧向所有其它端口(即端口2和3)进行扩散。

转发:B收到A发过来的帧之后,可能会进行回应,即B发送数据给A这个时候网桥察看源地址了解到B在端口2上,加入表项,同时帧的目的地址A在

过滤
数据库中存在,并且在端口1上,因此B发回给A的帧向端口1转发

过滤:现在站点C向A发送数据,由于A、C和网桥连接到同一个集线器上,网桥也会收到该帧,察看源地址C,记录C在端口1,加入表项,同时目的地址A在
过滤数据库中并且所在的端口正是收到该帧的端口,因此不进行转发。
老化:过滤数据库表项的TTL每秒都增加,超过某个值则从数据库中清除,一般缺省的TTL设置为300秒。老化主要是考虑到网桥的内存有限、节点移动的情况。

定期清除,像计时器一样






推荐阅读
  • 深入浅出:Hadoop架构详解
    Hadoop作为大数据处理的核心技术,包含了一系列组件如HDFS(分布式文件系统)、YARN(资源管理框架)和MapReduce(并行计算模型)。本文将通过实例解析Hadoop的工作原理及其优势。 ... [详细]
  • 利用Git GUI将本地项目同步至GitHub的方法
    GitHub作为开发者不可或缺的工具,不仅提供了丰富的开源项目资源,还极大地便利了个人项目的管理和版本控制。本文将详细介绍如何使用Git GUI工具将本地开发的项目上传至GitHub。 ... [详细]
  • Python网络编程:深入探讨TCP粘包问题及解决方案
    本文详细探讨了TCP协议下的粘包现象及其产生的原因,并提供了通过自定义报头解决粘包问题的具体实现方案。同时,对比了TCP与UDP协议在数据传输上的不同特性。 ... [详细]
  • [编程题] LeetCode上的Dynamic Programming(动态规划)类型的题目
    继上次把backTracking的题目做了一下之后:backTracking,我把LeetCode的动态规划的题目又做了一下,还有几道比较难的Medium的题和Hard的题没做出来,后面会继续 ... [详细]
  • 构建高性能Feed流系统的设计指南
    随着移动互联网的发展,Feed流系统成为了众多社交应用的核心组成部分。本文将深入探讨如何设计一个高效、稳定的Feed流系统,涵盖从基础架构到高级特性的各个方面。 ... [详细]
  • 对于初次购买阿里云服务器的新手用户来说,如何高效地利用服务器资源并成功部署网站是一个重要的课题。本文将详细指导您完成从购买服务器到网站上线的六个关键步骤。 ... [详细]
  • 深入解析轻量级数据库 SQL Server Express LocalDB
    本文详细介绍了 SQL Server Express LocalDB,这是一种轻量级的本地 T-SQL 数据库解决方案,特别适合开发环境使用。文章还探讨了 LocalDB 与其他轻量级数据库的对比,并提供了安装和连接 LocalDB 的步骤。 ... [详细]
  • 华为云openEuler环境下的Web应用部署实践
    本文详细记录了在华为云openEuler系统上进行Web应用部署的具体步骤,包括配置yum源、安装Apache、MariaDB、PHP及其相关组件,并完成WordPress的安装与配置过程。 ... [详细]
  • RabbitMQ 核心组件解析
    本文详细介绍了RabbitMQ的核心概念,包括其基本原理、应用场景及关键组件,如消息、生产者、消费者、信道、交换机、路由键和虚拟主机等。 ... [详细]
  • 本文探讨了在不同场景下如何高效且安全地存储Token,包括使用定时器刷新、数据库存储等方法,并针对个人开发者与第三方服务平台的不同需求提供了具体建议。 ... [详细]
  • 本文详细介绍了PHP中的几种超全局变量,包括$GLOBAL、$_SERVER、$_POST、$_GET等,并探讨了AJAX的工作原理及其优缺点。通过具体示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 本文详细探讨了 Android Service 组件中 onStartCommand 方法的四种不同返回值及其应用场景。Service 可以在后台执行长时间的操作,无需提供用户界面,支持通过启动和绑定两种方式创建。 ... [详细]
  • 将XML数据迁移至Oracle Autonomous Data Warehouse (ADW)
    随着Oracle ADW的推出,数据迁移至ADW成为业界关注的焦点。特别是XML和JSON这类结构化数据的迁移需求日益增长。本文将通过一个实际案例,探讨如何高效地将XML数据迁移至ADW。 ... [详细]
  • 本文提供了一个详尽的前端开发资源列表,涵盖了从基础入门到高级应用的各个方面,包括HTML5、CSS3、JavaScript框架及库、移动开发、API接口、工具与插件等。 ... [详细]
  • 本文探讨了使用Python实现监控信息收集的方法,涵盖从基础的日志记录到复杂的系统运维解决方案,旨在帮助开发者和运维人员提升工作效率。 ... [详细]
author-avatar
man_2_瞳皆哥仔
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有