网络层的产生也是网络发展的结果。当数据通信需要跨网段并且有多条通信路径可选择时,这就产生了如何把任意两台主机连接起来进行远距离的数据传输问题。网络层的IP协议很好地解决了这一问题。在这里我们需要先了解IP协议及IP数据单元的格式,然后再分析IP协议的工作原理。
1. IP协议 IP协议(Internet Protocol,网际协议)即网间互连协议。IP协议是使连接到Internet上的所有计算机实现相互通信的一套约定或应当遵守的规则。这套规则确保了网间的连接、网间的寻址以及网间的数据转发等功能得以实现。所以,它是网络层中最重要的协议.它与TCP协议一起构成了TCP/IP协议族的核心.IP协议在网络层提供的是无连接的、不可靠的数据传输服务。
何谓无连接的、不可靠的数据传输呢?
在网络层传送IP包就好比我们生活中在邮局寄送的平信,每封平信有确定的目的地址,平信在传送过程中可能走的路径不同,平信在寄送的途中是没有保证的;在发信人与收信人这一对有关联的主体之间没有直接的制约关系(可理解为无连接的),如果平信在传送途中丢失,邮局是不负责的(可理解为不可靠的)。也就是说,IP包在网络传输中,发送端的网络层与接收端的网络层之间不需要建立
上海网站设计连接,发送端的网络层也无须关心IP包是否送到接收端的网络层。
2. IP数据单元格式 IP协议的数据单元也很复杂,如图4-14所示。IP协议头主要由12个域组成,加上传输层传递下来的数据单元就构成了网络层的IP数据报,也称之为IP包。
IP协议头的构成,每行为32个bit位,其中各域含义解释如下.版本(Version):指的是IP协议版本号,目前是4,即指IPv4a头长度(Internet Header Length,IH L):指的是IF协议头长度,以4个B为1个单位,最小值为5,即最小的IP协议头有20个字节(没有可选项时)。
服务类型(Type of Service,TOS):由8个bit组成,在不同位置的bit设置可代表不同的服务类型.有数据的优先权(现已被忽略)、低时延、高吞吐、高可靠和最小费用等服务类型,否则就意味着是一般服务。
总长度(Total Length, TL):指整个IF包的长度,以B为单位。利用协议头长度和总长度,就可以知道IF包中数据的起始位置和长度。
标识(Identification):标识主机发送的每一份IF包的编码(ID),占16位.通常每发送一份IP包它的值就会加1。
IF包是在网络层传输的数据单元,而不同网络类型在链路层都具有最大传输单元(MTU)限制这一特性,如以太网的MTU是1500B,这个1500B就是网络层IP协议数据单元的最大值。如果IP包总长度超过了MTU,那么网络层就要对IF包进行分片,使每一报片的长度小于或等于MTU。此时这16位的标识在IF包分片后将被复制到每一报片中。在接收端,数据报片的重组依据就是这个ID标识。
R:保留未用。
DF(Don't Fragment) : IP包不分片标志,占1bit。值为1时表示网络层将不对IP包进行分片。
MF(More Fragment):报片标志。值为0表示当前数据报是最后一片;值为1表示非最后一报片,后续还有其他报片。
片偏移(Fragment Offset, FO):该报片偏移原始数据报开始处的位置.偏移的字节数是该偏移值乘以8。
另外,当IP包被分片后,每个报片的总长度值要改为该片的长度值。接收端收到最后一个报片,从它的长度和片偏移计算出数据报总长度,再与所有到达的报片长度和比较,依此来判断报片的完整性,然后进行重组。
生存时间(Time To Live, TTL):设置了IP包可以经过的最多路由器个数(有关TTL的单位请参考第11章问题4-5的解释)。TTL的初始值由源主机设置,经过一个路由器,它的值就减1。当该域的值为0时,IP包就被路由器丢弃,并发送ICMP报文通知源主机。
协议(Protocol, PROT):指出上层的协议类型。具体指的是TCP或UDP的协议编码。
头校验和(Header checksum):是根据IP协议头计算的“校验和”码。如果“校验和”有误就丢弃IP包,但是不生成差错报文。重传控制将由传输层控制来发现被丢弃的数据报并进行重传。
源IP地址:每个Ip包都必须包含发送端的源IP地址,是一个32bit的值。
目的IP地址:每个IP包也都需要包含接收端的IP地址,也是一个32bit的值。
可选字段(Options):一个可变长的选项,用于安全、调试等,也为以后扩展或升级之用(该字段的应用请参见第11章问题4-6解释)。
填充(Padding):在必要时插人一定的填充字节,以确保IP协议头始终是32bit的整数倍。
数据:是传输层提交下来的协议数据单元。
从IP包的协议头可知,IP协议头的大小有两种:当没有“选项”这个域时,为160位即20个字节;当有“选项”域时,为192位即24个字节。
3. IP协议的工作原理 IP是怎样实现网络互联的?
早期各公司的网络系统不能互通,也不能互连。原因是它们在各自网络中所传送的数据基本单元(即数据帧)的格式不同。有了IP协议,不同的网络系统实现了互联。可以这样理解lip协议就是一套由程序构成的协议软件,它把各种不同的“数据帧”统一转换成“IP包”格式,实现在互联网上的传送。这种转换是Internet的一个最重要的特点,它使异种网络的计算机系统也能在Internet上实现相互通信,也使Internet具有了真正意义上的“开放性”特征。
那么,"IP包"是什么?
由IP数据单元格式的构成可见,IP包就是一个无连接的,并且是独立的数据传输单元,它携带了数据来自哪里,以及将要送到哪里等明确的标识(即IP地址)。这样,IP包在网络间传送时,就不需要一定先建立一条数据通道,而是每个IP包都可经由不同的传输路径独立地向目的地传送。
【举例】如图4-15所示,IP协议的基本工作原理分析。当通信两端(主机A和主机B)位于不同的网络时,数据的传送需要经由路由器跨网传递。发送端A只需将IP包(需要分片时先分片处理)交给第一路由器RI即可。路由器R1根据IP包携带的目的标识,进行路径选择并转发给下一路由器(R2或R3).下一路由器再转发到其下一路由器R4,路由器R4最后将IP包传送到目的主机。在目的主机B端,收到IP包后进行协议头校验和检验,将检验失败的IP包.直接丢弃(不会向发送端回送任何差错报文);将校验无误的IP包提取数据报数据直接交给上层传输层。
由此可见,在网络层IP包的传送不仅是无连接的,而且目的端IP包的到达是无序的,并且是不可靠的。
4.网络层其他协议 在网络层,除了非常重要的IP协议之外,还有两个比较重要的协议在此简单介绍如下。
1)ICMP协议
ICMP(Internet Control Message Protocollnternet,网际控制消息协议)是TCP/IP协议族的一个子协议,主要用于在主机、路由器之间传递控制信息。这些控制消息是指网络本身的消息,如网络是否通畅、主机是否可达、路由是否可用、IP包路由传送已超过“生存时间”等,还包括报告错误、交换受限等控制和状态信息.这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
在网络应用中,我们经常会得到ICMP提供的消息,只不过常常被忽略了而已。如某主机处于关闭或维护状态,不提供网络服务时,ICMP就可以对发起的TCP连接给出一个终止(Destination Unreachable)通告,告知主机不可达。又如我们在检查网络是否通畅时,常常使用ping命令,这个命令就是一项基于ICMP协议的应用,ping命令返回的信息均是由ICMP协议提供的报告。
2) ARP协议
ARP(Address Resolution Protocol,地址解析协议)用于通过主机的网络地址(即32位的IP地址)解析出该主机的物理地址(即48位的MAC地址)。
在Internet网中,网络层之下是网络访问层,其对应于局域网的数据链路层和物理层。在数据链路层中,数据通信是以“数据帧”为传输单位,而“数据帧”的寻址方式是依据通信两端点的MAC地址来实现的。因此,网络层的IP包进人网络访问层后,下一步的传输必须要知道下一链接点或目的节点的物理地址即MAC地址。如何找到下一链接点或目的节点的MAC地址,就是由ARP协议实现的。