首页> 中国专利> 实现移动通信无线Modem终端点对点协议数据传输优化的方法

实现移动通信无线Modem终端点对点协议数据传输优化的方法

摘要

本发明涉及一种实现移动通信无线Modem终端点对点协议数据传输优化的方法,终端设备向无线Modem的数据传输处理包括终端设备将下行数据包进行PPP封装、终端设备侧驱动程序层对数据包进行解析并进行UDF封装、将数据包送至Modem、Modem侧驱动程序层对数据包进行UDF解析及后续处理;无线Modem向终端设备的数据传输处理包括Modem将上行数据包在驱动程序层进行UDF封装、将数据包送至终端设备、终端设备侧驱动程序对数据包进行UDF解析及PPP封装、PPP层对数据包进行解析及后续处理。采用该种实现移动通信无线Modem终端点对点协议数据传输优化的方法,降低了Modem终端的CPU占用率,节省了硬件系统资源,工作性能稳定可靠,能广泛适用于第二代和第三代移动通信系统。

著录项

  • 公开/公告号CN101741656A

    专利类型发明专利

  • 公开/公告日2010-06-16

    原文格式PDF

  • 申请/专利权人 上海摩波彼克半导体有限公司;

    申请/专利号CN200810202628.4

  • 申请日2008-11-12

  • 分类号H04L12/28(20060101);H04L29/06(20060101);

  • 代理机构31002 上海智信专利代理有限公司;

  • 代理人王洁;郑暄

  • 地址 201204 上海市浦东新区张衡路180弄1号楼4F

  • 入库时间 2023-12-18 00:31:18

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-11-11

    专利权的转移 IPC(主分类):H04L12/28 专利号:ZL2008102026284 登记生效日:20221028 变更事项:专利权人 变更前权利人:芯集租赁(天津)有限责任公司 变更后权利人:展讯通信(上海)有限公司 变更事项:地址 变更前权利人:300456 天津自贸试验区(东疆保税港区)亚洲路6865号金融贸易中心北区1-1-1802-7 变更后权利人:201203 上海市浦东新区张江高科技园区祖冲之路2288弄展讯中心1号楼

    专利申请权、专利权的转移

  • 2018-08-24

    专利实施许可合同备案的生效 IPC(主分类):H04L12/28 合同备案号:2018990000196 让与人:芯集租赁(天津)有限责任公司 受让人:展讯通信(上海)有限公司 发明名称:实现移动通信无线Modem终端点对点协议数据传输优化的方法 申请公布日:20100616 授权公告日:20120111 许可种类:独占许可 备案日期:20180801 申请日:20081112

    专利实施许可合同备案的生效、变更及注销

  • 2018-05-01

    专利权的转移 IPC(主分类):H04L12/28 登记生效日:20180411 变更前: 变更后: 申请日:20081112

    专利申请权、专利权的转移

  • 2017-08-01

    专利权人的姓名或者名称、地址的变更 IPC(主分类):H04L12/28 变更前: 变更后: 申请日:20081112

    专利权人的姓名或者名称、地址的变更

  • 2017-07-07

    专利权的转移 IPC(主分类):H04L12/28 登记生效日:20170620 变更前: 变更后: 申请日:20081112

    专利申请权、专利权的转移

  • 2012-01-11

    授权

    授权

  • 2010-09-01

    实质审查的生效 IPC(主分类):H04L12/28 申请日:20081112

    实质审查的生效

  • 2010-06-16

    公开

    公开

查看全部

说明书

技术领域

本发明涉及移动通信技术领域,特别涉及可做为Modem设备的移动通信终端技术领域,具体是指一种实现移动通信无线Modem终端点对点协议数据传输优化的方法。

背景技术

现代通信正朝宽带化、智能化、个人化以及业务综合化的方向发展。为了满足人们对通信速率日益增长的需求,以GSM为代表的第二代无线移动通信系统在全球范围内正以很快的速度向以WCDMA等为代表的第三代无线移动通信系统过渡。

无线Modem终端的速率也不断提高。以WCDMA(带HSDPA)的数据卡为例,下行速率正在不断靠近14.4Mbps的下行理论值,目前已有下行速率为7Mbps的商用数据卡。在如此不断升高的速率下,CPU的负担无疑会越来越重,尤其是在Modem中PPP模块的压力也会随着速率而成比例上升。

PPP协议,即Point-to-Point Protocol(点对点协议),是为在同等单元之间传输数据包这样的简单链路设计的链路层协议。这种链路提供全双工操作,并按照顺序传递数据包。设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。

