您的位置:首页 > 其它

IPv4与IPv6的互操作性

2013-04-06 19:47 387 查看
IPv4与IPv6的互操作性

大多数双重协议栈主机应使用以下规则处理监听套接口:

1. 监听IPv4套接口只能接受来自IPv4客户的外来连接。

2. 如果服务器有一个绑定在通配地址上的监听IPv6套接口,该套接口就能接受来自IPv4客户或IPv6客户的

   外来连接。对于来自IPv4客户的连接,其在服务器端的本地地址是对应的IPv4映射的IPv6地址。

3. 如果服务器有一个绑定在非IPv4映射的IPv6地址上的监听套接口,该套接口就只能接受来自IPv6客户的

   连接。 

   

#include <netinet/in.h>   

int IN6_IS_ADDR_UNSPECIFIED(const struct in6_addr *aptr);

int IN6_IS_ADDR_LOOPBACK(const struct in6_addr *aptr);

int IN6_IS_ADDR_MULTICAST(const struct in6_addr *aptr);

int IN6_IS_ADDR_LINKLOCAL(const struct in6_addr *aptr);

int IN6_IS_ADDR_SITELOCAL(const struct in6_addr *aptr);

int IN6_IS_ADDR_V4MAPPED(const struct in6_addr *aptr);

int IN6_IS_ADDR_V4COMPAT(const struct in6_addr *aptr);

int IN6_IS_ADDR_MC_NODELOCAL(const struct in6_addr *aptr);

int IN6_IS_ADDR_MC_LINKLOCAL(const struct in6_addr *aptr);

int IN6_IS_ADDR_MC_SITELOCAL(const struct in6_addr *aptr);

int IN6_IS_ADDR_MC_ORGLOCAL(const struct in6_addr *aptr);

int IN6_IS_ADDR_MC_GLOBAL(const struct in6_addr *aptr);

IPV6_ADDRFORM 套接口选项

IPV6_ADDRFORM 套接口选项能把一个套接口从一种类型转变成另一种类型,它受到以下限制:

1. 一个IPv4套接口总能转变为IPv6套接口。所有与该套接口关联的IPv4地址被转换成IPv4映射的IPv6地址。

2. 一个IPv6套接口只有在与之关联的地址是IPv4映射的IPv6地址的情况下才能转变成IPv4套接口。

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: