第07章 IPv6报文封装及地址-1_第1页
第07章 IPv6报文封装及地址-1_第2页
第07章 IPv6报文封装及地址-1_第3页
第07章 IPv6报文封装及地址-1_第4页
第07章 IPv6报文封装及地址-1_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计计算机硬件基算机硬件基础教学础教学中心中心Copyright by NUPT All rights reserved.1Technology of Network Programming网络编程技术网络编程技术网络编程技术网络编程技术2 IPv6具有简洁的协议格式、巨大的地址具有简洁的协议格式、巨大的地址空间、有效的分级寻址和路由结构、地空间、有效的分级寻址和路由结构、地址自动配置、内置的安全机制、更好地址自动配置、内置的安全机制、更好地支持支持QoS服务等特点,是下一阶段产业服务等特点,是下一阶段产业发展的重点之一。发展的重点之一。网络编程技术网络编程技术3 编程训练目的编程训练目的 编程

2、训练要求编程训练要求 相关知识介绍相关知识介绍 程序设计分析程序设计分析 扩展与提高扩展与提高网络编程技术网络编程技术4 掌握掌握IPv6报文格式及基本报头各字段的报文格式及基本报头各字段的含义,熟悉含义,熟悉IPv6的扩展报头。的扩展报头。 了解了解IPv6的编址方案,掌握根据数据链的编址方案,掌握根据数据链路层地址构造路层地址构造IPv6地址的方法。地址的方法。 熟悉熟悉IPv6报文中的报文中的TCP/UDP伪报头格式,伪报头格式,掌握掌握IPv6数据报文中数据报文中TCP报头的封装方报头的封装方法。法。网络编程技术网络编程技术5 编程训练目的编程训练目的 编程训练要求编程训练要求 相关知

3、识介绍相关知识介绍 程序设计分析程序设计分析 扩展与提高扩展与提高网络编程技术网络编程技术6 编写程序,构造一个编写程序,构造一个IPv6格式的格式的IP报文报文: 输入:二进制输入:二进制TCP原始数据原始数据以文件形式给以文件形式给出出 。 命令行格式:命令行格式:ipv6pkt tcpdata ipv6data ; 要求:构造地址时源地址使用本机要求:构造地址时源地址使用本机MAC地址地址生成生成 ,目的地址使用,目的地址使用00-00-E4-86-3A-DC地址地址生成。其它头部参数请自行设定。生成。其它头部参数请自行设定。 输出:将封装好的输出:将封装好的IPv6报文输出到二进制文件

