⑴ 谁能给我具体解释一下IP报头结构,各部分内容及含义
IP报文头长32位,具体参考(RFC791),由以下几个部分组成。
1.1、版本:长度4位,标识了报文的IP版本号,比如IPV4(IPng),IPV6等,这个4位字段的值通常为二进制表示,比如IPV4=0100。
1.2、报头长度:字段长度为4位,它表示IP报头的长度(即报文头的长度,而不包含具体数据长度),设计报头长度字段的原因是报文的选择项字段大小会发生变化。
1.3、服务类型:字段长度为8位,它用来指定特殊的报文处理方式。服务类型字段又被划分为了2个部分:优先权和TOS。优先权用于设置报文的优先级(一般QOS‘服务质量’会经常使用到这点)。优先权字段长度为3位,分别是以下表示: 000:路由
001:优先级
010:立即
011:火速
100:火速覆盖
101:紧急
110:互联网络控制
111:网络控制 TOS用于选择传输服务,通常被设置为0,字长读为5位。每个位数代表一个服务方式,设置为0禁止,1为启动,分别有以下类型:时延、吞吐量、可靠性、开销、保留位(一直是设置为0)
1.4、总长度:字段长度为16位,它的指整个IP报文的长度,以8bit字节为单位,其中包括IP报头。我们只需要用IP总长度减去IP报头长度就能知道了报文实际数据的大小。16位长度的二进制数用十进制表示最大可以为65535,所以IP报文的最大长度是65535。
1.5、标识符:字段长度为16位,通常与标记字段和分片偏移字段一起用于IP报文的分片。当原始报文大小超过了MTU,那么就必须将原始数据进行分片。每个被分片的报文大小不得超过MTU,而这个字段还将在同一原始文件被分片的报文上打上相同的标记,以便接收设备可以识别出属于同一个报文的分片。 1.6、标记字段:长度为3位,第一位没有被使用,第二位是不分片位(DF),当DF被设置被设置为1时,表示路由器不能对报文进行分片处理。
第三位表示还有后继分片(MF),当路由器对报文进行分片时,除了最后一个分片的MF位设置为0外,其他所有分片的MF位均设置1,以便接收者直到收到MF位为0的分片为止。 1.6、分片偏移:字段长度为13位,给分片的文件进行重新排序,避免混乱。 1.7、生存时间:字段长度为8位,也就是跳数的大小。
1.8、协议 :字段长度位8位,它主要是标识出传输层的地址或协议号,也就是说表示数据要进行什么样的上层服务。
1.9、报头校验和:字段长度16位,针对IP报头进行纠错。
1.10、源地址和目标地址:也就是两端的地址,比如IP地址。
1.11、可选项:主要用于测试。
1.12、填充:该字段通过在选择字段后面添加0来补足32位,保证报文长度是32比特的倍数
⑵ 在分组交换中数据包的头部和尾部分别存储什么信息
IPv4和IPv6类似,都只管包头,除了包头就是数据部分了。
IP包头字段说明
版本:4位,指定IP协议的版本号。
包头长度(IHL):4位,IP协议包头的长度,指明IPv4协议包头长度的字节数包含多少个32位。由于IPv4的包头可能包含可变数量的可选项,所以这个字段可以用来确定IPv4数据报中数据部分的偏移位置。IPv4包头的最小长度是20个字节,因此IHL这个字段的最小值用十进制表示就是5 (5x4 = 20字节)。就是说,它表示的是包头的总字节数是4字节的倍数。
服务类型:定义IP协议包的处理方法,它包含如下子字段
过程字段:3位,设置了数据包的重要性,取值越大数据越重要,取值范围为:0(正常)~ 7(网络控制)
延迟字段:1位,取值:0(正常)、1(期待低的延迟)
流量字段:1位,取值:0(正常)、1(期待高的流量)
可靠性字段:1位,取值:0(正常)、1(期待高的可靠性)
成本字段:1位,取值:0(正常)、1(期待最小成本)
未使用:1位
长度:IP包的总长
标识:唯一地标识主机所发送的一个数据段,通常每发送一个数据段后加一。但IP包被分割后,分割得到的IP包拥有相同的标识
标志:是一个3位的控制字段,包含:
保留位:1位
不分段位:1位,取值:0(允许数据报分段)、1(数据报不能分段)
更多段位:1位,取值:0(数据包后面没有包,该包为最后的包)、1(数据包后面有更多的包)
段偏移量:当数据段被分割时,它和更多段位(MF, More fragments)进行连接,帮助目的主机将分段的包组合。
TTL:表示数据包在网络上生存多久,每通过一个路由器该值减一,为0时将被路由器丢弃。
协议:8位,这个字段定义了IP数据报的数据部分使用的协议类型。常用的协议及其十进制数值包括ICMP(1)、TCP(6)、UDP(17)。
校验和:16位,是IPv4数据报包头的校验和。
源IP地址:
目的IP地址: