Internet协议( 八 )


因此,最长的生存时间为255秒 。每个处理模块必须对TTL减1,即使所使用的时间少于一
秒也是如此 。高层可靠连接协议是基于原重复数据报将不会在特定时间后到达,TTL是为
了满足这样假设而存在 。
选项
选项中数据报中是可选的,但在实现中必须有的 。有没有选项是发送者说了算,每个IP
模块必须能够分析每个选项,每个选项域有多个选项 。选项可能没有达到32位的边界,
不足的以零填充以达到32位的倍数 。
校验码
假如包头发生改变必须重新计算包头校验码,校验码可以在一定程度上杜绝传输错误 。
有些应用程序答应数据报中的数据出错,假如IP强调数据正确性,类似的应用程序也就
用不成了 。
错误
IP协议错误可由ICMP协议报告 。
3.3. 接口
接口的描述是功能性的,这个描述的具体实现机制会因为操作系统的不同而不同 。不同
的IP实现会有不同的用户接口 。但是起码的子集是所有实现必须支持的 。本节将描述这
个基本子集 。IP协议有上下有两个接口,一个是面向本地网络的,另一个是面向高层协
议或应用程序的,我们称后一个接口为用户 。虽然IP协议是数据报协议,所以用于保存
状态的资源(内存)很少 。
下面是一个高层接口范例:
SEND (src, dst, prot, TOS, TTL, BufPTR, len, Id, DF, opt => result)
上式中:
src = https://www.rkxy.com.cn/dnjc/源地址
dst = 目的地址
prot = 协议
TOS = 服务类型
TTL = 生存时间
BufPTR = 缓冲区指针
len = 缓冲区长度
Id = 标记
DF = 不分段
opt = 选项数据
result = 响应,响应分为OK和Error两种;
OK = 发送成功
Error = 参数错误或本地网络错误
优先级和安全性参数在选项中传送 。
RECV (BufPTR, prot, => result, src, dst, TOS, len, opt)
上式中:
BufPTR = 缓冲区指针
prot = 协议
result = 响应,响应分为OK和Error两种;
OK = 发送成功
Error = 参数错误
len = 缓冲区长度
src = https://www.rkxy.com.cn/dnjc/源地址
dst = 目标地址
TOS = 服务类型
opt = 选项数据
当用户发送数据报时,他执行SEND命令 。IP模块在收到调用时,检查传送来的参数并准
备发送数据 。假如参数合法而且本地网络正常接收数据,返回成功 。假如参数不合法,
或本地网络未接收数据,返回不成功 。在未成功时会返回报告,报告内容会因实现不同
而不同 。
当数据报到达IP模块时,要么有一个RECV调用要么没有 。假如有这个调用会传送信息给
用户;假如没有,通知用户信息到达 。假如没有找到应该通知的用户,返回ICMP错误,
抛弃数据 。通知用户可以通过假中断或类似的机制,这视操作系统不同而不同 。源地址
包括在发送调用中,IP模块可以检查源地址是否是一个合法地址 。