PPP协议主要由以下几部分组成:

(1)封装:一种封装多协议数据报的方法。PPP封装提供了不同网络层协议同时在同一链路传输的多路复用技术。PPP封装精心设计,能保持对大多数常用硬件的兼容性。PPP数据帧的格式请参阅图1所示。每一帧都以标志字符0x7E(0x表示7E为十六进制数)开始和结束。PPP帧的前3个字段中,标志字段F为0x7E,地址字段A和控制字段C都是固定不变的,分别为0xFF、0x03。PPP协议不是面向比特的,因而所有的PPP帧长度都是整数个字节。协议字段不同,后面的信息字段类型就不同,如:

●值为0x0021时,表示信息字段是一个IP数据报;

●值为0xc021时,表示信息字段是链路控制数据;

●值为0x8021时,表示信息字段是网络控制数据。

PPP帧协议字段值的含义详见图2所示。FCS字段(帧检验序列)是一个循环冗余检验码,用来检测数据帧中的错误,FCS字段是对包的所有字节进行扫描计算后得到。计算方法可按照RFC1662-APPENDICES-C.2Fast Frame Check Sequence(FCS)Implementation中的方法。

由于标志字符的值是0x7e,因此当该字符出现在信息字段中时,PPP需要对它进行转义。

具体的转义实现过程如下:

(a)当遇到字符0x7e时,需连续传送两个字符:0x7d和0x5e,以实现标志字符的转义。

(b)当遇到转义字符0x7d时,需连续传送两个字符:0x7d和0x5d,以实现转义字符的转义。

(c)默认情况下,如果字符的值小于0x20(比如,一个ASCII控制字符),一般都要进行转义。例如,遇到字符0x01时需连续传送0x7d和0x21两个字符(这时,第6个比特取补码后变为1,而前面两种情况均把它变为0)。

PPP封装过程可按照RFC1662-3.The Data Link Layer以及RFC1661-2.PPP Encapsulation中的方法。

(2)链路控制协议:PPP提供的LCP功能全面,适用于大多数环境。LCP用于就封装格式选项自动达成一致,处理数据包大小限制,探测环路链路和其他普通的配置错误,以及终止链路。LCP提供的其他可选功能有:认证链路中对等单元的身份,决定链路功能正常或链路失败情况。

(3)网络控制协议:一种扩展链路控制协议,用于建立、配置、测试和管理数据链路连接。

(4)配置:使用链路控制协议的简单和自制机制。该机制也应用于其它控制协议,如:网络控制协议(NCP)。

目前,多数Modem终端协议栈中都包含有PPP协议,Modem有命令状态与数据状态,在命令状态下,TE(Terminal Equipment,如与Modem相连的PC机等)与Modem之间的数据为AT命令,在数据状态下,TE与Modem之间的数据为PPP帧。Modem初始状态为命令状态,当TE发送拨号命令(如ATD)或进入数据状态命令(如AT+CGDATA),并被成功执行后,Modem返回成功响应(如CONNECT),两侧均进入数据状态。TE与Modem之间的AT命令集参见协议ITU-T V.250Serial asynchronous automatic dialling and control。进入数据状态后,TE与Modem之间的数据为PPP帧,并按照PPP的规程进行协商,协商完成后则开始数据传输。PPP协商规程参见RFC1661、RFC1662、RFC1332。

Modem与TE之间的一般交互过程如下:

(1)TE到Modem方向

在数据状态下,TE侧的数据包(如IP包/LCP包/IPCP包等),从TE侧的TCP/IP协议栈送到TE侧的PPP层,在PPP层对数据包进行封装、计算FCS以得到PPP帧,再将PPP帧送到TE侧驱动程序,驱动程序会将数据发送到物理链路(可以为串行链接,或usb链接,第二代以及第三代无线Modem终端大多使用USB链接以满足高速率的需求)上去。Modem侧收到PPP帧后,在PPP层进行去转义,以及计算FCS。若计算得到的FCS与PPP帧尾中的FCS相同,则帧正确,得到PPP帧中的数据包;否则为错误的PPP帧,可丢弃。若PPP帧中的数据包为用户数据(如IP包),则将IP包交给PPP上层处理。若PPP帧中的数据包为协商包(如LCP包/IPCP包),则按照PPP协商规程在PPP层内部进行处理。

在命令状态下,TE将AT命令交给TE侧驱动程序,由驱动程序发送到物理链路上。Modem收到AT命令后,将会交给AT命令解析器进行解析处理。

(2)Modem到TE方向

