NetWare 链路服务协议(NLSP)是 Novell NetWare 体系结构中的一种链路状态路由选择协议。NLSP 基于 OSI 中间系统对中间系统(IS-IS)协议,其设计目标是替换 IPX RIP(路由信息协议)和 SAP(服务通告协议)。Novell 公司最初开发的路由选择协议都是面向小型互连网络。
与 RIP 和 SAP 相比,NLSP 在路由选择功能上有了显著提高,并具有高效和可扩展特性。其主要特征如下:
- 基于 NLSP 的路由器支持可靠发送协议,以确保所有发送的可靠性。
- NLSP 改进了路由选择过程,由于 NLSP 的路由器存储了整个网络结构信息,而不仅仅只是下一跳(next-hop)信息。
- NLSP 具有高效性,特别是在 WAN 链路中,这是由于压缩 IPX 协议头降低了数据包大小。另外 NLSP 支持组播寻址方式,这样路由选择信息只会发送到其它 NLSP 路由器上,而不象 RIP 一样发送到所有设备上。
- NLSP 支持并行路径上的负载平衡,并提高了链路完整性。NLSP 会周期性地检查链路的连接性、路由信息的数据完整性。
- NLSP 可伸缩,这主要体现在:NLSP 支持的跳数(hop)最多可达到 127(RIP 只能支持 15 跳)。NLSP 支持网络分层寻址方式,这种网络能包含成千上万的 LAN 和服务器。
- 基于 NLSP 的路由器向后兼容基于 RIP 的路由器。
类似于 IS-IS,NLSP 支持区域、域和全局互联网络的分层路由选择。多个区域链接成一个路由选择域;多个域链接成一个全局互联网络。NLSP 支持三种分层路由选择方式:Level 1 路由、Level 2 路由和 Level 3 路由。
NLSP 路由器从相邻数据库中提取某些特定信息,并加上本地信息。通过这些信息,路由器可以构建一个包含直接相邻的路由器信息的链路状态数据包(LSP)。路由选择区域中所有 LSP 构成一个区域链路状态数据库。当路由器发现一个拓朴变化(topology change)时,通过 LSP 在整个路由选择区域的可靠传播过程,使得链路状态数据库达到同步状态。其中有两种途径可以传播精确拓朴变更信息:扩散(flooding)和接收确认(receipt confirmation)。
NLSP 支持分层寻址方式。每个路由选择区域由两部分构成:网址(network address)和掩码( mask ),每部分都是 32 位。
协议结构
NLSP WAN Hello 数据包:
| 1 | 2 | 3 | 4 | 5 | 6 | 8 | 9byte | |||||
| Protocol ID | LengthInd. | Minor Version | Rsvd | Rsvd | Packet Type | Major version | Reserved | Rsvd | State | CctType | ||
| Source ID | Holding Time | Packet Length | ||||||||||
| Packet Length | Local Wan Circuit ID | Variable Length Fields | ||||||||||
- Protocol ID ― 0x83 十六进制数用以识别 NLSP 路由选择层。
- Length indicator ― 决定头中固定部分的字节数。
- Minor version ― 包含一种可能十进制值,在接收端忽略。
- Reserved ― 不包含十进制值,在接收端忽略。
- Packet type (5 bits) ― 包含17种可能十进制值。
- Major version ― 包含一种可能十进制值。
- Reserved ― 不包含十进制值,在接收端忽略。
- State (2 bits) ― 发送与链路相连的路由器的状态(0 = up,1 = initializing,2 = down)。
- Circuit type (Cct type) ― 2比特。该字段值可以有以下几种选择值:
- 0 ― 保留值,忽略整个数据包
- 1 ― 只有 Level 1 路由选择。
- 2 ― 只有 Level 2 路由选择(发送端使用该链路实现 Level 2 路由选择)
- 3 ― 包含 Level 1 和 Level 2路由选择(发送端是一个 Level 2 路由器,使用该链路实现 Level 1 和 Level 2流量服务)
- Source ID ― 作为发送路由器的系统标识符。
- Holding time ― 包含 holding timer,用在发送路由器时。
- Packet length ― 指定数据包总长度(字节),包括 NLSP 头。
- Local WAN circuit ID ― 路由器分配给电路的唯一标识符。
- Variable length field ― 指一系列可选字段。
NLSP LAN Hello 数据包:
| 1 | 2 | 3 | 4 | 5 | 6 | 8 | 9byte | ||||||
| Protocol ID | LengthInd. | Minor Version | Rsvd | Rsvd | Packet Type | Major version | Reserved | Rsvd | NM | Res | Ccttype | ||
| Source ID | Holding Time | Packet Length | |||||||||||
| Packet Length | R | Priority | LAN ID | ||||||||||
| Variable Length Fields | |||||||||||||
- Protocol ID ― 0x83 十六进制数用以识别 NLSP 路由选择层。
- Length indicator ― 决定头中固定部分的字节数(包括 LAN ID 字段)。
- Minor version ― 包含一种可能十进制值,在接收端忽略。
- Reserved ― 不包含十进制值,在接收端忽略。
- Packet type (5 bits) ― 包含15种可能十进制值。
- Major version ― 包含一种可能十进制值。
- Reserved ― 不包含十进制值,在接收端忽略。
- No multicast (NM) (1 bit) ― 值为1,表示数据包发送端不能接收寻址到组播地址上的流量(该 LAN 上的后来的数据包必须被发送到广播地址上)。
- Circuit type (Cct Type) (2 bit) ― 该字段值可以有以下几种选择值:
- 0 ― 保留值,忽略整个数据包。
- 1 ― 只有 Level 1路由选择。
- 2 ― 只有 Level 2路由选择(发送端使用该链路实现 Level 2路由选择)。
- 3 ― 包含 Level 1和 Level 2路由选择(发送端是一个 Level 2路由器,使用该链路实现 Level 1 和 Level 2流量服务)。
- Source ID ― 包括发送路由器的系统 ID。
- Holding time ― 包含 holding timer,用在发送路由器时。
- Packet length ― 指定数据包总长度(字节),包括 NLSP 头。
- R ― 不包含十进制值,在接收端忽略。
- Priority (7 bits) ― 用作 LAN Level 1指定路由器的优先级。
- LAN ID ― 包括 LAN Level 1指定路由器的系统 ID (6字节),后面是由指定路由器所分配的一个字段。
- Variable length fields ― 指一系列可选字段。
相关协议:NetWare、SPX、RIP、NCP、IPX、SAP
组织来源:NetWare Link Service Protocol (NLSP) 是 Novell 私有协议。
相关链接:http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/nlsp.htm: NetWare Link Services Protocol


