zoukankan      html  css  js  c++  java
  • 交换机与HUB的区别

    由于经常需要在数台设备间交换数据,前段时间把hub(10M)换成了交换机(100M),今天抓包的时候发现电脑接着交换机的时候不能像以前接着hub一样可以抓所有的包了,结果一查才知道交换机有学习功能,看来工作时间一长,一些基本概念都忘记了。又查了一下,温故而知新,还是孔子说得对啊!

    A:交换机

    一、交换机数据转发原理

    基于MAC地址表

    1. 学习,当S收到一个数据帧时,先查看帧中的源MAC地址,然后对比MAC地址表,如果没有就添加这个条目。

    2. 转发,S根据MAC地址表单播转发数据帧,转发时先查看帧中目标MAC地址,然后对比MAC地址表,根据表中对应的端口号将数据转发到相应的端口。

    3. 如果目标MAC地址不在MAC地址表中,S就向除源端口外所有的端口广播该帧。

    4. 老化时间是300s,超时后删除。

    二、交换机的交换方式:

    1. 快速转发,不进行帧的存储和校验,建立通信信道直接转发数据。优点:由于不需要存储,延迟非常小、交换非常快。缺点:不保存数据包,无法检查数据包是否有误。没有缓存,不能将不同速率的输入/输出端口直接接通,容易丢包。

    2. 存储转发,完整存储收到的帧,进行校验后转发。优点:对数据包进行错误检测,有效地改善网络性能。支持不同速度端口间的转换,保持高低速端口间的协同工作。缺点:数据处理延时大。

    3. 分段过滤,介于以上两者之间,检查数据包的长度是否够64B,如果小于,说明是假包,则丢弃该包;如果大于,则发送该包。优点:比存储转发快,比快速转发慢。缺点:没有校验。

    BHUB

    集线器属于纯硬件网络底层设备,基本上不具有类似于交换机的"智能记忆"能力和"学习"能力。没有具备交换机所具有的MAC地址表,所以它发送数据时都是没有针对性的,而是采用广播方式发送。也就是说当它要向某节点发送数据时,不是直接把数据发送到目的节点,而是把数据包发送到与集线器相连的所有节点。

  • 相关阅读:
    graalvm 内置require 模块的开启
    Calling out from Java to JavaScript (with call back) – leveraging interoperability support of GraalVM
    web开发 api 资源跨域的一种实践
    使用rollup 转换commonjs 模块为es6 模块,方便的支持graalvm 模块兼容
    使用json-mask 查询json 数据
    nginx njs docker 试用
    使用nginx-prometheus-exporter 监控nginx
    wso2 关于graphql 的方案
    docker也一直发展
    操作系统-容器-Docker:如何将应用打包成为 Docker 镜像?
  • 原文地址:https://www.cnblogs.com/wlei/p/2305203.html
Copyright © 2011-2022 走看看