在数据状态下,Modem发往PC的数据包(如IP包/LCP包/IPCP包等)经过转义,计算FCS后,生成PPP帧,然后通过物理链路发往TE侧。TE侧收到PPP帧后,在PPP层进行去转义,计算FCS。若计算得到的FCS与PPP帧尾中的FCS相同,则帧正确,得到PPP帧中的数据包;否则为错误的PPP帧,可丢弃。若PPP帧中的数据包为用户数据(如IP包),则将IP包交给TE侧PPP上层的TCP/IP协议栈进行处理。若PPP帧中的数据包为协商包(如LCP包/IPCP包),则按照PPP协商规程在TE侧PPP层内部进行处理。

在命令状态下,Modem中AT命令解析器处理完收到AT命令后,将AT命令结果码发回到物理链路上。TE通过结果码知道AT命令是否执行成功。

(3)状态切换

命令状态到数据状态:TE发送拨号命令(如ATD)或进入数据状态命令(如AT+CGDATA),Modem收到并成功处理后,返回成功结果码(如CONNECT)之后,两侧均进入数据状态。参见协议ITU-T V.250Serial asynchronous automatic dialling and control协议。

数据状态到命令状态:TE或Modem中的任一方向对方发送结束协商包(如LCP TerminateReqest),另一方收到后返回确认包(如LCP Terminate ACK),随后双方均返回命令状态。

数据状态下,Modem与TE的数据交互过程请参阅图3所示。

综上所述,在数据状态下,TE与Modem之间物理链路上的数据均为PPP帧,在Modem中,对数据包的转义去转义包括对所有字节进行扫描,并且运算FCS,因此,Modem协议栈中PPP层对CPU的占有率将会随着速率的提高成比例的增大,尤其在第三代无线Modem终端中,高速的下行速率将会使Modem PPP层的CPU占有率变得很高。

在使用通用CPU的Modem终端设备中,一般硬件不会提供对PPP转义以及去转义的支持,因此,PPP CPU占有率高的问题将会在高速Modem终端设备中变得很突出。同时,在第二代,第三代无线高速Modem终端与PC大都采用高速稳定以及低误码率的硬件接口(如USB接口),在这样的物理链路上传输数据,其误码率几乎可以忽略。因此,在Modem侧遍历数据包的所有内容,计算FCS,通过物理链路发往PC,在PC侧再进行遍历,并计算FCS以判断包的正确性,对于Modem终端来说,这种方法的效率和性能非常低,无法适应高速数据传输的需要,而且会使得投入产出比变得很大,从而增加了硬件的设计和制造成本,不利于移动通信技术的推广和应用

发明内容

本发明的目的是克服了上述现有技术中的缺点,提供一种能在高数据速率下有效降低无线Modem终端中CPU的负担、节省硬件系统资源、实现过程简单方便、工作性能稳定可靠、能够广泛适用于第二代和第三代移动通信系统的实现移动通信无线Modem终端点对点协议数据传输优化的方法。

为了实现上述的目的,本发明的实现移动通信无线Modem终端点对点协议数据传输优化的方法如下:

该实现移动通信无线Modem终端点对点协议数据传输优化的方法,所述的无线Modem终端包括无线Modem和通过物理链路与该无线Modem相连接的终端设备,其主要特点是,所述的方法包括终端设备向无线Modem的数据传输处理操作和无线Modem向终端设备的数据传输处理操作,所述的终端设备向无线Modem的数据传输处理操作,包括以下步骤:

(1)终端设备将需要发送到无线Modem的下行数据包在点对点协议层进行点对点协议封装处理,并将得到的点对点协议数据包送至终端设备侧的驱动程序层;

(2)所述的终端设备侧的驱动程序层对收到的点对点协议数据包进行解析处理,并将得到的下行数据包进行用户自定义帧格式封装处理;

(3)所述的终端设备将得到的用户自定义帧格式数据包通过物理链路送至所述的无线Modem;

(4)所述的无线Modem侧的驱动程序层对接收到的用户自定义帧格式数据包进行用户自定义帧格式解析处理,得到该下行数据包;

(5)无线Modem根据该下行数据包的类型进行相应的后续处理操作;

所述的无线Modem向终端设备的数据传输处理操作,包括以下步骤:

(1)无线Modem将需要发送到终端设备的上行数据包在无线Modem侧的驱动程序层进行用户自定义帧格式封装处理;

(2)所述的无线Modem将得到的用户自定义帧格式数据包通过物理链路送至所述的终端设备;

(3)所述的终端设备侧的驱动程序对接收到的用户自定义帧格式数据包进行用户自定义帧格式解析处理,并将得到的上行数据包进行点对点协议封装处理;

