-
1 课程内容
-
2 作业




无连接数据报传送、数据报路由选择和数据报差错处理。

IP协议是点到点的,核心问题是寻径,它向上层(主要是TCP层)提供统一的IP数据报,使得各种物理帧的差异对上层协议不复存在。
特点:
其一,服务不可靠,因为分组可能丢失、重复、延迟或不按序到达等;
其二,无连接的;
其三,尽其所能。
在一个物理网络上,传送的单元是一个包含头部和数据的帧。TCP/IP互联网则把它的基本传输单元叫做一个IP数据报。IP数据报也是一个以头部开始,后跟数据区。

图 IP数据报格式
数据报头部包含了源地址和目的地址以及一个标识数据报内容的类型字段。它们不同的是数据头包含的是IP地址,而帧的头部包含的是物理地址。图4-5给出了IP数据报的格式。

标明了IP协议的版本号,目前的协议版本号为4。下一代IP协议的版本号为6。
头部长度指的是IP包头中32bit的数量,包括任选项。由于它是一个4比特字段,每单位代表4个字节,因此首部最长为60个字节。普通IP数据报(没有任何选择项)字段的值是5,即长度20个字节。
包括一个3bit的优先权子字段,4bit的TOS子字段和1bit未用但必须置0的子字段。4bit的TOS分别代表:最小时延、最大吞吐量、最高可靠性和最小费用。4bit中只能置其中1bit。如果所有4bit均为0,那么就意味着是一般服务。路由协议如OSPF和IS-IS都能根据这些字段的值进行路由决策。
指整个IP数据包的长度,以字节为单位。利用首部长度字段和总长度字段,就可以知道IP数据报中数据内容的起始位置和长度。由于该字段长16比特,所以IP数据报最长可达65535字节。尽管可以传送一个长达65535字节的IP数据包,但是大多数的链路层都会对它进行分片。总长度字段是IP首部中必要的内容,因为一些数据链路(如以太网)需要填充一些数据以达到最小长度。尽管以太网的最小帧长为46字节,但是IP数据可能会更短。
如果没有总长度字段,那么IP层就不知道46字节中有多少是IP数据包的内容。
唯一地标识主机发送的每一份数据包。通常每发送一份报文它的值就会加1,物理网络层一般要限制每次发送数据帧的最大长度。IP把MTU与数据包长度进行比较,如果需要则进行分片。分片可以发生在原始发送端主机上,也可以发生在中间路由器上。把一份IP数据包分片以后,只有到达目的地才进行重新组装。重新组装由目的端的IP层来完成,其目的是使分片和重新组装过程对传输层(TCP和UDP)是透明的,即使只丢失一片数据也要重传整个数据包。已经分片过的数据包有可能会再次进行分片(可能不止一次)。IP首部中包含的数据为分片和重新组装提供了足够的信息。对于发送端发送的每份IP数据包来说,其标识字段都包含一个唯一值。该值在数据包分片时被复制到每个片中。标志字段用其中一个比特来表示“更多的片”除了最后一片外,其他每片都要把该比特置1。
指的是该片偏移原始数据包开始处的位置。当数据包被分片后,每个片的总长度值要改为该片的长度值。
该字段设置了数据包可以经过的最多路由器数。它指定了数据报的生存时间。
TTL的初始值由源主机设置(通常为32或64),一旦经过一个处理它的路由器,它的值就减去1。当该字段的值为0时,数据报就被丢弃,并发送ICMP报文通知源主机。
根据它可以识别是哪个协议向IP传送数据。
由于TCP、UDP、ICMP和IGMP及一些其他的协议都要利用IP传送数据,因此IP必须在生成的IP首部中加入某种标识,以表明其承载的数据属于哪一类。为此,IP在首部中存入一个长度为8bit的数值,称作协议域。
其中1表示为ICMP协议,2表示为IGMP协议,6表示为TCP协议,17表示为UDP协议。
根据IP首部计算的检验和码。它不对首部后面的数据进行计算。因为ICMP、IGMP、UDP和TCP在它们各自的首部中均含有同时覆盖首部和数据效验和码。每一份IP数据报都包含32 bit的源IP地址和目的IP地址。

