设计一个好的存储网络状态的数据结构????

lynchzlm 2005-04-25 10:35:54
需要设计这样的一个结构:
功能:
目的:
1.分析网络上所有的数据包,分析后存入这个结构中
2.结构中需要存储所有的连接信息,比如某段时间所建立的所有TCP连接,UDP通信等
下面还有总体和明细信息,比如TCP的总体流量,TCP各个连接的插口对信息,各应用层协议明细
3.该结构是放在交换机的旁路上.通过这个结构,可以对网络的连接状态有个比较清楚的了解;
比如,可以查询某段时间内某个IP发起的TCP连接
要求:
1.快速的搜索功能,这个是最重要的
2.灵活的可伸缩的结构,很明显,流量大的时候需要动态扩展到某个限度;定期需要清空该结构
3.稳定第1,性能第2
...全文
108 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qrlvls 2005-04-26
  • 打赏
  • 举报
回复
这样的好处,即使没有索引也同样可以由数据生成索引,索引的目的仅仅是为了速度
qrlvls 2005-04-26
  • 打赏
  • 举报
回复
使用两个结构,其中一个按不定长顺序存储(存储数据),另外一个定长存储(存储索引)
数据的格式:长度1,数据1,长度2,数据2,....
索引的格式:结构1,结构2,...
结构的定义示例为:
协议类型,源地址,目标地址,...
zhang_jiang 2005-04-25
  • 打赏
  • 举报
回复
1. 数据包结构应该与统计信息分开存储(分两个结构定义).
2. 数据包的格式是固定的, 如IP, TCP, UDP报头的结构.
3. 要实现灵活的可伸缩结构, 可以像这样:
struct A
{
...
...
int sth[1];
};
p = malloc(sizeof(A) + num * sizeof(int)); // 剩下的部分给sth使用

或:
struct A
{
...
int num; // num -- sth指向的内存的大小
int *sth;
};

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