【计算机网络】11、网桥(bridge)、集线器(hub)、交换机(switch)、路由器(router)、网关(gateway)

在这里插入图片描述

文章目录

  • 一、网桥(bridge)
  • 二、集线器(hub)
  • 三、交换机(switch)
  • 四、路由器(router)
  • 五、网关(gateway)

对于hub,一个包过来后,直接将包转发到其他口。

对于桥,包过来后,会首先检查包的destination address是否在mac address和端口绑定表中,如果在,则根据mac和端口绑定表,将包从相应的端口转发出去,如果不在,则丢弃。同时,他会记录下包的source address以及这个包进来的那个口,然后更新mac address和端口绑定表,目的是为下次判断和转发做准备。我们通常说桥是层2设备的原因是他只使用mac address而不使用ip address来完成转发功能。

对于switch,switch和桥的功能类似,不过,一般情况下,switch具有更多的硬件端口。一般来讲,switch都是不具有软件的,都是ASIC电路。另外,根据switch产品的不同,他可能工作在第二层(使用mac address)或者工作在第三层(使用ip address)

对于router,通过ip address来判断是否转发,从哪个端口出去(ip table),另外router相对于switch的一个最大的优点是,router是具有软件的,这就为很多功能的实现提供了良好的条件,非常便利。

一、网桥(bridge)

简单的说网桥就是个硬件网络协议翻译器,假设你有2台电脑,一台兼容机安装windows,一台是Apple安装OS2,那么两台电脑之间是默认网络协议是不同的,兼容机可能只会说TCP/IP,苹果机只会说Apple talk,就好象两个外国人都不会说对方的语言,怎么办?找个翻译,网桥就是翻译。

在386、486时代网桥可能是一台安装了协议转换程序的电脑,如今交换机也包含这个功能。今天的操作系统之间为了互相交流,支持更多的协议,操作系统自己就可以是网桥,现在网桥这个概念已经淡出了。更多是所谓的桥接、转发、协议二次封装。

网桥也可以说相当一个端口少的二层交换机,再者网桥主要由软件实现,交换机主要由硬件实现!

二、集线器(hub)

某一天,你到 A 就读的学校去找他,那么你的做法是什么呢:
你站到学校中庭,大喊一声“A,我来你找你了!(广播)
如果这个时候正好有别人也在大喊大叫,你就必须等他喊完了再喊。(排队)
如果你喊的时候不巧碰上另一个人跟你同时喊,那么你和他喊的内容都不能被听见。(冲突)
你喊的时候,是听不见别人说什么的,只有喊完了才开始竖起耳朵听。(半双工工作方式、监听)
果然,对面楼里传来了A的声音“你去死吧!(响应)

集线器,英文名又称Hub,在OSI模型中属于数据链路层。价格便宜是它最大的优势,但由于集线器属于共享型设备,导致了在繁重的网络中,效率变得十分低下,所以我们在中、大型的网络中看不到集线器的身影。如今的集线器普遍采用全双工模式,市场上常见的集线器传输速率普遍都为100Mbps。集线器有如下特点:

  • 共享型
    集线器最大的特点就是采用共享型模式,就是指在有一个端口在向另一个端口发送数据时,其他端口就处于“等待”状态。为什么会“等待”呢?举个例子来说,其实在单位时间内A向B发送数据包时,A是发送给B、C、D三个端口的(该现象即紧接下文介绍的IP广播),但是只有B接收,其他的端口在第一单位时间判断不是自己需要的数据后将不会再去接收A发送来的数据。直到A再次发送IP广播,在A再次发送IP广播之前的单位时间内,C、D是闲置的,或者C、D之间可以传输数据。我们可以理解为集线器内部只有一条通道(即公共通道),然后在公共通道下方就连接着所有端口。

  • IP广播
    所谓IP广播(也称:群发),是指集线器在发送数据给下层设备时,不分原数据来自何处,将所得数据发给每一个端口,如果其中有端口需要来源的数据,就会处于接收状态,而不需要的端口就处于拒绝状态。
    举个例子来说:在网内时,当客户端A发送数据包给客户端B时,集线器便将来自A的数据包群发给每一个端口,此时B就处于接收状态,其它端口则处于拒绝状态;
    在网外也如此,当客户端A发送域名“https://www.toutiao.com/”时,通过集线器,然后经过DNS域名解析把IP地址(202.108.36.172)发回给集线器。此时,集线器便群发给所有接入的端口,需要此地址的机器便处于接收状态(客户端A处于接收状态),不需要则处于拒绝状态。

  • 单位时间
    这应该是最简单的一个名词了,也可以理解为Hub的工作频率,比如工作频率为33MHz的Hub,那么在单位时间内Hub能做什么事呢?上面在解释共享型的时候已经举了个例子,但是有一点在这需要解释的是,比如我们有的时候会看到A在向B发送数据的“同时”,C也在向D传送数据,这看起来似乎有点矛盾,也确实是这样,那为什么会看起来2者同时在进行呢?
    因为A在第一个单位时间内发送数据给B的时候,由于广播的原因,B、C、D在第一个单位时间内会同时接受广播,但是C,D会从第2个单位时间开始拒绝接收A发来的数据,因为C和D已经判断出这些数据不是他们需要的数据。
    而且在第2个单位时间的时候C也发送一个数据广播,A,B,D都接受,但是只有D会接收这些数据。
    这些操作只用2到3个单位时间,但是我们却很难察觉到,感觉上就是在同时“进行”一样。

