网际协议

网际协议internet protocolIP),又称互联网协议,是互联网协议包中的网络层通信协议,用于跨网络边界分组交换。它的路由功能实现了互联互通,并从本质上建立了互联网。

IP是在TCP/IP协议族网络层的主要协议,任务是仅根据数据包标头中的IP地址将数据包从源主机传递到目标主机。为此,IP协议定义了封装要传递的数据的数据包结构。它还定义了用于用源和目的地资讯标记数据报的寻址方法。

第一个架构的主要版本为IPv4,目前仍然是广泛使用的互联网协议,尽管世界各地正在积极部署IPv6

IP封装

数据在IP互联网中传送时会封装为数据包。网际协议的独特之处在于:在报文交换网络中主机在传输数据之前,无须与先前未曾通信过的目的主机预先建立好特定的“通路”。互联网协议提供了“不可靠的”数据包传输机制(也称“尽力而为英语Best-effort delivery”或“尽最大努力交付”);也就是说,它不保证数据能准确的传输。数据包在到达的时候可能已经损坏,顺序错乱(与其它一起传送的报文相比),产生冗余包,或者全部丢失。如果应用需要保证可靠性,一般需要采取其他的方法,例如利用IP的上层协议控制。

IP提供的服务

由于封装带来的抽象机制,IP能够在各种各样的网络上工作,例如以太网异步传输模式FDDIWi-Fi令牌环等等。每个链路层的实现可能有自己的方法(也有可能是完全没有它自己的方法),把IP地址解析成相应的数据链路地址。IPv4使用地址解析协议(ARP),而IPv6采用邻居发现协议(NDP)。

可靠性

互联网协议的设计原则,假定网络基础设施本身就是不可靠的单一网络元素或传输介质,并且它使用的是动态的节点和连接。不存在中央监测和性能衡量机制来跟踪和维护网络的状态。为了减少网络的复杂性,大部分网络只能故意地分布在每个数据传输的终端节点。传输路径中的路由器只是简单地将资料包发送到下一个匹配目的地址的路由前缀的本地网关。

由于这种设计的结果,互联网协议只提供尽力传送,其服务也不受信任。在网络专业语言中是无连接的协议,相对于所谓的面向连接的模式。在缺乏可靠性的条件下允许下列任何故障发生:

  • 数据损坏
  • 丢失数据包
  • 重复到来
  • 数据包传递乱序;意思是,报文A即使在报文B之前发送,B也可能在A之前先抵达。

互联网协议提供的唯一帮助是,IPv4规定透过在路由器节点计算校验和来确保IP数据报头是正确的。这个带来的副作用是当场丢弃报头错误的资料包。在这种情况下不需要发送通知给任一终端节点,但是互联网控制消息协议(ICMP)中存在做到这一点的机制。但是,IPv6为了快速传输已经放弃了计算校验和的使用。

对这些可靠性问题的更正是上层协议的责任。例如,上层协议为了确保按顺序传送可能要缓存数据,直到数据可以传递给应用程式。

除了可靠性问题,互联网及其组成部分的动态性和多样性不能确保任何路径是有能力地或合适地完成所要求的数据传输,即使路径是有效并且可靠的。技术限制有在给定的链路上允许的数据包的大小。应用程式必须确保它使用适当的传输特性。这种责任还在于一些在应用层协议和IP之间的上层协议。存在审查的本地连接尺寸最大传输单位(MTU),以及整个预计到目标路径时使用IPv6。IPv4的网络层有自动分片成更小的单位进行传输原始数据报的能力。在这种情况下,IP确实能够为乱序的分片进行顺序排序。

IP寻址和路由

网际协议最为复杂的方面可能就是寻址和路由。寻址就是如何将IP地址分配给各个终端节点,以及如何划分和组合子网。所有网络端点都需要路由,尤其是网际之间的路由器。路由器通常用内部网关协议Interior Gateway Protocols,IGPs)和外部网关协议External Gateway Protocols,EGPs)决定怎样发送IP数据包。

版本历史

现在的国际互联网普遍的采用了网际协议。而现在正在网络中运行的网际协议是IPv4IPv6为IPv4的后续版本。互联网现在正慢慢地耗尽IP地址,而IPv6的出现解决了这个问题,与IPv4的32位的地址相比而言,IPv6拥有128位的地址空间,可以提供比前者多很多的地址。

版本0至3不是保留就是没有使用。而版本5用于实验流传输协议。其他的版本也已经分配了,通常是用于实验的协议,而没有广泛应用。

参见

外部链接