包是如何通过交换机的

交换机的设计是将网络包原样转发到目的地,图3.7就是它的内部结构,我们边看图边讲。

首先,信号到达网线接口,并由PHY(MAU)模块进行接收,这一部分和集线器是相同的。也就是说,它的接口和PHY(MAU)模块也是以MDI-X模式进行连接的,当信号从双绞线传入时,就会进入PHY(MAU)模块的接收部分.

接下来,PHY(MAU)模块会将网线中的信号转换为通用格式,然后传递给MAC模块。MAC模块将信号转换为数字信息,然后通过包末尾的FCS校验错误,如果没有问题则存放到缓冲区中。这部分操作和网卡基本相同,大家可以认为交换机的每个网线接口后面都是一块网卡。网线接口和后面的电路部分加在一起称为一个端口,也就是说交换机的一个端口就相当于计算机上的一块网卡[插图]。但交换机的工作方式和网卡有一点不同。网卡本身具有MAC地址,并通过核对收到的包的接收方MAC地址判断是不是发给自己的,如果不是发给自己的则丢弃;相对地,交换机的端口不核对接收方MAC地址,而是直接接收所有的包并存放到缓冲区中。因此,和网卡不同,交换机的端口不具有MAC地址。


交换机端口的MAC模块不具有MAC地址。

将包存入缓冲区后,接下来需要查询一下这个包的接收方MAC地址是否已经在MAC地址表中有记录了

MAC地址表主要包含两个信息,

一个是设备的MAC地址,
另一个是该设备连接在交换机的哪个端口上。

以图3.7中的地址表为例,MAC地址和端口是一一对应的,通过这张表就能够判断出收到的包应该转发到哪个端口。

举个例子,如果收到的包的接收方MAC地址为00-02-B3-1C-9C-F9,则与图3.7的表中的第3行匹配,根据端口列的信息,可知这个地址位于8号端口上,然后就可以通过交换电路将包发送到相应的端口了

交换电路到底是如何工作的。

交换电路的结构如图3.8所示,它可以将输入端和输出端连接起来。其中,信号线排列成网格状,每一个交叉点都有一个交换开关,交换开关是电子控制的,通过切换开关的状态就可以改变信号的流向。交换电路的输入端和输出端分别连接各个接收端口和发送端口,网络包通过这个网格状的电路在端口之间流动。

举个例子,假设现在要将包从2号端口发送到7号端口,那么信号会从输入端的2号线进入交换电路,这时,如果让左起的6个开关水平导通,然后将第7个开关切换为垂直导通,信号就会像图上一样流到输出端7号线路,于是网络包就被发送到了7号端口。每个交叉点上的交换开关都可以独立工作,因此只要路径不重复,就可以同时传输多路信号。


当网络包通过交换电路到达发送端口时,端口中的MAC模块和PHY (MAU)模块会执行发送操作,将信号发送到网线中,这部分和网卡发送信号的过程是一样的。根据以太网的规则,首先应该确认没有其他设备在发送信号,也就是确认信号收发模块中的接收线路没有信号进来。如果检测到其他设备在发送信号,则需要等待信号发送完毕;如果没有其他信号,或者其他信号已经发送完毕,这时就可以将包的数字信息转换为电信号发送出去。在发送信号的过程中,还需要对接收信号进行监控,这一点和网卡也是一样的。如果在发送过程中检测到其他设备发送信号,就意味着出现了信号碰撞,这时需要发送阻塞信号以停止网络中所有的发送操作,等待一段时间后再尝试重新发送,这一步和网卡也是一样的。

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

总结

  • 交换机的工作依赖于对MAC地址的识别(所有的网络设备都有一个唯一的MAC地址,通常是由厂商直接烧录进网卡中)。
  • 交换机的功能是连接计算机、服务器、网络打印机、网络摄像头、IP电话等终端设备,并实现与其它交换机、无线接入点、路由器、网络防火墙等网络设备的互联,从而构建局域网络,实现所有设备之间的通信。
  • 交换机根据MAC地址表查找MAC地址,然后将信号发送到相应的端口

参考

交换机的作用是什么? - 知乎

ps

  • 什么是mac地址表?用途?

