引起网络广播风暴的几种原因

网吧行业竞争的加剧,出现了一些规模比较大的网吧。目前在网吧行业内,百台以上的网吧已经随处可见了。由于网吧在进行网络建设时,缺乏专业的网络技术支持,使得网吧的网络故障频繁出现。在网吧的网络故障中,由于网络广播风暴引起的网络故障,占网吧网络故障的九成以上。网络广播风暴到底是如何形成的呢?

  要想正确理解广播风暴的具体含义,我们必须了解一下工作在网络中的网络设备的工作原理。目前,工作在网吧网络中的网络设备,基本上都是交换机了。对于交换机,大家并没有真正的了解其工作原理。

  一、交换机基础知识

  1、交换机的定义:交换机是一种基于MAC(网卡的硬件地址)识别,能完成封装转发数据包功能的网络设备。交换机可以“学习”MAC地址,并把其存放在内部地址表中,通过在数据帧的始发者和目标接收者之间建立临时的交换路径,使数据帧直接由源地址到达目的地址。

  现在,交换机已经替代了我们原来比较熟悉的网络设备集线器,又称Hub。但是这并不意味着,我们不需要了解Hub的基本知识。

  2、集线器的定义:集线器(HUB)属于数据通信系统中的基础设备,它和双绞线等传输介质一样,是一种不需任何软件支持或只需很少管理软件管理的硬件设备。它被广泛应用到各种场合。集线器工作在局域网(LAN)环境,像网卡一样,应用于OSI参考模型第一层,因此又被称为物理层设备。集线器内部采用了电器互联,当维护LAN的环境是逻辑总线或环型结构时,完全可以用集线器建立一个物理上的星型或树型网络结构。在这方面,集线器所起的作用相当于多端口的中继器。其实,集线器实际上就是中继器的一种,其区别仅在于集线器能够提供更多的端口服务,所以集线器又叫多口中继器。

  二、交换机与集线器的区别

  现在,我们经常会存在这样一个技术误区,我们用的是交换机,数据全部是点对点转发的,为什么还会产生广播风暴呢?我们在充分了解了交换机与集线器的功能区别后,就会明白,使用交换机作为网络设备的网络,为什么会出现广播风暴。

  1、交换机与集线器的本质区别:用集线器组成的网络称为共享式网络,而用交换机组成的网络称为交换式网络。 共享式以太网存在的主要问题是所有用户共享带宽,每个用户的实际可用带宽随网络用户数的增加而递减。这是因为当信息繁忙时,多个用户可能同时“争用”一个信道,而一个信道在某一时刻只允许一个用户占用,所以大量的用户经常处于监测等待状态,致使信号传输时产生抖动、停滞或失真,严重影响了网络的性能。

  2、在交换式以太网中,交换机提供给每个用户专用的信息通道,除非两个源端口企图同时将信息发往同一个目的端口,否则多个源端口与目的端口之间可同时进行通信而不会发生冲突。通过实验测得,在多服务器组成的LAN 中,处于半双工模式下的交换式以太网的实际最大传输速度是共享式网络的1.7倍,而工作在全双工状态下的交换式以太网的实际最大传输速度可达到共享式网络的3.8倍。 交换机只是在工作方式上与集线器不同,其他的如连接方式、速度选择等与集线器基本相同,目前的交换机同样从速度上分为10M、100M和1000M几种,所提供的端口数多为8口、16口和24口几种。交换机在局域网中主要用于连接工作站、Hub、服务器或用于分散式主干网。

  三、产生广播风暴的原因

  通过对以上网络设备的了解,我们就可以简单分析出来,网络产生广播风暴的原因了。一般情况下,产生网络广播风暴的原因,主要有以下几种:

  1、网络设备原因:我们经常会有这样一个误区,交换机是点对点转发,不会产生广播风暴。在我们购买网络设置时,购买的交换机,通常是智能型的Hub,却被奸商当做交换机来卖。这样,在网络稍微繁忙的时候,肯定会产生广播风暴了。

  2、网卡损坏:如果网络机器的网卡损坏,也同样会产生广播风暴。损坏的网卡,不停向交换机发送大量的数据包,产生了大量无用的数据包,产生了广播风暴。由于网卡物理损坏引起的广播风暴,故障比较难排除,由于损坏的网卡一般还能上网,我们一般借用Sniffer局域网管理软件,查看网络数据流量,来判断故障点的位置。

  3、网络环路:曾经在一次的网络故障排除中,发现一个很可笑的错误,一条双绞线,两端插在同一个交换机的不同端口上,导致了网络性能急骤下降,打开网页都非常困难。这种故障,就是典型的网络环路。网络环路的产生,一般是由于一条物理网络线路的两端,同时接在了一台网络设备中。

  4、网络病毒:目前,一些比较流行的网络病毒,Funlove、震荡波、RPC等病毒,一旦有机器中毒后,会立即通过网络进行传播。网络病毒的传播,就会损耗大量的网络带宽,引起网络堵塞,引起广播风暴。

  5、黑客软件的使用:目前,一些上网者,经常利用网络执法官、网络剪刀手等黑客软件,对网吧的内部网络进行攻击,由于这些软件的使用,网络也可能会引起广播风暴。

  要想做到对故障的快速判断,良好扎实的基础知识,是不可缺少的。因此大家在日后的学习中,不要忽略了对基础知识的学习!

(0)

相关推荐

  • 引起网络广播风暴的几种原因

    网吧行业竞争的加剧,出现了一些规模比较大的网吧.目前在网吧行业内,百台以上的网吧已经随处可见了.由于网吧在进行网络建设时,缺乏专业的网络技术支持,使得网吧的网络故障频繁出现.在网吧的网络故障中,由于网络广播风暴引起的网络故障,占网吧网络故障的九成以上.网络广播风暴到底是如何形成的呢? 要想正确理解广播风暴的具体含义,我们必须了解一下工作在网络中的网络设备的工作原理.目前,工作在网吧网络中的网络设备,基本上都是交换机了.对于交换机,大家并没有真正的了解其工作原理. 一.交换机基础知识 1.交换机的

  • 从交换机原理看网络广播风暴的几种原因

    络故障中,由于网络广播风暴引起的网络故障,占网络故障的九成以上.网络广播风暴到底是如何形成的呢? 要想正确理解广播风暴的具体含义,我们必须了解一下工作在网络中的网络设备的工作原理.目前,工作在网吧网络中的网络设备,基本上都是交换机了.对于交换机,大家并没有真正的了解其工作原理. 一.交换机基础知识 1.交换机的定义:交换机是一种基于MAC(网卡的硬件地址)识别,能完成封装转发数据包功能的网络设备.交换机可以"学习"MAC地址,并把其存放在内部地址表中,通过在数据帧的始发者和目标接收者之

  • PHP代码维护,重构变困难的4种原因分析

    本文分析讲述了PHP代码维护,重构变困难的4种原因.分享给大家供大家参考,具体如下: 代码维护,重构是件很令人不爽的一件事.以下几种情况,会让代码维护和重构变得很困难. 1. 项目开始时,大家规定好一些代码规范,在一定的规范下进行开发,但是人的思想是不一样的,也就是说每个功能不同的人实现的逻辑可能会有这样那样的不同,导致了一些人不愿意去看别人代码,要改别人代码,首先要了解这个人当时是怎么想的,他的逻辑是怎么样的.所以有很多人的想法是有那看别人代码的时间,我就重新做好了.这种想法不要有,看别人代码

  • python基于socket实现网络广播的方法

    本文实例讲述了python基于socket实现网络广播的方法.分享给大家供大家参考.具体实现方法如下: import socket, sys dest = ('<broadcast>', 51423) s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST,1) s.sendto("Hi", dest) print &qu

  • iOS中从网络获取数据的几种方法的比较

    IOS中获取网络数据一般有三种:1.NSURLCondition(已过时) 2.NSURLSession  3.三方库AFNetWorking NSURLSession 是苹果对NSULRCondition的替代品,NSURLSession比NSURLCondition多了 1.可配置的数据信息NSURLSessionConfiguration,NSURLSessionConfiguration使你可以设置你要请求的数据,通常的设置如缓存,也可以使用默认的配置信息defaultCongurati

  • java.lang.NullPointerException出现的几种原因及解决方案

    java.lang.NullPointerException出现的几种原因: 1.字符串变量未初始化 2.接口类型的对象没有用具体的类初始化,比如: Map map // 会报错 Map map = new Map(); //则不会报错了 3.当一个对象的值为空时,你没有判断为空的情况. 4.字符串与文字的比较,文字可以是一个字符串或Enum的元素,如下会出现异常 String str = null; if(str.equals("Test")){ //这里的代码将不会被触发,因为会抛

  • Spring事务失效的几种原因

    数据库引擎不支持事务 在MySQL数据库中有几种引擎(InnoDB,MyISAM,Memory等等),仅仅InnoDB支持事务,如果数据库底层都不支持事务的话,那么再怎么折腾都是白搭. @transactional加在private方法上 @Transactional只能加在public方法上,如果需要在private方法中加入事务,可以使用Aspect配transactionManager使用. 本类方法调本类另一个方法 例如: @Service public class UserServic

  • java中ThreadLocal取不到值的两种原因

    1.两种原因 第一种,也是最常见的一种,就是多个线程使用ThreadLocal 第二种,类加载器不同造成取不到值,本质原因就是不同类加载器造成多个ThreadLocal对象 public class StaticClassLoaderTest { protected static final ThreadLocal<Object> local = new ThreadLocal<Object>(); //cusLoader加载器加载的对象 private Test3 test3;

  • 解决java.lang.NullPointerException报错以及分析出现的几种原因

    java.lang.NullPointerException出现的几种原因: 1.字符串变量未初始化 2.接口类型的对象没有用具体的类初始化,比如: Map map // 会报错 Map map = new Map(); //则不会报错了 3.当一个对象的值为空时,你没有判断为空的情况. 4.字符串与文字的比较,文字可以是一个字符串或Enum的元素,如下会出现异常 String str = null; if(str.equals("Test")){ //这里的代码将不会被触发,因为会抛

  • python中出现invalid syntax报错的几种原因分析

    目录 出现invalid syntax报错的几种原因 1.符号使用不正确 2.代码缩进问题 invalid syntax——无效语法 错误代码块 调整后代码 出现invalid syntax报错的几种原因 这篇文章旨为刚接触python不久的朋友,提供一点帮助,请在检查代码没有主要问题时再看是否存在以下问题. 一般来说,写完代码运行时,如果代码中有错误,解释器会提示错误信息,按照提示信息,一般很快可以找出错误,进行修改.但也有一些时候错误提示的信息不是那么明确,代码检查了几遍仍找不出问题,就比较

随机推荐