IP提供不可靠、无连接的数据报传送服务:
(1)不可靠(unreliable)的意思是它不能保证IP数据报能成功地到达目的地。 IP仅提供最好的传输服务。如果发生某种错误时,如某个路由器暂时用完了缓冲区, IP有一个简单的错误处理算法:丢弃该数据报,然后发送 ICMP消息报给信源端。任何要求的可靠性必须由上层来提供(如TCP)。
(2)无连接(connectionless)这个术语的意思是IP并不维护任何关于后续数据报的状态信息。每个数据报的处理是相互独立的。这也说明, IP数据报可以不按发送顺序接收。如果一信源向相同的信宿发送两个连续的数据报(先是 A,然后是B),每个数据报都是独立地进行路由选择,可能选择不同的路线,因此 B可能在A到达之前先到达。
IP首部说明:4个字节的32 bit值以下面的次序传输:首先是 0~7 bit,其次8~15 bit,然后1 6~23 bit,最后是24~31 bit。这种传输次序称作 big endian字节序。由于TCP/IP首部中所有的二进制整数在网络中传输时都要求以这种次序,因此它又称作网络字节序。以其他形式存储二进制整数的机器,如little endian格式,则必须在传输数据之前把首部转换成网络字节序。
版本:目前的协议版本号是 4,因此I P有时也称作IPv4。
首部长度:指的是首部占 32 bit字的数目,包括任何选项。由于它是一个 4比特字段,因此首部最长为60个字节。普通 I P数据报(没有任何选择项)字段的值是 5。
服务类型(TOS)字段:包括一个 3 bit的优先权子字段(现在已被忽略), 4 bit的TOS子字段和1 bit未用位但必须置 0。 4 bit的TO S分别代表:最小时延、最大吞吐量、最高可靠性和最小费用。 4 bit中只能置其中1 bit。如果所有4 bit均为0,那么就意味着是一般服务。现在大多数的T C P / I P实现都不支持TO S特性,但是自4.3BSD Reno以后的新版系统都对它进行了设置。另外,新的路由协议如 O S P F和I S - I S都能根据这些字段的值进行路由决策。
总长度字段:是指整个 I P数据报的长度,以字节为单位。利用首部长度字段和总长度字段,就可以知道 I P数据报中数据内容的起始位置和长度。由于该字段长 1 6比特,所以 I P数据报最长可达 65535字节。
标识字段:唯一地标识主机发送的每一份数据报。通常每发送一份报文它的值就会加 1。在介绍IP分片和重组时再详细讨论它。同样,在讨论分片时再来分析标志字段和片偏移字段。
TTL(time-to-live)生存时间字段设置了数据报可以经过的最多路由器数。它指定了数据报的生存时间。 T T L的初始值由源主机设置(通常为 3 2或6 4),一旦经过一个处理它的路由器,它的值就减去 1。当该字段的值为 0时,数据报就被丢弃,并发送 I C M P报文通知源主机。
协议字段,被 IP用来对数据报进行分用。根据它可以识别是哪个协议向 IP传送数据。
首部检验和字段是根据 I P首部计算的检验和码。它不对首部后面的数据进行计算。 ICMP、IGMP、 UDP和TCP在它们各自的首部中均含有同时覆盖首部和数据检验和码。
每一份 I P数据报都包含源 IP地址和目的 IP地址。它们都是 32 bit的值。I P地址具有一定的结构,五类不同的互联网地址格式如图 1 - 5所示。