- 6
- 0
- 约 34页
- 2017-06-15 发布于北京
- 举报
下载
第8章 IP:网际协议
8.1 引言
本章我们介绍 I P分组的结构和基本的 I P 处理过程,包括输入、转发和输出。假定读者熟
悉I P协议的基本操作,其他 I P 的背景知识见卷1的第3 、9和1 2章。RFC 791 [Postel 1981a] 是I P
的官方规范,RFC 1122 [Braden 1989a] 中有RFC 791 的说明。
第9章将讨论选项的处理,第 1 0章讨论分片和重装。图 8 - 1显示了I P层常见的组织形式。
运输协议
网络接口
网络
图8-1 IP层的处理
在第4 章中,我们看到网络接口如何把到达的 I P分组放到I P输入队列 i p i n t r q中去,并如
何调用一个软件中断。因为硬件中断的优先级比软件中断的要高,所以在发生一次软件中断
之前,有的分组可能会被放到队列中。在软件中断处理中, i p i n t r函数不断从i p i n t r q中
移走和处理分组,直到队列为空。在最终的目的地, I P把分组重装为数据报,并通过函数调用
把该数据报直接传给适当的运输层协议。如果分组没有到达最后的目的地,并且如果主机被
配置成一个路由器,则 I P把分组传给 i p _ f o r w a r d。传输协议和i p _ f o r w a r d把要输出的分
组传给 i p _ o u t p u t,由i p _ o u t p u t完成I P 首部、选择输出接口以及在必要时对分组分片。
最终的分组被传给合适的网络接口输出函数。
当产生差错时, I P丢弃该分组,并在某些条件下向分组的源站发出一个差错报文。这些
报文是I C M P (第11章) 的一部分。N e t / 3 通过调用 i c m p _ e r r o r发出I C M P 差错报文, i c m p _
e r r o r接收一个m b u f ,其中包含差错分组、发现的差错类型以及一个选项码,提供依赖于差
错类型的附加信息。
第 8章 I P :网际协议计计163
下载
本章我们讨论 I P 为什么以及何时发送 I C M P报文,至于有关 I C M P 本身的详细讨论将在第
11章进行。
8.2 代码介绍
本章讨论两个头文件和三个 C文件。如图 8 - 2所示。
文 件 描 述
n e t / r o u t e . h 路由入口
n e t i n e t / i p . h I P首部结构
netinet/ip_ input.c I P输入处理
netinet/ip_ output.cI P输出处理
netinet/ip_ cksum.c I n t e r n e t检验和算法
图8-2 本章描述的文件
8.2.1 全局变量
在I P处理代码中出现了几个全局变量,见图 8 - 3 。
变 量 数据类型 描 述
i n _ i f a d d r struct in_ ifaddr * I P地址清单
i p _ d e f t t l i n t I P分组的默认T T L
i p _ i d i n t 赋给输出的I P分组
原创力文档

文档评论(0)