ifa_local && ifa_address

ifa_local 和 ifa_address区别联系:

1. 在配置了支持广播的接口上,与IFA_LOCAL一样,同样表示本地ip地址;

2. 对于点对点链路,IFA_ADDRESS表示的是对端的地址,IFA_LOCAL表示的是本地ip地址;

 

inetdevice.h

 

在if_addr.h中可以找到这样一段注释:

 

注释说IFA_ADDRESS是一个前缀地址,而不是本地接口地址。只不过是在广播接口上,其值相同;

 

devinet.c:

插入ip地址中截取的一段代码,其中判断同一子网使用了ifa_address,而判断ip地址相同则使用了ifa_local,可见,ifa_local是绝对无误的本地ip地址,也就是说ifa_address更关注前缀部分?

 

—-对比BSD—-

在TCP/IP详解卷2的BSD实现中,其中的ifaddr结构中的两个字段如下:

其中ifa_addr表示的是接口地址,与上面的ifa_local一致;

而ifa_dstaddr表示,一个点对点链路上的另一端的接口地址,或者是一个广播网中分配给接口的广播地址(以太网)。两种表示是互斥的。

本文链接:ifa_local && ifa_address

转载声明:转载请注明来源:Linux TCP/IP Stack,谢谢!


发表评论

电子邮件地址不会被公开。 必填项已用*标注