每个数据报都有报头和报文这两个部分,报头中有目的地址等必要内容,使每个数据报不经过同样的路径都能准确地到达目的地。在目的地还需要重新组合还原成原来发送的数据,这就要IP具有分组打包和集合组装的功能。
在实际传送过程中,数据报还要能根据所经过网络规定的分组大小来改变数据报的长度,IP数据报的最大长度可达65535个字节。
IP协议中还有一个非常重要的内容,那就是给因特网上的每台计算机和其它设备都规定了一个唯一的地址,叫做“IP 地址”。由于有这种唯一的地址,才保证了用户在连网的计算机上操作时,能够高效而且方便地从千千万万台计算机中选出自己所需的对象来。
现在电信网正在与IP网走向融合,以IP为基础的新技术是热门的技术,如用IP网络传送话音的技术(即VoIP)就很热门,其它如IP over ATM、IP over SDH、IP over WDM等等,都是IP技术的研究重点。
IP分组格式的奥妙
IPv4数据包的报头包含如下内容:版本、头标长、服务类型、总长、标识、标志、片偏移、生存时间、协议、头标校验和、源IP地址、宿IP地址、选项。
为便于按照相应规定对报头进行分析,首先路由器要确定报头的格式,查看IP协议的“版本”(IPv4的“版本”是4);次之,路由器必须知道报头的长度和正确性,按照“头标长”截获报头,用“头校验和”加以校验。为避免数据包因寻径错误而在互联网中无休止地流动、占用宝贵的网络资源,有必要限制数据包的转发次数。路由器检查“生存时间”,目的在于此。路由器还需要根据“宿IP地址”或“选项”中的源路径查找路由转发表,如果“宿IP地址”正好与自己吻合,需参考“源IP地址”和“协议”,决定该数据包是否有权限访问路由器。如果有,就要根据“协议”在本地作进一步的高层处理,不过在此之前有必要根据“标识”、“标志”和“片偏移”来重组数据包。“协议”标明了数据区的协议类型,如89代表OSPF等,路由器根据“协议”规定的数据区格式分析数据,从而可以进一步处理其中相应的协议消息。
如果“宿IP地址”尚未到达,须参考“源IP地址”和“协议”,决定该数据包是否被允许转发,如果允许,路由器根据“宿IP地址”或“选项”中的源路径、“服务类型”在路由转发表中查找相应的输出端口,并把数据包交换到该输出端口的某队列中,解析下一跳IP地址对应的物理地址(比如以太网的MAC地址),把数据包封装在物理帧中传输。不过,如果一个物理帧装不下完整的数据包,还须把数据包分片,在“标识”、“标志”和“片偏移”中加以指示。“服务类型”包含优先级、时延、吞吐率和可靠性,目的是要映射到相应的路由选择、排队优先级、带宽分配上。不过,映射不是强制性的,即使映射也并非所有的要求都能被满足。在不久的将来,“服务类型”有可能被“区分服务”替代。
上述任何一个环节没通过,IP数据包就要被丢弃,与此同时,路由器可能产生ICMP数据包,报告相应的差错。