二层转发机制&MAC地址表会溢出吗(为啥具有老化时间)
2016-12-10 12:33
162 查看
交换机在工作的时候,
开始MAC表中并没有内容,因此当其他机器之间开始发送数据的时候,交换机要完成以下几个动作:
一是将接收到的数据包中的MAC地址和它进入的端口及时间保存到MAC表中;
二是要将数据包转发出去,因为这时候还不知道目标MAC地址与它的端口之间的对应关系,所以它只能将此数据包从它的所有端口发送出去(泛洪)。
之后,当目标机器要返回它的应答的时候,交换机就可以将此机器的MAC地址与它的端口的对应关系再保存下来,
因为这个时候它的目标地址已经知道了(即原来的源地址),这个时候交换机就只需要将数据包从对应端口发出去即可。
在它的整个工作期间,交换机都在不断地查询它的MAC表,将接收到的数据包转发出去,同时根据接收到的数据包更新它的MAC表。MAC表中的表项都有一定的生存时间的,交换机每收到一个数据包都要查看它的MAC表,如果此MAC地址不在表中,添加进去;如果已在表中,则将时间字段更新。
如果一个表项超过一定的时间还没有被更新的话(根据记录的时间计算得出),则此表项将“老化”,再过一定时间,仍然没有被更新,则交换机认为相应的机器关机,遂将此表项删除。
MAC表不会溢出:
一是局域网的机器数量一般比较有限,数量太大的话,发生广播风暴的几率就比较高,这时候就会用路由器将网络分割成不同的广播域;
二是此前所说的MAC表的更新机制,即使你一直在更换局域网中的机器(极端情况),交换机也会将MAC表中长时间不活动的表项删去。
另外就是处于网络核心层的骨干交换机一般都具有比较大的MAC表,即使机器数量比较多,也不容易使之溢出。
相关文章推荐
- QSignalMapper分类有序地处理大量信号(就是信号转发机制,A1,A2,A3,....>B>C)
- TCP/IP详解--拥塞控制机制 && RTT时间计算相关的算法
- sqlite 锁机制 &&时间函数
- OpenDayLight Helium实验三 OpenDaylight二层转发机制实验 2
- MAC地址表和老化时间
- 交换机二层地址表和老化时间
- Collection -> .Net集合类型大全,只要灵活运用可以节省很多开发时间和提高程序运行效率
- 验证有效 "日期时间" 的正则表达式(已解决闰二月)
- Bill_Lang's Study & Life [时间管理经典]Do It Now
- 用"堆栈区数据复制"理解Java赋值和参数传递机制的心得
- 解决修改系统时间的病毒 & 自动打开某些网页并修改了默认登陆页面
- CIO时间>金钱新逻辑:从刷牙洗澡开始
- 设计一个具有健壮性,灵活性,可重用性的Web应用架构(一)--->实验总结
- 进程间通讯和线程间通讯的常用机制简介(转发,英文)
- 编程的手感&我的4年程序员之路&程序员应具有的素质
- Windows® CE 系统中的同步机制
- 完全掌握 Java 中的"包"机制(zt)
- 并购之后 新联想面临的四十个难题(转发)--合作机制
- [原创]在C#中改变系统时间 && 得到系统时间改变通知
- 用小时间做大事情&用大时间做小事情