当前位置: 首页 > news >正文

[计算机通信网络]网桥与其作用机理举例详解

 一、网桥(bridge)

什么是网桥:

网桥是一种用于通过查看数据包的目的地址和源地址来过滤数据包的设备。网桥一般是交换机。

为什么需要网桥:

以下例子中,网桥为智慧机器,人名为MAC地址,房间则对应着网桥的端口。

假设有这样一个村子,人们通过喊话沟通,村子中的人对另一个人喊话时格式如下 “被喊者的名字!我是喊叫者的名字!内容”,如小明妈喊小明:“小明!我是小明妈!回家吃饭了。”

但是,人们发现,当多个人一起喊的时候,声音就混淆了,同时只有一个人能喊,于是人们想出了一个办法来提高沟通的效率(同时保护大家的耳朵)。

于是人们设立了一个智慧机器,当它收到来自一个房间的声音时,先看看接收者在不在发声者的房间中,如果不在,就将这条声音转播给接收者在的房间中,如果在,就不转播这段声音,让这段声音在发声者的房间中自行传播。

这就是过滤,即只让需要过的声音过。

 有了智慧机器,小明妈喊话的同时小美家中的人也能快乐的互相喊话啦。

网桥就像是智慧机器,局域网就像是房间,A B这样的主机就像是同一房间中的两个人。有了网桥的存在,除非是发给其他局域网的数据包,否则其他局域网的主机是无法接收到的。这让其他局域网的主机可以互相沟通。

 网桥的实现机理:

网桥是利用端口学习来知道哪个主机在哪个端口连接的局域网的。

让我们接着村庄的例子来,可是,网桥又是怎么知道哪个人在哪个房间的呢,或者说,要是小明去小美家做客,那网桥又怎么知道小明的位移呢?村民们觉得手动设定太麻烦了,于是决定让智慧机器自行学习。

于是,村名民们想出一个办法,让智慧机器记下一个表,表格上记录了发声者的名字和其所在房间,也就是一个人喊叫时,智慧机器就记下他在哪一个房间。

有了这个表,智慧机器不仅能知道谁在哪个房间,还能查表转发,如绿色消息在查表之后被转发给了二号房间。

 可是?如果表上没有接收者怎么办呢?

智慧机器就会向除了送来消息的房间外的其他所有房间转发消息。

透明网桥:

一般网桥都是透明的。

透明网桥没有mac地址。终端意识不到它的存在。

在我们的例子中,就是说智慧机器没有名字,没有人能对智慧机器喊话,大家沟通的时候感觉不到智慧机器的存在,智慧机器在大家的眼中是透明的。

相关文章:

  • 缓存相关知识点
  • MyBatis映射配置文件结构、标签详解及SQL语句中参数的获取
  • 【SQL刷题】DAY22----增删改操作专项练习
  • 真实场景下的安全专家各项技能详解
  • 为何以太坊合并很重要?
  • 【docker】使用docker安装宝塔面板
  • 【正点原子STM32连载】第四十一章 无线通信实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
  • C语言 哈希表的简单实现
  • 学习率和BatchSize对模型的影响
  • 小代码大智慧: FilenameUtils.getName 函数分析
  • 基于php理发店管理系统
  • Linux入门之使用 firewalld 防火墙
  • 【论文阅读】SABRE: Protecting Bitcoin against Routing Attacks
  • 【设计模式3_责任链、观察者】
  • .NET MVC之AOP
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • AHK 中 = 和 == 等比较运算符的用法
  • Android 控件背景颜色处理
  • Android交互
  • Asm.js的简单介绍
  • Java 多线程编程之:notify 和 wait 用法
  • java8-模拟hadoop
  • JAVA并发编程--1.基础概念
  • java取消线程实例
  • Js基础知识(四) - js运行原理与机制
  • Meteor的表单提交:Form
  • 阿里研究院入选中国企业智库系统影响力榜
  • 精彩代码 vue.js
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 力扣(LeetCode)22
  • 那些年我们用过的显示性能指标
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 删除表内多余的重复数据
  • 深度学习在携程攻略社区的应用
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 想使用 MongoDB ,你应该了解这8个方面!
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • 树莓派用上kodexplorer也能玩成私有网盘
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • ​第20课 在Android Native开发中加入新的C++类
  • #Lua:Lua调用C++生成的DLL库
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (C++17) optional的使用
  • (独孤九剑)--文件系统
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (接口自动化)Python3操作MySQL数据库
  • (理论篇)httpmoudle和httphandler一览
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (转)Scala的“=”符号简介
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别