目录

简介

先决条件

要求

使用的组件

规则

了解 QSAAL 协议栈

什么是 SSCOP？

了解 SSCOP 包尾

SSCOP 消息或 PDU

SSCOP 定时器

SSCOP 序号

调试输出示例

相关信息

简介

协议通常定义为两台设备之间的通信规则。信令协议定义了两个ATM接口之间的通信规则，这两个ATM接口使用信令消息创建按需虚电路(SVC)来传送用户数据。ATM接口实际上支持一个信令协议栈，其中包括来自Q.2931用户网络接口(UNI)协议的“用户”信令消息和特殊信令ATM适配层(SAAL)。 SAAL由服务特定连接面向协议(SSCOP)和服务特定协调功能(SSCF)组成。

显然，ATM信令引入了许多首字母缩略词，这些首字母缩略词在SSCOP真正执行简单任务时会使SSCOP显得复杂，即在UNI中传输信令消息。

了解SSCOP是调查意外LAN仿真(LANE)客户端状态更改的原因时的关键故障排除工具。当发生此类更改时，路由器会将以下消息打印到日志中。

注意：由于空间限制，以下输出行显示在多行上。

Aug 25 18:32:59.973 MEST: %LANE-5-UPDOWN: ATM0.1 elan default:

LE Client changed state to down

Aug 25 18:32:59.981 MEST: %LANE-5-UPDOWN: ATM0.39 elan admin:

LE Client changed state to down

本文档提供有关SSCOP的简单理论。它使用简单表来描述SSCOP协议数据单元(PDU)、序列号和状态变量，然后显示debug sscop events命令的输出，以说明PDU、编号和变量在Cisco路由器上的显示方式。

注意：本文档重点介绍充当UNI用户端的Cisco路由器。本文档不讨论网络到网络接口(NNI)信令。

先决条件

要求

本文档没有任何特定的要求。

使用的组件

本文档不限于特定的软件和硬件版本。

规则

有关文件规则的更多信息请参见“ Cisco技术提示规则”。

了解 QSAAL 协议栈

ATM既是协议，也是协议栈。请务必考虑下图，并注意三个协议栈如何在支持信令和网络管理的ATM接口上并行运行。每个协议栈为接口的成功操作提供不同的功能。

控制层面

用户平面

管理平面

Q.2931 UNI信令

语音、视频或数据

集成本地管理接口(ILMI)

SAAL

SSCF

ATM适配层(AAL)

AAL

SSCOP

公共部件融合子层(CPCS)

ATM 层

物理层 — SONET/同步数字层级(SDH)、DS3、E3、T1等

在用户平面上，最常见的AAL是AAL5，它提供8字节的报尾。SAAL代表AAL5的变体。它的不同之处在于，它是由SSCOP和SSCF组成的服务特定融合子层(SSCS)。下图说明了以下层：

---------------------------------------------

|              "User Data" Q.2931           |

-------------------------------------------------------

|   Service Specific Convergence Sublayer   |         |

|        Consists of SSCOP and SSCF         |   SAAL  |

---------------------------------------------  Layer  |

|                     CPCS                  |         |

-------------------------------------------------------

|                     ATM                   |

---------------------------------------------

|                     PHY                   |

---------------------------------------------

ATM接口传输“带外”或常规数据连接带宽外的信令消息。它们使用配置了特殊Q.2931 SAAL(QSAAL)封装类型的专用永久虚拟连接(PVC)。

在ATM路由器接口上发出pvc vpi/vci命令以配置QSAAL PVC。

7500-3.4(config)# interface atm 3/0

7500-3.4(config-if)# pvc 0/5 ?

ilmi   Configure the management PVC for this interface

qsaal  Configure the signaling PVC for this interface

<cr> 7500-3.4(config-if)# pvc 0/5 qsaal

Cisco ATM交换机在每个接口上都预配置了QSAAL PVC。请发出show atm vc interface atm命令以确认此默认配置。

ls1010-2# show atm vc interface atm 0/0/2

Interface    VPI   VCI   Type    X-Interface  X-VPI X-VCI  Encap Status

