Chinaunix首页 | 论坛 | 博客
  • 博客访问: 534944
  • 博文数量: 142
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1452
  • 用 户 组: 普通用户
  • 注册时间: 2013-09-12 16:28
文章分类

全部博文(142)

文章存档

2016年(10)

2015年(60)

2014年(72)

我的朋友

分类: C/C++

2015-10-20 15:24:44

DAD检测是通过发送NS报文,等待NA或者在进行DAD过程中收到了NS报文进行DAD检测的。
DAD检测发出的NS报文源地址必须是::,目的地址必须是solicit组播地址(ff02::1:ff开头),对端接收NS报文的时候以源地址::来判断是否是DAD的NS

下面的这张图()很好的说明了DAD的整个过程。

linux内核2.6.32的DAD检测函数为addrconf_dad_start,调用该函数后的第一步就是
1.调用函数addrconf_join_solict将接口加入solicited-note组播组中(上图中的第2步)
2.addrconf_dad_timer--->ndisc_send_ns发送NS报文(上图中的第4步)
3.ndisc_recv_ns--->addrconf_dad_failure(上图中的第3步)
4.ndisc_recv_na--->addrconf_dad_failure (上图中的第5步)

阅读(3046) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~