(4)所述的终端设备将得到的点对点协议数据包送至点对点协议层;

(5)所述终端设备的点对点协议层对该点对点协议数据包进行解析处理,得到该上行数据包;

(6)终端设备根据该上行数据包的类型进行相应的后续处理操作。

该实现移动通信无线Modem终端点对点协议数据传输优化的方法中的用户自定义帧格式数据包包括用户自定义帧头和用户数据段。

该实现移动通信无线Modem终端点对点协议数据传输优化的方法中的用户自定义帧头包括前导码字段、用户数据长度字段、用户数据类型字段与校验和字段。

该实现移动通信无线Modem终端点对点协议数据传输优化的方法中的用户自定义帧头中的前导码字段为4个字节,用户数据长度字段为2个字节、用户数据类型字段为1个字节,校验和字段为2个字节。

该实现移动通信无线Modem终端点对点协议数据传输优化的方法中的用户自定义帧格式封装处理,包括以下步骤:

(11)将需要进行封装的数据包填入用户数据段;

(12)将该需要进行封装的数据包的实际长度信息填入所述的用户自定义帧头中的用户数据长度字段中;

(13)将该需要进行封装的数据包的类型信息填入所述的用户自定义帧头中的用户数据类型字段中;

(14)根据所述的用户自定义帧头中的字段信息计算校验和,并填入所述的校验和字段中,得到用户自定义帧格式数据包。

该实现移动通信无线Modem终端点对点协议数据传输优化的方法中的用户自定义帧头中还可以包括有保留字节,所述的用户自定义帧格式封装处理中的步骤(14)之前还可以包括以下步骤:

(131)将该保留字节设置为0;

所述的步骤(14)具体为:

根据所述的用户自定义帧头中的用户数据长度字段、用户数据类型字段和保留字节计算校验和,并填入所述的校验和字段中。

该实现移动通信无线Modem终端点对点协议数据传输优化的方法中的用户自定义帧格式解析处理,包括以下步骤:

(21)将对需要进行解析的数据包进行遍历搜索;

(22)如果搜索到与预设的用户自定义帧头中的前导码字段相匹配的字段,则依次向后解析出用户数据长度字段、用户数据类型字段、保留字节与校验和字段;

(23)根据得到的用户自定义帧头中的用户数据长度字段、用户数据类型字段、保留字节计算校验和,并与所得到的校验和字段进行比较;

(24)如果两者不相等,则返回步骤(21);

(25)如果两者相等,则根据用户数据长度字段中的长度信息提取用户数据段中的数据信息,得到解析后的真实数据包。

该实现移动通信无线Modem终端点对点协议数据传输优化的方法中的上行数据包可以为由所述的无线Modem中的点对点协议层产生的数据包或者从该无线Modem的对等侧发来的数据包。

该实现移动通信无线Modem终端点对点协议数据传输优化的方法中的下行数据包可以为需要由所述的无线Modem中的点对点协议层进行处理的数据包或者需要向该无线Modem的对等侧发送的数据包。

该实现移动通信无线Modem终端点对点协议数据传输优化的方法中的无线Modem根据该下行数据包的类型进行相应的后续处理操作,包括以下步骤:

(31)如果该下行数据包为需要向该无线Modem的对等侧发送的数据包,则无线Modem的点对点协议层直接将该下行数据包发送给Modem的协议栈上层进行数据发送处理;

(32)如果该下行数据包括为需要由无线Modem中的点对点协议层进行处理的数据包,则无线Modem的点对点协议层直接对该下行数据包进行处理。

采用了该发明的实现移动通信无线Modem终端点对点协议数据传输优化的方法,由于其中将无线Modem终端中的PPP层的处理放在终端设备侧(PC侧)的驱动程序中,PC与Modem终端之间使用一种用户自定义的协议来传输数据,即按照用户自定义的包格式(UDF,UserDefined Frame Format)来封装数据包,而不使用PPP协议对数据包进行封装,由于UDF包不使用特定字符作为帧边界,而是使用特殊的模式和包头中的长度域取代,即根据长度域的值决定包的边界;而且UDF不对整个用户数据计算FCS,而是仅仅针对UDF包头(仅10字节)做校验,校验的计算方法也采用开销较小的TCP校验和算法,从而大大提高了无线Modem侧的PPP层的处理速度,而且由于省去了Modem终端对PPP帧的转义去转义以及遍历包的所有字节并计算FCS,而将这部分工作放在Modem对等侧(如PC侧)来做,从而大大降低了Modem终端的PPP层对CPU的占有率使其能在高数据速率下有效降低无线Modem终端中CPU的负担,节省了硬件系统资源,而且实现过程简单方便,工作性能稳定可靠,能够广泛适用于第二代和第三代移动通信系统,为移动通信技术的进一步推广应用奠定了坚实的基础。

附图说明

图1为现有技术中的PPP帧结构示意图。

图2为现有技术中的PPP帧协议字段值对应的包类型示意图。

图3为现有技术中的常规情况下PC与Modem的数据交互过程示意图。

图4为本发明的实现移动通信无线Modem终端点对点协议数据传输优化的方法中的UDF包格式示意图。

图5为本发明的实现移动通信无线Modem终端点对点协议数据传输优化的方法中UDF包中用户数据类型字段值的含义示意图。

图6为本发明的实现移动通信无线Modem终端点对点协议数据传输优化的方法中PC向Modem发送IP包的数据处理过程示意图。

图7为本发明的实现移动通信无线Modem终端点对点协议数据传输优化的方法中Modem向PC发送IP包的数据处理过程示意图。

具体实施方式

为了能够更清楚地理解本发明的技术内容,特举以下实施例详细说明。

请参阅图4至图7所示,该实现移动通信无线Modem终端点对点协议数据传输优化的方法,所述的无线Modem终端包括无线Modem和通过物理链路与该无线Modem相连接的终端设备,其中,所述的方法包括终端设备向无线Modem的数据传输处理操作和无线Modem向终端设备的数据传输处理操作,所述的终端设备向无线Modem的数据传输处理操作,包括以下步骤:

(1)终端设备将需要发送到无线Modem的下行数据包在点对点协议层进行点对点协议封装处理,并将得到的点对点协议数据包送至终端设备侧的驱动程序层;该上行数据包可以为由所述的无线Modem中的点对点协议层产生的数据包或者从该无线Modem的对等侧发来的数据包;

(2)所述的终端设备侧的驱动程序层对收到的点对点协议数据包进行解析处理,并将得到的下行数据包进行用户自定义帧格式封装处理;该用户自定义帧格式数据包包括用户自定义帧头和用户数据段,该用户自定义帧头包括前导码字段、用户数据长度字段、用户数据类型字段与校验和字段,该用户自定义帧头中的前导码字段为4个字节,用户数据长度字段为2个字节、用户数据类型字段为1个字节,校验和字段为2个字节;该用户自定义帧格式封装处理,包括以下步骤:

(a)将需要进行封装的数据包填入用户数据段;

(b)将该需要进行封装的数据包的实际长度信息填入所述的用户自定义帧头中的用户数据长度字段中;

(c)将该需要进行封装的数据包的类型信息填入所述的用户自定义帧头中的用户数据类型字段中;

其中,该用户自定义帧头中还可以包括有保留字节,上述的步骤(c)之后还可以包括以下步骤:

(c1)将该保留字节设置为0;

(d)根据所述的用户自定义帧头中的字段信息计算校验和,并填入所述的校验和字段中,得到用户自定义帧格式数据包,具体为:

根据所述的用户自定义帧头中的用户数据长度字段、用户数据类型字段和保留字节计算校验和,并填入所述的校验和字段中;

(3)所述的终端设备将得到的用户自定义帧格式数据包通过物理链路送至所述的无线Modem;

(4)所述的无线Modem侧的驱动程序层对接收到的用户自定义帧格式数据包进行用户自定义帧格式解析处理,得到该下行数据包;该用户自定义帧格式解析处理,包括以下步骤:

(a)将对需要进行解析的数据包进行遍历搜索;

(b)如果搜索到与预设的用户自定义帧头中的前导码字段相匹配的字段,则依次向后解析出用户数据长度字段、用户数据类型字段、保留字节与校验和字段;

(c)根据得到的用户自定义帧头中的用户数据长度字段、用户数据类型字段、保留字节计算校验和,并与所得到的校验和字段进行比较;

(d)如果两者不相等,则返回上述步骤(a);

(e)如果两者相等,则根据用户数据长度字段中的长度信息提取用户数据段中的数据信息,得到解析后的真实数据包;

(5)无线Modem根据该下行数据包的类型进行相应的后续处理操作,包括以下步骤:

(a)如果该下行数据包为需要向该无线Modem的对等侧发送的数据包,则无线Modem的点对点协议层直接将该下行数据包发送给Modem的协议栈上层进行数据发送处理;

(b)如果该下行数据包括为需要由无线Modem中的点对点协议层进行处理的数据包,则无线Modem的点对点协议层直接对该下行数据包进行处理。

