集线器,交换机,路由器的作用

本文介绍了集线器、交换机和路由器的基本工作原理及它们在网络通信中的作用。集线器通过信号再生放大来扩大传输距离;交换机通过维护MAC地址表实现高效的数据帧转发;路由器则在网络层工作,负责跨网络的数据包转发。

集线器(Hub) —— 工作在物理层

信号在线路中传播会进行衰减,集线器的作用就是对信号进行再生放大,从而扩大了网络的传输距离。从功能就可以看出,集线器是工作在物理层的。而且从下图中可以看出,使用集线器的网络是总线型网络,那么当一台计算机发送消息时,所有的计算机都会收到消息。而且有一个问题就是有可能多台主机同时发送消息,那么这些信号在总线上相遇就会发生冲突,所以就需要使用"载波监听多点接入/碰撞检测(CSMA/CD)"。

使用集线器的网络叫做共享式网络,该网络的所有主机都属于同一个冲突域,即一台计算机发送消息,其它的计算机都能够收到。而且同一时刻只能够有一台计算机发送消息(为了防止冲突)。

虽然说在共享式网络中其它计算机也能够收到不是发给自己的信息,但是计算机会识别该信息是不是发送给自己的,如果不是那么就会丢弃。

 

交换机(Switch)  —— 工作在数据链路层

前言——交换机转发的消息叫做帧。

集线器的信道利用率太低了,所以就出现了交换机。交换机很很多个端口,每个端口都能够连接一台计算机,当计算机A向计算机B发送信息时,会在内部建立起一条临时性的数据传输通道,如果有多台计算机同时通信,那么就会维护多条通道。那么可以看出交换机的每个端口就是一个冲突域,如果该端口只连接了一台计算机,那么就相当于没有冲突。

 

每台计算机都有一个网卡适配器,每个网卡适配器都有一个MAC地址,该地址是全球唯一的。

当计算机A向计算B发送帧时,就会根据帧首部包含的目的主机MAC地址,将帧从合适的端口转发出去。那么交换机怎么知道从哪个端口把帧转发出去呢?

交换机会在内部维护一个MAC地址表,其中包含了每个端口对应的主机的MAC地址。交换机在转发帧时,就会查找该MAC地址表,然后将帧从合适的端口转发出去。

那么交换机是如何得到这个MAC地址表的呢?

静态MAC地址表:当把一台计算机连接上交换机时,由管理员填写该表,从而形成MAC地址表。

动态MAC地址表:当把一台计算机B连接上交换机时,什么事都不用做,当有计算机A向计算机B发送帧时,如果交换机不能够在MAC地址表中找到帧首部的目的MAC地址对应的是哪个端口,那么就会向所有的端口(除了发送帧的那个端口除外)发送该消息,然后只要计算机B回应了帧,交换机就知道哪个端口连接了计算机B,那么交换机就会在MAC地址表中记录下来。

 

路由器(Router)  —— 工作在网络层

前言——路由器转发的消息叫做IP数据报。

交换机是工作在数据链路层的,也即交换机只能转发局域网内的帧。如果网络A的主机想要发消息给网络B的主机就需要路由器了。

如果网络A的主机1想要想网络B的主机2发送消息,那么主机1必须在IP数据报的首部加上源IP地址和目标IP地址,那么路由器A会根据目标IP地址将IP数据报转发到路由器B。路由器B接收到该IP数据报后,会将该IP数据报封装成帧,然后在帧的首部加上主机B的MAC地址作为目的地址,然后把该消息转发给主机B,或者转发给交换机,由交换机转发给主机B。

那么路由器A怎么知道把IP数据包从哪个端口送出去呢?路由器内部维护了一张路由表,它知道把IP数据报从哪个端口发出去。这个就不详细说了,太复杂了。

那么路由器B怎么知道某个IP地址对应了哪个主机,且该主机的MAC地址是什么呢?

路由器内部维护了一张arp表,即地址解析协议表,它知道哪个IP地址对应了哪个MAC地址。

①如果arp表中存在该IP地址所对应的表项,那么根据该表项,直接将IP数据包加上相应的首部封装成帧。

②如果arp表中不存在该IP地址所对应的表项,那么路由器发送一个广播帧,将帧首部的目的MAC地址设为FFFFFFFFFFFF,交换机收到该帧后,发现其目的MAC地址是FFFFFFFFFFFF,就会将该帧从所有的端口(除了发送该帧的端口除外)转发出去,当计算机收到该帧后,就会把自己的IP地址和MAC地址都发送给路由器,这样路由器就生成了arp表了。然后再根据该表转发IP数据报。

注:计算机接收的帧只有两种,①帧首部的目的MAC地址和自己的MAC地址一致;②帧首部的目的MAC地址是广播地址FFFFFFFFFFFF。(这里不考虑组播的情况)

 

该文章在我的个人博客地址是:http://www.alphaway.org/post-456.html

 

转载于:https://www.cnblogs.com/justPassBy/p/5425570.html

### 集线器交换机路由器的区别及功能 #### 集线器的功能与特点 集线器是一种基本的网络设备,仅具备简单的转发功能。其工作原理是在接收到数据信号后,会无差别地向所有端口广播该信号,而不考虑目标地址。因此,在同一冲突域内的所有设备都会接收到来自任何其他设备的数据帧,这可能导致带宽浪费以及潜在的安全风险。由于缺乏智能化处理能力,集线器被认为是被动式的硬件装置,并不运行专门的操作系统软件[^1]。 #### 交换机的工作机制及其分类 相比之下,交换机会更加智能一些。它能够识别并记录下连接到各个端口上的MAC地址信息,从而实现精确的目的地寻址传输服务。当一个数据包到达时,第二层(即数据链路层)交换机会检查目的MAC地址并将之定向发送给对应的接口;而第三层交换除了具有上述特性外还能执行IP路由选择操作,类似于小型化的内部网关协议路由器。不过总体而言,无论是哪种类型的交换机所提供的功能性都要逊色于真正的路由器产品[^2]。 #### 路由器的独特之处 作为高级别的联网组件之一,路由器不仅限于局域网内通信管理,还可以跨越多个不同子网甚至广域范围来进行高效的信息传递任务。通过解析更高层次——也就是网络层中的逻辑地址结构来决定最佳路径规划方案,进而完成跨网段间报文的有效分发作业。此外值得注意的是,现代路由器通常配备有丰富的配置选项和支持多种安全策略实施手段,这些都是普通意义上的Hub所不具备的能力特征。 ```python # Python伪代码展示三种设备的主要区别 class Hub: def __init__(self): self.port_count = None def broadcast(self, data_signal): # 将接收到的数据信号无差别的传送给所有端口 pass class Switch(Layer=2): mac_table = {} @staticmethod def forward_based_on_mac(data_frame): destination_address = get_destination_from_data_frame(data_frame) if destination_address in Switch.mac_table.values(): send_to_specific_port(destination_address) class Router(NetworkLayer=True): routing_table = [] @classmethod def route_packet(cls, ip_packet): target_network = extract_target_network(ip_packet) for entry in cls.routing_table: if matches_route(entry, target_network): next_hop = determine_next_hop(entry) transmit_to(next_hop) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值