1、介绍
本协议是一套国际标准中的一个,它用来方便开放系统的互连。这一套标准包含了达到
此目的所需的服务和协议。
本协议的制定充分考虑到了开放系统互连参考模型中定义的相关层以及国际网络组织
所定义的网络结构。非凡要指出的是,本协议是一个网络层的协议。它答应端系统和中介系
统之间交换配置和路由信息,以方便网络层的路由和中继操作。
端系统与中介系统之间在网络层的通信与中介系统之间的通信是分开考虑的。本协议专
门讨论前者。假如附加一个负责中介系统之间通信的协议,网络层的功能将大大加强。但即
使没有这个附加的协议,本协议也是非常有用的。
ES-IS协议提供了解决以下问题的方法:
1、当一个端系统并非直接连接在另一个端系统上时,这个端系统如何发现中介系统
的存在和可达性并通过它来将NPDU传送到另一个端系统。
2、由于NSAP地址并不能提供子网中的目的地址,端系统如何发现同一个子网中的
另一个端系统。
3、中介系统如何发现与它直接相连的各个子网内的端系统的存在。
ES-IS协议假定以下情况的存在:
1、子网本身能够顺利地完成在本网内发送信息到子网连接点的工作。
2、子网本身不能仅依靠NSAP地址在全网范围内与目的地址通信。
注:由于以上的原因,应用层通信不能直接利用该协议提供的功能。
ES-IS协议无连接的,它被设计用来:
1、减少端系统之间通信前所需要的状态信息。
2、减少端系统上用来存放路由信息所需的内存空间。
3、降低路由算法的复杂性。
本协议的设计是和提供无连接网络服务的协议有紧密的关系的。由于路由的种类与通信
的种类密切相关,所以当网络层不是使用ISO协议时,本协议可能无法提供路由需要的信
息。
2、应用范围
国际标准提供了一个协议,用来为使用ISO8473的网络层的端系统和中介系统维护路
由信息。此处提到的协议均是需要无连接的服务。
此标准指明了:
a) 端系统和中介系统的网络实体之间的配置和路由信息的传送过程;
b) 配置和路由信息所用的协议数据单元的编码;
c) 协议控制信息的正确的解释过程,以及
d) 在功能上要求与该标准的一致性。
这些过程在如下条款定义:
a) 端系统和中介系统之间交换协议数据单元的交互过程;以及
b) 在网络实体和下层服务提供者之间交换子网服务原语的交互过程。
本协议并未为路由和信息在中介系统间的传递指明协议元素和算法。这些功能是本
协议所不能及的。
3.参考
ISO7489信息处理系统------开放系统互连------基本参考型。
DIS7489/DAD1信息处理系统------开放系统互连------ISO7489标准的补充(关于无连
接传输)。
ISO8348信息处理系统------系统间电信及信息交换------网络服务定义的补充
(关于无连接传输)。
ISO8348/AD2信息处理系统------系统间电信及信息交换------网络服务定义的补充
(关于网络层地址)。
ISO8473信息处理系统------系统间电信及信息交换------提供无连接网络服务的
协议。
DIS8648信息处理系统------系统间电信及信息交换------网络层的内部组织。
SC21/N965OSI框架治理------第七号工作草案。
DIS8802局域网。
第一部分综述
4、定义
4.1参考模型定义
本文采用了以下概念(由ISO7489定义):
a) 网络层
b) 网络服务接入点
c) 网络服务接入点地址
d) 网络实体
e) 路由
f) 网络协议
g) 网络延时
h) 网络协议单元
4.2网络层结构定义
本文采用了以下概念(由DIS8648定义):
a) 子网
b) 端系统
c) 中介系统
d) 子网服务
e) 子网接入协议
f) 子网独立收敛协议
4.3网络层地址定义
本文采用了以下概念(由DIS8348/DAD2、网络服务定义的补充(关于网络层地址)定
义):
a) 子网地址
b) 子网接入点
4.4局域网定义
本文采用了以下概念(由DIS8802局域网标准定义):
a) 组播地址
b) 广播地址
4.5补充定义
在本文中,以下定义适用:
配置:隶属于同一子网的端系统和中介系统(由术语“系统类型”定义,涉及到网络服
务接入点地址、网络实体、系统和子网络连接点间的通信)的集合。
网络实体标题:网络实体标识符,它与网络服务接入点具有相同的句法结构,它能准确
地定义一个网络实体中的端系统或中介系统。
5.代号及缩写
5.1数据单元
PDU协议数据单元
SNSDU子网服务数据单元
5.2协议数据单元
ESHPDU端系统HELLO协议数据单元
ISHPDU中介系统HELLO协议数据单元
RDPDU重定向协议数据单元
5.3协议数据单元部分
NPID网络层协议标识符
LI长度指示
V/P版本/协议扩展标识符
TP类型
CS校验
NETL网络实体标题长度
NET网络实体标题
DAL目的地址长度
DA目的地址
SAL源地址长度
SA源地址
BSNPAL目的地最佳路由的子网地址长度
BSNPA目的地最佳路由的子网地址
HT保持定时器
5.4参数
CT配置定时器
RT重定向定时器
5.5杂项
ES端系统
IS中介系统
SN子网
SNACP子网接入协议
SNICP子网独立收敛协议
6.协议总览
6.1协议提供的信息
本协议向网络实体提供了两种信息来支持它的运行:
a) 配置信息;以及
b) 路由重定向信息
配置信息答应端系统发现中介系统的存在和可达性,并且答应中介系统发现端系统的存
在和可达性。这种发现是动态的,从而免除了在建立网络实体标识符(这是对网络协议数据
单元路由所必须的)的过程中人为的干涉。
配置信息同样也使得端系统能相互间得到对方的信息而不需要中介系统的介入。
注重:术语“配置信息”并非广义的配置(如OSI系统治理采用的一样),而是仅仅指
这里专门定义的功能。
路由重定向信息由中介系统用来通知端系统采用一条更好的路由来传递NPDU到某目
的地。这条更好的路由可能是同一子网中的另外一个IS,也可能是目的端系统本身(假如
该目的端系统与源端系统处在同一子网内)。它也使得中介系统能简化端系统的路由决定,
并且提高路由决定的效率,因为Ess可以在传送过程中使用更好的IS和子网。
6.2协议的子集
一个网络实体可以选择支持配置信息或路由重定向信息,或者两者都支持、或者都不。
假如支持配置信息,并不需要该网络实体所属的整个子网都采用配置信息。
6.3编址
在本国际标准中源地址和目的地址涉及到的参数是OSI网络服务接入点地址。其句法
和语义在专门文献ISO8348/DAD2中有所描述。
6.4协议假定已存在的服务
本协议所需要的服务由表格中的原语所定义:
SN_UNITDATA.Request
.Indication
SN_Destination_Address,
SN_Source_Address,
SN_Quality_of_Service,
SN_Userdata
注重:这些服务原语用来描述协议机制和下面的实子网(或依靠收敛功能(该功运行在
实子网或实数据链路上以提供所需服务)的子网)之间的抽象接口。
6.4.1子网地址
源地址和目的地址指明了公共或私有的子网的接入点(被称为子网接入点)。子网地址
在各个子网中都做了定义。本协议设计时即考虑到子网应支持广播、组播或其他形式的多目
的地址方式。作为单目的地址的一补充,参数SN_Destination_Address可能是以下几种多目
的地址方式的一种:
所有端系统网络实体
所有中介系统网络实体
当一个实子网不支持广播方式或其他多目的地址的传输方式时,网络可以采用收敛功能
来支持通往这些目的地的多路传输。
当SN_UNITDATA.Request原语中的SN_Destination_Address参数表示多目的地址时,
其相应的SN_UNITDATA.Indication原语中的同一参数的值不应改变。
除了以上所提到的特性以外,子网地址的句法和语义没有在本协议中做定义。
6.4.2子网用户数据
SN_Userdata是按一定顺序摆放的多个字节,这些字节在指定的子网接入点间是透明传
输的。
本协议要求系统支持能够提供无连接网络服务的最小的服务数据单元。
6.5本地环境应提供的服务
协议要求定时器服务支持协议实体的时间表事件。
与S-定时器相关的三个原语:
1.S-TimerRequest;
2.S-TimerResponse;以及
3.S-TimerCancel。
S-TimerReques原语指示本地环境初始化一个指定名字的定时器,记录并且保持指定长
的一段时间。
S-TimerResponse原语由本地生成,它指示延时时间已到。
S-TimerCancel原语指示本地环境取消定时器服务。假如参数没有说明,所有的指定名
字的定时器都将被取消。假如没有定时器与参数吻合,该原语将不引起任何动作。
S-定时器的服务原语的参数如下表所示:
S—TIMER.Request
.Response
S—Time,
S—Name,
S—Subscript
S—Name,
S—Subscript
Time参数指示定时器的生存周期,而Name参数给每个定时器一个标签,subscript参
数给每个定时器赋一个值使得相同名字的定时器能区分开来,name和subscript参数构成了
该定时器唯一的参考描述。
若定时器和某个协议功能联合使用,则该定时器将在该协议功能中定义。
注重:该国际标准并没有指明定时器的值。任何有关这方面的推论都不是强制的。选择
的时间器参数应能使服务质量得到保证并且满足各种服务所要求的种种特性。
6.6子网类型
为了评估在特定的端系统、中介系统和子网的各种配置下该协议的适用性,定义了三种
一般的子网:
1. 点对点子网;
2. 广播子网;以及
3. 一般拓扑子网。
这三种类型在以下来讨论:
6.6.1点对点子网
一个点对点子网支持两个系统。这两个系统可以是两个端系统或者一个端系统和一个单
独的中介系统。一个连接着两个网络实体的点对点的数据链路就是一个点对点网络的例子。
点对点子网的配置信息。在点对点子网内,协议的配置信息通知正在通信的网络实体以
下内容:
1. 拓扑是否只由两个端系统构成;或者
2. 是否有其中一个系统是中介系统
注重:在点对点子网内,假如两个系统都是中介系统,该协议就不在适用了,取而代之
的是IS-IS协议。但这并不是说在IS-IS中配置信息不起作用。
中介系统收到端系统的NSAP地址,这使得关于这些NSAP地址的可达信息和路由量
度能够被散发到其他中介系统中去,从而使路由计算成为可能。
6.6.2广播子网
一个广播子网支持任意数量的端系统和中介系统,并且可以响应
SN_UNITDATA.Request,传送SNPDU到所有这些系统或者其某个子集。一个典型的广播子
网的例子是DIS8802第一类局域网。
广播子网内的配置信息。在广播子网内,该协议的配置信息用来通知正在通信的网络实
体以下内容:
1. 通知端系统子网内的每个中介系统的可达性、网络实体标题和SNPA地
址。
2. 通知中介系统端系统的NSAP地址和子网地址。一旦中介系统得到这些
信息,关于该NSAP的可达信息和路由量度便被散发到其他中介系统去以便计算路
由。
3. 假如某中介系统失踪,端系统便在广播网内查询,看子网内特定的NSAP
是否可达,假如可达,用哪个SNPA地址进行连接。
广播网内的路由重定向。广播网采用路由重定向来使得中介系统可以通知中介系统到达
某个NSAP的更好的路由。这个路由可能是子网内的另一个中介系统,也可能是目的端系
统本身。
6.6.3一般拓扑子网
一个一般拓扑子网支持任意多数量的端系统和中介系统,但是不象广播子网那样支持无
连接的多地址传送。X.25和ISO8208就属于这种类型。
注重:广播子网和一般拓扑子网间的要害区别在于通过多路传输到达一个潜在的较大的
子网子集所用的开销。在一般拓扑子网中,开销被假定为接近于传送一个PDU到子网中的
各所有SNPA。相反,在广播子网中,开销被假定为接近于传送一个PDU到子网中的一个
SNPA。介于这两中极端情况的情形当然会出现,此时,既可以把该子网当作广播子网,也
可以当作一般拓扑子网。
一般拓扑子网内的配置信息。在一般拓扑子网内,配置信息一般都不用,因为它很占用
子网资源。
一般拓扑子的网路由重定向。一般拓扑子网采用路由重定向来答应中介系统来通知端系
统到某目的NSAP更好的路由。这个路由可能是另一个中介系统,也可能是目的端系统本
身(假如它与源端系统在同一子网内且直接可达)。
第二部分协议规范
7.协议功能
本部分描述了协议中的部分功能。并非所有的应用都需要所有的这些功能支持。7.21
节指出了哪种功能应该被忽略掉,也指出了在某种功能不能正常工作时的正确行为。
7.1协议定时器
很多协议功能都是基于定时器的。这意味着这些功能只能在定时器限制的时间内执行。
协议中定义了两中最主要的定时器:配置定时器(CT)和保持定时器(HT)。
7.1.1配置定时器
配置定时器是一个本地定时器(每个系统的定时器都保持独立),用来执行配置报告功
能。这个定时器确定一个系统用什么样的频率来向子网内的其他系统报告自己的可用性。定
时越短,子网内的其他系统就能越快知道该系统的可用性。响应性的增加所付出的代价是在
子网内和接收系统内资源的使用增加。
7.1.2保持定时器
保持定时器应用于配置信息和路由重定向信息中。保持定时器的值在信息的源头设定,
在适当的PDU中传送。信息的接收方在定时期间保持这些信息。在定时器定时到时,过期
的配置或路由重定向信息必须被丢掉以保证协议的正确性。
更多的关于这些定时器的原理和应用可以在附录10中找到。
7.2配置报告功能
该功能用来使端系统和中介系统互相报告自己的可达性和当前的子网地址。这个功能在
每次ES或IS本地的配置定时器时间到时被调用。在收到其他端系统的配置查询PDU时它
也将被调用。
7.2.1端系统配置报告
一个端系统创建一个ESHPDU并传送到它所服务的所有NSAP。它还在ESHPDU中
发送一个SN_UNITDATA.Request作为子网的子网服务数据单元。
注重:向每个NSAP单独发送一个ESHPDU是由于网络实体标题和NSAP地址间缺乏
联系。假如所有的NSAP地址都按照这种联系的要求被指定为本地网络实体的网络实体标
题所表示的域的子域,那么每个ESHPDU就能够被转换成包含端系统网络实体标题。网络
实体标题暗示了在端系统中哪些NSAP是存在的。
保持定时器被设定为约是配置定时器的两倍,这个变量的值要足够大。使得即使所有其
他系统的ESHPDU都被丢弃(由于缺乏资源),或者在子网内丢失了,配置信息仍然能被
保存。这个值又必须足够小,使得中介系统能够及时地回复一个正在变为可用或不可用的端
系统。
参数SN_Destination_Address被设定为组地址,表示“所有中介系统网络实体”,这使
得广播子网上的一次传送能够送到所有可达的中介系统。
注重:用来表示“所有中介系统网络实体”的SN_Destination_Address的实际值是与子
网有关的并且各子网都不同。在一些广泛应用的子网中它表示上述意思或者是“所有端系统
网络实体”。让这些值标准化当然是件好事。
7.2.2中介系统配置报告
一个中介系统创建一个包含网络实体标题的ISHPDU并且在其中发送一个
SN_UNITDATA.Request作为SNSDU。
保持定时器被设定为大约是中介系统配置定时器参数的两倍。这个变量被设置为足够
大,使得即使所有的ISHPDU都被丢弃(由于资源不足),或者在子网内丢失了,配置信息
仍然能被保存。这个值又必须足够小,使得端系统能迅速终止使用有故障的中介系统,以阻
止网络中的“黑洞”的产生。
参数SN_Destination_Address被设定为组地址,表示“所有端系统网络实体”,这使得
广播子网上的一次传送能够送到所有可达的端系统。
7.3配置记录功能
配置记录功能收到ESH或者ISHPDU,提取配置信息,对本地网络实体的路由信息库
的相关的配置信息进行添加或修改。假如存储空间不足,这些PDU会被丢掉,不会有错误
信息报告。
注重:正如协议中描述的,端系统接收并仅仅记录ISHPDU,而中介系统接收并仅仅
处理ESHPDU。假如有必要的话,一个端系统也可以处理ESHPDU(在广播网中,通过适
当的组地址就可以很轻易实现)。这样做可以使网络的一些潜在的性能得到提高,不过花费
了端系统上更多的存储空间,也使处理周期变长了。端系统通过记录其他端系统的配置信息,
有可能将NPDU直接路由到子网内的端系统上而不需要中介系统的重定向。
类似的,中介系统也可以选择接受其他中介系统的ISHPDU,这使得该协议可以作为
一个完全的IS-IS路由协议的初始化和拓扑维护部分。
以上这两种可能在以后将做更深入的讨论。
7.4旧配置清除功能
旧配置清除功能用来执行清除保持定时器已经到期的路由信息库中的配置入口。当ES
或IS的保持定时器到期,这个功能将会清除本地网络实体的路由信息库的相关入口。
7.5配置查询功能
配置查询功能在以下环境下执行:
1、端系统处于广播子网中;
2、当前子网中没有可达的IS(例如,自从上次旧配置清除功能将旧信息清除后未
能收到任何ISH);
3、网络层的路由PDU的功能需要获得SNPA地址以将PDU传到某个NSAP;并且
4、SNPA地址不能在本地通过转换得到,也无法在本地表中查找到。
注重:有一种现象很常见,一些孤立的局域网没有中介系统来获取路由信息。假如中介
系统暂时不可达,局域网内的通信就不可能实现,除非每个端系统或者子网上所有的NSAP
人为地加入SNPA地址。
当端系统需要发送一个NPDU到一个SNPA未知的目的NSAP去时,它就把一个
SN_UNITDATA.Request当作用户数据(SN_Userdata)放在NPDU中发送出去。其中的
SN_Destination_Address参数被设定为表示“所有端系统网络实体”的组地址。
接下来,该端系统便会收到一个包含着NSAP地址及其相应的SNPA地址的ESHPDU
(见7.6节)。在这种情况下,端系统对该NSAP执行配置记录功能。利用指定的SNPA,便
可以发送PDU到这个NSAP了。假如没有收到ESHPDU,端系统便会认为该NSAP不可达。
至于该操作要执行多少次才能作出这样的判定以及每次要等待多久由该系统自行决定,本协
议并未对此作出规定。
7.6配置响应功能
当广播子网中的一个端系统收到一个SN_Destination_Address参数被设定为“所有端系
统网络实体”的表示SN_UNITDATA.Indication含义的NPDU,且该NPDU中所携带的NSAP
正是该端系统所有时,配置响应功能就开始执行。这项功能是在7.5所描述的配置查询功能
执行后发生的。
该端系统生成一个与配置报告功能所生成的类似的ESHPDU(见7.2.1),其内容是有
关本系统的。端系统生成一个SN_UNITDATA.Request,并将目的地址标明为它所收到的
NPDU的源地址发送出去。
7.7重定向请求功能
该功能只存在于中介系统中,并且与其路由功能和中继功能关系紧密,与“PDU路由
功能”也是相关的。该功能在“PDU路由功能”计算出数据PDU的下一跳后开始执行。
当中介系统预备转发一个NPDU时,它首先检查该NPDU中的SN_Source_Address。如
果该参数不是一个本地子网的端系统地址(通过查询配置记录功能得到的配置信息进行判
断),则该不对该NPDU进行进一步处理。
假如NPDU是直接从一个端系统上得到的,该中介系统的路由和中继功能的输出需要
被检查。该输出信息包含以下信息:
1、 一个本地子网标识符,该NPDU的发送要通过这个子网;
2、一个中介系统网络实体标题和子网地址,该NPDU要通过这个中介系统发送;或者
3、目的端系统的子网地址。
重定向请求功能应该能够判定自己即将转发出去的NPDU能够由源端系统直接发往目
的网络实体。假如以下任何条件成立,则源端系统将会被告知一个更好的路由(通过发送一
个RDPDU到该端系统):
1、下一跳指向目的系统并且在源端系统子网中目的地是直接可达的;或者
2、下一跳指向一个中介系统并且该系统与源端系统处在同一子网内。
假如有更好的路由存在,中介系统首先会对收到的NPDU做一般的处理并转发它。然
后,它会生成一个RDPDU,并往里面写入NPDU目的地地址、下一跳所处的子网地址、
ES重定向到的IS的网络实体标题(假如重定向直接指向目的端系统时这个信息可以省略)、
保持时间、服务质量、优先级、安全性参数(这些只是简单地从NPDU中拷贝过来)。保持
时间被设定为本地重定向定时器的时间。附录A中说明了如何为重定向定时器选定时间。
假如没有足够的资源在转发NPDU的同时生成并发送一个RDPDU,那么应优先转发
NPDU。接着中介系统用NPDU中的地址信息向源端系统发送一个RDPDU。
7.8重定向记录功能
重定向记录功能仅存在于端系统,当收到RDPDU时该功能便被调用。它提取重定向
信息并且对本地网络实体路由信息库中的相关的重定向信息进行添加或修改。其中最重要的
一项就是将目的地址映射到子网地址的重定向映射信息,它还说明了优先级,安全性,服务
质量和保持时间等映射所必需的参数。当然,假如重定向是指向另一个中介系统,那么网络
实体标题也是必不可少的。
注重:假如没有足够的空间来存放重定向信息,RDPDU将会被安全的释放掉。而发送
RDPDU的中介系统也将会代表这个网络实体继续以前的工作。
7.9重定向刷新功能
重定向刷新功能仅在端系统中进行。该功能在一个端系统作为目的地收到一个NPDU
时被调用。该项功能与在目的网络实体对收到的NPDU进行处理的功能(在ISO8473中称
为“PDU分解”)相关。本功能的目的是延长重定向的时间并且尽快的更正路由中的错误信
息。源地址,优先级,安全性和服务质量等参数被提取出来并与路由信息库(这些信息的
保存是由重定向记录功能完成的)中的做比较。从SN_Source_Address参数可以找到该PDU
的上一跳地址。假如这个地址与存储在重定向信息中的下一跳地址相符,则保持定时器的值
将被复位到RDPDU中的保持定时器的初始值。
注重:当网络实体向某个目的地址发送数据时,该数据可能被转发回来。本功能的目的
在于避免此时过期的重定向信息的进入。鉴于在端系统到端系统的通信中只需一次重定向后
就无须中介系统了,这种功能非凡适用于源和目的地在同一个子网内的情况。
为了防止黑洞的产生,这个功能必须在很保守的方式下进行,保持定时器的剩余时间仅
在上述情况下才能被修改。关于这方面的信息请参考附录10。
7.10旧的重定向的清除功能
该功能的目的是清除路由信息库中定时时间到的配置信息。当端系统和中介系统的保持
定时器时间到时,本地网络实体路由信息库中的相关入口就被清除了。
7.11PDU头部错误检测
PDU头部错误检测功能是用来在中介系统和端系统处理PDU头部出错时进行保护。这
个功能的实现是由PDU头部的checksum区来完成的。每一个对PDU进行处理的节点都要
对checksum进行验证。假如checksum出错,则该PDU必须被丢弃。
头部错误检测功能是可选的,由始发端的网络实体进行选择。假如没有选用该功能,
checksum将被设为0。
假如该功能被始发端网络实体选用,checksum满足下列公式:
所有a(i)的模255和=0;(i=1→L)
所有的(L-i+1)*a(i)的模255和=0;(i=1→L)
L为PDU头部的字节数,a(i)为第i字节的值。最前面的字节为i=0。
当该功能被选用时,checksum的两个字节都不为0。
7.12功能的分类
在实际应用中并不需要用到第7节中所有的功能。这些功能被分为四大类:
A类:此类功能在所有的应用中都应该支持。
B类:此类功能在处理配置信息的系统中被支持。
C类:此类功能在处理重定向信息的系统中被支持。
D类:此类功能在任何系统中都是可选项。
假如系统收到了一个对无法执行的可选功能的调用,那么该PDU应被丢弃。
下表表示了各种功能的分类以及它们应用于何种系统。
功能
分类
系统类型
配置报告
配置记录
配置响应
旧配置清除
重定向请求
配置查询
重定向记录
重定向刷新
旧重定向清除
PDU头部错误检测
B
B
A
B
C
B
C
D
C
A
ES,IS
ES,IS
ES
ES,IS
IS
ES
ES
ES
ES
ES,IS
8.PDU的结构和编码
注重:本协议对PDU的编码是完全符合ISO8473的。
8.1结构
所有的协议数据单元的字节数都应是整数。PDU中的字节从1开始编号,这个编号顺
序也就是它们被放进SNSDU中的顺序。每个字节中的位的编号从1到8,1是低位,8是高
位。当连续的字节用来表示一个二进制数时,低位比高位更具意义。
任何支持本协议的子网都被要求用“mostsignificantbit”和“leastsignificantbit”说明
其字节传输的方式。这些信息将被用来定义PDU。
注重:编码过程中用到的图表采用以下表示方式:
a) 编号小的字节放在左边,大的放在右边;
b) 在字节中第8位到第1位从左到右放。
PDU中按以下顺序包含了以下部分:
1. 固定部分;
2. 网络地址部分;
3. 子网地址部分(假如需要);
4. 可选部分,假如需要;
8.2固定部分
8.2.1综述
固定部分包含了经常出现参数,包括协议数据单元的类型码(ESH,ISH,RD)。固定
部分的长度和结构都由PDU来定义。
固定部分为以下形式:
字节
网络层协议表示符
长度指示
版本/协议扩展标识
保留(必须为0)
0
0
0
类型
保持时间
校验
1
2
3
4
5
6,7
8,9
8.2.2网络层协议标识符
该域的值应该为10000010
注重:该值是临时性的,并非最终结论。
8.2.3长度指示
该长度用二进制数表示,最大值为254(11111110)。这个数值表示了整个PDU(包括
了整个头部)的字节数。255是保留值。
8.2.4版本/协议扩展标识
这个域的值是二进制数00000001。这个值表明这是一个ISO的标准版本。
8.2.5类型
类型码指明了协议数据单元的类型。其值为以下几种中的一种:
类型
位54321
ESHPDU
00010
ISHPDU
00100
RDPDU
00110
8.2.6保持时间
保持时间俞指明了作为接收方的网络实体应该将PDU中的配置/路由信息保持多久。接
收方网络实体应该在定时时间到时将从该PDU中得到的任何信息都丢弃。保持时间是以两
个星期为单位的整数值。
8.2.7PDU校验
该值从整个头部计算而来。若等于0则表明没有采用校验。PDU头部错误检测功能保
证0不是一个合法的校验值。一个非0值表示该值不可忽略。假如校验出错,则该PDU应
被丢弃。
8.3网络地址部分
8.3.1综述
地址参数用来区分位置的不同。不同的PDU类型所携带的地址参数也不同。ESHPDU
携带一个源NSAP地址;ISHPDU携带一个中介系统网络实体标题;一个RDPDU携带一
个目的NSAP地址,也有可能是一个网络试题标题。
8.3.2网络协议地址信息(NPAI)编码
目的地址和源地址均是指网络服务接入点的地址,在ISO8348/AD2中定义。目的地址,
源地址和网络实体标题均是作为NPAI按照ISO8348/AD2所定义的二进制句法来进行编码
的。
地址信息是可变长度的。每个地址参数按照如下方法编码:
字节n
地址参数长度指示
字节n+1到n+m
地址参数值
8.3.3ESHPDU源地址参数
此源地址是发送ESHPDU的网络实体多服务的NSAP的地址。它按照如下方法编码:
字节
源地址长度指示
源地址
10
11
…..
m-1
8.3.4ISHPDU的网络实体标题参数
此网络实体标题参数是发送ISHPDU的中介系统的网络实体标题。它按如下方式编码:
字节
网络实体标题长度指示
网络实体标题
10
11
…..
m-1
8.3.5RDPDU目的地址参数
此目的地址是正在发送的RDPDU的中介系统转发的NPDU的相关地址。其按如下方
法编码:
字节
目的地址长度指示
目的地址
10
11
…..
m-1
8.4子网地址部分
子网地址部分仅存在于RDPDU。它用来指示同一个子网内的另一个端系统或者中介系
统的网络实体(它们可能是通向网络地址部分所指示的目的地的更好路由)的子网地址。子
网地址参数的编码与网络地址参数相似。
8.4.1RDPDU子网地址参数
子网地址参数按照如下方式编码:
字节
子网地址长度指示
子网地址
m
m+1
…..
n-1
8.5可选部分
8.5.1综述
可选部分用来传送可选参数。PDU头部的可选部分说明如下:
字节
选项
p
q
假如可选部分存在,它可能包含一个或多个参数。参数的个数由可选部分的长度和所限,
可选部分的长度有下面的公式决定:
PDU头部长度-(固定部分长度+地址部分长度+分段部分长度)
也由个别的可选参数的长度所决定
可选部分中定义的参数出现的顺序是不确定的,选项不答应有可重复性。收到选项重复
的PDU对协议来说是一种错误。
可选部分中的参数的编码形式说明如下:
字节
内容
n
参数编码
n+1
参数长度
n+2到n+m+1
参数值
参数编码域采用二进制编码,并且不能扩展,最多可以表示255中不同的参数编码。事
实上,没有哪一种参数编码的第8位和第7位的值是00,因此能提供的最大数量要少一些。
其中,编码255(二进制11111111)被保留。
参数长度域指示了参数值的字节数。这个长度是二进制正整数m,在理论上最大值是
254,但实际值要小一些。例如,当可选部分只有一个参数时,参数编码和参数长度各占一
个字节。这样,m受限于:
m=252-(固定部分长度+地址部分长度+分段部分长度)
后面的几个参数越大,则m越小。参数值指示了参数编码域中指定的参数的值。
8.5.2安全性
安全性参数传送数据PDU所要求的安全信息,这个数据PDU使得RDPDU产生。这
个参数的编码和语义与ISO8473定义的安全性性参数类似。
参数编码:11000101
参数长度:可变
参数值:见ISO8473中的7.5.3
8.5.3服务质量保持
服务质量传送数据PDU要求的服务质量信息,这个数据PDU使得RDPDU产生。
这个参数的编码和语义与ISO8473定义的服务质量保持参数类似。
参数编码:11000011
参数长度:可变
参数值:见ISO8473中的7.5.6
8.5.4优先级
优先级参数传送数据PDU要求的优先级信息,这个数据PDU使得RDPDU产生。
这个参数的编码和语义与ISO8473定义的优先级参数类似。
参数编码:11001101
参数长度:可变
参数值:见ISO8473中的7.5.7
8.6端系统HELLOPDU
8.6.1结构
ESHPDU具有以下形式:
字节
网络协议标识符
长度指示
版本/协议扩展标识
保留(必须为0)
0
0
0
类型
保持时间
校验
源地址长度指示
源地址
选项
1
2
3
4
5
6,7
8,9
10
11
m-1
m
p-1
8.7中介系统HELLOPDU
8.7.1结构
ISHPDU具有以下形式:
字节
网络协议标识符
长度指示
版本/协议扩展标识
保留(必须为0)
0
0
0
类型
保持时间
校验
网络实体标题长度指示
网络实体标题
选项
1
2
3
4
5
6,7
8,9
10
11
m-1
m
p-1
8.8重定向PDU
8.8.1结构
当PRDPDU向中介系统发送时具有以下形式:
字节
网络协议标识符
长度指示
版本/协议扩展标识
保留(必须为0)
0
0
0
类型
保持时间
校验
目的地址长度指示
目的地址
子网地址长度指示
子网地址
网络实体标题指示
网络实体标题
选项
1
2
3
4
5
6,7
8,9
10
11
m-1
m
m+1
n-1
n
n+1
p-1
p
q-1
当PRDPDU向端系统发送时具有以下形式:
字节
网络协议标识符
长度指示
版本/协议扩展标识
保留(必须为0)
0
0
0
类型
保持时间
校验
目的地址长度指示
目的地址
子网地址长度指示
子网地址
网络实体标题长度指示(=0)
选项
服务质量
1
2
3
4
5
6,7
8,9
10
11
m-1
m
m+1
n-1
n
n+1
p-1
n+1
附录A技术支持材料
A.1定时器的使用
为了是配置功能和重定向功能能合时和正确得散步信息,本协议广泛采用了定时器。本
节讨论了这些定时器如何使用,并给出了使用它们的背景。
使用本协议的系统只从其它系统发出的PDU上得到其他系统的信息。在无连接的环境
中,系统必须用更新的信息来判定自己把握的信息是否正确。例如,假如一个系统变得不可
达,唯一能被其它系统知道的途径是应该由它发出的信息丢失了。而本协议中定义的保持定
时器保证了过时的信息不会总被保存着。
有一种很有效的方法可以用来更新配置信息和重定向信息,那就是系统中保持着一个缓
存。这个缓存定期地刷新,从而保证只有及时的信息才能被保存。与一般缓存不同的是,该
缓存中信息的保存时间并非完全有本系统决定。相反,有信息的源端决定。有一些例子能很
清楚地说明这点。
A.1.1路由重定向保持定时器实例
路由重定向信息是端系统通过要求重定向功能得到并保存的。中介系统很有可能将端系
统重定向到另一个中介系统,而这个中介系统忽然变得不可达了(当路由算法正处在配置改
变后的收敛过程中时这种情况就很有可能发生)。假如没有保持定时器,或者其值被设定得
很大,端系统就会被重定向到一个黑洞去。而一般这个定时器的时间就设定为黑洞答应存在
的最大时间。
另外,假如将这个路由重定向定时器的值设置得过短,会引起另外一些我们不愿意看到
的后果。首先,每个引起重定向的PDU都会使得额外的PDU被产生和传输,这会增加开销。
另外,每次保持定时器时间到,被重定向的端系统至少使用错误的路由发送一个PDU。
A.1.2配置信息的保持定时器实例
与以上类似的问题也发生在配置信息上。假如一个ISHPDU的保持定时器设置得很长,
并且发出该ISHPDU的IS忽然变得不可达,就会形成黑洞。在这段时间内,端系统假定该
中介系统会继续为它转发PDU,从而无法与其他系统正常通信。而当该定时器时间到时,
该端系统才发现没有可用的中介系统。
无论何种情况的问题发生,都要求错误信息的响应能够正确无误地找到源头。为了达到
这一点,配置信息和路由重定向信息在源头计算好并准确无误地传到接收端。
A.2路由重定向信息的刷新和定时
本协议答应端系统在保持定时器还未时间到、并且为收到新的重定向信息的情况下对路
由重定向信息进行刷新。这种过程在无连接网络中经常使用,它被称作“反转路径信息”、
“前一跳缓存”等。
刷新重定向信息有很明显的好处,但是假如处理得不好很可能出现严重后果。为了是重
定向信息安全刷新,必须保证以下几点:
1. 已经收到的PDU的源地址必须和前面的RDPDU的目的地址一致。不可以
把短地址、组地址或类似的地址当作一致的。
2. 收到的PDU中的服务质量参数必须与相应的重定向信息中的一致。不能保
证服务质量参数相同的PDU通过同一路径发送。很有可能对某些服务质量
参数来说某条路径是个黑洞。
3. 收到的PDU的前一跳必须与重定向信息中的下一跳相符。非凡的,送来PDU
的SN_UNITDATA.Indication原语中的SN_Source_Address参数必须与重定
向中的SN_Destination_Address一致。着保证了接受重定向信息的IS正是原
先的发送者。
注重,以上条件仍然答应重定向刷新在最有利的情况下进行。比如目的地是另外一个
ES。
A.3系统初始化
本协议被设计用来是两种系统能够尽可能自由地通信。所以,端系统要求子网上所有
的中介系统报告配置信息、或者中介系统要求所有的端系统报告配置信息都是不可能的。
在某种操作环境下,系统受到很大的限制。在网络达到正常运行之前,端系统必须先
尽快发现一个中介系统。反过来,中介系统是否也要发现端系统呢?这基本上有配置定时器
决定。在开销和配置信息的适用性上要有权衡。减少配置定时器的值意味着信息的适用性,
同时也意味着开销的增加。
我们推荐以下这种方法来解决以上冲突。当记录配置功能在任何一种系统中被引用
时,该功能就必须判定这个信息是否之前是未知的。假如是,那么在系统的配置定时器时间
到是就要引用该功能。然后配置报告功能生成HELLOPDU并送到原先未知的网络实体去。
于是,当ES或IS变得可操作是就立即发出配置报告。一旦令一种系统发现了这个新的网
络实体,它们就会使其知道自己的存在。
这种方法带来的开销就要小得多。另外,由于新的配置信息被即使发现,定时器的时
间被定期地延长以减少开销。还有一个忠告:由于第一个HELLO很可能丢掉,所以在系统
初始化的阶段应当以很短的时间间隔发出HELLO包。
注重,这种方法可能仅在IS或者ES,也可能在所有系统中执行。该过程仅是一个本
地过程并且可能被本地系统改变。
A.4重定向清除的优化
一个ES会向一个被重定向信息所指定的IS发出NPDU,只到保持定时器时间到,即
使该IS已经变得不可达。在某些情况下,有可能更快地发现黑洞的存在。非凡的,,假如
ES想得到它被重定向到的IS的HELLO包,并且保持定时器已经到时间了,所有关于该IS
的信息都将被丢弃,其中包括重定向信息,即使重定向信息的时间还未到。
上一篇 因特网交换密钥
下一篇 引导协议(BOOTP)