ATM0/0/2     0     5      PVC     ATM2/0/0     0     45    QSAAL  UP

ATM0/0/2     0     16     PVC     ATM2/0/0     0     37    ILMI   UP

SSCOP在多项国际电信联盟电信标准化部门(ITU-T)建议中定义。Q.2110建议提供与ATM路由器接口上与SSCOP相关的问题故障排除最相关的信息。

- Q.2100 — 定义SAAL的结构。

- Q.2110 — 将SSCOP定义为协议实体。

- Q.2130 — 定义UNI接口的SSCF。

- Q.2140 — 定义NNI接口的SSCF。

- I.363 — 定义CPCS。

注意：UNI和NNI接口使用不同版本的SSCF。本文档不讨论NNI。

什么是 SSCOP？

SSCOP是一种传输协议，它为位于信令协议栈中的信令协议提供有保证的、按顺序的消息传送。SSCOP还执行流量控制、向管理平面报告错误以及保持连接功能。

下表介绍SSCOP为ATM接口提供的许多重要功能：

功能

描述

信令消息的顺序和可靠传输

由UNI Q.2931协议生成的信令消息在信令堆栈中构成“用户数据”。SSCOP通过序列号和选择性重传来保留这些消息的顺序。请注意，SSCOP不检查信令消息本身的内容。

流控制

设置对等ATM接口发送SSCOP消息的速率的限制。

报告错误

检测并报告SSCOP自身操作中的错误。

保持连接

定期交换POLL消息，以确保两端和连接本身都保持运行和活动状态，尤其是在不传输信令消息的期间。

本地数据检索

对尚未“释放”或被对等ATM接口确认的信令消息维护统计信息(可使用show sscop命令查看)。

状态报告

提供用于传达状态信息的消息，包括与管理平面通信的信息。

了解 SSCOP 包尾

ATM UNI接口使用Q.2931作为信令协议。SSCOP将Q.2931消息加到4字节的倍数，并附加SSCOP特定信息的尾部，该尾部始终是4字节的倍数。

+------------------------------------------------+

|  Q.2931 Signalling Messages    | SSCOP Trailer |

+---------------------------------------------------------------+

|       AAL5 CPCS Service Data Unit (SDU)        | AAL5 Trailer |

+---------------------------------------------------------------+

SSCOP报尾的内容因PDU的类型而异，下一节“SSCOP消息或PDU”中对此进行了说明。此图显示POLL PDU的SSCOP报尾的格式：

---------------------------------------------------

| Reserved |                 N(PS)                |

---------------------------------------------------

| Reserved | PDU Type |           N(S)            |

---------------------------------------------------

SSCOP 消息或 PDU

SSCOP使用15种消息类型或PDU来执行其许多功能。show sscop命令提供有关发送和接收的每个PDU数量的统计信息。在此输出示例中，ATM接口3/0发送和接收了11个PDU，包括8个轮询PDU和1个开始PDU:

7500# show sscop atm 3/0

SSCOP details for interface ATM3/0

Current State = Active,   Uni version = 4.0

[output omitted]

Statistics -

Pdu's Sent = 11, Pdu's Received = 11, Pdu's Ignored = 0

Begin = 1/1, Begin Ack = 1/1, Begin Reject = 0/0

End = 1/0, End Ack = 0/1

Resync = 0/0, Resync Ack = 0/0

Sequenced Data = 0/0, Sequenced Poll Data = 0/0

Poll = 8/8, Stat = 8/8, Unsolicited Stat = 0/0

Unassured Data = 0/0, Mgmt Data = 0/0, Unknown Pdu's = 0

Error Recovery/Ack = 0/0, lack of credit 0

下表根据功能对SSCOP消息进行分组：

功能

消息缩写

消息名称

描述

连接建立

BGN

开始

启动两个ATM接口之间的SSCOP连接过程。初始化对等缓冲区以及传输和接收计数器。

BGAK

开始确认

确认对等连接请求。

BGREJ

开始拒绝

拒绝对等连接请求。对等体重新传输BGN PDU，并继续启动连接。

连接拆卸

结束

结束

释放两个对等ATM设备之间的连接。

恩达克

结束确认

