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套接口。
大多数双重协议栈主机应使用以下规则处理监听套接口:
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套接口。
相关文章推荐
- IPv4与IPv6的互操作性、守护进程和inet超级服务器、高级I/O函数
- Unix网络编程学习笔记之第12章 IPv4与IPv6的互操作性
- 《Unix网络编程》卷1:套接字联网API(第3版):名字与地址互换、IPv4和IPv6互操作性
- UNP总结 Chapter 12~14 IPv4与IPv6的互操作性、守护进程和inet超级服务器、高级I/O函数
- IPv4和IPv6的互操作性
- IPv4 和 IPv6的互操作性
- UNXI网络编程笔记 第12章IPV4与IPV6的互操作性
- IPv4和IPv6的互操作性
- Unix网络编程学习笔记之第12章 IPv4与IPv6的互操作性
- UNIX网络编程--Ipv4与Ipv6的互操作性(十二)
- UNP总结 Chapter 12~14 IPv4与IPv6的互操作性、守护进程和inet超级服务器、高级I/O函数
- UNP函数笔记九: IPv4与IPv6的互操作性
- IPv4与IPv6的互操作性
- UNP Chapter 10 - IPv4和IPv6的互操作性
- IPv4和ipv6
- MAC 下使用ipv6、ipv4观看电视、网络电视
- MTU of IPV4 and IPV6
- IPV6开启状态下,tomcat监听IPV4端口
- IPv4与IPv6的区别
- ipv4、ipv6的socket同时监听“bind: Address already in use”的解决方法