IP数据报格式简述
数据报在因特网中起着非常重要的作用,为了提高网络编程的内功,对IP数据报加深了解很有必要。
版本号:这4位表明了数据报采用的协议版本。通过版本号路由器可以确定如何解释IP数据报的剩余部分。
首部长度:因为IPv4数据报可包含一些可选项(包含在数据报首部中),故需要用这4位来确定IP数据报中的数据部分实际从哪里开始。
服务类型:服务类型使不同类型的IP数据报能互相区分开来。如:将实时数据报(IP电话等)与非实时流量(ftp)区分开。
数据报长度:IP数据报总长度(首部+数据),以字节计。该字段长度为16位,所以IP数据报理论最大长度为65 535字节。然而,数据报很少有超过1500字节的。
标识、标志、片偏移:这三个字段与IP分片有关。IPv6不允许在路由器上分片。
寿命:Time-To-Live,TTL字段用来确保数据报不会永远在网络上循环。每经过一台路由器时,该字段值减一,若字段减为0,则该数据报必须被丢弃。
协议:该字段仅在一个IP数据报到达其最终目的地时才会用到。该字段值指明了IP数据报的数据部分应交给哪个运输层协议。
首部检验和:首部检验和用于帮助路由器检测收到的IP数据报中的比特错误。首部检验和事这样计算的:将首部中的每两个字节当做一个数,用反码对这些数求和。该和的反码存放在检验和字段中。路由器要对每个收到的IP数据报计算其首部检验和,根据数据首部中携带的检验和与计算得到的检验和是否一致,来检验是否出错。路由器一般丢弃检测出错误的数据报。
源和目的IP地址:当源主机产生一个数据报时,它在源IP字段中插入它的IP地址,在目的IP地址字段中插入其最终目的地的地址。通常由源主机经DNS查找决定目的地址。
选项:选项字段允许扩展IP首部。IPv6不再采用。
数据:数据字段包含要交付给目的地的运输层报文段(TCP或UDP)。数据字段也可以承载其他类型的数据(ICMP报文段等)。