确认释放请求。

重新同步

RS

重新同步

重新同步消息缓冲区以及发射器和接收器状态变量或计数器。

RSAK

重新同步确认

确认重新同步请求。

错误恢复

ER

错误恢复

从活动连接期间发生的错误中恢复。

埃拉克

错误恢复确认

确认错误恢复请求。

有保证的数据传输

标清

顺序数据

将“用户”消息从UNI Q.2931信令协议传输到对等体。

投票

状态请求

请求有关对等体的状态信息。

STAT

请求状态响应

表示对POLL PDU的响应。提供有关成功接收SD PDU的信息，以及最后一个POLL PDU的序列号。它还包含一个信用值，指示对等体在确认之前可以发送或无法发送的消息数量。

USTAT

未经请求的状态响应

通过分析其他PDU中的序列号来传达已检测到的丢失或丢失的PDU。

无法保证的数据传输

UD

未编号数据

在对等体之间传输“用户”消息。不包括序列号，如果没有通知，可能会丢失。

管理数据传输

MD

管理数据

将管理信息传输到管理平面。不包括序列号，如果没有通知，可能会丢失。

注意：ITU-T Q.2110建议将无效PDU定义为PDU，该PDU的PDU类型代码未知、不对齐32位，或者该PDU的长度不适合指定类型的PDU。

SSCOP 定时器

SSCOP遵循状态机，在状态机中，协议本身在激活之前会经过多个状态。当SSCOP转换到另一状态时，一组五个计时器控制（部分控制）。在接口配置模式下发出sscop 命令以查看这些计时器。

7200(config-if)# sscop ?

cc-timer          timer (in secs) to send BGN/END/RS/ER pdu at the

connection control phase

idle-timer        timer (in secs) to send poll pdu at the idle phase

keepalive-timer   timer (in secs) to send poll pdu at the transient

phase

noResponse-timer  timer (in secs) at lease one STAT PDU needs to be

received

poll-timer        timer (in msecs) to send poll pdu at the active

phase

下表介绍了五种SSCOP计时器：

计时器

描述

默认值

cc-timer

连接控制(cc)是用于在两个ATM接口之间建立、释放或重新同步SSCOP连接的一组进程。cc 计时器设置在等待确认时BGN、END或RS PDU重新传输之间的时间。max-cc值设置重试次数。

1秒（秒）

空闲计时器

如果连接足够稳定，并且没有要传输的数据消息和未处理的确认，则SSCOP会从计时器保持连接切换到计时器空闲状态。

10 秒

keepalive-timer

控制当没有SD PDU排队等待传输或未处理等待确认时，POLL PDU在传输之间的最长时间。

5 秒

noResponse-timer

与另外两个计时器(轮询和保持连接)并行运行。设置在响应POLL时必须接收至少一个STAT消息的最长时间间隔。如果此计时器过期，连接将断开。

45秒

轮询计时器

设置当SD PDU排队等待传输或未完成等待确认时，从发送POLL PDU到发送POLL PDU的最长时间。

1000毫秒（毫秒）

发出show sscop atm命令以查看SSCOP计时器的默认值。

7500# show sscop atm 3/0

SSCOP details for interface ATM3/0

Current State = Idle,   Uni version = 4.0

Send Sequence Number: Current = 0,  Maximum = 30

Send Sequence Number Acked = 0

Rcv Sequence Number: Lower Edge = 0, Upper Edge = 0, Max = 30

Poll Sequence Number = 0, Poll Ack Sequence Number = 1

Vt(Pd) = 0   Vt(Sq) = 0

Timer_IDLE = 10 - Inactive

Timer_CC = 1 - Inactive

Timer_POLL = 1000 - Inactive

Timer_KEEPALIVE = 5 - Inactive

Timer_NO-RESPONSE = 45 - Inactive

Current Retry Count = 0, Maximum Retry Count = 10

!--- Output suppressed.

SSCOP 序号

ATM接口上的SSCOP进程跟踪两组序列号或状态变量，然后将这些值映射到实际PDU中的字段。具体来说，SD PDU和POLL PDU是按顺序独立编号的。发送器和接收器将序列号保持为状态变量。这些变量随后映射到SSCOP PDU中的实际参数或字段pdu。 show sscop命令显示序列号的当前值。

