计算机网络-学习交换机

  • 交换机是什么
  • 交换机有什么作用
  • 交换机如何传输数据包
  • 交换机和和集线器、路由器的区别

交换机是什么

交换机是一种用于电(光)信号转发的网络设备,能连接多台设备形成一个局域网,简单来说就是可以把多台计算机连接起来,形成一个局域网。交换机是用于连接多台设备,让这些设备相互具备网络互通。
在这里插入图片描述

注:

  1. 我最早接触交换机是刚进大学的时候,每个宿舍发了一台交换机,那个时候并不知道交换机是做什么的,大家知道把连接自己笔记本的网线插进去就能连网,五个口,我们宿舍四个人插了四个插口,还有一个口是连接宿舍外面的网线的。
  2. 其实只要连上交换机,我们宿舍四个人就可以打局域网游戏了,但是还无法连接外部网络

交换机有什么作用

简单来说交换机的作用可以把网线插入交换机的计算机汇聚成一个局域网。
交换机工作于OSI参考模型的第二层,即数据链路层,用于将数据包从局域网的一台计算机传输到局域网的另一台计算机。通过数据包交换的方式,将数据转发到目的地。

例如,我们其中一台计算机发送一个数据包,数据包(在我们计算机内存里面是数字信号,经过网卡转成电信号)经过网线先传输到交换机,交换机再根据MAC地址,把数据包从交换机的另一个端口的网线转发出去(把网线的电信号接收进来再重新把电信号转发出去),顺着这根网线发数据包发送到另一台计算机(另一台计算机网卡把电信号转成数字信号),这两个计算机相互通讯。

注:数据包的本质是0和1,在我们计算机内存里面是数子信号,经过网卡转成电信号发出去(不一定是电信号(高压表示1,低压表示0),如果用光纤传输会转成光信号,亮的时候表示1,暗的时候表示0,无线网卡会转成无线电波,根据波的振幅表示0和1)

在这里插入图片描述在这里插入图片描述

交换机如何传输数据包

集线器的工作原理

这里不得不先说一下集线器,有交换机之前,我们都是用集线器连接成一个局域网的,集线器的工作原理是把接收到的数据包直接广播给插入集线器的所有计算机,在这个局域网的计算机都能接收到这个数据包,然后判断这个数据包发送的MAC(物理地址)是否发送给自己,是给自己的就接收,不是就丢掉。当局域网很小的时候,用集线器问题不大,但是当局域网的设备比较多的时候,每个计算机发的包都广播给集线器的所有端口,网络线路就会很频繁,形成网络风暴,性能就不好了。

这个时候出现交换机,交换机可以说是在集线器的基础上优化而来,集线器是无脑的广播数据包,而交换机则更加智能化,交换机传输数据包会直接传输到指定的端口上去,不会每次都广播给所有端口。即发送给某一台计算机的数据包,这个局域网的其他计算机不会接收到(如果用集线器其他计算机会接收到)

交换机的工作原理

那交换机是如何实现智能化传输数据包的呢?
简单说一下实现方案的思路,交换机里面保存了一张MAC的地址表,这个表会记录相连的所有设备的MAC地址以及对应的端口,即某个设备的MAC地址,以及这个设备插入交换机的端口位置。然后根据发送的数据包里面的接收方MAC地址,在这个表里面找到这一行记录,即可知道这个数据包要从交换机的哪个端口转发出去,所以就不需要广播给所有端口了。

如图,举例,端口2的计算机发了一个数据包过来,这个数据包发送的MAC地址是"00-02-B3-1C-9C-F9",交换机就会在MAC的地址表查询到这条记录,就知道这个MAC地址在端口8的网线外面的计算机里,然后重新把这个数据包的电信号转发到端口8上,经过插着端口8的网线传输到指定的计算机上去

注:交换机根据 MAC 地址表查找 MAC 地址,然后将信号发送到相应的端口

在这里插入图片描述
在这里插入图片描述

MAC地址表如何维护

这个表是怎么记录这些对应的MAC地址和端口数据的呢?这些数据如何来的,这个表如何维护?
刚开始把我们计算机的网线插入交换机的端口上时,这个时候交换机的地址表还没有保存这个端口存在的MAC地址记录,当我们这个计算机首次发送数据包,这个数据包经过交换机时,交换机才会保存记录,记录我们的发送方的MAC地址以及MAC地址的传入端口。

即插入交换机端口的计算机首次发送数据包时,交换机的地址表才会记录它的MAC地址以及对应端口