三、交换机(switch)

A 事先通知了你她的手机号码(Mac地址)。
你拨通了 A 的手机。(建立连接)
对 A 说“我来找你了”。(独享信道)
A 说"ok"! (全双工方式)
  • 局域网交换机的定义如下:

以太网、快速以太网、FDDI和令牌环网常被称为传统局域网,它们都是共享介质、共享带宽的共享式局域网。为了提高带宽,往往采用路由器进行网络分割,将一个网络分为多个网段,每个网段有不同的子网地址,不同的广播域,以减少网络上的冲突,提高网络带宽。微化网段已不能适应局域网扩展和新的网络应用对高带宽的需求,有人说“传统局域网已走到尽头”。

近几年突起的交换式局域网技术,能够解决共享式局域网所带来的网络效率低、不能提供足够的网络带宽和网络不易扩展等一系列问题。它从根本上改变了共享式局域网的结构,解决了带宽瓶颈问题。目前已有交换以太网、交换令牌环、交换FDDI和ATM等交换局域网,其中交换以太网应用最为广泛。交换局域网已成为当今局域网技术的主流。

交换机提供了桥接能力以及在现存网络上增加带宽的功能。用于L A N上的交换机与网桥相似,因为它们都运作在数据链路层(第2层)的M A C子层上,都检验着所有进入的网络流量的设备地址。与网桥还有一点相似,交换机保持一张有关地址的信息表,并用该信息来决定如何过滤并转发LAN流量。

与网桥不同,交换机采用交换技术来增加数据的输入输出总和和安装介质的带宽。一般交换机转发延迟很小,能经济地将网络分成小的冲突网域,为每个工作站提供更高的带宽。

在计算机网络系统中,交换机是针对共享工作模式的弱点而推出的。集线器是采用共享工作模式的代表,如果把集线器比作一个邮递员,那么这个邮递员是个不认识字的“傻瓜”——要他去送信,他不知道直接根据信件上的地址将信件送给收信人,只会拿着信分发给所有的人,然后让接收的人根据地址信息来判断是不是自己的!而交换机则是一个“聪明”的邮递员——交换机拥有一条高带宽的背部总线和内部交换矩阵。交换机的所有的端口都挂接在这条背部总线上,当控制电路收到数据包以后,处理端口会查找内存中的地址对照表以确定目的MAC(网卡的硬件地址)的NIC(网卡)挂接在哪个端口上,通过内部交换矩阵迅速将数据包传送到目的端口。目的MAC若不存在,交换机才广播到所有的端口,接收端口回应后交换机会“学习”新的地址,并把它添加入内部地址表中。

可见,交换机在收到某个网卡发过来的“信件”时,会根据上面的地址信息,以及自己掌握的“常住居民户口簿”快速将信件送到收信人的手中。万一收信人的地址不在“户口簿”上,交换机才会像集线器一样将信分发给所有的人,然后从中找到收信人。而找到收信人之后,交换机会立刻将这个人的信息登记到“户口簿”上,这样以后再为该客户服务时,就可以迅速将信件送达了。

四、路由器(router)

你事先把你的 A、B、C 这些朋友 所在的XX系XX级XX班XX号座位的信息记录在你的笔记本上(建立路由表)
你找到了 A 的地址(IP地址),并且确定了如何才能找到她的途径 (路由选择) 。
你到门卫问到了XX系所在的楼,又到XX系问到了XX班的教室,又到XX教室问到了XX号座位的位置……经过N次询问(N跳),你终于来到了 A 的面前。
  1. 路由器工作在第三层上,路由器是第三层网络设备,这样说大家可能都不理解,就先说一下集线器和交换机吧。
  • 集线器工作在第一层(即物理层),它没有智能处理能力,对它来说,数据只是电流而已,当一个端口的电流传到集线器中时,它只是简单地将电流传送到其他端口,至于其他端口连接的计算机接收不接收这些数据,它就不管了。
  • 交换机工作在第二层(即数据链路层),它要比集线器智能一些,对它来说,网络上的数据就是MAC地址的集合,它能分辨出帧中的源MAC地址和目的MAC地址,因此可以在任意两个端口间建立联系,但是交换机并不懂得IP地址,它只知道MAC地址。
  • 路由器工作在第三层(即网络层),它比交换机还要“聪明”一些,它能理解数据中的IP地址,如果它接收到一个数据包,就检查其中的IP地址,如果目标地址是本地网络的就不理会,如果是其他网络的,就将数据包转发出本地网络。
  1. 路由器能连接不同类型的网络,我们常见的集线器和交换机一般都是用于连接以太网的,但是如果将两种网络类型连接起来,比如以太网与ATM网,集线器和交换机就派不上用场了。路由器能够连接不同类型的局域网和广域网,如以太网、ATM网、FDDI网、令牌环网等。不同类型的网络,其传送的数据单元——帧(Frame)的格式和大小是不同的,就像公路运输是汽车为单位装载货物,而铁路运输是以车皮为单位装载货物一样,从汽车运输改为铁路运输,必须把货物从汽车上放到火车车皮上,网络中的数据也是如此,数据从一种类型的网络传输至另一种类型的网络,必须进行帧格式转换。

路由器就有这种能力,而交换机和集线器就没有。实际上,我们所说的“互联网”,就是由各种路由器连接起来的,因为互联网上存在各种不同类型的网络,集线器和交换机根本不能胜任这个任务,所以必须由路由器来担当这个角色。

  1. 路由器具有路径选择能力,在互联网中,从一个节点到另一个节点,可能有许多路径,路由器可以选择通畅快捷的近路,会大大提高通信速度,减轻网络系统通信负荷,节约网络系统资源,这是集线器和二层交换机所根本不具备的性能。

五、网关(gateway)

按照不同的分类标准,网关也有很多种。TCP/IP协议里的网关是最常用的,在这里我们通常所讲的“网关”均指TCP/IP协议下的网关。

那么网关到底是什么呢?网关实质上是一个网络通向其他网络的IP地址。比如有网络A和网络B,网络A的IP地址范围为“192.168.1.1~192. 168.1.254”,子网掩码为255.255.255.0;网络B的IP地址范围为“192.168.2.1~192.168.2.254”,子网掩码为255.255.255.0。在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。而要实现这两个网络之间的通信,则必须通过网关。如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机(如附图所示)。网络B向网络A转发数据包的过程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/13944.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

区块链 2.0笔记

区块链 2.0 以太坊概述 相对于比特币的几点改进 缩短出块时间至10多秒ghost共识机制mining puzzle BTC:计算密集型ETH:memory-hard(限制ASIC) proof of work->proof of stake对智能合约的支持 BTC:decentralized currencyETH:decentral…

怎么查看gcc的安装路径

2023年7月29日 很简单,通过在命令行输入如下命令就可以了: gcc -print-search-dirs在Windows中 在Linux中 ​​​

力扣刷题记录---利用python实现链表的基本操作

文章目录 前言一、利用python实现链表的基本操作1.节点的定义使用类实现:1.链表的定义使用类实现:3.判断是否为空函数实现:4.链表长度函数实现:5.遍历链表函数实现:6.头插法函数实现:7.尾插法函数实现&…

js原型以及原型链

目录 原型隐式原型显式原型constructornew操作符 重写原型对象原型链继承原型链继承借用构造函数继承组合构造继承 原型继承寄生继承组合寄生继承 原型继承关系 原型 在JavaScript中,每个对象都有一个内置属性[[prototype]],这个属性指向一个另一个对象…

【SpringCloud Alibaba】(六)使用 Sentinel 实现服务限流与容错

今天,我们就使用 Sentinel 实现接口的限流,并使用 Feign 整合 Sentinel 实现服务容错的功能,让我们体验下微服务使用了服务容错功能的效果。 因为内容仅仅围绕着 SpringCloud Alibaba技术栈展开,所以,这里我们使用的服…

【实践篇】推荐算法PaaS化探索与实践 | 京东云技术团队

作者:京东零售 崔宁 1. 背景说明 目前,推荐算法部支持了主站、企业业务、全渠道等20业务线的900推荐场景,通过梳理大促运营、各垂直业务线推荐场景的共性需求,对现有推荐算法能力进行沉淀和积累,并通过算法PaaS化打造…

存储重启后,ceph挂载信息没了,手动定位osd序号并挂载到对应磁盘操作流程、ceph查看不到osd信息处理方法

