多链路点到点协议链路协商方法 【技术领域】
本发明涉及通讯系统中对端之间的多链路点到点协议链路协商方法,尤其涉及移动通信系统中不同网元之间应用MP(多链路点到点协议)时的链路协商方法。
背景技术
对于移动通信系统,例如CDMA2000系统而言,不同网络单元(简称网元)之间的接口,包括BTS(基站收发信机)与BSC(基站控制器)之间的ABIS接口,和BSC与BSC之间的A3/A7接口等,都将大量用到IP(网际协议)接入。然而,由于IP包56byte的固有开销远大于ATM信元5byte头的开销(IP包的固有开销为:MAC Header(12byte)+IP Header(20byte)+TCP/UDP Header(20byte)+FCS(4byte)),因此,如何采取措施有效提高CDMA2000系统不同网元之间传输链路的效率以及提高链路的QoS(服务质量),对于CDMA2000系统网元之间的IP接入效率至关重要。
根据RFC(Internet标准系列)推荐,提高IP传输效率及提升系统QoS的方法主要有:
(1)cUDP协议方法(压缩用户数据报文协议方法,源自RFC2507、2508协议):通过cUDP压缩协议降低TCP/IP、UDP/IP头造成的开销;
(2)PPPmux协议方法(点到点多路复用协议方法,源自RFC3153协议):通过PPPmux协议复用多个语音短包,从而降低系统的PPP Header开销;
(3)MultiLink PPP协议方法(多链路点到点协议方法,源自RFC1990协议):通过MP协议将分组数据包分解为多个MP Fragment(MP分片),分配到多个低速链路上传输,从而提升系统的QoS。
其中,Multi-Link PPP协议(多链路点到点协议,即MP协议)基于LCP(链路控制协议,一个用于在通信双方自动进行加密机制协商的协议,还可以处理包大小的限制,认证连接双方的身份,决定一个连接工作状态是否正常,检查一个回环连接和其它的一些配置错误,如果有错误,它可以中止连接),在PPP(点到点协议)的LCP阶段协商,它允许一个系统具有能将多个物理连接绑定到一个逻辑连接地能力。一个系统通过发送一个多连接选项(作为LCP的一部分)来声明它具有多链路的能力。协商包括下面三个步骤:
(1)提供能将多个物理连接绑定到一个逻辑连接的选项;
(2)使用多链路头接收上层PDU(协议数据单元)的分片,并重新组装这些分片,还原成完整的协议数据单元,以便处理;
(3)系统接收大小为N个字节的PDU,N可选,N可大于单个物理链路(即物理连接)的最大接收单元(MRU)。
一旦多链路协商成功,系统就可以任意的发送使用多链路头封装或者分片的PDU。
为了在一个点到点的链路上建立通信,PPP链路的每一端必须首先向对方发送一个LCP数据包,在链路建立阶段配置数据链路。在链路建立之后,PPP进入鉴权阶段,使用鉴权协议确定链路连接系统相关的标识。
使用多链路PPP协议是为了绑定在一对确定的系统之间的多个独立链路,它可以提供一个虚拟的连接,其带宽大于任何一个组成虚拟连接的成员。
可以假定多链路操作的模型是一个虚拟的PPP链路层实体,从不同的物理链路层实体接收的数据包都被看作是属于一个独立的PPP网络协议,并且可以根据多链路分片包头中的信息进行排序和重组。这些从归属于绑定的链路上接收到的数据包不管有无多连接头,都在网络层上进行相同的处理。
子由于MP协议实现了把多个物理连接绑定到一个逻辑连接,在实际应用中如果发现绑定所属的多个物理连接中有任何一条发生故障,则应该遵循一定流程在尽可能短的时间内将这条故障链路从该绑定(即逻辑连接)删除,以避免这条故障链路影响到整个绑定的正常工作。如果要向该绑定添加一个物理连接,也应该按照一定流程执行添加操作。所有的链路增加和删除操作所遵循的根本原则是:不能对绑定中的无故障链路产生影响,即只要这个绑定中还有一条物理链路正常工作,不论绑定中其他物理链路出现什么情况都不能影响这个绑定的正常工作。
RFC1990协议并没有指出MP协议具体实现过程中的异常情况处理,而在实际调试特别是对设备进行异常测试时,基于MP协议的系统在实际应用中稳定性较差。系统的性能和可靠性互相矛盾,为了提高系统性能,应使用MP协议方法把多条物理连接(或称物理链路)绑定到一个逻辑连接当中去,但是当绑定中有任何一条物理链路出现故障时,如果没有一个适当的流程来处理这种异常情况就会导致整个绑定不能正常工作,大大降低了系统的可靠性。
请参考图1所示,对端A和对端B(对端表示通信系统中互相通讯的两个网元)之间采用MP协议进行通讯,这个MP通道(逻辑连接,即绑定)由四条物理链路(Link1、Link2、Link3和Link4)组成。在实际应用中,如果其中一条物理链路(比如Link2)发生物理故障,但是上层软件没有及时处理,将会导致一些MP分片继续在有故障的链路上(Link2)传输从而导致分片丢失,导致两对端都不能正确组包。请参考图2所示,假设一个数据包被分成8个MP分片,SN(序列号)分别为0到7,由于链路2发生故障,导致在这个链路上传输的SN=3,5的MP分片丢失,而由于MP协议的定时机制,SN=0,1,2,4,6,7的这些无效MP分片(因为这些MP分片已经不能还原成完整的数据包了)只有在定时器超时后才会从缓冲区中清除。如果链路2迟迟不能恢复,将导致缓冲区内无效MP分片的堆积,最终导致缓冲区溢出,从而影响该绑定的正常工作。
现有两种方法用于解决这个问题:
(1)不带协商的链路检测流程
(2)带协商链路检测流程
不带协商的链路检测流程的好处是流程比较简单,降低了系统的复杂性,缺点是两端的链路检测有可能不同步,有可能会出现在某个时间段内一对端认为链路正常,而另一对端认为链路有故障的情况,从而会导致在一段时间内绑定不能正常工作。
带协商的链路检测流程的好处是基本可以做到两端的链路增加和链路删除的同步,缺点是流程比较复杂,特别是链路协商消息容易丢失,导致链路协商失败。
实际应用中,这两种现有方法各有利弊,但他们都有一个共同的缺点,就是在向绑定中增加一个物理连接或从绑定中删除一个物理连接时,由于无法精确做到两对端的链路增加或删除的动作完全同步,导致序列号抖动,从而导致一段时间内链路通讯异常。
【发明内容】
本发明目的是克服现有的MP协议链路协商方法在对绑定进行链路增删时造成序列号抖动,导致链路通讯异常的缺陷,提供一种稳定高效的多链路点到点协议链路协商方法。
本发明提供的多链路点到点协议链路协商方法,用于在通讯系统的两个对端A、B的绑定中增加或者删除链路,核心在于,在两个对端都设有链路检测模块,在两个对端之间增加链路或删除链路过程中,将链路的接收和发送方向分开操作。
所述在两个对端之间增加链路的过程,包括:
2.1 任何一个对端的链路检测模块检测到某一链路正常,则自动添加该链路的接收方向到绑定中(不需协商);
2.2 任何一个对端的检测模块要增加该链路的发送方向到绑定中,通过与另一对端协商后增加,具体包括:
3.1:对端A向对端B发送增加链路发送方向的请求,并启动一个定时器来等待对端B响应消息;
3.2:对端B收到对端A发来的增加发送方向请求,发送允许增加消息给对端A;
3.3:对端A收到对端B发来的允许增加消息,执行增加链路发送方向到绑定的操作;若对端A在定时时间到以后还没有收到对端B发来的响应消息,则延迟一段时间后删除这条链路的接收方向;
3.4:若对端B还没有增加该链路在本端的接收方向,则先执行增加本端接收方向操作,同时向对端A发送增加本端链路发送方向的请求;否则对端B直接向对端A发送增加本端链路发送方向的请求,并启动定时器等待A发来的响应消息;
3.5:对端A收到对端B增加发送方向到绑定的请求后,若本端的链路增加成功则发送允许增加响应消息给对端B,否则不予响应;
3.6:对端B收到允许增加响应消息后执行增加链路发送方向到绑定的操作;若定时时间到后还没有收到对端A的响应消息,则延迟一段时间后(等待对端A检测到链路故障,并从绑定中删除这条链路)删除本端的接收方向。
所述在两个对端之间删除链路包括:
4.1 任何一个对端的检测模块检测到两对端之间某一链路故障,则自动将这条故障链路的发送方向从绑定中删除(不需协商);
4.2 任何一个对端的检测模块要删除该故障链路的接收方向,通过与另一对端协商后删除;或迟延一段时间后,强行删除。具体包括:
5.1:对端A向对端B发送从绑定当中删除链路接收方向的请求;并启动一个定时器来等待响应消息;
5.2:对端B收到对端A发来的删除接收方向请求,发送允许删除消息给对端A;
5.3:若对端A收到对端B发来的允许删除消息,执行从绑定中删除该链路接收方向的操作;若对端A在定时时间到后还是没有收到对端B发来的允许删除响应消息,则强制从绑定当中删除这条链路的接收方向;
5.4:在执行5.3的同时,对端B向对端A发送删除本端链路接收方向的请求,并启动定时器等待对端A发来的删除响应消息;
5.5:对端A收到对端B发送的从绑定中删除接收方向的请求后,发送允许删除响应消息给对端B;
5.6:对端B收到这个消息后执行从绑定当中删除链路接收方向的操作;若定时时间到后,对端B还没有收到对端A的响应消息,则强制删除这条链路的接收方向。
与现有技术相比,采用本发明所述的方法,在对MP协议的绑定进行物理链路增加或者物理链路删除操作时,不会造成通讯异常,保证了通信系统网元间通讯的稳定性和可靠性。
【附图说明】
图1是MP绑定中一条链路出现故障的示意图;
图2是现有方法中,MP分片丢失导致MP绑定的接收缓冲区溢出故障示意图;
图3是本发明的方法中向MP绑定增加链路的流程示意图;
图4是本发明的方法中从MP绑定删除链路的流程示意图。
具体实施方法
本发明中,对端A和对端B都设有各自的链路检测模块。链路检测模块每隔一定时间就向绑定所属的每一个物理链路发送链路检测报文。如果在规定的时间内在某个物理链路上没有收到任何链路检测报文,则宣布这条物理链路故障,将这条故障链路从绑定中删除。注意这条链路并没有从物理上删除,只是从绑定中移出而已。链路检测模块仍旧周期性向这条有故障的物理链路发送链路检测报文,一旦发现可以从这条物理链路接收到正常的链路检测报文,则宣布这条物理链路恢复正常,从而把它重新加入到指定的绑定当中。
下面分别通过图3和图4对增加链路和删除链路的实施方式进行详细说明。
请参考图3,本发明MP协议链路增加流程如下:
3-1:两对端A、B的链路检测模块任何一方检测到两对端之间某一链路正常,则自动添加这条链路的接收方向到绑定当中,此时不需要进行协商;
3-2:对端A向对端B发送增加链路发送方向到MP绑定的请求,并启动一个定时器来等待对端B响应消息;
3-3:对端B收到对端A发来的增加发送方向请求,发送允许增加消息给对端A;
3-4:若对端A收到对端B发来的允许增加消息,执行增加链路发送方向到绑定的操作;若对端A在定时时间到以后还没有收到对端B发来的响应消息,则延迟一段时间后删除这条链路的接收方向;
3-5:若对端B还没有增加该链路在本端的接收方向,则先执行增加本端接收方向操作,同时向对端A发送增加本端链路发送方向的请求;否则对端B直接向对端A发送增加本端链路发送方向的请求,并启动定时器等待A发来的响应消息;
3-6:对端A收到对端B增加发送方向到绑定的请求后,若本端的链路增加成功则发送允许增加响应消息给对端B,否则不予响应;
3-7:对端B收到允许增加响应消息后执行增加链路发送方向到绑定的操作;若定时时间到后还没有收到对端A的响应消息,则延迟一段时间后(等待对端A检测到链路故障,并从绑定中删除这条链路)删除本端的接收方向。
这种在向绑定中增加链路时将接收和发送方向分开操作的方法避免了由于两对端链路增加不完全同步导致的问题,比如瞬时的MP分片丢失以及由此引起的缓冲区溢出故障等问题。
请参考图4,本发明MP协议链路删除流程如下:
4-1:两对端A、B的链路检测模块任何一方检测到两对端之间某一链路故障,则自动将这条故障链路的发送方向从MP绑定当中删除,此时不需要进行协商;
4-2:对端A向对端B发送从绑定当中删除链路接收方向的请求;并启动一个定时器来等待响应消息;
4-3:对端B收到对端A发来的删除接收方向请求,发送允许删除消息给对端A;
4-4:若对端A收到对端B发来的允许删除消息,执行从绑定中删除该链路接收方向的操作;若对端A在定时时间到后还是没有收到对端B发来的允许删除响应消息,则强制从绑定当中删除这条链路的接收方向;
4-5:在执行4-4的同时,对端B向对端A发送删除本端链路接收方向的请求,并启动定时器等待对端A发来的删除响应消息;
4-6:对端A收到对端B发送的从绑定中删除接收方向的请求后,发送允许删除响应消息给对端B;
4-7:对端B收到这个消息后执行从绑定当中删除链路接收方向的操作;若定时时间到后,对端B还没有收到对端A的响应消息,则强制删除这条链路的接收方向。
在从MP绑定中删除一条物理链路时,首先两对端各自删除发送方向而保留接收方向的流程避免了普通协商方法中删除操作不同步导致整个绑定在一定时间内通讯异常的问题。