TCP/IP 头部

 (1)IPv4 头部

    版本   IP报文首部的第一个字段是4位版本字段。对IPv4来说,这个字段的值是4。
   首部长度(IHL)   第二个字段是4位首部长度,说明首部有多少32位字长。由于IPv4首部可能包含数目不定的选项,这个字段也用来确定数据的偏移量。这个字段的最小值是5(RFC 791),最大值是15。
   服务类型(TOS) 在转发过程中用来提供特别的服务。
   全长 这个16位字段定义了报文总长,包含首部和数据,单位为字节。这个字段的最小值是20(20字节首部+0字节数据),最大值是65,535。所有主机都必须支持最小576字节的报文,但大多数现代主机支持更大的报文。有时候子网会限制报文的大小,这时报文就必须被分片。
   标识符  这个字段主要被用来唯一地标识一个报文的所有分片。一些实验性的工作建议将此字段用于其它目的,例如增加报文跟踪信息以协助探测伪造的源地址。[5]
   标志 这个3位字段用于控制和识别分片,它们是:
              位0:保留,必须为0;
              位1:禁止分片(DF);
              位2:更多分片(MF)。
      如果DF标志被设置但路由要求必须分片报文,此报文会被丢弃。这个标志可被用于发往没有能力组装分片的主机。
当一个报文被分片,除了最后一片外的所有分片都设置MF标志。不被分片的报文不设置MF标志:它是它自己的最后一片。
    分片偏移  这个13位字段指明了每个分片相对于原始报文开头的偏移量,以8字节作单位。
   存活时间(TTL) 这个8位字段避免报文在互联网中永远存在(例如陷入路由环路)。存活时间以秒为单位,但小于一秒的时间均向上取整到一秒。在现实中,这实际上成了一个跳数计数器:报文经过的每个路由器都将此字段减一,当此字段等于0时,报文不再向下一跳传送并被丢弃。常规地,一份ICMP报文被发回报文发送端说明其发送的报文已被丢弃。这也是traceroute的核心原理。
   协议  这个字段定义了该报文数据区使用的协议。IANA维护着一份协议列表(最初由RFC 790定义)。
   首部检验和 这个16位检验和字段用于对首部查错。在每一跳,计算出的首部检验和必须与此字段进行比对,如果不一致,此报文被丢弃。
    源地址 一个IPv4地址由四个字节共32位构成,此字段的值是将每个字节转为二进制并拼在一起所得到的32位值。
   目的地址 与源地址格式相同,但指出报文的接收端。
   选项 附加的首部字段可能跟在目的地址之后,但这并不被经常使用。
 (2)IPv6头部

(3)UDP 头部

(4)TCP 头部

猜你喜欢

转载自shaojiashuai123456.iteye.com/blog/1661898
今日推荐