广播风暴的成因及解决办法

  广播风暴是由于以太网中出现了明环或暗环,引起广播包指数增长,整个网络流量被广播包占据,其他业务流量不能正常进行转发的一种情况。

  以太交换机对广播包的处理,是不管从哪个端口收到广播包,都完整地复制一份转发到其他端口(除接收到的端口外)。

 

 

交换机对广播报文的处理过程。来自端口1的广播报文在端口2,3,4上各自复制一份发送

  一个简单的环就是同一个交换机上的两个端口直连。比如3口和4口连上。

 

交换机成环路,同一个交换机的3,4口相通

  那么当交换机收到来自1口的广播包,会在3和4口上各自复制转发一份。注意,收到一个包广播包,发出去N-1个广播包。这一轮结束后,3和4分别发送了一个广播包。但是从3口发出的广播包会被4口收到,从4口发出的会被3口收到。交换机会把从4口收到的广播包在1,2,3口上复制转发一份。同样的也会转发从3收到的广播包(来自端口4的直连线)到端口1,2,4。

 

从3发出的广播报文被4口接收到,复制到1,2,3端口再发送出去。

  同样的不幸故事又发生在刚刚转发的3发4收和3收4发的广播包上。3和4口会不停地接收到对方发的广播包,交换机会不停地转发到所有端口。以前图为例,step4和step5会陷入死循环。注意,每次循环的时候,1,2,都会把广播报文广播到网络中去。

  每发生一轮,广播包就在所有端口复制转发一份。这个故事永远不会停止,直到交换机被撑死。如此循环往复很快就爆炸了。

  这个是最简单的明环。如果有两个或多个交换机的转发路径上有了类似的结果,也就是说同一个广播包被同一个交换机处理2次的时候,这个交换机就对广播包进行了不可逆转的爆炸。

 

长环(暗环)中,A3-B1-B2-A4形成一个环路,Step 4~7会循环往复不停歇

 

转载自:https://www.zhihu.com/question/51715471?sort=created

posted @   .dier  阅读(2970)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
点击右上角即可分享
微信分享提示