4、报文输出到二进制文件ipv6data中中网络编程技术网络编程技术7 编程训练目的编程训练目的 编程训练要求编程训练要求 相关知识介绍相关知识介绍 程序设计分析程序设计分析 扩展与提高扩展与提高网络编程技术网络编程技术8IPv6基本报头格式基本报头格式网络编程技术网络编程技术9IPv6基本报头各字段含义基本报头各字段含义版本号(版本号(Version)流量等级(流量等级(Traffic Class)流标签(流标签(Flow Label)载荷长度(载荷长度(Payload Length) 下一头部(下一头部(Next Header) 跳数限制(跳数限制(Hop Limit)源地址(源地址(Sour

5、ce Address)目的地址(目的地址(Destination Address)网络编程技术网络编程技术10下一头部字段的一些常用值下一头部字段的一些常用值 下一头部下一头部描述描述下一头部下一头部描述描述0逐跳选项头逐跳选项头44分片头分片头1ICMP50封装安全载荷头封装安全载荷头6TCP51认证头认证头17UDP59没有下一头部没有下一头部43路由头路由头60目的选项头目的选项头网络编程技术网络编程技术11IPv4报头和报头和IPv6报头的主要区别报头的主要区别 IPv4报头报头IPv6报头报头版本版本4版本版本6服务类型字段(服务类型字段(TOS)流量等级字段(流量等级字段(Traf

6、fic Class)头部长度、总长度字段头部长度、总长度字段载荷长度字段载荷长度字段分片重组标志及片偏移字段分片重组标志及片偏移字段分片扩展头部中包含分片标志及片偏移字段分片扩展头部中包含分片标志及片偏移字段生存时间字段(生存时间字段(TTL)跳数限制字段(跳数限制字段(Hop Limit)头部校验和头部校验和无校验和,由上层协议负责校验无校验和,由上层协议负责校验32比特源地址和目的地址比特源地址和目的地址128比特源地址和目的地址比特源地址和目的地址选项字段选项字段基本报头不包括选项,选项由扩展报头中的基本报头不包括选项,选项由扩展报头中的逐跳选项头、路由头和目的选项头等确定逐跳选项头、路

7、由头和目的选项头等确定网络编程技术网络编程技术12IPv6扩展报头格式扩展报头格式 网络编程技术网络编程技术13IPv6扩展报头类型扩展报头类型 逐跳选项头部(逐跳选项头部(Hop-by-Hop Options header) 路由头部(路由头部(Routing header,Type 0) 分片头部(分片头部(Fragment header) 目的选项头部(目的选项头部(Destination Options header) 认证头部(认证头部(Authentication header) 封装安全载荷头部(封装安全载荷头部(Encapsulating Security Payload he

8、ader)网络编程技术网络编程技术14IPv6地址地址文本表示法文本表示法冒号十六进制表示法;冒号十六进制表示法; 如:如:ABCD:EF01:2345:6789:ABCD:EF01:2345:6789 压缩零的冒号十六进制表示法;压缩零的冒号十六进制表示法; 如:如:FEC0:1:0:0:0:0:0:1234 = FEC0:1:1234 与与IPv4相关的特殊地址表示法;相关的特殊地址表示法; 如:映射如:映射IPv4的的IPv6地址地址 0:0:0:0:0:FFFF:8 = :FFFF:8 网络编程技术网络编程技术15IPv6 地址前缀表示地

9、址前缀表示 采用采用IPv4中的无类别域间路由(中的无类别域间路由(CIDR)的前缀长度表示法的前缀长度表示法 ; 格式为:格式为:“IPv6地址地址/前缀长度前缀长度”。 例如:例如:FEC0:0:0:1:1234/64 网络编程技术网络编程技术16IPv6单播地址分类单播地址分类单播地址单播地址全球单播地址全球单播地址特殊单播地址特殊单播地址未指定地址未指定地址环回地址环回地址嵌入嵌入IPv4的的IPv6地址地址本地单播地址本地单播地址网络编程技术网络编程技术17全球单播地址全球单播地址 一般格式一般格式 实际应用格式实际应用格式网络编程技术网络编程技术18特殊单播地址特殊单播地址 未指定

10、地址未指定地址 格式:格式:0:0:0:0:0:0:0:0(或(或“:”) 环回地址环回地址 格式:格式:0:0:0:0:0:0:0:1(或(或“:1”) 嵌入嵌入IPv4的的IPv6地址地址 本地单播地址本地单播地址 网络编程技术网络编程技术19嵌入嵌入IPv4的的IPv6地址地址 兼容兼容IPv4的的IPv6地址(已废除)地址(已废除) 映射映射IPv4的的IPv6地址地址 网络编程技术网络编程技术20本地单播地址本地单播地址 站点本地地址站点本地地址 (已废除)(已废除) 链路本地地址链路本地地址 网络编程技术网络编程技术21接口标识符及其生成算法接口标识符及其生成算法IEEE48位位M

11、AC地址地址网络编程技术网络编程技术22IPv6多播地址多播地址 多播地址以多播地址以11111111开头,即具有开头,即具有FF00:/8前缀。前缀。 网络编程技术网络编程技术23IPv6任播地址任播地址 子网子网-路由器任播地址格式路由器任播地址格式 网络编程技术网络编程技术24IPv4地址与地址与IPv6地址的比较地址的比较IPv4地址地址IPv6地址地址地址长度为地址长度为32位位地址长度为地址长度为128位位采用点分十进制地址表示法采用点分十进制地址表示法采用冒号十六进制地址表示法采用冒号十六进制地址表示法网络号采用子网掩码或网络前缀长度表示法网络号采用子网掩码或网络前缀长度表示法网

12、络号只采用网络前缀长度表示法网络号只采用网络前缀长度表示法未指定地址(未指定地址()未指定地址(未指定地址(:)环回地址(环回地址()环回地址(环回地址(:1)公网公网IP地址地址全球全球IP地址地址有私网专用有私网专用IP地址(地址(/8, /12, /16)无无自动专用自动专用IP寻址地址(寻址地址(/16)链路本地单播地址(链路本地单播地址(FE80:/10)组播地址(组播地址(/8)多播地址(多播地址(FF00:/8)有广播地址有广播地址无无网络编程技术网络

13、编程技术25 编程训练目的编程训练目的 编程训练要求编程训练要求 相关知识介绍相关知识介绍 程序设计分析程序设计分析 扩展与提高扩展与提高网络编程技术网络编程技术26核心代码及其说明核心代码及其说明 参数检查if (argc != 3) cout nUsage: ipv6pkt.exe inputfile outputfilen; return -1;/打开输入输出文件打开输入输出文件ifstream inFile(argv1, ios:in|ios:nocreate|ios:binary);if (!inFile) cerr Cannot open file: argv1 endl; ofs

14、tream outFile(argv2, ios:out|ios:trunc|ios:binary);if (!outFile) cerr Cannot create file: argv2 ver_cls_lab = 6;/8位流量等级位流量等级pIPv6Hdr-ver_cls_lab ver_cls_lab += 0;/20位流标签位流标签pIPv6Hdr-ver_cls_lab ver_cls_lab += 0;pIPv6Hdr-ver_cls_lab = htonl(pIPv6Hdr-ver_cls_lab);/16位载荷长度位载荷长度pIPv6Hdr-payload_len = ht

15、ons(iDataCount);/8位下一首部位下一首部pIPv6Hdr-next_header = IPPROTO_TCP;/8位跳数限制位跳数限制pIPv6Hdr-hop_limit = 128;网络编程技术网络编程技术31全球单播地址全球单播地址 一般格式一般格式网络编程技术网络编程技术32全球单播地址全球单播地址 一般格式一般格式 实际应用格式实际应用格式001子网ID接口ID(Modified EUI-64 Format) n bits64-n bits64 bits 网络编程技术网络编程技术33核心代码及其说明核心代码及其说明 填充初地址字段填充初地址字段/128位源地址,由本机位

16、源地址,由本机Mac地址生成地址生成pIPv6Hdr-src_ip.prefix_subnetid = 0 x1;/3位全球单播地址前缀位全球单播地址前缀pIPv6Hdr-src_ip.prefix_subnetid src_ip.prefix_subnetid += 0 x01;/45位全球路由前缀位全球路由前缀pIPv6Hdr-src_ip.prefix_subnetid src_ip.prefix_subnetid += 0 x01;/16位子网位子网IDpIPv6Hdr-src_ip.prefix_subnetid = hton64(pIPv6Hdr-src_ip.prefix_sub

17、netid);网络编程技术网络编程技术34核心代码及其说明核心代码及其说明 64位的网络字节序转换函数位的网络字节序转换函数_int64 hton64(_int64 host64)char tmp, *p=(char*)&host64;for (int i=0; isrc_erface_id0 = pAdapterInfo-Address0;pIPv6Hdr-src_erface_id1 = pAdapterInfo-Address1;pIPv6Hdr-src_erface_id2 = pAdapterInfo-Address2;pIPv6Hdr-src_i

18、erface_id3 = 0 xFF;pIPv6Hdr-src_erface_id4 = 0 xFE;pIPv6Hdr-src_erface_id5 = pAdapterInfo-Address3;pIPv6Hdr-src_erface_id6 = pAdapterInfo-Address4;pIPv6Hdr-src_erface_id7 = pAdapterInfo-Address5;网络编程技术网络编程技术37程序流程图程序流程图:网络编程技术网络编程技术38 编程训练目的编程训练目的 编程训练要求编程训练要求 相关知识介绍相关知识介绍 程序设计分析程序设计分析 扩展与提高扩展与提高网络编程技术网络编程技术39扩展与提高扩展与提高 用于用于IPv6的的TCP/UDP伪报头伪报头网络编程技术网络编程技术40计算计算TCP校验和时需覆盖的字段结构校验和时需覆盖的字段结构 TCP报头的位置报头的位置 TCPTCP校验和覆盖的字段校验和覆盖的字段 网络编程技术网络编程技术41 TCP的首部的首部/TCP头部头部t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论