所述的无线Modem向终端设备的数据传输处理操作,包括以下步骤:

(1)无线Modem将需要发送到终端设备的上行数据包在无线Modem侧的驱动程序层进行用户自定义帧格式封装处理;该下行数据包可以为需要由所述的无线Modem中的点对点协议层进行处理的数据包或者需要向该无线Modem的对等侧发送的数据包;所述的用户自定义帧格式封装处理同上;

(2)所述的无线Modem将得到的用户自定义帧格式数据包通过物理链路送至所述的终端设备;

(3)所述的终端设备侧的驱动程序对接收到的用户自定义帧格式数据包进行用户自定义帧格式解析处理,并将得到的上行数据包进行点对点协议封装处理;所述的用户自定义帧格式解析处理同上;

(4)所述的终端设备将得到的点对点协议数据包送至点对点协议层;

(5)所述终端设备的点对点协议层对该点对点协议数据包进行解析处理,得到该上行数据包;

(6)终端设备根据该上行数据包的类型进行相应的后续处理操作。

在实际使用当中,首先以例举的方式给出一种自定义的不需要对包内所有字节进行遍历的包格式(即上文中User Defined Frame Format,简称UDF格式):

UDF数据包由2部分组成:UDF Header,User Data。

UDF Header共计10Bytes,由5个字段(域)组成,从包的开始位置依次为:4个字节的前导码(Header Code),2个字节的用户数据长度(User Data Len),1个字节的用户数据类型(User Data Type),1个字节的保留字节(Reserved Byte),以及2个字节的校验和(CheckSum)。UDF包格式请参阅图4所示。

  Header Code  4个字节,均为0x7e。  User Data Len  2个字节,表示Check sum域之后的UserData的长度(以Byte为单  位)。高字节在前,低字节在后(Check Sum域与Data Len相同),例  如:若Data Len为1,则Higher Byte为0,Lower Byte为1。  User Data Type  1个字节,表示用户数据类型。数据类型域值的含义见图5。  Reserved Byte  1个字节,表示复用通道号。  Check sum  2个字节,指对前Header Code域,User Data Len域,User DataType  域,以及Reserved Byte域做校验和(check sum)。使用的Check Sum  算法请参阅参见RFC7933.1节。

在实际应用当中,本发明的实现移动通信无线Modem终端点对点协议数据传输优化的方法的基本思想如下:

将Modem终端中的PPP层的处理放在PC侧的驱动程序中,PC与Modem终端之间使用一种用户自定义的协议来传输数据,即按照用户自定义的包格式(User Defined Frame Format,以下简称为UDF包)来封装数据包,而不使用PPP协议对数据包进行封装,UDF包格式对PPP层的优化体现在:

(1)UDF包不使用特定字符作为帧边界,而是使用特殊的模式和包头中的长度域取代,即根据长度域的值决定包的边界;

(2)UDF不对整个用户数据计算FCS,而是仅仅针对UDF包头(仅10字节)做校验,校验的计算方法也采用开销较小的TCP校验和算法,这样可大大提高Modem侧PPP层的处理速度。

具体步骤分为两个方向的优化:

(1)从PC到Modem方向

(a)在PC侧,从TCP/IP协议栈发往PC侧PPP层的数据包(如IP包),或在PPP层内生成的数据包(如LCP/IPCP包等),均进行转义以及计算FCS后生成PPP帧,PPP帧接着被送到PC侧驱动程序;在PC侧驱动程序中,对PPP帧进行去转义以及计算FCS后得到要发送的数据包(IP包或LCP/IPCP包),然后使用UDF格式对数据包进行封装,数据包的类型,即PPP帧的协议字段,应该包含在UDF包头中,最后UDF包被发送到物理链路上。

(b)在Modem侧,从物理链路上收到的UDF包后,解析UDF头,将得到数据包,以及数据包的类型(即PPP帧的协议字段)。然后,根据数据包的类型进行不同的处理。若为IP包,则可直接处理。这样就省去了Modem的对PPP帧的去转义及计算FCS的操作,节省了CPU处理时间。

(2)从Modem到PC方向

(a)在Modem侧,PPP层收到的数据包(如IP包),或在PPP层内生成的数据包(如LCP/IPCP包等),直接用UDF格式进行封装,并将包类型包含在UDF包头中,直接发送到物理链路上。

