CN101651655A - 第三代移动通信系统包数据聚合协议报头压缩的实现方法 - Google Patents
第三代移动通信系统包数据聚合协议报头压缩的实现方法 Download PDFInfo
- Publication number
- CN101651655A CN101651655A CN200810041588A CN200810041588A CN101651655A CN 101651655 A CN101651655 A CN 101651655A CN 200810041588 A CN200810041588 A CN 200810041588A CN 200810041588 A CN200810041588 A CN 200810041588A CN 101651655 A CN101651655 A CN 101651655A
- Authority
- CN
- China
- Prior art keywords
- mode
- compressor reducer
- decompression machine
- initialization
- work
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
本发明涉及一种第三代移动通信系统包数据聚合协议报头压缩的实现方法,头压缩器数据压缩处理操作包括进行头压缩流对象初始化操作、进行头压缩流对象工作状态转移处理操作、进行头压缩流对象工作模式转移处理操作,头解压器数据解压处理操作包括进行头解压缩流对象初始化操作、进行头解压缩流对象工作状态转移处理操作、进行头解压缩流对象工作模式转移处理操作。采用该种第三代移动通信系统包数据聚合协议报头压缩的实现方法,实现了头压缩工作模式、状态灵活切换,头压缩器和头解压器互不干扰,构造、调试和维护容易,执行过程快捷方便,系统运行效率高,工作性能稳定可靠,适用范围广,为第三代移动通信技术的进一步发展奠定了坚实的基础。
Description
技术领域
本发明涉及第三代移动通信领域,特别涉及移动通信网络系统数据压缩技术领域,具体是指一种第三代移动通信系统包数据聚合协议报头压缩的实现方法。
背景技术
随着无线通信和因特网应用的发展,无线接入因特网已得到了日益广泛的应用。在传统上,因特网用户是通过局域网(例如以太网)或者ADSL/光纤这样的有线网络接入的。这些有线网络经过多年的发展,其信号传输媒介已经比较可靠,差错率较小。而无线网络的传输媒介为空间电磁波,它的传输特性与有线网络有很大差异,具体表现在:
(1)差错率高;
(2)传输延迟大;
(3)带宽有限。
因特网应用使用TCP/IP协议族,所有的应用数据都以IP包的形式在网络中传递。由于IP包都有头部,因此造成一些开销,在某些情况下开销会很大。图1表示了一个承载语音数据的RTP包。
请参阅图1所示,语音数据作为RTP包的净荷,RTP包是UDP包的净荷,UDP包又是IP包的净荷。每个IP包都有至少20字节的头部,UDP包有8字节的头部,RTP包有12字节的头部,三种头部一共占了40字节,而语音净荷的长度也只有几十字节,因而头部开销很大。
为解决IP头部开销的问题,人们提出了很多IP头部压缩算法,而健壮报头压缩(ROHC,RFC3095)就是针对无线网络环境提出的一种,它被应用在UMTS系统中。
首先,根据网络信道配置和传输质量,RFC3095定义了3种工作模式:单向模式、双向优化模式和双向可靠模式。在单向模式下,RFC3095头压缩器认为没有反馈通道,因此只会按单向信道的特性发送数据。在双向优化模式下,头压缩器与头解压器之间存在双向信道,同时头压缩器会按照提高压缩效率的原则进行工作。在双向可靠模式下,头压缩器与头解压器之间存在双向信道,并且头压缩器会依照提高传输可靠性的原则工作。
在每种模式下,压缩器和解压器都分别具有三个状态。
压缩器的三个工作状态是IR(Initialization and Refresh,初始化和刷新)、FO(First Order,一阶)和SO(Second Order,二阶),请参阅图2所示。
在IR状态下,压缩器只发送完整的IP头信息;FO状态下,压缩器压缩部分头信息;SO状态下,压缩器做最优化的压缩。三种状态的级别由低到高依次为IR、FO和SO。刚开始压缩器工作在IR状态,然后根据通信状况逐渐提高级别。
解压器的三个状态为NC(No Context)、SC(Static Context)和FC(Full Context),请参阅图3所示。
NC状态下,解压器还没解压成功一个IP包头,即解压器还未得到完整的IP头信息;当解压器得到一个完整的IP头信息之后,转入FC状态;当解压器遇到连续解压失败的情况后,会返回SC状态。
在每种模式下都有上述3种状态,但每种状态下的行为和状态迁移的条件却因模式而异。其中,图4给出了三种模式下压缩器的情况,对于解压器的情况类似,本发明中不再一一示出。
头压缩器/解压器在工作过程中,需要根据接收到的反馈、当前模式和系统策略决定切换到什么状态,以及切换到什么模式。
综上所述,RFC3095共有三种工作模式,每种模式下的压缩器和解压器又有三种状态,各种状态和模式在一定条件又需要相互切换,因此情况比较复杂,实现中非常需要一种实现方法很好地应对这种复杂性。
发明内容
本发明的目的是克服了上述现有技术中的缺点,提供一种能够实现复杂状况下的包数据聚合压缩工作模式和工作状态灵活切换、过程快捷方便、运行效率较高、工作性能稳定可靠、适用范围较为广泛的第三代移动通信系统包数据聚合协议报头压缩的实现方法。
为了实现上述的目的,本发明的第三代移动通信系统包数据聚合协议报头压缩的实现方法如下:
该第三代移动通信系统包数据聚合协议报头压缩的实现方法,所述的系统中包括数据发送端的头压缩器和数据接收端的头解压器,其主要特点是,所述的方法包括头压缩器数据压缩处理操作和头解压器数据解压处理操作,所述的头压缩器数据压缩处理操作包括以下步骤:
(A1)头压缩器进行头压缩流对象初始化操作;
(A2)在进行数据发送过程中,头压缩器根据所接收到的反馈信息、头压缩器的当前工作模式、头压缩器的当前工作状态和系统预设的策略进行头压缩流对象工作状态转移处理操作;
(A3)在进行数据发送过程中,头压缩器根据所接收到的反馈信息、头压缩器的当前工作模式、头压缩器的当前工作状态和系统预设的策略进行头压缩流对象工作模式转移处理操作;
所述的头解压器数据解压处理操作包括以下步骤:
(B1)头解压器进行头解压缩流对象初始化操作;
(B2)在进行数据接收过程中,头解压器根据所接收到的反馈信息、头解压器的当前工作模式、头解压器的当前工作状态和系统预设的策略进行头解压缩流对象工作状态转移处理操作;
(B3)在进行数据接收过程中,头解压器根据所接收到的反馈信息、头解压器的当前工作模式、头解压器的当前工作状态和系统预设的策略进行头解压缩流对象工作模式转移处理操作。
该第三代移动通信系统包数据聚合协议报头压缩的实现方法中的头压缩流对象初始化操作,包括以下步骤:
(A11)设置头压缩流对象中的当前工作模式对象成员为单向工作模式对象;
(A12)初始化该单向工作模式对象,将该单向工作模式对象中的当前工作状态对象成员设置为头压缩器单向模式初始化和刷新状态对象。
该第三代移动通信系统包数据聚合协议报头压缩的实现方法中的头压缩流对象工作状态转移处理操作,包括以下步骤:
(A21)根据所述的头压缩器的当前工作模式初始化转换后工作状态对象;
(A22)将所述的头压缩流对象中的当前工作模式对象成员的当前工作状态对象成员设置为所述的转换后工作状态对象;
(A23)从头压缩器中删除原工作状态对象。
该第三代移动通信系统包数据聚合协议报头压缩的实现方法中的头压缩器的当前工作模式为可以单向工作模式、双向优化工作模式或者双向可靠工作模式。
该第三代移动通信系统包数据聚合协议报头压缩的实现方法中的初始化转换后工作状态对象,包括以下步骤:
(A211)如果头压缩器的当前工作模式为单向工作模式,则初始化该转换后工作状态对象为头压缩器单向模式初始化和刷新状态对象、头压缩器单向模式一阶状态对象或者头压缩器单向模式二阶状态对象;
(A212)如果头压缩器的当前工作模式为双向优化工作模式,则初始化该转换后工作状态对象为头压缩器双向优化模式初始化和刷新状态对象、头压缩器双向优化模式一阶状态对象或者头压缩器双向优化模式二阶状态对象;
(A213)如果头压缩器的当前工作模式为双向可靠工作模式,则初始化该转换后工作状态对象为头压缩器双向可靠模式初始化和刷新状态对象、头压缩器双向可靠模式一阶状态对象或者头压缩器双向可靠模式二阶状态对象。
该第三代移动通信系统包数据聚合协议报头压缩的实现方法中的头压缩流对象工作模式转移处理操作,包括以下步骤:
(A31)初始化头压缩器转换后工作模式对象;
(A32)将头压缩流对象中的当前工作模式对象成员设置为头压缩器转换后工作模式对象;
(A33)从头压缩器中删除原头压缩器工作模式对象。
该第三代移动通信系统包数据聚合协议报头压缩的实现方法中的初始化头压缩器转换后工作模式对象,具体为:
可以初始化该头压缩器转换后工作模式对象为头压缩器单向工作模式对象、头压缩器双向优化工作模式对象或者头压缩器双向可靠工作模式对象。
该第三代移动通信系统包数据聚合协议报头压缩的实现方法中的头解压缩流对象初始化操作,包括以下步骤:
(B11)设置头解压缩流对象中的当前工作模式对象成员为单向工作模式对象;
(B12)初始化该单向工作模式对象,将该单向工作模式对象中的当前工作状态对象成员设置为头解压器单向模式初始化和刷新状态对象。
该第三代移动通信系统包数据聚合协议报头压缩的实现方法中的头解压缩流对象工作状态转移处理操作,包括以下步骤:
(B21)根据所述的头解压器的当前工作模式初始化转换后工作状态对象;
(B22)将所述的头解压缩流对象中的当前工作模式对象成员的当前工作状态对象成员设置为所述的转换后工作状态对象;
(B23)从头解压器中删除原工作状态对象。
该第三代移动通信系统包数据聚合协议报头压缩的实现方法中的头解压器的当前工作模式为可以单向工作模式、双向优化工作模式或者双向可靠工作模式。
该第三代移动通信系统包数据聚合协议报头压缩的实现方法中的初始化转换后工作状态对象,包括以下步骤:
(B211)如果头解压器的当前工作模式为单向工作模式,则初始化该转换后工作状态对象为头解压器单向模式无上下文状态对象、头解压器单向模式静态上下文状态对象或者头解压器单向模式全上下文状态对象;
(B212)如果头解压器的当前工作模式为双向优化工作模式,则初始化该转换后工作状态对象为头解压器双向优化模式无上下状态对象、头解压器双向优化模式静态上下文状态对象或者头解压器双向优化模式全上下文状态对象;
(B213)如果头解压器的当前工作模式为双向可靠工作模式,则初始化该转换后工作状态对象为头解压器双向可靠模式无上下状态对象、头解压器双向可靠模式静态上下文状态对象或者头解压器双向可靠模式全上下文状态对象。
该第三代移动通信系统包数据聚合协议报头压缩的实现方法中的头解压缩流对象工作模式转移处理操作,包括以下步骤:
(B31)初始化头解压器转换后工作模式对象;
(B32)将头解压缩流对象中的当前工作模式对象成员设置为头解压器转换后工作模式对象;
(B33)从头解压器中删除原头解压器工作模式对象。
该第三代移动通信系统包数据聚合协议报头压缩的实现方法中的初始化头解压器转换后工作模式对象,具体为:
可以初始化该头解压器转换后工作模式对象为头解压器单向工作模式对象、头解压器双向优化工作模式对象或者头解压器双向可靠工作模式对象。
采用了该发明的第三代移动通信系统包数据聚合协议报头压缩的实现方法,由于其中使用了软件设计模式中的状态模式,使得其完全实现了在复杂状况下的头压缩工作模式和工作状态的灵活切换,同时头压缩器和头解压器的各个工作模式的各个工作状态下的行为被隔离到各自相应的类中,使得彼此之间互不干扰,并且使系统的构造、调试和维护较为容易,不仅如此,本发明的实现方法的执行过程快捷方便,系统运行效率较高,工作性能稳定可靠,适用范围较为广泛,为第三代移动通信技术的进一步发展奠定了坚实的基础。
附图说明
图1为现有技术中的RTP包结构示意图。
图2是现有技术中的RFC3095压缩器的3个状态。
图3为现有技术中的RFC3095解压器的3个状态。
图4为现有技术中的RFC3095的3种工作模式。
图5为本发明的第三代移动通信系统包数据聚合协议报头压缩的实现方法中的RFC3095压缩器的模式类图。
图6为本发明的第三代移动通信系统包数据聚合协议报头压缩的实现方法中的RFC3095压缩器单向模式的类图。
图7为本发明的第三代移动通信系统包数据聚合协议报头压缩的实现方法中的RFC3095压缩器优化模式的类图。
图8为本发明的第三代移动通信系统包数据聚合协议报头压缩的实现方法中的RFC3095压缩器可靠模式的类图。
图9为本发明的第三代移动通信系统包数据聚合协议报头压缩的实现方法中的RFC3095解压器的模式类图。
图10为本发明的第三代移动通信系统包数据聚合协议报头压缩的实现方法中的RFC3095解压器单向模式的类图。
图11为本发明的第三代移动通信系统包数据聚合协议报头压缩的实现方法中的RFC3095解压器优化模式的类图。
图12为本发明的第三代移动通信系统包数据聚合协议报头压缩的实现方法中的RFC3095解压器可靠模式的类图。
图13为本发明的第三代移动通信系统包数据聚合协议报头压缩的实现方法中的头压缩流的初始化流程图。
图14为本发明的第三代移动通信系统包数据聚合协议报头压缩的实现方法中的头压缩器从IR状态转移到FO状态的流程图。
图15为本发明的第三代移动通信系统包数据聚合协议报头压缩的实现方法中的头压缩器从IR状态转移到SO状态的流程图。
图16为本发明的第三代移动通信系统包数据聚合协议报头压缩的实现方法中的头压缩器从SO状态转移到FO状态的流程图。
图17为本发明的第三代移动通信系统包数据聚合协议报头压缩的实现方法中的头压缩器从FO状态转移到SO状态的流程图。
图18为本发明的第三代移动通信系统包数据聚合协议报头压缩的实现方法中的头压缩器从FO状态转移到IR状态的流程图。
图19为本发明的第三代移动通信系统包数据聚合协议报头压缩的实现方法中的头压缩器从SO状态转移到IR状态的流程图。
图20为本发明的第三代移动通信系统包数据聚合协议报头压缩的实现方法中的头压缩器从单向模式转移到双向优化模式的流程图。
图21为头压缩器从双向优化模式转移到双向可靠模式的流程图。
图22为本发明的第三代移动通信系统包数据聚合协议报头压缩的实现方法中的头压缩器从双向可靠模式转移到双向优化模式的流程图。
图23为本发明的第三代移动通信系统包数据聚合协议报头压缩的实现方法中的头压缩器从双向优化模式转移到单向模式的流程图。
图24为本发明的第三代移动通信系统包数据聚合协议报头压缩的实现方法中的头压缩器从双向可靠模式转移到单向模式的流程图。
图25为本发明的第三代移动通信系统包数据聚合协议报头压缩的实现方法中的头解压器的初始化流程。
图26为本发明的第三代移动通信系统包数据聚合协议报头压缩的实现方法中的头解压器从NC状态转移到FC状态的流程图。
图27为本发明的第三代移动通信系统包数据聚合协议报头压缩的实现方法中的头解压器从FC状态转移到SC状态的流程图。
图28为本发明的第三代移动通信系统包数据聚合协议报头压缩的实现方法中的头解压器从SC状态转移到FC状态的流程图。
图29为本发明的第三代移动通信系统包数据聚合协议报头压缩的实现方法中的头解压器从SC状态转移到NC状态的流程图。
图30为本发明的第三代移动通信系统包数据聚合协议报头压缩的实现方法中的头解压器从单向模式转移到双向优化模式的流程图。
图31为本发明的第三代移动通信系统包数据聚合协议报头压缩的实现方法中的头解压器从双向优化模式转移到双向可靠模式的流程图。
图32为本发明的第三代移动通信系统包数据聚合协议报头压缩的实现方法中的头解压器从双向可靠模式转移到双向优化模式的流程图。
图33为本发明的第三代移动通信系统包数据聚合协议报头压缩的实现方法中的头解压器从双向优化模式转移到单向模式的流程图。
图34为本发明的第三代移动通信系统包数据聚合协议报头压缩的实现方法中的头解压器从单向模式转移到双向可靠模式的流程图。
图35为本发明的第三代移动通信系统包数据聚合协议报头压缩的实现方法中的头解压器从双向可靠模式转移到单向模式的流程图。
具体实施方式
为了能够更清楚地理解本发明的技术内容,特举以下实施例详细说明。
本发明的方法主要涉及3GPPUMTS网络的终端和接入网设备中包数据聚合协议(PDCP)的RFC3095算法的实现方法。
请参阅图5至图35所示,该第三代移动通信系统包数据聚合协议报头压缩的实现方法,所述的系统中包括数据发送端的头压缩器和数据接收端的头解压器,其主要特点是,所述的方法包括头压缩器数据压缩处理操作和头解压器数据解压处理操作,所述的头压缩器数据压缩处理操作包括以下步骤:
(1)头压缩器进行头压缩流对象初始化操作,包括以下步骤:
(a)设置头压缩流对象中的当前工作模式对象成员为单向工作模式对象;
(b)初始化该单向工作模式对象,将该单向工作模式对象中的当前工作状态对象成
员设置为头压缩器单向模式初始化和刷新状态对象;
(2)在进行数据发送过程中,头压缩器根据所接收到的反馈信息、头压缩器的当前工作模式、头压缩器的当前工作状态和系统预设的策略进行头压缩流对象工作状态转移处理操作,包括以下步骤:
(a)根据所述的头压缩器的当前工作模式初始化转换后工作状态对象;该当前工作模式为可以单向工作模式、双向优化工作模式或者双向可靠工作模式;该初始化转换后工作状态对象,包括以下步骤:
(i)如果头压缩器的当前工作模式为单向工作模式,则初始化该转换后工作状态对象为头压缩器单向模式初始化和刷新状态对象、头压缩器单向模式一阶状态对象或者头压缩器单向模式二阶状态对象;
(ii)如果头压缩器的当前工作模式为双向优化工作模式,则初始化该转换后工作状态对象为头压缩器双向优化模式初始化和刷新状态对象、头压缩器双向优化模式一阶状态对象或者头压缩器双向优化模式二阶状态对象;
(iii)如果头压缩器的当前工作模式为双向可靠工作模式,则初始化该转换后工作状态对象为头压缩器双向可靠模式初始化和刷新状态对象、头压缩器双向可靠模式一阶状态对象或者头压缩器双向可靠模式二阶状态对象;
(b)将所述的头压缩流对象中的当前工作模式对象成员的当前工作状态对象成员设置为所述的转换后工作状态对象;
(c)从头压缩器中删除原工作状态对象;
(3)在进行数据发送过程中,头压缩器根据所接收到的反馈信息、头压缩器的当前工作模式、头压缩器的当前工作状态和系统预设的策略进行头压缩流对象工作模式转移处理操作,包括以下步骤:
(a)初始化头压缩器转换后工作模式对象,具体为:
可以初始化该头压缩器转换后工作模式对象为头压缩器单向工作模式对象、头压缩器双向优化工作模式对象或者头压缩器双向可靠工作模式对象;
(b)将头压缩流对象中的当前工作模式对象成员设置为头压缩器转换后工作模式对象;
(c)从头压缩器中删除原头压缩器工作模式对象;
所述的头解压器数据解压处理操作包括以下步骤:
(1)头解压器进行头解压缩流对象初始化操作,包括以下步骤:
(a)设置头解压缩流对象中的当前工作模式对象成员为单向工作模式对象;
(b)初始化该单向工作模式对象,将该单向工作模式对象中的当前工作状态对象成员设置为头解压器单向模式初始化和刷新状态对象;
(2)在进行数据接收过程中,头解压器根据所接收到的反馈信息、头解压器的当前工作模式、头解压器的当前工作状态和系统预设的策略进行头解压缩流对象工作状态转移处理操作,包括以下步骤:
(a)根据所述的头解压器的当前工作模式初始化转换后工作状态对象,该当前工作模式为可以单向工作模式、双向优化工作模式或者双向可靠工作模式,该初始化转换后工作状态对象,包括以下步骤:
(i)如果头解压器的当前工作模式为单向工作模式,则初始化该转换后工作状态对象为头解压器单向模式无上下文状态对象、头解压器单向模式静态上下文状态对象或者头解压器单向模式全上下文状态对象;
(ii)如果头解压器的当前工作模式为双向优化工作模式,则初始化该转换后工作状态对象为头解压器双向优化模式无上下状态对象、头解压器双向优化模式静态上下文状态对象或者头解压器双向优化模式全上下文状态对象;
(iii)如果头解压器的当前工作模式为双向可靠工作模式,则初始化该转换后工作状态对象为头解压器双向可靠模式无上下状态对象、头解压器双向可靠模式静态上下文状态对象或者头解压器双向可靠模式全上下文状态对象;
(b)将所述的头解压缩流对象中的当前工作模式对象成员的当前工作状态对象成员设置为所述的转换后工作状态对象;
(c)从头解压器中删除原工作状态对象;
(3)在进行数据接收过程中,头解压器根据所接收到的反馈信息、头解压器的当前工作模式、头解压器的当前工作状态和系统预设的策略进行头解压缩流对象工作模式转移处理操作,包括以下步骤:
(a)初始化头解压器转换后工作模式对象,具体为:
可以初始化该头解压器转换后工作模式对象为头解压器单向工作模式对象、头解压器双向优化工作模式对象或者头解压器双向可靠工作模式对象;
(b)将头解压缩流对象中的当前工作模式对象成员设置为头解压器转换后工作模式对象;
(c)从头解压器中删除原头解压器工作模式对象;
在实际使用当中,通过观察分析三种工作模式和三种状态下压缩器和解压器的行为,可以发现它们存在以下共同点:
在不同的工作模式和状态下,压缩器/解压器与系统其余部分的交互是基本相同的;压缩器接受上层用户的头压缩请求,执行压缩过程,给出头压缩后的SDU,同时也接收解压器传来的反馈;解压器从对端接收头压缩之后的数据包,执行解压缩过程,将解压缩后的SDU传递给上层客户,同时向对端返回适当的响应。
不同工作模式/工作状态下压缩器/解压器的不同主要存在于下面几个方面:
●发送和接收的数据包的内容和格式不同;
●发送和接收数据的策略和状态转移的条件不同。
基于这一分析,本发明提出使用软件设计模式中的状态模式实现RFC3095算法。状态模式可以参见以下文献:
Erich Gamma,Richard Helm,Ralph Johnson,John Vlissides,《Design Patterns--Elements ofReusable Object-Oriented Software》。
本发明的实现方法使用面向对象的软件设计方法,设计了一族类,其对应的UML(UnifiedModel Language,通用建模语言)类图请参见图5所示。
其中,头压缩器模式类(RFC3095_CompressorMode)为头压缩器三种操作模式的基类,它为三种模式定义了统一的接口。它包含如下的成员:头压缩函数(compress)实现头压缩,反馈处理函数(processFeedback)实现来自头解压器的反馈信息的处理,模式初始化函数(enterMode)实现进入相应操作模式的初始化处理。状态切换函数(changeState)实现从一个状态切换到另一个的处理过程。这四个成员函数均为虚函数。
从RFC3095_CompressorMode类派生出三个具体的操作模式类:头压缩器单向模式类(RFC3095_CompressorU_Mode),头压缩器双向优化模式类(RFC3095_CompressorO_Mode)和头压缩器双向可靠模式类(RFC3095_CompressorR_Mode),分别表示单向模式,双向优化模式和双向可靠模式。这三个类均重写基类的上述虚函数,实现各个模式下的特有行为。
类似地,在每种操作模式下,都存在三种状态;同样,这三种状态下压缩器要做的操作也类似,因此可以再次运用状态模式。
相应地,头解压器的各种模式也是基于一个基类:头解压器模式类(RFC3095_DecompressorMode)。这个类包含下面的成员:头解压缩函数(decompress)完成头解压缩过程,状态切换函数(changeState)完成头解压缩器的处理,模式初始化函数(enterMode)完成进入模式的初始化过程。
从头解压器模式类派生出3个类:头解压器单向模式类(RFC3095_DecompressorU_Mode ),头解压器双向优化模式类(RFC3095_DecompressorO_Mode),头解压器双向可靠模式类(RFC3095_DecompressorR_Mode。这3个类分别对应头解压器的单向模式,双向优化模式和双向可靠模式。它们各自重写基类的3个虚函数,实现各自的特殊处理。
RFC3095压缩器将IP包分为包流(packet stream),因此本发明用头压缩流对象(RFC3095_CompressorStream对象)代表压缩器中的一个包流。因为每个包流都可能处于前述的三种工作模式中的一种模式下,所以头压缩流对象和某种头压缩模式对象(RFC3095_CompressorMode)相关联,如下面代码所示:
class RFC3095_CompressorStream
{
public:
int compress(DataHandle_t inputData,DataHandle_t*pOutputData);
void changeMode(RFC3095_CompMode_e newMode);
private:
RFC3095_CompressorMode*m_pCurrentMode;
};
头压缩流类提供了如下成员函数:
compress:压缩函数,此函数对指定的IP包进行RFC3095头压缩;
changeMode:改变模式,当模式发生变化时,此函数被调用。
头压缩模式类是所有压缩器模式类的虚基类,它提供了以下虚函数:
class RFC3095_CompressorMode
{
public:
virtual int compress(DataHandle_t inputData,DataHandle_t*pOutputData)=0;
virtual int processFeedback(DataHandle_t feedback)=0;
virtual void enterMode(void)=0;
virtual void changeState(RFC3095_State_e newState)=0;
protected:
RFC3095_CompressorStream*m_pStream;
};
如以上代码所示,头压缩模式类是虚基类,是不可以被实例化的。所有具体的模式类均为头压缩模式类的派生类,例如:
class RFC3095_CompressorU_Mode:public RFC3095_CompressorMode
{
public:
virtual int compress(DataHandle_t inputData,DataHandle_t*pOutputData);
virtual int processFeedback(DataHandle_t feedback);
virtual void enterMode(void);
virtual void changeState(RFC3095_State_e newState);
private:
RFC3095_CompressorU_ModeState*m_pCurState;
};
这些派生类都重写基类的虚函数,实现各自特殊的处理。
因为头压缩流对象在某一时刻必然处于某种模式下,所以它与一个具体的模式类对象关联,头压缩流对象的当前模式成员(m_pCurrentMode)即用于记录这种关联关系。在每种模式下,RFC3095的压缩处理不同,头压缩流类通过调用当前模式对象来执行头压缩。
请参阅图13所示,为头压缩流的初始化过程。其过程为:
(1)设置当前模式对象成员(m_pCurrentMode)为单向模式对象;
(2)初始化单向模式对象,将其当前状态成员(m_pCurState)设置为头压缩器单向模式IR状态对象。
头压缩流在每种模式下都处于一种状态,因而模式对象也与一个状态对象关联,以头压缩器单向模式类(RFC3095_CompressorU_Mode)为例,其m_pCurState成员即为当前状态对象的指针。不同的状态,其头压缩过程不同,因此模式对象会使用相应的状态对象压缩包头:
int RFC3095_CompressorU_Mode::compress(DataHandle_t inputData,
DataHandle_t*pOutputData)
{
return m_pCurState->compress(inputData,pOutputData);
}
状态对象实现实际的压缩/解压缩操作,同一种模式下的三种状态用同一基类的三个派生类表示,如图6、7、8、10、11、12所示。基类定义了状态类的接口函数,以RFC3095_CompressorU_ModeState为例:
class RFC3095_CompressorU_ModeState
{
public:
virtual int compress(DataHandle_t inputData,DataHandle_t*pOutputData)=0;
virtual int processFeedback(DataHandle_t feedback)=0;
virtual void enterState(void)=0;
protected:
RFC3095_CompressorU_Mode*m_pMode;
};
与RFC3095_CompressorMode和RFC3095_DecompressorMode类似,三种模式下的状态基类也都是虚基类。它们的派生类实现其虚函数,进行真正的RFC3095头压缩和解压缩处理。
图14描述了头压缩器(在任何模式下)从IR状态转移到FO状态的流程,其过程为:
(1)初始化FO状态对象。根据当前所处的模式,此FO状态对象可能是压缩器单向模式FO状态对象,压缩器双向优化模式FO状态对象或压缩器双向可靠模式FO状态对象;
(2)将当前模式对象的当前状态对象设置为前一步中初始化的FO状态对象;
(3)清除现有的IR状态对象。
图15描述了头压缩器从IR状态转移到SO状态的流程图,过程如下:
(1)初始化SO状态对象。根据当前所处的模式,此SO状态对象可能是压缩器单向模式SO状态对象,压缩器双向优化模式SO状态对象或压缩器双向可靠模式SO状态对象;
(2)将当前模式对象的当前状态对象设置为前一步中初始化的SO状态对象;
(3)清除现有的IR状态对象。
图16描述了头压缩器从SO状态转移到FO状态的流程图,过程如下:
(1)初始化FO状态对象。根据当前所处的模式,此FO状态对象可能是压缩器单向模式FO状态对象,压缩器双向优化模式FO状态对象或压缩器双向可靠模式FO状态对象;
(2)将当前模式对象的当前状态对象设置为前一步中初始化的FO状态对象;
(3)清除现有的SO状态对象。
图17描述了头压缩器从FO状态转移到SO状态的流程图,过程如下:
(1)初始化SO状态对象。根据当前所处的模式,此SO状态对象可能是压缩器单向模式SO状态对象,压缩器双向优化模式SO状态对象或压缩器双向可靠模式SO状态对象;
(2)将当前模式对象的当前状态对象设置为前一步中初始化的SO状态对象;
(3)清除现有的FO状态对象。
图18描述了头压缩器从FO状态转移到IR状态的流程图,过程如下:
(1)初始化IR状态对象。根据当前所处的模式,此IR状态对象可能是压缩器单向模式IR状态对象,压缩器双向优化模式IR状态对象或压缩器双向可靠模式IR状态对象;
(2)将当前模式对象的当前状态对象设置为前一步中初始化的IR状态对象;
(3)清除现有的FO状态对象。
图19描述了头压缩器从SO状态转移到IR状态的流程图,过程如下:
(1)初始化IR状态对象。根据当前所处的模式,此IR状态对象可能是压缩器单向模式IR状态对象,压缩器双向优化模式IR状态对象或压缩器双向可靠模式IR状态对象;
(2)将当前模式对象的当前状态对象设置为前一步中初始化的IR状态对象;
(3)清除现有的SO状态对象。
图20描述了头压缩器从单向模式转移到双向优化模式的流程图,过程如下:
(1)初始化头压缩器双向优化模式对象;
(2)将头压缩流的当前模式对象设置为前一步中初始化的双向优化模式对象;
(3)清除现有的头压缩器单向模式对象。
图21描述了头压缩器从双向优化模式转移到双向可靠模式的流程图,过程如下:
(1)初始化头压缩器双向可靠模式对象;
(2)将头压缩流的当前模式对象设置为前一步中初始化的双向可靠模式对象;
(3)清除现有的头压缩器双向优化模式对象。
图22描述了头压缩器从双向可靠模式转移到双向优化模式的流程图,过程如下:
(1)初始化头压缩器双向优化模式对象;
(2)将头压缩流的当前模式对象设置为前一步中初始化的双向优化模式对象;
(3)清除现有的头压缩器双向可靠模式对象。
图23描述了头压缩器从双向优化模式转移到单向模式的流程图,过程如下:
(1)初始化头压缩器单向模式对象;
(2)将头压缩流的当前模式对象设置为前一步中初始化的单向模式对象;
(3)清除现有的头压缩器双向优化模式对象。
图24描述了头压缩器从双向可靠模式转移到单向模式的流程图,过程如下:
(1)初始化头压缩器单向模式对象;
(2)将头压缩流的当前模式对象设置为前一步中初始化的单向模式对象;
(3)清除现有的头压缩器双向可靠模式对象。
图9是头解压缩器的模式类图。与头压缩器类似,每个头解压器流对象也与一个头解压器模式对象关联;头解压缩的3种模式对应的类也派生自一个基类:头解压器模式(RFC3095_DecompressorMode)。
与头压缩器相似,每种头解压器模式下都有3种状态,它们分别用3个状态类表示。图10、图11和图12分别描绘了3种头解压模式下的状态类。
图25为头解压缩流的初始化过程。其过程为:
(1)设置当前模式对象成员为头解压器单向模式对象;
(2)初始化单向模式对象,将其当前状态成员设置为头解压缩器单向模式NC状态对象。
图26是头解压器从NC状态转移到FC状态的流程图,其过程为:
(1)初始化FC状态对象。根据当前所处的模式,此FC状态对象可能是头解压器单向模式FC状态对象,头解压器双向优化模式FC状态对象或头解压器双向可靠模式FC状态对象;
(2)将当前模式对象的当前状态对象设置为前一步中初始化的FC状态对象;
(3)清除现有的NC状态对象。
图27是头解压器从FC状态转移到SC状态的流程图,其过程为:
(1)初始化SC状态对象。根据当前所处的模式,此SC状态对象可能是头解压器单向模式SC状态对象,头解压器双向优化模式SC状态对象或头解压器双向可靠模式SC状态对象;
(2)将当前模式对象的当前状态对象设置为前一步中初始化的SC状态对象;
(3)清除现有的FC状态对象。
图28是头解压器从SC状态转移到FC状态的流程图,其过程为:
(1)初始化FC状态对象。根据当前所处的模式,此FC状态对象可能是头解压器单向模式FC状态对象,头解压器双向优化模式FC状态对象或头解压器双向可靠模式FC状态对象;
(2)将当前模式对象的当前状态对象设置为前一步中初始化的FC状态对象;
(3)清除现有的SC状态对象;
图29是头解压器从SC状态转移到NC状态的流程图,其过程为:
(1)初始化NC状态对象。根据当前所处的模式,此NC状态对象可能是头解压器单向模式NC状态对象,头解压器双向优化模式NC状态对象或头解压器双向可靠模式NC状态对象;
(2)将当前模式对象的当前状态对象设置为前一步中初始化的NC状态对象;
(3)清除现有的SC状态对象;
图30描述了头解压器从单向模式转移到双向优化模式的流程图,过程如下:
(1)初始化头解压器双向优化模式对象;
(2)将头解压流的当前模式对象设置为前一步中初始化的双向优化模式对象;
(3)清除现有的头解压器单向模式对象。
图31描述了头解压器从双向优化模式转移到双向可靠模式的流程图,过程如下:
(1)初始化头解压缩器双向可靠模式对象;
(2)将头解压缩流的当前模式对象设置为前一步中初始化的双向可靠模式对象;
(3)清除现有的头解压缩器双向优化模式对象。
图32描述了头解压器从双向可靠模式转移到双向优化模式的流程图,过程如下:
(1)初始化头解压缩器双向优化模式对象;
(2)将头解压缩流的当前模式对象设置为前一步中初始化的双向优化模式对象;
(3)清除现有的头解压缩器双向可靠模式对象。
图33描述了头解压器从双向优化模式转移到单向模式的流程图,过程如下:
(1)初始化头解压缩器单向模式对象;
(2)将头解压缩流的当前模式对象设置为前一步中初始化的单向模式对象;
(3)清除现有的头解压缩器双向优化模式对象;
图34描述了头解压器从单向模式转移到双向可靠模式的流程图,过程如下:
(1)初始化头解压缩器双向可靠模式对象;
(2)将头解压缩流的当前模式对象设置为前一步中初始化的双向可靠模式对象;
(3)清除现有的头解压缩器单向模式对象;
图35描述了头解压器从双向可靠模式转移到单向模式的流程图,过程如下:
(1)初始化头解压缩器单向模式对象;
(2)将头解压缩流的当前模式对象设置为前一步中初始化的单向模式对象;
(3)清除现有的头解压缩器双向可靠模式对象。
采用了上述的第三代移动通信系统包数据聚合协议报头压缩的实现方法,由于其中使用了软件设计模式中的状态模式,使得其完全实现了在复杂状况下的包数据聚合压缩工作模式和工作状态的灵活切换,同时头压缩器和头解压器的各个工作模式的各个工作状态下的行为被隔离到各自相应的类中,使得彼此之间互不干扰,并且使系统的构造、调试和维护较为容易,不仅如此,本发明的实现方法的执行过程快捷方便,系统运行效率较高,工作性能稳定可靠,适用范围较为广泛,为第三代移动通信技术的进一步发展奠定了坚实的基础。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。
Claims (13)
1、一种第三代移动通信系统包数据聚合协议报头压缩的实现方法,所述的系统中包括数据发送端的头压缩器和数据接收端的头解压器,其特征在于,所述的方法包括头压缩器数据压缩处理操作和头解压器数据解压处理操作,所述的头压缩器数据压缩处理操作包括以下步骤:
(A1)头压缩器进行头压缩流对象初始化操作;
(A2)在进行数据发送过程中,头压缩器根据所接收到的反馈信息、头压缩器的当前工作模式、头压缩器的当前工作状态和系统预设的策略进行头压缩流对象工作状态转移处理操作;
(A3)在进行数据发送过程中,头压缩器根据所接收到的反馈信息、头压缩器的当前工作模式、头压缩器的当前工作状态和系统预设的策略进行头压缩流对象工作模式转移处理操作;
所述的头解压器数据解压处理操作包括以下步骤:
(B1)头解压器进行头解压缩流对象初始化操作;
(B2)在进行数据接收过程中,头解压器根据所接收到的反馈信息、头解压器的当前工作模式、头解压器的当前工作状态和系统预设的策略进行头解压缩流对象工作状态转移处理操作;
(B3)在进行数据接收过程中,头解压器根据所接收到的反馈信息、头解压器的当前工作模式、头解压器的当前工作状态和系统预设的策略进行头解压缩流对象工作模式转移处理操作。
2、根据权利要求1所述的第三代移动通信系统包数据聚合协议报头压缩的实现方法,其特征在于,所述的头压缩流对象初始化操作,包括以下步骤:
(A11)设置头压缩流对象中的当前工作模式对象成员为单向工作模式对象;
(A12)初始化该单向工作模式对象,将该单向工作模式对象中的当前工作状态对象成员设置为头压缩器单向模式初始化和刷新状态对象。
3、根据权利要求1所述的第三代移动通信系统包数据聚合协议报头压缩的实现方法,其特征在于,所述的头压缩流对象工作状态转移处理操作,包括以下步骤:
(A21)根据所述的头压缩器的当前工作模式初始化转换后工作状态对象;
(A22)将所述的头压缩流对象中的当前工作模式对象成员的当前工作状态对象成员设置为所述的转换后工作状态对象;
(A23)从头压缩器中删除原工作状态对象。
4、根据权利要求3所述的第三代移动通信系统包数据聚合协议报头压缩的实现方法,其特征在于,所述的头压缩器的当前工作模式为单向工作模式、双向优化工作模式或者双向可靠工作模式。
5、根据权利要求4所述的第三代移动通信系统包数据聚合协议报头压缩的实现方法,其特征在于,所述的初始化转换后工作状态对象,包括以下步骤:
(A211)如果头压缩器的当前工作模式为单向工作模式,则初始化该转换后工作状态对象为头压缩器单向模式初始化和刷新状态对象、头压缩器单向模式一阶状态对象或者头压缩器单向模式二阶状态对象;
(A212)如果头压缩器的当前工作模式为双向优化工作模式,则初始化该转换后工作状态对象为头压缩器双向优化模式初始化和刷新状态对象、头压缩器双向优化模式一阶状态对象或者头压缩器双向优化模式二阶状态对象;
(A213)如果头压缩器的当前工作模式为双向可靠工作模式,则初始化该转换后工作状态对象为头压缩器双向可靠模式初始化和刷新状态对象、头压缩器双向可靠模式一阶状态对象或者头压缩器双向可靠模式二阶状态对象。
6、根据权利要求1所述的第三代移动通信系统包数据聚合协议报头压缩的实现方法,其特征在于,所述的头压缩流对象工作模式转移处理操作,包括以下步骤:
(A31)初始化头压缩器转换后工作模式对象;
(A32)将头压缩流对象中的当前工作模式对象成员设置为头压缩器转换后工作模式对象;
(A33)从头压缩器中删除原头压缩器工作模式对象。
7、根据权利要求6所述的第三代移动通信系统包数据聚合协议报头压缩的实现方法,其特征在于,所述的初始化头压缩器转换后工作模式对象,具体为:
初始化该头压缩器转换后工作模式对象为头压缩器单向工作模式对象、头压缩器双向优化工作模式对象或者头压缩器双向可靠工作模式对象。
8、根据权利要求1所述的第三代移动通信系统包数据聚合协议报头压缩的实现方法,其特征在于,所述的头解压缩流对象初始化操作,包括以下步骤:
(B11)设置头解压缩流对象中的当前工作模式对象成员为单向工作模式对象;
(B12)初始化该单向工作模式对象,将该单向工作模式对象中的当前工作状态对象成员设置为头解压器单向模式初始化和刷新状态对象。
9、根据权利要求1所述的第三代移动通信系统包数据聚合协议报头压缩的实现方法,其特征在于,所述的头解压缩流对象工作状态转移处理操作,包括以下步骤:
(B21)根据所述的头解压器的当前工作模式初始化转换后工作状态对象;
(B22)将所述的头解压缩流对象中的当前工作模式对象成员的当前工作状态对象成员设置为所述的转换后工作状态对象;
(B23)从头解压器中删除原工作状态对象。
10、根据权利要求9所述的第三代移动通信系统包数据聚合协议报头压缩的实现方法,其特征在于,所述的头解压器的当前工作模式为单向工作模式、双向优化工作模式或者双向可靠工作模式。
11、根据权利要求10所述的第三代移动通信系统包数据聚合协议报头压缩的实现方法,其特征在于,所述的初始化转换后工作状态对象,包括以下步骤:
(B211)如果头解压器的当前工作模式为单向工作模式,则初始化该转换后工作状态对象为头解压器单向模式无上下文状态对象、头解压器单向模式静态上下文状态对象或者头解压器单向模式全上下文状态对象;
(B212)如果头解压器的当前工作模式为双向优化工作模式,则初始化该转换后工作状态对象为头解压器双向优化模式无上下状态对象、头解压器双向优化模式静态上下文状态对象或者头解压器双向优化模式全上下文状态对象;
(B213)如果头解压器的当前工作模式为双向可靠工作模式,则初始化该转换后工作状态对象为头解压器双向可靠模式无上下状态对象、头解压器双向可靠模式静态上下文状态对象或者头解压器双向可靠模式全上下文状态对象。
12、根据权利要求1所述的第三代移动通信系统包数据聚合协议报头压缩的实现方法,其特征在于,所述的头解压缩流对象工作模式转移处理操作,包括以下步骤:
(B31)初始化头解压器转换后工作模式对象;
(B32)将头解压缩流对象中的当前工作模式对象成员设置为头解压器转换后工作模式对象;
(B33)从头解压器中删除原头解压器工作模式对象。
13、根据权利要求12所述的第三代移动通信系统包数据聚合协议报头压缩的实现方法,其特征在于,所述的初始化头解压器转换后工作模式对象,具体为:
初始化该头解压器转换后工作模式对象为头解压器单向工作模式对象、头解压器双向优化工作模式对象或者头解压器双向可靠工作模式对象。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810041588A CN101651655A (zh) | 2008-08-12 | 2008-08-12 | 第三代移动通信系统包数据聚合协议报头压缩的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810041588A CN101651655A (zh) | 2008-08-12 | 2008-08-12 | 第三代移动通信系统包数据聚合协议报头压缩的实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101651655A true CN101651655A (zh) | 2010-02-17 |
Family
ID=41673769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810041588A Pending CN101651655A (zh) | 2008-08-12 | 2008-08-12 | 第三代移动通信系统包数据聚合协议报头压缩的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101651655A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102740357A (zh) * | 2012-06-14 | 2012-10-17 | 中兴通讯股份有限公司 | R模式so态鲁棒性头压缩方法和装置 |
CN114531494A (zh) * | 2022-03-03 | 2022-05-24 | 重庆邮电大学 | 一种基于跨层优化的无线网络协议头压缩方法 |
-
2008
- 2008-08-12 CN CN200810041588A patent/CN101651655A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102740357A (zh) * | 2012-06-14 | 2012-10-17 | 中兴通讯股份有限公司 | R模式so态鲁棒性头压缩方法和装置 |
CN102740357B (zh) * | 2012-06-14 | 2018-04-27 | 中兴通讯股份有限公司 | R模式so态鲁棒性头压缩方法和装置 |
CN114531494A (zh) * | 2022-03-03 | 2022-05-24 | 重庆邮电大学 | 一种基于跨层优化的无线网络协议头压缩方法 |
CN114531494B (zh) * | 2022-03-03 | 2023-09-15 | 广东成学在线科技有限公司 | 一种基于跨层优化的无线网络协议头压缩方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9900259B2 (en) | Data transmission method and related apparatus to compress data to be transmitted on a network | |
CN100525289C (zh) | 用于voip无线终端的系统和方法 | |
EP2284722B1 (en) | Methods and apparatus for generating graphical and media displays at a client | |
US20100011012A1 (en) | Selective Compression Based on Data Type and Client Capability | |
CN103501310B (zh) | 一种基于可视电话的电脑桌面共享的控制方法 | |
CN1462534A (zh) | 在头字段压缩中定义上下文标识符 | |
KR20030040499A (ko) | 데이터 패킷 처리 방법 | |
WO1995010150A1 (en) | Method and apparatus for connecting a node to a wireless network using a standard protocol | |
CN101986648A (zh) | 一种tcp选项的协商方法、装置及网络设备 | |
CN100433841C (zh) | 用于因特网协议第6版移动子协议MIPv6的鲁棒性头标压缩/解压方法 | |
CN101651655A (zh) | 第三代移动通信系统包数据聚合协议报头压缩的实现方法 | |
JP5617920B2 (ja) | 通信システムと方法と装置 | |
WO2005039150A1 (ja) | 通信装置およびその通信方法ならびにプログラム | |
CN101197825B (zh) | 一种传输压缩消息的方法、系统及设备 | |
Yarvis et al. | Conductor: Distributed adaptation for complex networks | |
CN112335203B (zh) | 处理局域网诊断数据 | |
Akter et al. | Hardware implementations of an image compressor for mobile communications | |
Boggia et al. | ROHC+: A new header compression scheme for TCP streams in 3G wireless systems | |
CN105072057B (zh) | 一种用于网络数据传输的中间交换设备及其方法和系统 | |
CN101388905B (zh) | 一种基于移动设备的简单对象访问协议引擎实现方法 | |
CN103561282B (zh) | 流媒体文件的数据传输方法和装置 | |
Woodward et al. | Wireless 3d cad viewing on a pda device | |
Chan et al. | Next-generation wireless data services: Architecture and experience | |
CN110651457B (zh) | 用于学习压缩/解压缩上下文的方法、设备和介质 | |
CN101026586A (zh) | 用于voip无线终端的系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20100217 |