zoukankan      html  css  js  c++  java
  • 【网络学习】集线器,交换机,路由器的作用

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

    作者:gtea 博客地址:https://www.cnblogs.com/gtea
  • 相关阅读:
    二项式定理与组合恒等式
    「CEOI2020」象棋世界 题解
    矩阵 题解
    研一总结
    你明白transform中的skew属性是何如变换的吗?
    pip安装包
    Yaml中特殊符号"| > |+ |-"的作用
    使用ROOT用户运行Jenkins
    检查MySQL主从复制运行状态
    powerdesigner 怎么逆向生成 pdm文件
  • 原文地址:https://www.cnblogs.com/gtea/p/12713766.html
Copyright © 2011-2022 走看看