(b)在PC侧,驱动程序从物理链路上收到的UDF包后,解析UDF头,将得到数据包,以及数据包的类型,然后在驱动程序中,对数据包进行转义,并计算FCS,生成PPP帧,同时数据包类型将被填进PPP的协议字段;然后驱动程序将PPP帧发送给PC侧的PPP层,在PPP层内又进行去转义以及计算FCS,并对得到的数据包进行相应的操作。

本发明的该优化方法,在命令状态下,TE到Modem方向包括以下步骤:

(1)在TE侧,AT命令被发送到驱动程序,在驱动程序中对AT命令使用UDF格式进行封装,UDF头中User Data Len域为AT命令的长度,User Data Type域为1(参见图5,即表示AT命令及结果码),Reserved Byte域可填0,然后将生成的UDF包发送到与Modem之间的物理链路上去;

(2)Modem驱动程序从物理链路上收到数据,解析出UDF包,步骤如下:

(a)对收到的数据进行遍历,当发现4个连续的0x7e时,则认为是UDF包头的HeaderCode域,然后按照UDF包的格式,依次向后解析出User Data Len、User Data Type、Reserved Byte、Check sum域;

(b)对收到的前4个域(参见图4,即Header Code、User Data Len、User Data Type、Reserved Byte域,共8个字节)进行计算check sum;

(c)将计算出的check sum结果与UDF包头中Check sum域的值进行比较,如果不相等,则是错误的UDF头,跳到(a);如果相等,则是正确的UDF包,取出UDF包中的AT命令。

(3)Modem侧驱动程序将AT命令,交给AT命令解析器进行处理。AT命令解析器处理完后,将AT命令结果码返回给驱动程序,跳到Modem到TE中(1)。Modem状态的切换取决于具体的AT命令以及处理结果:

(a)如果AT命令是拨号命令(如ATD)或者进入数据状态命令(如AT+CGDATA),并且当命令成功执行,返回CONNECT结果码后,Modem进入数据状态;

(b)如果AT命令既不是拨号命令也不是进入数据状态的命令,则命令执行完,返回结果码后,Modem状态保持不变,仍然处于命令状态。

该第二、三代无线Modem终端中PPP(point to point)优化方法,在命令状态下,Modem到TE方向包括以下步骤:

(1)Modem驱动程序收到其上层发送的AT命令结果码后,使用UDF格式进行封装,UDF头中User Data Len域为AT命令结果码的长度,User Data Type域为1(参见图5,即表示AT命令及结果码),Reserved Byte域可填0;然后将生成的UDF包发送到与TE之间的物理链路上去;

(2)TE驱动程序从物理链路上收到数据,解析出UDF包,解析步骤同命令状态下Modem到TE方向中的(2)步骤;解析出UDF包后,得到AT命令结果码;

(3)TE侧驱动程序将跟据AT命令结果码进行状态切换:

(a)如果是CONNECT结果码,则TE侧驱动程序中的状态进入数据状态;

(b)如果不是CONNECT结果码,则TE侧驱动程序中的状态保持不变,仍然为命令状态。

(4)TE侧驱动程序将AT命令结果码,发送给TE侧的与ModemAT命令解析器的对等层。

再请参阅图6所示,本发明的实现移动通信无线Modem终端点对点协议数据传输优化的方法,在数据状态下,从Modem到TE方向的数据处理包括以下步骤:

(1)在Modem侧PPP层被处理的数据包有两个来源:

(a)若数据包是由Modem中PPP层生成(如LCP/IPCP包),则对PPP生成的数据包使用UDF格式进行封装,即在数据包前加UDF头,UDF头中User Data Len域为数据包长度,User Data Type域为数据包类型值(如LCP/IPCP类型对应的值),ReservedByte域可填0;然后将生成的UDF包发送到与TE之间的物理链路上去。

(b)Modem收到对等侧发来的数据包(如IP包),当数据包到达PPP层后,使用UDF对数据包进行封装,即在数据包前加UDF头,UDF头中User Data Len域为数据包长度,User Data Type域为数据包类型值(如IP类型对应的值),Reserved Byte域可填0;然后将生成的UDF包发送到与PC之间的物理链路上去。

(2)TE驱动程序从物理链路上收到数据,解析出UDF包,解析步骤同命令状态下Modem到TE方向中的(2)步骤;解析出UDF包后,得到数据包;

(3)TE侧驱动程序将根据数据包类型进行状态切换:

(a)如果此数据包对应的UDF包中User Data Type域的值为3(参见图5表示LCP链路控制包),并且User Data域的第一个字节值为0x06(参见RFC1661第5.5Terminate-Request and Terminate-Ack,即Lcp Terminate ACK断开连接确认包),则此包为Modem对TE发送的LCP Terminate Request包(参见RFC1661第5.5Terminate-Request and Terminate-Ack,即断开连接请求包,其对应UDF包中User DataType域的值为3,User Data域第一个字节值为0x05)的确认,TE侧驱动程序的状态切换到命令状态。

