UNP Chapter 10 - IPv4和IPv6的互操作性
2012-01-19 16:04
288 查看
10.1 概述
本章中假定所有的主机上都运行着双重协议栈(dual stacks)。
10.2. IPv4客户和IPv6服务器
拥有双重协议栈的主机的一个基本特性就是:其上运行的IPv6服务器既能应付IPv4客户,又能应付IPv6客户。这是通过使用IPv4映射的IPv6地址实现的。
在一个双重协议栈的主机上,根据接收套接口的类型(TCP或UDP),对一个收到的IPv4或IPv6数据报进行处理的流程:
10.3. IPv6客户与IPv4服务器
客户与服务的组合情况总结
10.4. IPv6地址测试宏
有一小部分IPv6应用程序必须知道与其通信的对方是否使用IPv4协议,这些应用程序需要知道对方的地址是不是一个IPv4映射的IPv6地址。为测试IPv6地址的某些特性共定义了12个宏:
10.5. IPV6_ADDRFORM套接口选项
IPV6_ADDRFORM套接口选项能把一个套接口从一种类型转变成另一中类型,它受到以下限制:
1. 一个IPv4套接口总能转变为IPv6套接口。所有与该套接口关联的IPv4地址被转换成IPv4映射的IPv6地址。
2. 一个IPv6套接口只有在与之关联的地址是IPv4映射的IPv6地址的情况下才能转变成IPv4套接口。
10.6. 源代码可移植性
10.7. 小结
本章中假定所有的主机上都运行着双重协议栈(dual stacks)。
10.2. IPv4客户和IPv6服务器
拥有双重协议栈的主机的一个基本特性就是:其上运行的IPv6服务器既能应付IPv4客户,又能应付IPv6客户。这是通过使用IPv4映射的IPv6地址实现的。
在一个双重协议栈的主机上,根据接收套接口的类型(TCP或UDP),对一个收到的IPv4或IPv6数据报进行处理的流程:
10.3. IPv6客户与IPv4服务器
客户与服务的组合情况总结
10.4. IPv6地址测试宏
有一小部分IPv6应用程序必须知道与其通信的对方是否使用IPv4协议,这些应用程序需要知道对方的地址是不是一个IPv4映射的IPv6地址。为测试IPv6地址的某些特性共定义了12个宏:
#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地址是指定类型的,否则返回零
10.5. IPV6_ADDRFORM套接口选项
IPV6_ADDRFORM套接口选项能把一个套接口从一种类型转变成另一中类型,它受到以下限制:
1. 一个IPv4套接口总能转变为IPv6套接口。所有与该套接口关联的IPv4地址被转换成IPv4映射的IPv6地址。
2. 一个IPv6套接口只有在与之关联的地址是IPv4映射的IPv6地址的情况下才能转变成IPv4套接口。
10.6. 源代码可移植性
10.7. 小结
相关文章推荐
- UNP总结 Chapter 12~14 IPv4与IPv6的互操作性、守护进程和inet超级服务器、高级I/O函数
- UNP总结 Chapter 12~14 IPv4与IPv6的互操作性、守护进程和inet超级服务器、高级I/O函数
- UNP函数笔记九: IPv4与IPv6的互操作性
- UNP总结 Chapter 9~10 基本SCTP套接字编程及C/S程序例子
- Unix网络编程学习笔记之第12章 IPv4与IPv6的互操作性
- UNIX网络编程--Ipv4与Ipv6的互操作性(十二)
- 《Unix网络编程》卷1:套接字联网API(第3版):名字与地址互换、IPv4和IPv6互操作性
- IPv4与IPv6的互操作性、守护进程和inet超级服务器、高级I/O函数
- UNXI网络编程笔记 第12章IPV4与IPV6的互操作性
- IPv4与IPv6的互操作性
- Unix网络编程学习笔记之第12章 IPv4与IPv6的互操作性
- IPv4与IPv6的互操作性
- IPv4 和 IPv6的互操作性
- IPv4和IPv6的互操作性
- IPv4和IPv6的互操作性
- NAT64下的IPV4地址合成IPV6
- ipv4和ipv6的 udp/tcp CRC校验和算法
- 备忘----创建套接字进行地址和端口进行网络序转换时使用ipv4和ipv6都通用的函数
- IPv4-IPv6组播过渡技术
- Ipv4和Ipv6的地址字符串长度