包是如何通过交换机的相关推荐

  1. 数据丢包怎么修复_交换机发生网络通信故障怎么解决?

    交换机故障一般可以分为硬件故障和软件故障两大类,交换机虽然不常发生故障,但是一旦发生故障后都不太好检测与排除.那么,当交换机发生网络通信故障了该怎么办呢?今天就由飞畅科技的小编来给大家说说交换机网络通 ...

  2. HCIE面试题之交换机和路由器收到未知表项数据包如何处理

    交换机和路由器收到未知表项数据包如何处理 一.交换机是依据数据帧中DMAC查找设备表项进行转发的. 那么此时就会涉及对于未知单播,未知组播,未知广播的处理方式 收到未知单播数据帧,泛洪并接口记录下MA ...

  3. 交换机的VACL测试

    一.测试拓扑: R1------------SW1------------------(MAC:2.2.2)R2 | R3 R1,R2,R3都在VLAN11中,R1连接SW1的接口手工指定mac地址为 ...

  4. 使用pip将Python包安装到不同的目录中?

    我知道明显的答案是使用virtualenv和virtualenvwrapper,但出于各种原因我不能/不想这样做. 那么我该如何修改命令呢 pip install package_name 使pip安 ...

  5. 从Openvswitch代码看网络包的旅程

    我们知道,Openvwitch可以创建虚拟交换机,而网络包可以通过虚拟交换机进行转发,并通过流表进行处理,具体的过程如何呢? 一.内核模块Openvswitch.ko的加载 OVS是内核态和用户态配合 ...

  6. 二层交换机、三层交换机与路由器的比较

    为了适应网络应用深化带来的挑战,网络在规模和速度方向都在急剧发展,局域网的速度已从最初的10Mbit/s 提高到100Mbit/s,目前千兆以太网技术已得到普遍应用.在网络结构方面也从早期的共享介质的 ...

  7. 实验: 集线器和交换机的区别

    PC0通过集线器给PC2发送一个数据包 PC0通过交换机给PC2发送一个数据包 通过上述实验你会发现. 集线器的转发都是广播的形式. 而交换机是单播的形式.即直接发送到目的主机. PC0通过集线器给P ...

  8. 2层,3层,4层交换机的区别与特点!!

    二层交换技术是发展比较成熟,二层交换机属数据链路层设备,可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中.具体的工作流程如下: (1 ...

  9. 二层交换机的MAC表学习过程

    二层交换机工作在链路层,负责数据桢的转发,一个数据桢包含来源MAC,目标MAC,(ARP桢目标MAC不指定) 交换机负责将一个端口(物理上的)上收到的桢转发给另外的端口,由于一个端口对应一或多个MAC ...

最新文章

  1. python自学平台-Python编程和人工智能平台学习
  2. exchange2007 灾难恢复E00.log(虚拟环境实验)
  3. 在微型计算机中pci指的是一种,2010新疆维吾尔自治区计算机等级考试二级理论考试试题及答案...
  4. dart系列之:如丝滑般柔顺,操作文件和目录
  5. 网络编程知识预备(1) ——了解OSI网络模型
  6. ant java 返回_使用Ant自动化我们的java项目生成
  7. mysql 并发 压测工具_MySQL压测工具mysqlslap的介绍与使用
  8. X权限 gpasswd getent 命令详解
  9. 强悍的命令行 —— echo、env($PATH)、sudo
  10. Svn装到eclipse
  11. 安装linux版qq,安装二进制包编译器,安装mysql-5.6.11,删除已安装或安装失败的mysql-5.6.11,简单mysql练习题...
  12. Kafka从上手到实践 - Kafka集群:配置Broker | 凌云时刻
  13. EXCEL拆分单元格代码
  14. Hive安装超详细教程
  15. 阿里云——零基础入门语音识别——食物声音识别——代码跑通及解析
  16. android q mix3,Android Q+5G 小米MIX3现场播放8K视频:画面流畅
  17. html中引号的作用,引号的作用是什么
  18. 实现Promise的resolve/reject/then/all/race/finally/catch方法
  19. 长江大学计算机学院江琼琴,长江大学外国语学院硕士研究生校友名录(2005-2012级)...
  20. 项目二--Time类

热门文章

  1. vscode之调试es6代码
  2. 计算机基础(六):内存申请方式
  3. 云服务器常用端口及其含义
  4. 罗斯蒙特电磁流量计8723说明书_罗斯蒙特电磁流量计8732E型的性能规格
  5. 解决Android的adb命令行报错Permission denied
  6. easyUI 鼠标悬浮 和截取
  7. 计算机专业英语第五章ppt,计算机专业英语课件5.ppt
  8. 波形发生器设计c语言文件,超低频波形发生器的设计论文(C语言编程) .doc
  9. mysql merge查询速度_MySQL 查询优化之 Index Merge
  10. node.js学习文档_学习NodeJs从每天一个小知识点开始