(b)如果非Lcp TerminateACK数据包,则TE侧驱动程序中的状态保持不变,仍然为数据状态。

(4)将数据包封装成PPP帧,包括:加帧头帧尾,填写协议字段,转义,计算FCS。转义及计算FCS方法可按照RFC1662-APPENDICES-C.2Fast Frame Check Sequence(FCS)Implementation中的方法。协议字段,根据User Data Type域的值查图5得到包类型,再根据图2得到该包类型对应的PPP协议字段的值。

(5)将生成的PPP帧送到TE侧PPP层处理。

再请参阅图7所示,本发明的实现移动通信无线Modem终端点对点协议数据传输优化的方法,在数据状态下,从TE到Modem方向包括以下步骤:

(1)在TE侧,驱动程序收到PPP层要发往Modem侧的PPP帧后,进行解封装操作,包括:去转义,保存PPP帧协议字段(计算FCS可省去),保存去转义后PPP帧内数据包的长度。去转义方法可参见RFC1662-3.The Data LinkLayer以及RFC1661-2.PPP Encapsulation中的方法。解封装后得到PPP帧内数据包,数据包长度,以及PPP帧协议字段。根据协议字段的值查询图4可得到包类型(如IP、LCP/IPCP类型)。

(2)对解封装后的数据包使用UDF格式进行封装,即在数据包前加UDF头,UDF头中User Data Len域填写(1)中保存的数据包长度,User Data Type域的值根据(1)中得到的包类型查图5可得到(即IP,LCP/IPCP类型对应的值),Reserved Byte域可填0;然后将生成的UDF包发送到与PC之间的物理链路上去。

(3)Modem驱动程序从物理链路上收到数据,解析出UDF包,解析步骤同命令状态下Modem到TE方向中的(2)步骤,解析出UDF包后,得到数据包;

(4)数据包发送给Modem侧PPP层,根据数据包对应的UDF包中User Data Type域的值查询图5得到包类型,根据数据包的类型做不同处理:

(a)若数据包为发往Modem对等侧的数据(如IP包),则PPP层直接将IP包发送给Modem的协议栈上层。

(b)若数据包为PPP层内处理的数据包(如LCP/IPCP包),则PPP层直接对其进行处理,若处理结果需要发送数据包(如LCP/IPCP包)给TE,则跳到Modem到TE的(1)-(a)。

(5)Modem将根据数据包类型进行状态切换:

(a)如果此数据包对应的UDF包中User Data Type域的值为3(参见图5表示LCP链路控制包),并且User Data域的第一个字节值为0x06(参见RFC1661第x.x,此数据包为Lcp Terminate ACK包),则此数据包为TE对Modem发送的LCP TerminateRequest包(参见RFC 1661第5.5Terminate-Request and Terminate-Ack,即断开连接请求,其对应UDF包中User Data Type域的值为3,User Data域第一个字节值为0x05)的确认,Modem状态切换到命令状态;

(b)如果非Lcp Terminate ACK数据包,则Modem状态保持不变,仍然为数据状态。

采用了上述的实现移动通信无线Modem终端点对点协议数据传输优化的方法,由于其中将无线Modem终端中的PPP层的处理放在终端设备侧(PC侧)的驱动程序中,PC与Modem终端之间使用一种用户自定义的协议来传输数据,即按照用户自定义的包格式(UDF,UserDefined Frame Format)来封装数据包,而不使用PPP协议对数据包进行封装,由于UDF包不使用特定字符作为帧边界,而是使用特殊的模式和包头中的长度域取代,即根据长度域的值决定包的边界;而且UDF不对整个用户数据计算FCS,而是仅仅针对UDF包头(仅10字节)做校验,校验的计算方法也采用开销较小的TCP校验和算法,从而大大提高了无线Modem侧的PPP层的处理速度,而且由于省去了Modem终端对PPP帧的转义去转义以及遍历包的所有字节并计算FCS,而将这部分工作放在Modem对等侧(如PC侧)来做,从而大大降低了Modem终端的PPP层对CPU的占有率使其能在高数据速率下有效降低无线Modem终端中CPU的负担,节省了硬件系统资源,而且实现过程简单方便,工作性能稳定可靠,能够广泛适用于第二代和第三代移动通信系统,为移动通信技术的进一步推广应用奠定了坚实的基础。

在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号