集线器(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。(这里不考虑组播的情况)

转载于:https://www.cnblogs.com/itplay/p/10904865.html

【硬件】集线器,交换机,路由器相关推荐

  1. 网络硬件三剑客集线器交换机路由器

    号称网络硬件三剑客的集线器(Hub).交换机(Switch)与路由器(Router)一直都是网络界的活跃分子,但让很多初入网络之门的菜鸟恼火的是,它们三者不仅外观相似,而且经常呆在一起,要想分清谁是谁 ...

  2. 集线器 交换机 路由器关系

    号称网络硬件三剑客的集线器(Hub).交换机(Switch)与路由器(Router)一直都是网络界的活跃分子,但让很多初入网络之门的菜鸟恼火的是,它们三者不仅外观相似,而且经常呆在一起,要想分清谁是谁 ...

  3. 集线器 交换机 路由器 modem 区别

    介绍 平时用到网络的时候,不管是生活还是工作,都会或多或少听过或用过这些设备,那么本次索性整理出来,供后续参考使用 1.集线器 如上图: 1.集线器主要目的是让其中内部所有的网络设备连通,它有一个具有 ...

  4. 网络-1集线器/交换机/路由器

    什么是集线器 首先我要介绍一下集线器,集线器是属于局域网的设备,比如一个公司的内网,集线器处于OSI模型中的下数第一层,物理层,集线器由于是半双工的(我自己理解的半双工的概念:电脑A给电脑B发送信号的 ...

  5. 网卡 集线器 交换机 路由器 调制解调器的作用

    网卡工作在osi的第二层也就是数据链路层数据链路层有个非常明确的协议就是物理地址协议网卡保存有明确的地址因此可以确认其属于数据链路层 集线器它就是起一个信号中继放大的作用,与古老的中继器一样,都是工作 ...

  6. 网络传输--集线器,交换机,路由器(局域网/广域网传输)

    1.IP地址和MAC地址 IP地址 在IP协议中, 用来标识网络中不同主机的地址,作用在网络层; IP协议有两个版本, IPv4和IPv6. 我们整个的课程, 凡是提到IP协议, 没有特殊说明的, 默 ...

  7. OSI的七层模型,网线,网卡,集线器,交换机,路由器分别工作在七层模型中的哪一层?

    OSI七层网络模型由下至上为1至7层,分别为物理层(Physical layer),数据链路层(Data link layer),网络层(Network layer),传输层(Transport la ...

  8. 集线器 交换机 路由器

    集线器将信号采用广播的方式发送出去,接收方根据mac地址判断是否接受这个包. 交换机的工作原理: 信号到达交换机的网线接口,由PHY(MAU)接受,传递给MAC模块,MAC模块将信号转换为数字信号,并 ...

  9. 交换机,集线器,路由器这三者如何区分,各自的作用是什么?

    交换机,集线器,路由器这三者如何区分,各自的作用是什么? 首先说HUB,也就是 集线器 .它的作用能够简单的理解为将一些机器连接起来组成一个局域网. 而 交换机 (又名交换式集线器)作用与集线器大体同 ...

  10. cisco硬件维修(交换机路由器防火墙模块电源维修)

    北京华夏恒捷网络技术有限公司针对过保网络设备专业提供cisco芯片级维修: cisco  华为3com  h3c  锐捷  d-link  网件等交换机  路由器 防火墙 模块 引擎 电源等维修 免费 ...

最新文章

  1. 3大主流前端框架对比
  2. TopCoder入门教程
  3. MinIO安装和基本使用
  4. hibernate mysql写入中文乱码
  5. Android JNI开发流程介绍
  6. Django中自定义过滤器的使用
  7. mac cad石材填充图案_CAD电视背景墙画法步骤
  8. 双向循环链表c语言,双向循环链表的实现与使用
  9. 【数据结构】图文讲解神奇的单链表与双链表
  10. php houdini,houdini中文翻译.pdf
  11. SQL中的DDL、DML、DCL、TCL是什么意思
  12. 极客日报:宿华不再担任快手CEO,程一笑接任;微软市值重登全球第一;Bootstrap 4.6.1发布
  13. 快进来看王冰冰!青年大学习提醒系统来了!!
  14. 联手百度腾讯,恒大汽车押注智能化
  15. cisco 2821 路由器的端口映射
  16. 学术圈“造假之王”,200余篇论文有183篇论文被撤稿
  17. 在tumbleweed中准备hadoop和mongodb环境
  18. npm 运行时报错“因为在此系统上禁止运行脚本”解决办法
  19. 量子和ai人工智能_人工智能公司为量子机器学习埋下了种子
  20. j散度matlab,利用Matlab绘制梯度图、散度图、旋度图。.doc

热门文章

  1. POJ3009 Curling 2.0
  2. Sourcing Cockpit: 2. Demo of Service Purchase Order
  3. 用bde连接 连接sql server2005
  4. Spring学习(一)初识Spring
  5. Ubuntu--useradd指令使用
  6. python中的enumerate函数
  7. Source insight 支持汇编
  8. 如何使用SSL pinning来使你的iOS APP更加安全
  9. css对齐 挖坑~
  10. Linux下设计并发队列