1 / 16
文档名称:

ipv6协议分析实验报告.docx

格式:docx   大小:22KB   页数:16页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

ipv6协议分析实验报告.docx

上传人:miao19720107 2019/2/16 文件大小:22 KB

下载得到文件列表

ipv6协议分析实验报告.docx

文档介绍

文档介绍:ipv6协议分析实验报告背景知识 IPv4协议面临最大的问题是地址空间不足,主要表现为:地址数量不足,路由效率不高,缺乏安全设计,缺乏服务质量保证。根据这些缺陷,由此提出ipv6协议,IPv6协议是IETF指定地下一代IP协议,特点主要表现为:新的协议头部格式,巨大的地址空间,有效的分层路由结构,内置的安全性服务,更好的支持服务质量,良好的扩展性。实训目的(一)充分理解IPv6的数据结构和IPv6地址格式主要字段: :4-bit,协议版本号,此处为6。 :8-bit,类似于IPv4的Type_of_Service,用以提供区分服务和优先级。 :20-bit,用以标记那些要求路由器对其作特殊处理的报文流。所谓报文流是指从一个特定源到特定目的地之间的报文序列,并且源节点希望中间路由器能够对它们进行特殊处理。 :16-bit,用以表示IPv6数据包中除基本报头以外剩余部分的长度,任何扩展报头都将作为PayloadLength的一部分计算在内。 :8-bit,类似于IPv4的Protocol字段,通常用以标识上层是TCP还是UDP,或标识紧跟在IPv6数据包头后面的下一个头的类型。 :8-bit,无符号整数。相当于IPv4中的Time_to_Live,按转发包的每个节点逐一递减。如果跃点限制递减到零,包就会被丢弃。 IPv6地址的表述和书写: 表述和书写时,把长度为128个二进制位的IPv6地址分成8个16位的二进制段、每一个16位的二进制段用4位的16进制数表示,段间用“:”隔开。例如:1000:0000:0000:0000:000A:000B:000C:000D就是每一个16位的二进制数的段用4位16进制数的段来表示、段间用“:”隔开的一个IPv6地址;其中:各个4位16进制数的段中的高位0允许省略;因此,上面的IPv6地址也可以缩写成:1000:0:0:0:A:B:C:D。为了更进一步简化,IPv6的地址规范中还规定,可以在一个IPv6地址中最多使用一次双冒号来取代IPv6地址中紧密相连的多个全0的16进制数的段,这样上面的IPv6地址还可以缩写成:1000::A:B:C:D。双冒号使用的地点可以在IPv6地址的前面、后面或者是中间;例如:对于1000:0:0:0:A:B:0:0这样的一个IPv6地址,可以写成1000::A:B:0:0,也可以写成1000:0:0:0:A:B::;但是不能写成1000::A:B::。(二)了解TCP数据包的格式关键字段: :包括源端口和目的端口两个字段均为16位 :表示TCP包的第一个字节的序号,字段的长度为32位 :表示目的节点成功接收序号从初始值到N的报文段,要求源节点发送序号为N+1的报文段,字段长度为32位 :表示TCP头部的长度,字段长度为4位 :表示该字段保留工以后使用,字段长度为6位 :表示可以设置的标志位,字段长度6位 :表示要求对方主机维持的窗口大小,字段长度为16位 :用于检测TCP包在传输中室分出错,字段长度为:16位 :表示TCP包中需要紧急发送的数据,字段长度为16位 :表示可以选择的字段,包括最大报文段长度、窗口扩大因子与时间戳等,字段长度为0-40字节(三)网际校验和算法在发送方,先把被校验的数据划分为许多16位字的序列。如果数据的字节长度为奇数,则在数据尾部补一个字节的0以凑成偶数。用反码算数运算把所有16位字相加后,然后再对和取反码,便得到校验和。在接收方,将收到的数据报,将所有16位字再使用反码算数运算相加一次,将得到的和取反,即得出校验和的计算结果。如果数据报在传输过程中没有任何变化,则此结果必为0,于是就保留这个数据报。否则即认为出差错,并将此数据报丢弃。“A,B,C,...,Y,Z”分别表示一系列8位组,用[A,B]这样形式的字节组来表示A*256+B的整数,那么该字节序列的反码和就可以通过以下两种表达式之一给出: [A,B]+'[C,D]+'...+'[Y,Z] [A,B]+'[C,D]+'...+'[Z,0] 其中,+'表示反码算数运算相加,第一个公式适用于偶数个字节的校验和,第二个公式适用于计算奇数个字节的校验和。实训任务?基于给定的上层协议数据包,模拟IPv6数据包的封装过程。?掌握IPv6数据包格式–掌握TCP或UDP数据包格式–掌握网际校验算法实训工具所使用的编程软件为:VC++ 实训内容 : private: _int64hton64(_int64inval); unsignedsho