IP协议

2019-01-29  本文已影响0人  洽白

引言

Internet协议即IP协议。所有的TCP, UDP, ICMP, IGMP数据都通过IP数据报传输。IP提供了一种尽力而为,无连接的数据包交付服务。

“尽力而为”: 不保证IP数据报成功到达目的地,任何可靠性需要上层提供。

“无连接“: IP不维护网络单元中数据报相关的任何连接状态信息,每个数据报独立于其它数据报来处理。两个连续的数据报可能乱序到达目的地

IP数据报格式

IPv4.png

长度信息:一个常规的IPv4头部大小为20字节,除非存在选项字段(很少见)。IPv6头部长度是它的两倍,但是没有任何选项。

网络字节序: 与计算机术语:大端对齐同一个意思。低位存在低地址,高位存在高地址。如数字 0xff10, 计算机的CPU存储为小端对其,即: 10 ff H. 而将其通过网络传输时,必须转换为 ff 10 H(网络字节序)才能传输,即高位字节优先。

字段解释:

DS字段和ECN

IP选项

IP支持一些可供选择的选项,其中大部分是不再实用或可取,在IPv6中,大部分选项被删除或者改变,而且不再是IPv6头部的一部分。这些选项有:列表结尾,没有操作,源路由,安全和处理标签,记录路由,时间戳,流ID,EIP,跟踪,路由器警告,快速启动。

IPv6扩展头部

IPv6.png

IPv6头部固定为40字节,IPv6通过扩展头部来实现IPv4选项的部分功能。扩展头部和更高层的协议(TCP/IP)与IPv6头部构成一个级联头部,它们之间通过下一个头部字段连接起来。

各个选项的详细说明这里不细说,请查阅相关资料。

IP转发

当主机收到一个数据报时,首先检查目的地址:

转发不会改变数据报的IP地址,只是通过设置链路层地址来完成交付的过程:

转发表

当需要转发一个数据报时,必须与转发表匹配,从而知道下一跳和输出端口。转发表的组成如下:

可以看到,路由器不包含到任何目的地的完整转发路径。IP转发只提供数据报文发送的下一跳的地址。它有以下假设:

完成这些假设需要路由协议,多种路由协议能够做好这项工作:RIP,OSPF,BGP,IS-IS。

IP 分片和重组

链路层对可传输的每一个帧的大小有着限制,比如以太网限制为1500字节。而一个IP数据报的大小可能又65535字节。要保持IP数据报抽象与链路层细节的一致和分离,IP引入了分片和重组。

在网络层发送数据报时,会检测所发送接口的MTU(最大传输),如果超出则进行分片。分片既可以在端上进行,也可以在路径上的任意一点进行。

分片

将一个IP数据报,分割成多个满足MTU限制的IP子数据报。每个数据报都有完整的:ETH + IP + 网络层负载的结构,只不过原来大数据报的负载被均分在分片的负载当中。

虽然每一个IP分片也都有IP头部,但是每个头部都是有标识的,例如将某一个数据报分为下面3个部分:

IPv4头部的标识分片偏移更多分片(MF) 标识着不同的分片,也为重组作基础。

各个字段的作用如下:

IPv4中的总长度要修正为分片的总长度。

重组

重组依据标识,分片偏移,MF来重组数据报即可,但是也要注意下面两个事情:

上一篇 下一篇

猜你喜欢

热点阅读