还有这个表的记录不一定永远都存在,例如在公司的时候我们笔记本插着网线,但是下班后把网线拔出来拿笔记本回来或者笔记本插入另个一个会议室的端口,这个时候这行记录的MAC地址对应的端口就不存在了,这时如果交换机收到了发往这台已经消失的笔记本电脑的包,那么它依然会将包转发到原来的端口,通信就会出错,因此必须想办法删除那些过时的记录。然而,交换机没办法知道这台笔记本电脑已经从原来的端口移走了。因此地址表中的记录不能永久有效,而是要在一段时间不使用后就自动删除


那么当笔记本电脑被拿到会议室之后,会议室里的交换机又会如何工作呢?只要笔记本电脑连接到会议室的交换机,交换机就会根据笔记本电脑发出的包来更新它的地址表。因此,对于目的地的交换机来说,不需要什么特别的措施就可以正常工作了。
综合来看,为了防止终端设备移动产生问题,只需要将一段时间不使
用的过时记录从地址表中删除就可以了。交换机根据 MAC 地址表查找 MAC 地址,然后将信号发送到相
应的端口。

过时记录从地址表中删除的时间一般为几分钟,因此在过时记录被删除之前,依然可能有发给该设备的包到达交换机。这时,交换机会将包转发到老的端口,通信就会发生错误,这种情况尽管罕见,但的确也有可能发生。不过大家不必紧张,遇到这样的情况,只要重启一下交换机,地址表就会被清空并更新正确的信息,然后网络就又可以正常工作了。总之,交换机会自行更新或删除地址表中的记录,不需要手动维护 A。当地址表的内容出现异常时,只要重启一下交换机就可以重置地址表,也不需要手动进行维护。

特殊情况

上面描述的是交换机正常情况下的包传输情况,其他还有三种特殊情况

  • 1.MAC地址表没有这行记录
  • 2.MAC地址表有这行记录,但是对应的计算机不在这个端口上了
  • 3.MAC地址表有这行记录,但是这行记录和传入的端口是同一个端口

1.MAC地址表没有这行记录
有可能插入交换机的端口的计算机还没发送过数据包

一种特殊情况,就是地址表中找不到指定的 MAC 地址。这可能是因为具有该地址的设备还没有向交换机发送过包,或者这个设备一段时间没有工作导致地址被从地址表中删除了。这种情况下,交换机无法
判断应该把包转发到哪个端口,只能将包转发到除了源端口之外的所有端口上,无论该设备连接在哪个端口上都能收到这个包。这样做不会产生什么问题,因为以太网的设计本来就是将包发送到整个网络的,然后只有相应的接收者才接收包,而其他设备则会忽略这个包。

注:
这样做会发送多余的包,会不会造成网络拥塞呢?”其实完全不用过于担心,因为发送了包之后目标设备会作出响应,只要返回了响应包,交换机就可以将它的地址写入地址表,下次也就不需要把包发到所有端口了。局域网中每秒可以传输上千个包,多出一两个包并无大碍

此外,如果接收方 MAC 地址是一个广播地址 A,那么交换机会将包发送到除源端口之外的所有端口。
广播地址(broadcast address)是一种特殊的地址,将广播地址设为接收方地址时,包会发送到网络中所有的设备。MAC 地址中的 FF:FF:FF:FF:FF:FF和 IP 地址中的 255.255.255.255 都是广播地址

2.MAC地址表有这行记录,但是对应的计算机不在这个端口上了

这时如果交换机收到了发往这台已经消失的笔记本电脑的包,那么它依然会将包转发到原来的端口,通信就会出错。这个交换机只负责转发数据,交换机还会把数据包转发给那个错的端口,交换机只处理数据链路层的工作,不负责确保包一定送达,但是实际网络层如果是TCP协议还会校验这个包是否送达,最后确认无法送达会报错。

3.MAC地址表有这行记录,但是这行记录和传入的端口是同一个端口
如果是集线器的网线插入了交换机,那么就存在这种情况,计算机A发的包被交换机接收到了,交换机发现要转发的计算机B和输入的端口是同一个。

那么这种情况要怎么处理呢?首先,计算机 A 发送的包到达集线器后会被集线器转发到所有端口上,也就是会到达交换机和计算机 B(图 3.9 ①)。这时,交换机转发这个包之后,这个包会原路返回集线器(图 3.9 ②),然 后,集线器又把包转发到所有端口,于是这个包又到达了计算机 A 和计算机 B。所以计算机 B 就会收到两个相同的包,这会导致无法正常通信。因此,当交换机发现一个包要发回到原端口时,就会直接丢弃这个包
在这里插入图片描述

交换机和和集线器、路由器的区别

这个后面的文章再详细记录《计算机网络-路由器和交换机的区别》

参考:
户根勤《网络是怎样连接的》

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值