ATM# show sscop

SSCOP details for interface ATM0

Current State = Active,   Uni version = 3.1

Send Sequence Number: Current = 79,  Maximum = 109

Send Sequence Number Acked = 79

Rcv Sequence Number: Lower Edge = 93, Upper Edge = 93, Max = 123

Poll Sequence Number = 32597, Poll Ack Sequence Number = 32597

Vt(Pd) = 0   Vt(Sq) = 1

Timer_IDLE = 10 - Active

!--- Output suppressed.

以下各节介绍状态变量和实际PDU编号。

发射器的状态变量

ATM接口保留一组以VT开头的传输端状态变量。

状态变量

名称

描述

VT(S)

发送

随每个SD PDU递增的序列号。在重新传输相同的SD PDU时不递增。

VT(PS)

投票发送

随每个POLL PDU递增的序列号。

VT(A)

确认

预期接下来将被确认的SD PDU的序列号。每次确认SD PDU时递增。

VT(PA)

轮询确认

作为对POLL PDU的确认，接收的STAT PDU的序列号预期。

VT(MS)

最大发送

发送接口可以发送（接收方将接受）的PDU的最高序列号，但不接收以下PDU之一：USTAT、STAT、BGN、BGAK、RS、RSAK、ER或ERAK PDU。换句话说，VT(MS)定义传输窗口大小。VT(S)不应高于VT(MS)。

VT(PD)

轮询数据

在两个轮询PDU之间传输的SD PDU数。SD PDU传输时增量，POLL PDU传输时重置为零。

VT(CC)

连接控制

未确认BGN、END、ER或RS PDU的数量。如果ATM接口响应协议错误发送END PDU，SSCOP会直接进入空闲状态，而不会增加VT(CC)值。

VT(SQ)

发射器连接顺序

标识重传的BGN、ER和RS PDU。当SSCOP进程启动后，初始化为零，然后映射到N(SQ)。

接收方的状态变量

ATM接口保留一组以VR开头的接收端状态变量。

状态变量

名称

描述

VR(R)

接收

接收方期望的下一个按序SD PDU的序列号。当看到该消息时，该序列号会递增。

VR(H)

预期最高

SD PDU中预期的最高序列号。从下一条SD或POLL消息更新，应大致等于对等VT(S)。

VR(MR)

最大接收

接收方将接受的SD PDU中的最高序列号。换句话说，接收方将允许最多VR(MR)- 1，然后丢弃序列号更高的SD PDU。更新VR(MR)取决于实施。

VR(SQ)

接收器连接顺序

用于标识重传的BGN、ER和RS PDU。当ATM接口收到其中一个PDU时，它会将N(SQ)值与其自己的VR(SQ)值进行比较。如果两个值不同，则PDU将作为新消息处理。如果两个值相等，则PDU被标识为重新传输。

转换为PDU参数的状态变量

接收和传输状态变量转换或映射到名称稍有不同的实际PDU参数。下表显示PDU参数及其派生自的状态变量：

参数

映射自

描述

N(SQ)

VR(SQ)

在BGN、RS或ER PDU中传输的连接序列号。与接收方的VR(SQ)计数器一起使用，以识别这些PDU的任何重新传输。

N(S)

VT(S)

发送每个SD或POLL PDU中携带的序列号，并随每个新的非重新传输的PDU递增。

N(PS)

VT(PS)

以轮询PDU和匹配的STAT PDU携带，将两条消息关联在一起。

N(R)

VR(R)

在STAT或USTAT PDU中传输的接收序列号。在确认收到一个或多个信令消息时，对等设备发送此序列号。

N(MR)

VR(MR)

在以下PDU中传输：STAT、USTAT、RS、RSAK、ER、ERAK、BGN、BGAK。指示剩余接收信用数以及对等体是否可以发送其他消息。例如，N(MR)值5表示对等体可以发送最多5个PDU，而无需等待响应。

调试输出示例

以下输出是通过在带PA-A3的7500系列路由器上发出debug sscop event atm 3/0命令来生成的。蓝色注释用于解释debug输出。

*Mar 21 03:18:43.440: SSCOP(ATM3/0): i Begin pdu, Idle state, length = 8

*Mar 21 03:18:43.440: SSCOP(ATM3/0): Rcv Begin in Idle State

*Mar 21 03:18:43.440: SSCOP(ATM3/0): receive window in Begin Pdu = 30

*Mar 21 03:18:43.440: SSCOP(ATM3/0): o Begin Ack pdu, Idle state, rcv window v(mr) = 30

!--- A BEGIN PDU is received by the router, which responds with a BEGIN ACK PDU. !--- The window size V(MR) is initialized to 30.

*Mar 21 03:18:43.440: SSCOP(ATM3/0): state changed from Idle to Active

*Mar 21 03:18:47.968: SSCOP(ATM3/0): o Poll pdu, state = Active, n(s) = 0, n(ps) = 1

*Mar 21 03:18:47.968: SSCOP(ATM3/0): i Stat pdu, Active state, length = 12

*Mar 21 03:18:47.968: SSCOP(ATM3/0): Rcv Stat in Active State

*Mar 21 03:18:47.968: SSCOP(ATM3/0): processStatPdu: ps 1, nmr 30, nr 0

*Mar 21 03:18:47.968: SSCOP(ATM3/0): processStatPdu: vtPa 1, vps 1

*Mar 21 03:18:47.968: SSCOP(ATM3/0): processStatPdu: vta 0, vts 0

*Mar 21 03:18:47.968: SSCOP(ATM3/0): processStatPdu: listCount = 0 - normal

!--- This is the first outbound POLL PDU and inbound STAT PDU.

*Mar 21 03:18:48.040: SSCOP(ATM3/0): * Poll pdu, ns = 0, nps = 1

*Mar 21 03:18:48.040: SSCOP(ATM3/0): o Stat pdu, n(r) = 0, n(mr) = 30, n(ps) = 1

!--- The "*" indicates an inbound POLL PDU from the attached ATM switch. !--- The router responds with an outbound STAT PDU.

*Mar 21 03:18:57.292: SSCOP(ATM3/0): o Poll pdu, state = Active, n(s) = 0, n(ps) = 2

*Mar 21 03:18:57.292: SSCOP(ATM3/0): i Stat pdu, Active state, length = 12

*Mar 21 03:18:57.292: SSCOP(ATM3/0): Rcv Stat in Active State

*Mar 21 03:18:57.292: SSCOP(ATM3/0): processStatPdu: ps 2, nmr 30, nr 0

*Mar 21 03:18:57.292: SSCOP(ATM3/0): processStatPdu: vtPa 1, vps 2

*Mar 21 03:18:57.292: SSCOP(ATM3/0): processStatPdu: vta 0, vts 0

*Mar 21 03:18:57.292: SSCOP(ATM3/0): processStatPdu: listCount = 0 - normal

!--- This is the second outbound POLL PDU and inbound STAT PDU. N(PS) and V(PS) !--- increment to 2.

*Mar 21 03:18:58.004: SSCOP(ATM3/0): * Poll pdu, ns = 0, nps = 2

*Mar 21 03:18:58.004: SSCOP(ATM3/0): o Stat pdu, n(r) = 0, n(mr) = 30, n(ps) = 2

*Mar 21 03:19:06.812: SSCOP(ATM3/0): o Poll pdu, state = Active, n(s) = 0, n(ps) = 3

*Mar 21 03:19:06.812: SSCOP(ATM3/0): i Stat pdu, Active state, length = 12

*Mar 21 03:19:06.812: SSCOP(ATM3/0): Rcv Stat in Active State

*Mar 21 03:19:06.812: SSCOP(ATM3/0): processStatPdu: ps 3, nmr 30, nr 0

*Mar 21 03:19:06.812: SSCOP(ATM3/0): processStatPdu: vtPa 2, vps 3

*Mar 21 03:19:06.812: SSCOP(ATM3/0): processStatPdu: vta 0, vts 0

*Mar 21 03:19:06.812: SSCOP(ATM3/0): processStatPdu: listCount = 0 - normal

