我想了解定时轮的概念,它应该用于老化 MAC 地址表条目。指向 C 语言中任何代码的指针也会有所帮助。我在网上搜索但找不到令人信服的答案。仅供引用,MAC 地址表条目如下所示:
Vlan MAC Address Type Age(s) Port
-----------------------------------------------------
100 0000.0001.0009 dynamic 50 Po1
100 0000.0001.0010 dynamic 60 Po1
200 001d.7172.6c40 dynamic 300 Eth100/1/20
对于每个条目,我应该能够递减年龄值并在年龄 = 0 时删除条目。
网上提到了计时轮数据结构,但我不知道如何在上述情况下使用它。
谢谢你, 维吉
最佳答案
您实际上并不存储年龄(或生存时间),因此您不必随着时间的推移修改这些值。相反,您存储创建时间和/或到期时间,并在需要显示年龄或 TTL 时减去当前时间。
在此上下文中,“计时轮”是一种循环缓冲区,其中每个槽都包含同时过期的所有项目的列表。这里有一个非常好的介绍性讨论:https://blog.acolyer.org/2015/11/23/hashed-and-hierarchical-timing-wheels/
关于c - C中实现mac地址表条目老化的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57625709/