赞助连接

赞助连接

阅 读 文 章

ARP地址解析协议详解及其漏洞分析

[来源:网上转载 (http://www.chinaunix.net) | 作者:网友(xie_minix) | 时间:2007-05-27 | 浏览:人次 ]


register struct arphdr *ar;
int s;
/*要理解下面的while循环,你必须看看我从if_ethersubr.c中的处理数据包到队列的情况,
下面是我ctrl+v过来的:
---------------------------------------------------------------------------------------------
s = splimp();/*关网络中断*
if (IF_QFULL(inq)) {
      /*#原型是define IF_QFULL(ifq) ((ifq)->;ifq_len >;= (ifq)->;ifq_maxlen)  队列满*

IF_DROP(inq);
/*原型是#define IF_DROP(ifq) ((ifq)->;ifq_drops++)     丢弃数加1*

m_freem(m);
} else
IF_ENQUEUE(inq, m);
/*以下是原型,作用是把m(mbuf链)加入到队列inq的尾巴
#define IF_ENQUEUE(ifq, m) { \
(m)->;m_nextpkt = 0; \        mbuf链表的下一个链表为结束,注意:不是mbuf链中的下一mbuf
if ((ifq)->;ifq_tail == 0) \  如果队列尾巴为没有,则该队列没初始化
(ifq)->;ifq_head = m; \   初始化队列头为M
else \                       有尾巴,即该队列已经有mbuf
(ifq)->;ifq_tail->;m_nextpkt = m; \  当前队列的尾巴的mbuf链首指针为m 
(ifq)->;ifq_tail = m; \        队列的尾巴指向m(是一mbuf链首)
(ifq)->;ifq_len++; \           队列长度加1
}
*如果您对队列,mbuf,mbuf链,mubf链首搞的稀里糊涂的话,不要紧,我会写一篇关于mbuf的文章
splx(s); /*开网络中断*
-----------------------------------------------------------------------------------------------
*/
while (arpintrq.ifq_head) {/*arpintrq就是上面的inq*/
/*
这里我解释一下arpintrq结构,该结构实际上是一ifqueue结构,在if_ether.h中定义如下:
struct ifqueue arpintrq;
那么ifqueue又是什么样的呢?
在if_var.h中是这样定义的:
struct ifqueue {
struct mbuf *ifq_head;          /* mbuf链(排在队列的第一个)
struct mbuf *ifq_tail;  /* mbuf链(排在队列的最后一个)  注意:记住了,是mbuf链,不是单个的mbuf
int ifq_len;                     /* 多少个链
int ifq_maxlen;                 /*最大容纳mbuf链数,他有个初始值,由网卡驱动程序填写,我见到的是5
int ifq_drops;                  /*和ifq_maxlen配合使用,当队列放满了即ifq_len>;ifq_maxlen时,ifq_drops加1,
};                                  /*并且抛弃进来的mbuf链
论坛热门帖子: [lch203] 写得蛮好的linux学习笔记(10-21)
[黑马制造] 学习java的30个目标(10-19)
[笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19)
[udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18)
[沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18)
TAG标签: 及其 漏洞 分析 详解 协议 地址 解析 ARP IP if ea- 路由

最新评论 共有0位网友发表了评论

发表评论

评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名:(注册)
密码:
验证码:
匿名发表

网站地图友情连接交流论坛网站投稿广告服务联系我们留言本站长统计
Some rights reserved: www.chmhome.com, 鄂ICP备07010232号 E-mail:chinakafei@live.com,QQ:552766
中国咖啡技术网(Chmhome):国外编程技术书籍,中文编程手册,经典编程文章,交流技术,技术软件下载,计算机论文,毕业论文.