*Mar 21 03:19:07.228: SSCOP(ATM3/0): * Poll pdu, ns = 0, nps = 3

*Mar 21 03:19:07.228: SSCOP(ATM3/0): o Stat pdu, n(r) = 0, n(mr) = 30, n(ps) = 3

!--- This is the third outbound POLL PDU and inbound STAT PDU. N(PS) and V(PS) !--- increment to 3. N(MR) remains at 30. N(S), VT(S), and VT(A) remain at 0 since !--- no sequenced Q.2931 "user" data is being transmitted.

debug输出捕获连接建立期间发送的SSCOP消息，并作为keepalive机制的一部分。运行debug命令时，show sscop atm命令的同时捕获显示Pdu的已发送和Pdu的已接收以及轮询和Stat的值递增。

7500# show sscop atm 3/0

SSCOP details for interface ATM3/0

Current State = Active,   Uni version = 4.0

Send Sequence Number: Current = 0,  Maximum = 30

Send Sequence Number Acked = 0

Rcv Sequence Number: Lower Edge = 0, Upper Edge = 0, Max = 30

Poll Sequence Number = 6, Poll Ack Sequence Number = 6

Vt(Pd) = 0   Vt(Sq) = 1

Timer_IDLE = 10 - Active

Timer_CC = 1 - Inactive

Timer_POLL = 1000 - Inactive

Timer_KEEPALIVE = 5 - Inactive

Timer_NO-RESPONSE = 45 - Inactive

Current Retry Count = 0, Maximum Retry Count = 10

AckQ count = 0, RcvQ count = 0, TxQ count = 0

AckQ HWM = 0,  RcvQ HWM = 0, TxQ HWM = 0

Local connections currently pending = 0

Max local connections allowed pending = 0

Statistics -

Pdu's Sent = 9, Pdu's Received = 9, Pdu's Ignored = 0

Begin = 1/1, Begin Ack = 1/1, Begin Reject = 0/0

End = 1/0, End Ack = 0/1

Resync = 0/0, Resync Ack = 0/0

Sequenced Data = 0/0, Sequenced Poll Data = 0/0

Poll = 6/6, Stat = 6/6, Unsolicited Stat = 0/0

Unassured Data = 0/0, Mgmt Data = 0/0, Unknown Pdu's = 0

Error Recovery/Ack = 0/0, lack of credit 0

7500# show sscop atm 3/0

SSCOP details for interface ATM3/0

Current State = Active,   Uni version = 4.0

Send Sequence Number: Current = 0,  Maximum = 30

Send Sequence Number Acked = 0

Rcv Sequence Number: Lower Edge = 0, Upper Edge = 0, Max = 30

Poll Sequence Number = 7, Poll Ack Sequence Number = 7

Vt(Pd) = 0   Vt(Sq) = 1

Timer_IDLE = 10 - Active

Timer_CC = 1 - Inactive

Timer_POLL = 1000 - Inactive

Timer_KEEPALIVE = 5 - Inactive

Timer_NO-RESPONSE = 45 - Inactive

Current Retry Count = 0, Maximum Retry Count = 10

AckQ count = 0, RcvQ count = 0, TxQ count = 0

AckQ HWM = 0,  RcvQ HWM = 0, TxQ HWM = 0

Local connections currently pending = 0

Max local connections allowed pending = 0

Statistics -

Pdu's Sent = 10, Pdu's Received = 10, Pdu's Ignored = 0

Begin = 1/1, Begin Ack = 1/1, Begin Reject = 0/0

End = 1/0, End Ack = 0/1

Resync = 0/0, Resync Ack = 0/0

Sequenced Data = 0/0, Sequenced Poll Data = 0/0

Poll = 7/7, Stat = 7/7, Unsolicited Stat = 0/0

Unassured Data = 0/0, Mgmt Data = 0/0, Unknown Pdu's = 0

Error Recovery/Ack = 0/0, lack of credit 0

相关信息

- ITU-T用户网络接口(UNI)规范

- ATM论坛UNI规格

- ATM技术支持页

- 技术支持 - Cisco Systems