IP报头:
4位版本号(version):指定IP协议的版本(IPv4/IPv6),对于IPv4来说,就是4。
4位首部长度(header length):表示IP报头的长度,以4字节为单位。
8位服务类型(Type Of Service):3位优先权字段(已经弃用),4位TOS字段,和1位保留字段(必须置为0)。4位TOS分别表示:最小延时,最大吞吐量,最高可靠性,最小成本。这四者相互冲突,只能选择一个。比如对于ssh/telnet这样的应用程序,最小延时比较重要,而对于ftp这样的程序,最大吞吐量比较重要。
16位总长度(total length):IP报文(IP报头+有效载荷)的总长度,用于将各个IP报文进行分离。
16位标识(id):唯一的标识主机发送的报文,如果数据在IP层进行了分片,那么每一个分片对应的id都是相同的。
3位标志字段:第一位保留,表示暂时没有规定该字段的意义。第二位表示禁止分片,表示如果报文长度超过MTU,IP模块就会丢弃该报文。第三位表示“更多分片”,如果报文没有进行分片,则该字段设置为0,如果报文进行了分片,则除了最后一个分片报文设置为0以外,其余分片报文均设置为1。
13位片偏移(framegament offset):分片相对于原始数据开始处的偏移,表示当前分片在原数据中的偏移位置,实际偏移的字节数是这个值× 8 \times 8×8得到的。因此除了最后一个报文之外,其他报文的长度必须是8的整数倍,否则报文就不连续了。
8位生存时间(Time To Live,TTL):数据报到达目的地的最大报文跳数,一般是64,每经过一个路由,TTL -= 1,一直减到0还没到达,那么就丢弃了,这个字段主要是用来防止出现路由循环。
8位协议:表示上层协议的类型。
16位首部检验和:使用CRC进行校验,来鉴别数据报的首部是否损坏,但不检验数据部分。
32位源IP地址和32位目的IP地址:表示发送端和接收端所对应的IP地址。
选项字段:不定长,最多40字节。
协议:指示上层使用何种协议
标识,标志,片偏移——IP的分片
MISS——最大段长度,传输层分段后的数据的大小最大为1460字节=MTU-IP报头-IPV4报头
MTU——最大传输单元,默认情况下规定的大小,数据链路层最大不超过1500字节
数据链路层——以太网协议
类型——标识上层协议类型
FCS——帧校验序列——CRC算法