【计算机网络】11、网桥(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)

bash 复制代码
某一天,你到 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)

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

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

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

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

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

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

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

四、路由器(router)

bash 复制代码
你事先把你的 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转发数据包的过程。

相关推荐
海绵波波10738 分钟前
Webserver(4.3)TCP通信实现
服务器·网络·tcp/ip
幺零九零零3 小时前
【计算机网络】TCP协议面试常考(一)
服务器·tcp/ip·计算机网络
热爱跑步的恒川4 小时前
【论文复现】基于图卷积网络的轻量化推荐模型
网络·人工智能·开源·aigc·ai编程
云飞云共享云桌面4 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络
音徽编程7 小时前
Rust异步运行时框架tokio保姆级教程
开发语言·网络·rust
长安初雪8 小时前
Request 和 Response 万字详解
计算机网络·servlet
幺零九零零8 小时前
【C++】socket套接字编程
linux·服务器·网络·c++
23zhgjx-NanKon8 小时前
华为eNSP:QinQ
网络·安全·华为
23zhgjx-NanKon8 小时前
华为eNSP:mux-vlan
网络·安全·华为
点点滴滴的记录8 小时前
RPC核心实现原理
网络·网络协议·rpc