文档介绍:背景知识 IPv4 协议面临最大的问题是地址空间不足,主要表现为:地址数量不足,路由效率不高,缺乏安全设计,缺乏服务质量保证。根据这些缺陷,由此提出 ipv 6 协议,IPv6 协议是 IETF 指定地下一代 IP协议,特点主要表现为:新的协议头部格式,巨大的地址空间( IP 地址的长度从 IPv 4的32 位升为 128 位。),有效的分层路由结构,内置的安全性服务,更好的支持服务质量,良好的扩展性。实训目的(一) 充分理解 IPv6 的数据结构和 IPv 6地址格式主要字段: 1. Version: 4-bit , 协议版本号,此处为 6。 2. Traffic Class :8-bit ,类似于 IPv4 的Type_of_Service ,用以提供区分服务和优先级。 3. Flow Label: 20-bit ,用以标记那些要求路由器对其作特殊处理的报文流。所谓报文流是指从一个特定源到特定目的地之间的报文序列,并且源节点希望中间路由器能够对它们进行特殊处理。 4. Payload Length: 16-bit ,用以表示 IPv6 数据包中除基本报头以外剩余部分的长度(以字节为单位),任何扩展报头都将作为 Payload Length 的一部分计算在内。 5. Next Header: 8-bit ,类似于 IPv4 的Protocol 字段,通常用以标识上层是 TCP 还是 UDP ,或标识紧跟在 IPv6 数据包头后面的下一个头的类型(有扩展报头时)。 6. Hop Limit: 8-bit ,无符号整数。相当于 IPv4 中的 Time_to_Live ,按转发包的每个节点逐一递减。如果跃点限制递减到零,包就会被丢弃。 IPv6 地址的表述和书写: 表述和书写时,把长度为 128 个二进制位( bit )的 IPv6 地址分成 8个16 位的二进制段、每一个 16 位的二进制段用 4 位的 16 进制数表示,段间用“:”(冒号)隔开(其书写方法和 IPv4 的十进制数加“.”不同)。例如: 1000:0000:0000:0000:000A:000B:000C:000D 就是每一个 16 位的二进制数的段用 4位16进制数的段来表示、段间用“:”(冒号)隔开的一个 IPv 6 地址;其中:各个 4位16进制数的段中的高位 0允许省略;因此,上面的 IPv 6 地址也可以缩写成: 1000:0:0:0:A:B:C:D 。为了更进一步简化,IPv6 的地址规范中还规定,可以在一个 IPv6 地址中最多使用一次双冒号(::)来取代 IPv6 地址中紧密相连的多个全 0的16进制数的段(因为如果允许在一个 IPv6 地址中使用一次以上的双冒号时将无法判断 IPv 6 地址的长度,所以 IPv6 的地址规范中才规定:在一个 IPv6 地址中最多只能使用一次双冒号),这样上面的 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位 3. 确认:表示目的节点成功接收序号从初始值到 N 的报文段,要求源节点发送序号为 N+1 的报文段,字段长度为 32位 :表示 TCP 头部的长度,字段长度为 4位 :表示该字段保留工以后使用,字段长度为 6位 :表示可以设置的标志位,字段长度 6位 :表示要求对方主机维持的窗口大小,字段长度为 16位 :用于检测 TCP 包在传输中室分出错,字段长度为: 16位 :表示 TCP 包中需要紧急发送的数据,字段长度为 16位 10. 选项:表示可以选择的字段,包括最大报文段长度、窗口扩大因子与时间戳等,字段长度为 0-40 字节(三) 网际校验和算法在发送方, 先把被校验的数据划分为许多 16 位字的序列。如果数据的字节长度为奇数, 则在数据尾部补一个字节的 0 以凑成偶数。用反码算数运算把所有 16 位字相加后, 然后再对和取反码,便得到校验和。在接收方, 将收到的数据报( 包括校验和字段), 将所有 16 位字再使用反码算数运算相加一次, 将得到的和取反, 即得出校验和的计算结果。如果数据报在传输过程中没有任何变化,则此结果必为 0 ,于是就保留这个数据报。否则即认为出差错,并将此数据报丢弃。“ A,B,