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

交换机是什么

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

注:

  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 就会收到两个相同的包,这会导致无法正常通信。因此,当交换机发现一个包要发回到原端口时,就会直接丢弃这个包

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

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

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

计算机网络-学习交换机相关推荐

  1. 计算机网络学习--交换机和路由器转发数据原理

    转自知乎: 作者:网工Fox 链接:https://www.zhihu.com/question/20099434/answer/1861866418 来源:知乎 著作权归作者所有.商业转载请联系作者 ...

  2. 计算机网络学习(七)—集线器与交换机

    计算机网络学习(七)-集线器与交换机 早期的总线型以太网 使用双绞线和集线器HUB的星型以太网 使用集线器的以太网在逻辑上依旧是一个总线网,各站共享总线资源,使用的还是CSMargin.CD协议. 集 ...

  3. 【计算机网络学习笔记02】计算机网络概述(中)

    [计算机网络学习笔记02]计算机网络概述(中) 计算机网络的定义.组成与分类 1计算机网络的定义 1.1 简单定义: 一些相互连接的.以共享资源为目的的.自治的计算机的集合. 1.2 通用定义: 利用 ...

  4. 计算机网络-学习笔记

    计算机网络-学习笔记 1.1.1 概念.组成.功能和分类 概念:计算机网络:是一个将分散的.具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统.计算机网 ...

  5. 【计算机网络学习笔记13】交换技术(下)

    [计算机网络学习笔记13]交换技术(下) 一.生成树的诞生和发展 1. 环路问题 两个网桥之间的连接网线如果只有一根,而这根网线或者接口有问题,网络就会出现单点故障.所以为了提高可靠性,网桥在互连时一 ...

  6. 【计算机网络学习笔记】计算机网络

    计算机网络学习笔记 第一章 计算机网络概述 1. 计算机网络概述 1.1 计算机网络的概念 1.2 计算机网络的组成 1.3 计算机网络的功能 1.4 计算机网络的分类 1.5 计算机网络的标准化工作 ...

  7. 计算机网络学习云平台,云计算机网络学习系统,云计算机网络实验室设备

    原标题:云计算机网络学习系统,云计算机网络实验室设备 KH-E1云计算机网络实验室设备 一.概述 E1系列云计算千兆数字多媒体实时可视化网络交互式教学平台,在计算机工作模式,无PC.无220V强电的状 ...

  8. 计算机网络学习笔记(详尽版)

    计算机网络学习笔记 计算机网络 第一章 定义和特点 网络 定义 功能 特点 组成 类别 性能 结构 本章重要概念 第二章 物理层 基本概念和标准 数据通信基础知识 物理层下的传输媒体 引导型传输媒体 ...

  9. 片偏移怎么计算_计算机网络学习笔记(四)之网络层

    点击蓝字关注我吧 越努力越幸运!!! 1 网络层的功能 1.1异构网络互联 网络的互联:指将两个以上的计算机网络,通过一定的方法, 用一种或多种通信处理设备(即中间设备)相互联接起来,以构成更大的网络 ...

最新文章

  1. 红帽linux怎么更新源,redhat Linux配置yum更新源
  2. 谈谈浅拷贝和深拷贝的区别,以及实现的方法
  3. 【Unity】11.5 物理材质 (Physics Material)
  4. spring mvc @RequestBody @ResponseBody 解析流程
  5. IP5的接口模式运行测试
  6. pdf secured_使您的Spring Security @Secured注释更干燥
  7. 手动实现一个迷你版的AOP(实战增强版)
  8. Ansible Tower - 使用入门 2 - 不同团队用户基于 RBAC 执行模板
  9. 小白用GitHub快速搭建自己的网站,可访问,不用买域名、服务器
  10. VB.net中的sender和e
  11. CSS Reset的相关概念及实例
  12. 如何在 Mac 上的“屏幕使用时间”中设置限定通信?
  13. react取消捕获_React生命周期
  14. java debug 宏_#ifdef _DEBUG用法小结
  15. matlab设计滤波器
  16. 十分钟快速入门 Pandas
  17. 創新組合型的架構設計(Part-4):EIT造形幕後的設計思想
  18. 练习-Java类和对象之对象组合之求圆锥体表面积
  19. aws s3跨区复制文件
  20. pwm控制直流电机转速流程图_直流电机的PWM速度控制程序

热门文章

  1. 7bit解码 java_7bit编码 - 莫问viva的个人空间 - OSCHINA - 中文开源技术交流社区
  2. linux下遇到bind: Address already in use解决办法
  3. 预约挂号系统day-01
  4. mysql数据库中文选什么数据类型_数据库MySQL-选择合适的数据类型
  5. 傅里叶变换 高通滤波 低通滤波
  6. c语言如何找小数点后有几位皇帝,C语言中,float类型怎么储存小数点后六位的,第六位会四舍五入么?...
  7. 【DirectX11】第二篇 DirectX11渲染管线(2016.05.09更新)
  8. 学平面设计能做什么?有什么好处?
  9. mac打不开html,苹果电脑Mac打不开网页怎么办?Mac打不开网页的解决方法
  10. Opencv中的鼠标事件