第四章IP协议Q&A王黠110062109Q2、根据IPv6部首设计其报文部首数据结构的结构知识1:计算机网络容易混淆的概念:报文,分组,数据包,数据报,帧,段,等等的区别I.帧frame:一般位于数链层,也有的位于物理层II.包、数据包、分组、封包、packet:网络层,所以有“IP包”的说法III.数据报datagram:网络层,或之上的层,例如传输层有UDP(UserDatagramProtocol)就是基于数据报IV.信元cell:定长,数链层或物理层V.段、报文段、segment:TCP协议特有术语,位于传输层知识2:IPv4数据报格式IP数据报包含报头区和数据区两部份数据区:高层传输的数据报头区:为了正确传输高层数据而增加的控制信息知识3:IPv6地址的基本表达方式是X:X:X:X:X:X:X:X,其中X是一个4位十六进制整数(16位)。每一个数字包含4位,每个整数包含4个数字,每个地址包括8个整数,共计128位(4×4×8=128)。例如,下面是一些合法的IPv6地址:CDCD:910A:2222:5498:8475:1111:3900:20202000::1::10.0.0.1IPv6部首:IPv6包头长度固定为40字节,去掉了IPv4中一切可选项,只包括8个必要的字段,因此尽管IPv6地址长度为IPv4的四倍,IPv6包头长度仅为IPv4包头长度的两倍。IPv6部首:IPv6包头长度固定为40字节,去掉了IPv4中一切可选项,只包括8个必要的字段,因此尽管IPv6地址长度为IPv4的四倍,IPv6包头长度仅为IPv4包头长度的两倍。Version(版本号):4位,IP协议版本号,值=6。TrafficClass(流量类别):8位,指示IPv6数据流通信类别或优先级。功能类似于IPv4的服务类型(TOS)字段。FlowLabel(流标记):20位,IPv6新增字段,标记需要IPv6路由器特殊处理的数据流。该字段用于某些对连接的服务质量有特殊要求的通信,诸如音频或视频等实时数据传输PayloadLength:16位负载长度。负载长度包括扩展头和上层PDU,16位最多可表示65535字节负载长度。NextHeader:8位,识别紧跟IPv6头后的包头类型,如扩展头(有的话)或某个传输层协议头(如TCP,UDP或着ICMPv6)。HopLimit(跳段数限制):8位,类似于IPv4的TTL(生命期)字段,用包在路由器之间的转发次数来限定包的生命期。128位,发送方主机地址。16bit128位,在大多数情况下,目的地址即信宿地址。但如果存在路由扩展头的话,目的地址可能是发送方路由表中下一个路由器接口。下面比较一下两种报头。Version(版本)字段在两种协议中没有变化。IPv6丢弃了:InternetHeaderLength(因特网报头长度)、TypeofService(服务类型)、Identification(识别)、Flags(标志)、FragmentOffset(分片偏移量)和HeaderChecksum(报头校验和)字段。TotalLenght(总长度)、TimetoLive(生存时间)和Protocol(协议)字段在IPv6中有了新名字,功能稍微进行了重新定义。IPv4中的Option(选项)字段已从报头中消失,改为Extension(扩展)功能。最后,IPv6加入了两个新字段:TrafficClass(流量类别)和FlowLabel(流标记)。IPv4数据结构structip{charip_verlen;/*IPversion&headerlength(inlongs)*/charip_tos;/*typeofservice*/shortip_len;/*totalpacketlength(inoctets)*/shortip_id;/*datagramid*/shortip_fragoff;/*fragmentoffset(in8-octet's)*/charip_ttl;/*timetolive,ingatewayhops*/charip_proto;/*IPprotocol(seeIPT_*above)*/shortip_cksum;/*headerchecksum*/Ipaddrip_src;/*IPaddressofsource*/Ipaddrip_dst;/*IPaddressofdestination*/charip_data[1];/*variablelengthdata*/};IPv6数据结构structip{charip_verlen;/*IPversion&headerlength(inlongs)*/charip_tc;/*typeofservice/TrafficClass*/shortip_len;/*totalpacketlength(inoctets)*/shortip_fl;/*FlowLabel*/shortip_nexthead;/*NextHeader*/charip_ttl;/*timetolive,ingatewayhops*///charip_proto;/*IPprotocol(seeIPT_*above)*///shortip_cksum;/*headerchecksum*/Ipaddrip_src;/*IPaddressofsource*/Ipaddrip_dst;/*IPaddressofdestination*/charip_data[1];/*variablelengthdata*/};Q4、Ip首部中的那些字段在经过每一个路由器时会产生变化IP数据报的大小可以由软件控制,但是必须考虑到物理网络的MTU。IP协议在确定数据报大小时,以方便为原则,IP协议选择当前信源机所在物理网络最合适的数据报大小来传输数据。当该数据报需要穿过MTU较小的网络时,将数据报分成较小数据片进行传输,在后面的传输过程中,如果碰到相同的问题,还要对数据报进一步分片。所以数据报在从信源到信宿的途中,可能会有多次分片。首部检验和这个字段只检验数据报的首部,但不包括数据部分。这是因为数据报每经过一个路由器,路由器都要重新计算一下首部检验和(一些字段,如生存时间、标志、片偏移等都可能发生变化)。不检验数据部分可减少计算的工作量。