学习记录:二层网络环路相关

zz/2024/6/13 22:19:34

学习记录

  • 上周实习过程中由于对此相关内容不熟悉,造成了事故。由此对相关内容加强学习,特此记录。

目录

  • 学习记录
  • 一、交换机相关
  • 二、网络环路的产生
  • 三、网络环路的影响
  • 四、如何避免网络环路
  • 五、二层环路的直观异常情况

一、交换机相关

  总的来说,交换机是一种基于MAC地址识别,能完成封装转发数据包功能的网络设备。
  在实习中,我接触到的应该都是第二层交换机(数据链路层)。其内部存在着一个映射表,记录着设备MAC地址与交换机端口之间的关系。
  当交换机从某端口收到一个数据包,它首先读取包头中的源MAC地址,这样它就知道源MAC地址的机器是连在哪个端口上的。随后它再去读取包头中的目的MAC地址,并在地址表中查找相应的端口,如果表中有与这目的MAC地址对应的端口,则把数据包通过该端口进行传输;如果在表中找不到相应的端口则把数据包广播到所有端口上,当目的机器对源机器回应时,交换机又可以记录目的MAC地址与哪个端口对应,在下次传送数据时就不再需要对所有端口进行广播了。

  • 总结
      交换机内维护了一张表,其中记录了MAC地址与端口的对应关系。当交换机收到包时,会首先更新包源MAC地址与端口的关系。随后读取包的目标MAC地址,接着在映射表内进行查询,此时有两种结果:
      1.如果目标MAC地址已经被记录,则直接通过对应的端口进行转发。
      2.如果目标MAC地址未被记录,则所有的端口都进行发包操作即广播(即泛洪),来确保包能被交换机转发出去。
      而当目标MAC地址的设备收到包进行回应时,则回到流程第一步的“当交换机收到包时”,此时会更新映射表,添加该MAC地址与端口的对应关系。今后这两台设备进行通信时,交换机则不会再进行广播操作而是直接找到相应端口进行转发。

二、网络环路的产生

  环路大概就是:A交换机网络从B交换机网络收到了要发给X的消息,随后再次转发给B交换机网络(其中A和B网络所属可能是同一台交换机),这样该消息就会在A和B网络中不断被转发,造成环路问题。
  原因大多是因为线路连接问题或是硬件设备自身的问题。

三、网络环路的影响

  首先的影响就是MAC地址表震荡。因为交换机收到包时会进行表的更新,即交换机在收到包时会更新该包源端口与设备MAC之间的映射关系。但是如果构成环路的话,则代表该路由器会在不同的端口收到同一个包,该包源MAC地址是相同的,则MAC地址表中的映射关系会一直发生“跳跃”,即表内同一个MAC地址在不同的端口上进行“跳跃”,这便是MAC地址表的震荡。
  随后最大的影响便是广播风暴。因为造成了环路,且在二层交换机中是没有TTL机制来约束包的转发的,所以数据包会在环路内被无限次的转发,由此造成广播风暴。更严重的是可能数据包在环路内不是单播而是广播(比如说该包的源和目的相同,则由于MAC地址表震荡造成泛洪),由此对相关资源的消耗更为巨大。
  同时网络环路也可能造成重复数据帧。当拓扑关系出现问题时,可能会出现多端口可致目的MAC地址,则数据可能会在广播中被复制转发,目的地则会收到相同的两份数据。当出现环路时,这两份数据会转发给初始交换机,重复上述操作,造成数据不断的被复制,从而占用越来越多的资源。

四、如何避免网络环路

  最简单的方法就是设定生存时间值TTL,来避免无限次的转发从而避免环路带来的广播风暴等影响。但是二层交换机不支持该内容,且这样是治标不治本,环路并没有被解决。
  随后我们可以引入一些算法和破坏协议来避免网络环路,使可以及时发现并切断网络环路。
  当然在日常接线中,也要注意,从根本上避免网络环路的产生。例如:

  1. 例如A与B已连接交换机C,则A与B之间不可再连线。
  2. 不可用网线连接同一交换机的两个端口。
  3. 假如A连接了B,B连接了C,则A不可连接C。
  4. 等等…

五、二层环路的直观异常情况

在这里插入图片描述


http://www.ngui.cc/zz/1545159.html

相关文章

计算机网络检查方式,一种计算机网络环路检测方法与流程

本发明涉及计算机网络环路检测技术领域,具体为一种计算机网络环路检测方法背景技术:计算机俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按…

网络环路导致公司网络瘫痪问题排查

问题:公司网络突然很不稳定,跟踪发现大量丢包 问题排查: 1.怀疑电信网络/设备有问题 联系电信经理 ,安排工程人员过来排查,排查发现入户网络正常,更换电信入户光猫后网络还是不稳定,还是大量…

网络环路

可抓包分析。网络环路可分为网络二层和三层环路。首先看IP头中的IPID标识,如果数据包中的IPID都一样,可判断存在网络环路。再看IP头中的TTL值,若数据包中的TTL值逐渐减1,可判断存在网络三层环路,即网络路由环路&#x…

什么是网络环路问题?

在由交换机构成的交换型中,通常为可靠性而设计有冗余链路和设备。虽然冗余设计消除了单点故障,但也导致了交换回路的产生。一旦交换网络存在环路,就会造成数据包在环路内不断循环和增生,甚至造成广播风暴,导致网络堵塞…

Java SE 银行收支系统管理

展示: 1.Customer类 package com.linfeng.bean; /*** * Description Customer为实体对象,用来封装客户信息* author linfeng Email:1296752939qq.com* version* date 2022年3月14日下午5:30:56*/ public class Customer {private String name;//客户姓…

Golang入门项目(家庭收支软件和客户信息管理软件)

家庭收支软件 package utilsimport "fmt"type FamilyAccount struct {//声明一个变量,保存接收用户输入的选项key string//声明一个变量,控制是否退出forloop bool//定义账户的余额 []balance float64//每次收支的金额money float64//每次收支…

java编写家庭收支记录,java swing mysql 实现的家庭收支管理系统项目源码附带视频运行教程...

<p><span style"color:#555555;font-family:&quot;font-size:16px;background-color:#FFFFFF;line-height:2;">今天给大家演示一下一款由Java swing mysql实现的简单的家庭收支情况管理系统&#xff0c;也可以叫个人消费情况记录软件&#xff0c;功能…

【java】家庭收支管理系统

目录 1.该项目所涉及的主要知识点 2.项目要实现的功能 3.使用的工具&#xff08;eclipse&#xff09; 4.代码部分 1.该项目所涉及的主要知识点 ①变量的定义 ②数据类型的使用 ③循环语句&#xff08;for循环&#xff0c;while循环&#xff09; 2.项目要实现的功能 ①模…

java ssm班费收支信息管理系统

学校中对班费的管理&#xff0c;已经从通常的手工记事本的方式管理过渡到电脑信息化软件管理的方式。通过软件进行班费的管理&#xff0c;方便用户的查询&#xff0c;数据的登记等&#xff0c;对班级的班费管理更加方便。通过系统的建设&#xff0c;也能够对班费的缴费情况&…

基于文本界面的家庭收支软件

1.项目展示 2.项目代码 #include <stdio.h> #include <string.h> //定义一个结构体 struct MyFamilyAccount{int flag;//表示至少有一笔收入或者支出 char details[3000];//明细 double balance;//余额 }; //定义相关的变量char key ; //表示用户输入了那个菜单 …