网络层IP协议

◇◆丶佛笑我妖孽 提交于 2020-03-23 10:00:15

IP协议的概念

IP(网络之间互连的协议 InternetProtocol)是TCP/IP协议簇中的核心协议,也是TCP/IP的载体。所有的TCP,UDP,ICMP及IGMP数据都以IP数据报格式传输。它是为计算机网络相互连接进行通信而设计的协议。

 

IP协议的服务

 

IP提供不可靠的,无连接的数据传送服务。不可靠指它不能保证IP数据报能成功到达目的地。IP仅提供最好的传输服务。当发生某种错误时,如某个路由器暂时用完了缓冲区,IP有一个简单的错误处理算法:丢弃该数据报,然后发送ICMP消息给信源。任何要求的可靠性必须由上层来提供。无连接指IP并不维护任何关于后续数据报的状态信息。每个数据报的处理是相互独立的。IP数据报可以不按发送顺序接收。如果一信源向相同的信宿发送两个连续的数据报(先是A,然后是B)每个数据报都是独立的进行路由选择,可能选择不同的路线,因此B可能在A到达之前先到达。 

MTU的概念

链路层具有最大传输单元MTU这个特性,它限制了数据帧的最大长度,不同的网络类型都有一个上限值。例如以太网的MTU是1500。如果网络层层有数据包要传,而且数据包的长度超过了MTU,那么网络层就要对数据包进行分片操作,使每一片的长度都小于或等于MTU。一个分片在到达接收主机的路径中,还可能被继续分片,因此,分片的IP数据报可能会以不同的路径传输到接收主机,接收主机通过一系列的重组,将其还原为一个完整的IP数据报,再提交给上层协议处理。

ip协议的分片和重组

 

当提交给数据链路层进行传送时,一个IP分片或一个很小的无需分片的IP数据报称为分组。数据链路层在分组前面加上它自己的首部,并发送得到的帧。

IP首部(5-8字节)包含了分片和重组所需的信息:

Identification:发送端发送的IP数据包标识字段都是一个唯一值,该值在分片时被复制到每个片中。

R:保留未用。

DF:“不分片”位,如果将这一比特置1,IP层将不对数据报进行分片。

MF:“更多的片”,除了最后一片外,其他每个组成数据报的片都要把该比特置1。

FragmentOffset:该片偏移原始数据包开始处的位置。偏移的字节数是该值乘以8。

两个Flags和Fragment Offset结合使用,进行分片时,DF比特设置为0,表示可以进行分片,这时如果 MF的值为1,则表示当前IP报文是一个IP包的其中一段分片,并且不是最后一个分片,这时结合Fragment Offset域继续判断;如果MF为1而 Fragment Offset= 0,表示该IP报文为第一个分片,而且后续有分片;如果MF为1而Fragment Offset不是0,表示该IP报文为中间的一个分片;如果MF为0而Fragment Offset不是0,表示该报文是最后一个分片。另外,当数据报被分片后,每个片的总长度值要改为该片的长度值。

IP传输的过程

 

IP寻路要经过以下几个步骤:

1、搜索路由表中目的地址域与分组地址完全相同的入口,如果找到这样的入口,则将分组发给下一个路由器地址中指定的地址(下一个路由器或直连网络接口)。

2、如果1不成功,则搜索路由表中目的地址域与分组的目的网络地址相同的入口,如果能到则将分组发给下一个路由器地址域中指定的地址。

3、如果2不成功,则搜索路由表中目的地址域为“default”的入口,如果找到就将分组发给指定的路由器。

4、如果3仍不成功,则说明分组不可投递,通常将“主机不可达”或“网络不可答”的信息发送给产生这个分组的应用程序。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!