下一代网络协议 ----IPv6 简介shanwei88@gmail.com
目录 TCP/IP 概述 IPv6 概述 IPv6 地址结构 IPv6 应用 网络编程              2
TCP/IP 概述 互联网发展历史 OSI 模型 TCP/IP 模型 TCP/IP 协议族 数据的发送 数据的接收               3
互联网发展历史 1 969 年,为了能在爆发核战争时保障通信联络,美国国防部高级研究计划  署 ARPA 资助建立了世界上第一个分组交换试验网 ARPAN E T ,连接美国四  个大学。 ARPAN E T 的建成和不断发展标志着计算机网络...
互联网发展历史 90 年代,随着 We b 技术和相应的浏览器的出现,互联网的发展和应用出现  了新的飞跃。 1 995 年以来,互联网用户数量呈指数增长趋势,平均每半年翻一番。  截至 2009 年底,约有 1 7 亿人上网,占世界人口的...
OSI 模型 ( 一 )                    提供协议使得一个系统的进程连接到另一个系统的进                    程成为可能。换句话说,在这一层,运行在一台主机                    上的两个...
OSI 模型 ( 二 )                    定义实际程序如何使用网络交互。例如,某个网络程                    序的应用协议可以定义来自用户的输入类型或远端设                    备响应的...
TCP/IP 模型 ( 一 )                  8
TCP/IP 模型 ( 二 ) 数据链路层 ( 又称为网络接口层 ) :连接在同一网络上的系统彼此之间可以  通信。在这一层上通信的系统不一定相同,因为两个不同网络上的系统不能  直接在这一层通信,而在其他层通信的系统则要保持一致。 网际层...
TCP/IP 模型 ( 三 )                                        用户进程 应用层              F TP 协议       FTP 客户               F TP 服务器 传...
TCP/IP 协议族   ping          ssh         telnet           ftp      应用层                       TCP              UDP           ...
数据的发送                                用户数据                                               应用程序                    App 首部 用户数...
数据的接收        以太网数据帧的分用过程             13
目录 TCP/IP 概述 IPv6 概述 IPv6 地址结构 IPv6 应用 网络编程              14
IPv6 概述 IPv4 的局限 IPv4 报头 IPv6 报头 IPv6 扩展报头 IPv6 的特性 IPv4 与 IPv6 的比较                    15
IPv4 的局限 IPv4 地址空间不足 2011 年 2 月,全球互联网数字分配机构( IANA )宣布,全球 IPv4 地址已 经耗尽。 4 月 15 日,亚太网络信息中心 (APNIC) 宣告 IPv4 地址发罄。 没有提供通用的 I...
IPv4 报头 ( 一 ) 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...
IPv4 报头 ( 二 ) Version           版本 IHL               Internet 报头长度 Type of Service             服务类型 Total Length      ...
IPv6 报头 ( 一 ) +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |   Version| Traffic Class |            Fl...
IPv6 报头 ( 二 ) 版本  =6 通信流类型    ( 类似于 IPv4 服务器类型字段 ) 流标签 有效载荷长度    < 65535 下一个报头 跳限制 源地址 目标地址                      20
IPv4 和 IPv6 报头比较 IPv4 报头字段          IPv6 报头字段 版本= 4             =6 Internet 报头长度    已经弃用 服务类型             由通信流字段取代 总长度    ...
扩展报头 RFC2460 规定的 IPv6 扩展报头 :  逐跳选项报头  目标选项报头  路由报头  分片报头  身份验证报头  封装安全有效载荷报头                      22
扩展报头 IPv6 报头以及 0 个或多个扩展报头中的下一个报头字段 , 组成  一个指针链表     IPv6 报头    下一个报头 =6               TCP 段       (TCP)    IPv6 报头     路由...
IPv6 的特性 扩展了寻址能力IPv6 将 IP 地址长度从 32 位扩展到 1 28 位,支持更多级别的地址层次、更多的可寻址节点数以及更简单的地址自动配置。 简化了报头格式一些 IPv4 报头字段被删除或变为了可选项,以减少包处理中例...
IPv4 与 IPv6 的比较 ( 一 )         IPv4                    IPv6   源、目标地址长度为 32 位         源、目标地址长度为 128 位   对 IPSec 的支持是可选的     ...
IPv4 与 IPv6 的比较 ( 二 )         IPv4                     IPv6   使用 ARP 将 IP 地址解析为                            ARP 被邻居发现协议取代  ...
目录 TCP/IP 概述 IPv6 概述 IPv6 地址结构 IPv6 应用 网络编程              27
IPv6 地址结构 IPv6 的地址空间 IPv6 的地址表示法 IPv6 的地址类型  单播地址  多播地址  泛播地址                28
IPv6 的地址空间 地址长度 128 位 2128 = 3.4×1038 个可能地址,地球上每平方米拥有 6.65×1023  个 IPv6 地址。 地址分配 分配             前缀                   格式...
IPv6 的地址表示法 冒号十六进制表示法  128   位地址按每 16 位划分为一个位段 :  0010000111011010 0000000011010011  0000000000000000 0010111100111011  ...
IPv6 的地址表示法 零压缩法  FE80:0:0:0:2AA:FF:FE9A:4CA2 FE80::2AA:FF:FE9A:4CA2    有效零不能被压缩     FF02:30:0:0:0:0:0:5  FF02:30::5 而...
IPv6 的地址表示法 兼容 IPv4 的表示法 x1:x2:x3:x4:x5:x6:d.d.d.d  1. IPv4 映射的 IPv6 地址( ::FFFF:d.d.d.d )      例 : 10.167.143.117 --> ::F...
IPv6 的地址类型 单播地址  标识单个接口 多播地址  标识零个或多接口 任播地址  标识多个接口中的任一个                 33
单播 IPv6 地址 全球单播地址 ( 例如: 3ffe : )      全球范围内路由可达                             MAC 地址 (48 bits): 00:0D:87:96:E7:18| n bits ...
多播 IPv6 地址 用于发送多播通信流 多播地址总是以 FF 开头 不能用作源地址或者路由报头中的中间目标地址                  35
任播 IPv6 地址 任播地址分配给多个接口| n bits                                        | 128-n bits      |+-------------------------------...
IPv4 地址和 IPv6 地址的对应             IPv4                            IPv6多播地址 (224.0.0.0/4)               IPv6 多播地址 (FF00::/8)广...
目录 TCP/IP 概述 IPv6 概述 IPv6 地址结构 IPv6 应用 网络编程              38   Copyright 2010 FUJITSU LIMITED
IPv6 应用 现状   1. 技术已不是问题,普及还需时日。   OS (微软系, Linux 系均支持 IPv6 ),网络设备(交换机,路由器,网关)。   网络服务提供商,网络内容提供商,网络设备供应商积极参与。  2. 教育网有试用服...
IPv6 应用                           [root@TN ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth2                              ...
IPv6 应用 ssh 连接[root@TN ~]# ssh 3ffe:501:ffff:101:227:19ff:fe9b:3ede root@3ffe:501:ffff:101:227:19ff:fe9b:3edes password:...
目录 TCP/IP 概述 IPv6 概述 IPv6 地址结构 IPv6 应用 网络编程              42
网络编程 编程模型 套接口地址结构 基本函数 套接口选项 IPv4 和 IPv6 的互操性                     43
编程模型 TCP 编程模型 :        UDP 编程模型 :               44
编程模型简单的示例: TCP 回显程序Server 端:root@(none)]# ./tcpserver -A inet6Recv: 三部二课Send: [FNST] 三部二课Client 端:[root@TN]# ./tcpclient -...
套接口地址结构 IPv4                                                   IPv6struct in_addr {                                     ...
基本函数 (1) socket()                                     struct sockaddr {                                                  ...
基本函数 (2) read()/write()                          MSG_DONTROUTE: 绕过路由表查找 ( 不适用于 rec                                       ...
基本函数 (3)      函数名                  函数说明                      废弃函数inet_pton        将字符串地址转化为二进制的地址      inet_aton();       ...
套接口选项 设置 / 获取int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen);int setsockopt(int sockf...
IPv4 和 IPv6 的互操性            IPv4 服务器    IPv6 服务器       IPv4 服务器   IPv6 服务器            IPv4 单栈主机   IPv6 单栈主       双栈主机     ...
参考文献 《 UNIX 网络编程(第三版)》 《 IPv6 详解》   相关 RFC                  52
Upcoming SlideShare
Loading in …5
×

IPv6简介

853 views
700 views

Published on

针对IPv6的入门介绍,有编程部分。

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
853
On SlideShare
0
From Embeds
0
Number of Embeds
51
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

IPv6简介

  1. 1. 下一代网络协议 ----IPv6 简介shanwei88@gmail.com
  2. 2. 目录 TCP/IP 概述 IPv6 概述 IPv6 地址结构 IPv6 应用 网络编程 2
  3. 3. TCP/IP 概述 互联网发展历史 OSI 模型 TCP/IP 模型 TCP/IP 协议族 数据的发送 数据的接收 3
  4. 4. 互联网发展历史 1 969 年,为了能在爆发核战争时保障通信联络,美国国防部高级研究计划 署 ARPA 资助建立了世界上第一个分组交换试验网 ARPAN E T ,连接美国四 个大学。 ARPAN E T 的建成和不断发展标志着计算机网络发展的新纪元。 70 年代末到 80 年代初,计算机网络蓬勃发展,各种各样的计算机网络应运 而生,如 MILN E T 、 U S E N E T 、 B ITN E T 、 C S N E T 等,在网络的规模和数 量上都得到了很大的发展。一系列网络的建设,产生了不同网络之间互联的 需求,并最终导致了 TC P/IP 协议的诞生。 1 980 年, TC P/IP 协议研制成功。 1 982 年, ARPAN E T 开始采用 IP 协议 。 1 986 年,第一个互联网产生。美国国家科学基金会 N S F 资助建成了基于 TC P/IP 技术的主干网 N S FN E T ,连接美国的若干超级计算中心、主要大学 和研究机构,并迅速连接到世界各地。 4
  5. 5. 互联网发展历史 90 年代,随着 We b 技术和相应的浏览器的出现,互联网的发展和应用出现 了新的飞跃。 1 995 年以来,互联网用户数量呈指数增长趋势,平均每半年翻一番。 截至 2009 年底,约有 1 7 亿人上网,占世界人口的 26% 。 1 995 年未, IE TF 提交了第一份关于 IPv6 的文档 RFC 1 883 。经过不断改进 ,到了 1 998 年, IPv6 相应的 RF C 才逐渐成为标准。 5
  6. 6. OSI 模型 ( 一 ) 提供协议使得一个系统的进程连接到另一个系统的进 程成为可能。换句话说,在这一层,运行在一台主机 上的两个不同程序可以各自连接到不同主机上运行的 不同程序。 提供协议使得系统之间可以通信,它把系统而不仅仅 是网络接口连接到一起。正是在这一层,通信被认为 发生在系统间而不只是在网络接口间。这一层需要考 虑如何在位于两个不同网络的两个不同节点间传送 数据。 增加了协议,用于解释物理媒体上传输的数据,其中 包括可靠性和重传等功能。在这一层,系统间的通信 通过直接连接到网络的实际网络接口来实现。 代表数据转移时的真正媒体。系统通过物理层彼此间 发送原始电脉冲或其他合适的信号。在这一层,系统 网络互联的 OSI 模型 间的通信通过与物理媒体的连接得以实现。 6
  7. 7. OSI 模型 ( 二 ) 定义实际程序如何使用网络交互。例如,某个网络程 序的应用协议可以定义来自用户的输入类型或远端设 备响应的输出类型。 在这一层,不同的系统将自己的数据翻译为彼此都能 接受和理解的格式。在完全不同的系统上运行的程序 必须使用所有系统都能理解的标准格式,而这种翻译 就发生在这一层。 处理连接的流和定时。正是在这一层,管理连接的实 际结构— — 不论发送方是否在发送数据而接收方是否 在接收数据。 网络互联的 OSI 模型 7
  8. 8. TCP/IP 模型 ( 一 ) 8
  9. 9. TCP/IP 模型 ( 二 ) 数据链路层 ( 又称为网络接口层 ) :连接在同一网络上的系统彼此之间可以 通信。在这一层上通信的系统不一定相同,因为两个不同网络上的系统不能 直接在这一层通信,而在其他层通信的系统则要保持一致。 网际层 ( 又称为网络层 ) :系统通信的层次。这一层的数据传输单元在地址 信息之后包含一些净荷数据。换句话说,数据可视为仅仅是从源系统发送到 目的系统。两个系统可以用多种不同的方法交互,但是至少在这一层,可将 来自不同的应用层交互的数据仅仅视为具备相同的源地址和目的地址,而无 需立即进行区分。 传输层:进程间通信的层次。正是在这一层,两个通信系统间可以具有多个 业务流。 应用层:用户 ( 无论是个人还是程序 ) 间通过网络应用进行交互的层次。 9
  10. 10. TCP/IP 模型 ( 三 ) 用户进程 应用层 F TP 协议 FTP 客户 F TP 服务器 传输层 TC P 协议 TC P TC P 内核 网络层 IP 协议 IP IP 链路层 以太网 以太网协议 局域网上运行 F TP 的两台主机 以太网 驱动程序 驱动程序 以太网 10
  11. 11. TCP/IP 协议族 ping ssh telnet ftp 应用层 TCP UDP 传输层 ICMP IP IGMP 网络层 ARP 硬件接口 RARP 链路层 媒体 11
  12. 12. 数据的发送 用户数据 应用程序 App 首部 用户数据 TCP TCP 首部 用户数据 TCP 段 IP IP 首部 TCP 首部 用户数据 以太网 IP 数据报 驱动程序 以太网首部 IP 首部 TCP 首部 用户数据 以太网尾部 14 20 20 以太网帧 以太网 46 ~ 1500 字 节 12
  13. 13. 数据的接收 以太网数据帧的分用过程 13
  14. 14. 目录 TCP/IP 概述 IPv6 概述 IPv6 地址结构 IPv6 应用 网络编程 14
  15. 15. IPv6 概述 IPv4 的局限 IPv4 报头 IPv6 报头 IPv6 扩展报头 IPv6 的特性 IPv4 与 IPv6 的比较 15
  16. 16. IPv4 的局限 IPv4 地址空间不足 2011 年 2 月,全球互联网数字分配机构( IANA )宣布,全球 IPv4 地址已 经耗尽。 4 月 15 日,亚太网络信息中心 (APNIC) 宣告 IPv4 地址发罄。 没有提供通用的 IP 级的安全性解决方案 IPsec 方案,并非在协议 IPv4 内定义,但被 IPv6 集成。 有限的服务质量 (QoS) 支持 协议本身未考虑 Qos , IPv6 协议本身提供流标记域。 手工配置比较复杂 IPv6 即插即用,移动便捷。 16
  17. 17. IPv4 报头 ( 一 ) 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Version| IHL |Type of Service| Total Length |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Identification |Flags| Fragment Offset |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Time to Live | Protocol | Header Checksum |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Source Address |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Destination Address |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Options | Padding |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 17
  18. 18. IPv4 报头 ( 二 ) Version 版本 IHL Internet 报头长度 Type of Service 服务类型 Total Length 总长度 Identification 、 Flags 、 Fragment Offset 标识、标 志、片段偏移 Time to Live 生存时间 Protocol 协议 Header Checksum 报头检验和 Source Address 源地址 Destination Address 目标地址 Options 选项 18
  19. 19. IPv6 报头 ( 一 ) +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Version| Traffic Class | Flow Label | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Payload Length | Next Header | Hop Limit | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + Source Address + | | + + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + Destination Address + | | + + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 19
  20. 20. IPv6 报头 ( 二 ) 版本 =6 通信流类型 ( 类似于 IPv4 服务器类型字段 ) 流标签 有效载荷长度 < 65535 下一个报头 跳限制 源地址 目标地址 20
  21. 21. IPv4 和 IPv6 报头比较 IPv4 报头字段 IPv6 报头字段 版本= 4 =6 Internet 报头长度 已经弃用 服务类型 由通信流字段取代 总长度 由有效载荷字段取代 标识、标志、片段偏移 弃用 生存时间 由 IPv6 跳限制取代 协议 由下一个报头字段取代 报头检验和 IPv6 已弃用 源、目标地址 (32 位 ) 128 位 选项 IPv6 已弃用。由扩展报头取代 21
  22. 22. 扩展报头 RFC2460 规定的 IPv6 扩展报头 :  逐跳选项报头  目标选项报头  路由报头  分片报头  身份验证报头  封装安全有效载荷报头 22
  23. 23. 扩展报头 IPv6 报头以及 0 个或多个扩展报头中的下一个报头字段 , 组成 一个指针链表 IPv6 报头 下一个报头 =6 TCP 段 (TCP) IPv6 报头 路由报头 下一个报头 =43 下一个报头 =6 TCP 段 ( 路由 ) (TCP) IPv6 报头 路由报头 身份验证报头 下一个报头 =43 下一个报头 =51 下一个报头 =6 TCP 段 ( 路由 ) (AH) (TCP) 23
  24. 24. IPv6 的特性 扩展了寻址能力IPv6 将 IP 地址长度从 32 位扩展到 1 28 位,支持更多级别的地址层次、更多的可寻址节点数以及更简单的地址自动配置。 简化了报头格式一些 IPv4 报头字段被删除或变为了可选项,以减少包处理中例行处理的消耗并限制 IPv6 报头消耗的带宽; 改进了扩展报头和选项IP 报头选项编码方式的改变可以提高转发效率,使得对选项长度的限制更宽松,且提供了将来引入新的选项的更大的灵活性; 增加了标识流的能力 ( Q o S ) 增加了认证和加密的能力IPv6 中指定了支持认证、数据完整性和(可选的)数据机密性的扩展功能。 24
  25. 25. IPv4 与 IPv6 的比较 ( 一 ) IPv4 IPv6 源、目标地址长度为 32 位 源、目标地址长度为 128 位 对 IPSec 的支持是可选的 必须支持 IPSec 添加流标签,路由器可以进行 无法进行 QoS 管理 QoS 管理 数据包的分片在发送主机和 分片只能在发送主机上进行 路由器上进行,降低路由性能 链路层数据包没有要求,必须 链路层支持 1280 字节数据包, 能重组 576 字节的数据包 必须能重组 1500 字节的数据包 25
  26. 26. IPv4 与 IPv6 的比较 ( 二 ) IPv4 IPv6 使用 ARP 将 IP 地址解析为 ARP 被邻居发现协议取代 链路层地址 使用 IGMP 来管理本地子网组成员 IGMP 被 MLD 协议取代 必须手动或者使用 DHCP IPv6 地址可以自动配置 来配置 IPv4 地址 26
  27. 27. 目录 TCP/IP 概述 IPv6 概述 IPv6 地址结构 IPv6 应用 网络编程 27
  28. 28. IPv6 地址结构 IPv6 的地址空间 IPv6 的地址表示法 IPv6 的地址类型  单播地址  多播地址  泛播地址 28
  29. 29. IPv6 的地址空间 地址长度 128 位 2128 = 3.4×1038 个可能地址,地球上每平方米拥有 6.65×1023 个 IPv6 地址。 地址分配 分配 前缀 格式 未指定的地址 00...0 (128 bits) ::/128 回环地址 00...1 (128 bits) ::1/128 多播地址 11111111 FF00::/8 链路本地单播地址 1111111010 FE80::/10 全局地址 ( 其余的 ) 29
  30. 30. IPv6 的地址表示法 冒号十六进制表示法  128 位地址按每 16 位划分为一个位段 : 0010000111011010 0000000011010011 0000000000000000 0010111100111011 0000001010101010 0000000011111111 1111111000101000 1001110001011010 21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A 使用前导零压缩法进行简化 :  21DA:D3:0:2F3B:2AA:FF:FE28:9C5A 30
  31. 31. IPv6 的地址表示法 零压缩法 FE80:0:0:0:2AA:FF:FE9A:4CA2 FE80::2AA:FF:FE9A:4CA2 有效零不能被压缩 FF02:30:0:0:0:0:0:5  FF02:30::5 而不是 FF02:3::5 单个地址只能使用一次 FF02:3:0:0:1:0:0:5 不能写成 FF02:3::1::5 31
  32. 32. IPv6 的地址表示法 兼容 IPv4 的表示法 x1:x2:x3:x4:x5:x6:d.d.d.d 1. IPv4 映射的 IPv6 地址( ::FFFF:d.d.d.d ) 例 : 10.167.143.117 --> ::FFFF:10.167.143.117 2. IPv4 兼容的 IPv6 地址 (::d.d.d.d) 例 : 10.167.143.117 --> ::10.167.143.117 IPv6 前缀 21DA:D3:0:2F3B::/64 子网前缀 32
  33. 33. IPv6 的地址类型 单播地址  标识单个接口 多播地址  标识零个或多接口 任播地址  标识多个接口中的任一个 33
  34. 34. 单播 IPv6 地址 全球单播地址 ( 例如: 3ffe : )  全球范围内路由可达 MAC 地址 (48 bits): 00:0D:87:96:E7:18| n bits | 64-n bits EUI-64 地址 (64bits): 00:0D:87:FF:FE:96:E7:18 | 64 bits |+--------------+---------------------------+-----------------------------+ 接口标志符: 02:0D:87:FF:FE:96:E7:18| 全球路由前缀 | 子网 ID | 接口标志符 (020D:87FF:FE96:E718) |+--------------+---------------------------+-----------------------------+ u 位为统一 / 本地 : 1 表示由本地管理此地址 , 链路本地地址( FE80::/10 ) 0 表示统一管理 ;  用于同一链路上的邻节点之间和邻节点发现过程| 10 bits | 54 bits | 64 bits |+-------------+---------------------------+-----------------------------+| 11111110 10 | 00000000000000…0000 | 接口标志符 |+-------------+---------------------------+-----------------------------+ 站点本地地址 (FEC0::/10)  用于同一机构中的节点之间的通信 特殊地址  未指定地址 ( :: ) 0.0.0.0  回环地址 ( :: 1 ) 1 27.0.0.1 34
  35. 35. 多播 IPv6 地址 用于发送多播通信流 多播地址总是以 FF 开头 不能用作源地址或者路由报头中的中间目标地址 35
  36. 36. 任播 IPv6 地址 任播地址分配给多个接口| n bits | 128-n bits |+------------------------------------------------+----------------+| subnet prefix | 00000000000000 |+------------------------------------------------+----------------+ 数据包被路由转发给匹配了任播地址的接口中距离最近的 距离用路由来度量 36
  37. 37. IPv4 地址和 IPv6 地址的对应 IPv4 IPv6多播地址 (224.0.0.0/4) IPv6 多播地址 (FF00::/8)广播地址 在 IPv6 中不适用未指定地址 0.0.0.0 未指定地址 ::回环地址是 127.0.0.1 回环地址 ::1公共 IP 地址 全球单播地址私有 IP 地址 (10.0.0.1/8, 站点本地地址 (FEC0::/48)172.16.0.0/12, 192.168.0.0/16)网络位表示法 ( 子网掩码或前缀长 前缀长度符号度) 37
  38. 38. 目录 TCP/IP 概述 IPv6 概述 IPv6 地址结构 IPv6 应用 网络编程 38 Copyright 2010 FUJITSU LIMITED
  39. 39. IPv6 应用 现状 1. 技术已不是问题,普及还需时日。 OS (微软系, Linux 系均支持 IPv6 ),网络设备(交换机,路由器,网关)。 网络服务提供商,网络内容提供商,网络设备供应商积极参与。 2. 教育网有试用服务,商业网还未支持。 预计 2013 年底有小范围试用。 3. 全球积极推进,中国 80 亿专项资金。 4. 6.8 ,全球 IPv6 测试日。腾讯网,朋友网已支持 IPv6 。 5. 中国 IPv6 地址申请量超过日本和德国,仅次于巴西和美国,列第三。 http://bgp.potaroo.net/iso3166/v6cc.html 39
  40. 40. IPv6 应用 [root@TN ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth2 DEVICE=eth2 BOOTPROTO=static 地址配置 HWADDR=00:0D:87:96:E7:18MAC 地址: 00:0D:87:96:E7:18 ONBOOT=yes链路本地地址: fe80::20d:87ff:fe96:e718 TYPE=Ethernet全局地址: 3ffe:501:ffff:101:20d:87ff:fe96:e718 IPADDR=192.168.1.19[root@TN ~]# ifconfig eth2 add 3ffe:501:ffff:101:20d:87ff:fe96:e718 NETMASK=255.255.255.0 路由配置 IPV6INIT=yes IPV6ADDR=3ffe:501:ffff:101:020d:87ff:fe96:e718/64[root@TN ~]# ip -6 route add 3ffe:501:ffff:101::/64 dev eth2[root@TN ~]# ip -6 route show3ffe:501:ffff:101::/64 dev eth2 metric 1024 mtu 1500 advmss 1440 hoplimit 4294967295 连通测试[root@TN ~]# ping6 -I eth2 3ffe:501:ffff:101:227:19ff:fe9b:3ede64 bytes from 3ffe:501:ffff:101:227:19ff:fe9b:3ede: icmp_seq=0 ttl=64 time=0.192 ms64 bytes from 3ffe:501:ffff:101:227:19ff:fe9b:3ede: icmp_seq=1 ttl=64 time=0.147 ms 40
  41. 41. IPv6 应用 ssh 连接[root@TN ~]# ssh 3ffe:501:ffff:101:227:19ff:fe9b:3ede root@3ffe:501:ffff:101:227:19ff:fe9b:3edes password: 查看网络连接[root@(none) ~]# netstat -attcp 0 0 3ffe:501:ffff:101:227:1:ssh 3ffe:501:ffff:101:20d:57013 ESTABLISHED 41
  42. 42. 目录 TCP/IP 概述 IPv6 概述 IPv6 地址结构 IPv6 应用 网络编程 42
  43. 43. 网络编程 编程模型 套接口地址结构 基本函数 套接口选项 IPv4 和 IPv6 的互操性 43
  44. 44. 编程模型 TCP 编程模型 : UDP 编程模型 : 44
  45. 45. 编程模型简单的示例: TCP 回显程序Server 端:root@(none)]# ./tcpserver -A inet6Recv: 三部二课Send: [FNST] 三部二课Client 端:[root@TN]# ./tcpclient -i eth2 -t fe80::227:19ff:fe9b:3ede -m " 三部二课 "Send: 三部二课Recvd:[FNST] 三部二课 45
  46. 46. 套接口地址结构 IPv4  IPv6struct in_addr { struct in6_addr { in_addr_t s_addr; /* 32-bit IPv4 address */ uint8_t s6_addr[16]; /* 128-bit IPv6 address */}; };struct sockaddr_in { struct sockaddr_in6 { uint8_t sin_len; /* length of structure (16) */ uint8_t sin6_len; /* length of this struct (28) */ sa_family_t sin_family; /* AF_INET */ sa_family_t sin6_family; /* AF_INET6 */ in_port_t sin6_port; /* transport layer port# */ /* 16-bit TCP or UDP port number */ in_port_t sin_port; /* flow information, undefined */ uint32_t sin6_flowinfo; /* 32-bit IPv4 address */ struct in_addr sin_addr; struct in6_addr sin6_addr; /* IPv6 address */ /* set of interfaces for a scope */ char sin_zero[8]; /* unused */ uint32_t sin6_scope_id;}; }; 46
  47. 47. 基本函数 (1) socket() struct sockaddr { uint8_t sa_len;int socket (int family, int type, int protocol); /* address family: AF_xxx value */Family:AF_INET,AF_INET6 sa_family_t sa_family;Type:SOCK_STREAM, SOCK_DGRAM,SOCK_SEQPACKET,SOCK_RAW /* protocol-specific address */Protocol:IPPROTO_TCP, IPPROTO_UDP, IPPROTO_SCTP char sa_data[14]; connect() };int connect(int sockfd, const struct sockaddr *servaddr, socklen_t addrlen); bind()int bind (int sockfd, const struct sockaddr *myaddr, socklen_t addrlen); listen()int listen (int sockfd, int backlog); accept()int accept (int sockfd, struct sockaddr *cliaddr, socklen_t *addrlen); close()int close (int sockfd); 47
  48. 48. 基本函数 (2) read()/write() MSG_DONTROUTE: 绕过路由表查找 ( 不适用于 rec MSG_DONTWAIT :本操作非阻塞ssize_t read(int fd,void *buf,size_t nbyte);  MSG_OOB :发送 / 接收附加数据 MSG_PEEK :窥看外来消息 ( 不适用于 send)ssize_t write(int fd,const void *buf,size_t nbytes) ; MSG_WAITALL :等待所有数据 ( 不适用于 send) recv()/send()ssize_t recv(int fd,void *buf,size_t nbyte, int flags); ssize_t send(int fd,const void *buf,size_t nbytes, int flags) ; readv()/writev()ssize_t readv(int filedes, const struct iovec *iov, int iovcnt);ssize_t writev(int filedes, const struct iovec *iov, int iovcnt); recvmsg()/sendmsg()ssize_t recvmsg(int sockfd, struct msghdr *msg, int flags);ssize_t sendmsg(int sockfd, struct msghdr *msg, int flags); 48
  49. 49. 基本函数 (3) 函数名 函数说明 废弃函数inet_pton 将字符串地址转化为二进制的地址 inet_aton(); inet_addr();inet_ntop 将二进制的地址转化为字符串 inet_ntoa();getaddrinfo 处理从名字到地址以及服务到端口的转换 gethostbyname(); gethostbyaddr();if_nametoindex 根据接口名获取接口索引值 -if_indextoname 根据接口索引值获取接口名 - 49
  50. 50. 套接口选项 设置 / 获取int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen);int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen); 选项 (RFC3542)IPV6_CHECKSUMIPV6_DONTFRAGIPV6_NEXTHOPIPV6_PATHMTUIPV6_RECVDSTOPTSIPV6_RECVHOPLIMITIPV6_RECVHOPOPTSIPV6_RECVPATHMTUIPV6_RECVPKTINFOIPV6_RECVRTHDRIPV6_RECVTCLASSIPV6_UNICAST_HOPSIPV6_USE_MIN_MTUIPV6_V6ONLY 50
  51. 51. IPv4 和 IPv6 的互操性 IPv4 服务器 IPv6 服务器 IPv4 服务器 IPv6 服务器 IPv4 单栈主机 IPv6 单栈主 双栈主机 双栈主机 机IPv4 客户端IPv4 单栈主机 IPv4 × IPv4 IPv4IPv6 客户端 IPv6 × IPv6IPv6 单栈主机 ×IPv4 客户端双栈主机 IPv4 × IPv4 IPv4IPv6 客户端双栈主机 IPv4 IPv6 ×(★) IPv6 51
  52. 52. 参考文献 《 UNIX 网络编程(第三版)》 《 IPv6 详解》 相关 RFC 52

×