文章目录 故障说明处理流程定位硬盘中的osd序号挂载osd到ceph上验证并拉起osd重复上面操作故障说明 我们的一个存储节点莫名其妙的重启了,不知道咋回事 但这样的问题就是,所有osd都down了 因为挂载信息没有写到fstab里面,所以不会自动up,并且没有挂载信息,并且也看不到o…

Ubuntu—vi编辑器的使用一

vi编辑器 vi是Linux中最基本的编辑器。但vi编辑器在系统管理、服务器配置工作中永远都是无可替代的。 vi编辑器的使用 vi有以下三种模式 命令行模式 用户在用vi编辑文件时, 最初进入的是该模式。可以进行复制、粘贴等操作 插入模式 进行文件编辑, 按…

七大经典比较排序算法

1. 插入排序 (⭐️⭐️) 🌟 思想: 直接插入排序是一种简单的插入排序法,思想是是把待排序的数据按照下标从小到大,依次插入到一个已经排好的序列中,直至全部插入,得到一个新的有序序列。例如:…

【C++】开源:Boost库常用组件配置使用

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍Boost库常用组件配置使用。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下&#xff0c…

想学Python高级编程?必须了解这个小技巧:match-case!

大家好,这里是程序员晚枫,小破站/知乎/小红书/抖音都叫这个名字。 上次给大家分享了Python高级编程第一讲:从使用类型提示开始 ;今天分享Python高级编程第二讲:深入解析Python中switch case的使用方法。 写在前面 分…

巧用NGINX配置解决跨域问题

页面nginx配置 1,前端页面放在域名根目录,比如,http://www.xuecheng.com/ ,对应的nginx配置: #门户location / {alias D:/Z_lhy/SpringCloud/xuecheng_online/www/xc-ui-pc-static-portal/;index index.html;} 页…

基于STM32设计的人体健康检测仪

一、项目介绍 当前文章介绍基于STM32设计的人体健康检测仪。设备采用STM32系列MCU作为主控芯片,配备血氧浓度传感器(使用MAX30102血氧浓度检测传感器)、OLED屏幕和电池供电等外设模块。设备可以广泛应用于医疗、健康等领域。可以帮助医生和病…

平板光波导中导模的(注意不是泄露模)传播常数β的matlab计算(验证了是对的)

参照的是导波光学_王建(清华大学)的公式(3-1-2、3-1-3),算的参数是这本书的图3-3的。 function []PropagationConstantsMain() clear;clc;close all lambda01.55;%真空或空气中的入射波长,单位um k02*pi/lambda0; m3;%导模阶数(需要人为指定) n11.62;%芯…

网络知识点之-路由

本文章收录至《网络》专栏,点击右上角专栏图标可访问本专栏! 路由(routing)是指分组从源到目的地时,决定端到端路径的网络范围的进程。路由工作在OSI参考模型第三层——网络层的数据包转发设备。路由器通过转发数据包来…

MySQL数据库配置及创建用户和授权

注意: 都是基于MySQL8.0以上版本 1、检查是否安装过sql [rootlocalhost ~]# rpm -[qa](https://so.csdn.net/so/search?qqa&spm1001.2101.3001.7020) | grep mysql[rootlocalhost ~]# rpm -qa | grep [mariadb](https://so.csdn.net/so/search?qmariadb&…

Spark(37):Streaming DataFrame 和 Streaming DataSet 创建

目录 0. 相关文章链接 1. 概述 2. socket source 3. file source 3.1. 读取普通文件夹内的文件 3.2. 读取自动分区的文件夹内的文件 4. kafka source 4.1. 导入依赖 4.2. 以 Streaming 模式创建 Kafka 工作流 4.3. 通过 Batch 模式创建 Kafka 工作流 5. Rate Source…

随笔03 考研笔记整理

图源:文心一言 上半年的博文整理,下半年依然会更新考研类的文章,有需要的小伙伴看向这里~~🧩🧩 另外,这篇文章可能是我上半年的努力成果之一,因此仅关注博主的小伙伴能够查看它~~&#x1f9e…

嵌入式系统中的GPIO控制:从理论到实践与高级应用

本文将探讨嵌入式系统中的GPIO(通用输入输出)控制,着重介绍GPIO的原理和基本用法。我们将使用一个实际的示例项目来演示如何通过编程配置和控制GPIO引脚。将基于ARM Cortex-M微控制器,并使用C语言进行编写。 GPIO是嵌入式系统中最常见且功能最强大的接口之一。它允许硬件工…

基于RK3588+FPGA+AI算法定制的智慧交通与智能安防解决方案

随着物联网、大数据、人工智能等技术的快速发展,边缘计算已成为当前信息技术领域的一个热门话题。在物联网领域,边缘计算被广泛应用于智慧交通、智能安防、工业等多个领域。因此,基于边缘计算技术的工业主板设计方案也受到越来越多人的关注。…