c - C中实现mac地址表条目老化的数据结构

标签 c data-structures timer

我想了解定时轮的概念,它应该用于老化 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/

相关文章:

c - c 中的两个流相互干扰

data-structures - 如何使用 ABAP OO 构建通用树数据结构

C:矢量化 For 循环

c - 为什么 CodeBlocks 不起作用?

c - 类型 "char (*)[16]"的参数与类型 "const char *"的参数不兼容

javascript - jQuery 插件选项 : required, 可选,不可访问

c - 如何让链表的最后一个节点参与冒泡排序?

java - 如何设置某件事在一定时间后发生?

javascript - 停止 AngularJS 中的 setTimeout 函数(提示 : use $timeout)

C 在 timer_start() sleep 后不起作用