CN105119981B - 一种处理报文的方法 - Google Patents

一种处理报文的方法 Download PDF

Info

Publication number
CN105119981B
CN105119981B CN201510437962.8A CN201510437962A CN105119981B CN 105119981 B CN105119981 B CN 105119981B CN 201510437962 A CN201510437962 A CN 201510437962A CN 105119981 B CN105119981 B CN 105119981B
Authority
CN
China
Prior art keywords
task
client
queue
data packet
message
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.)
Active
Application number
CN201510437962.8A
Other languages
English (en)
Other versions
CN105119981A (zh
Inventor
杭旭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huzhou YingLie Intellectual Property Operation Co.,Ltd.
Original Assignee
Shanghai Feixun Data Communication Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Feixun Data Communication Technology Co Ltd filed Critical Shanghai Feixun Data Communication Technology Co Ltd
Priority to CN201510437962.8A priority Critical patent/CN105119981B/zh
Publication of CN105119981A publication Critical patent/CN105119981A/zh
Application granted granted Critical
Publication of CN105119981B publication Critical patent/CN105119981B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/622Queue service order

Abstract

本发明公开了一种处理报文的方法,用于基于CPE广域网管理协议的客户端,包括下述步骤:S1.所述客户端与一服务器建立长连接;S2.所述客户端监听所述长连接是否有数据包传送,若是,执行步骤S3;若否,执行步骤S4;S3.所述客户端对所述数据包进行解析,根据解析结果创建对应的任务,并将所述任务添加至一预设的队列中,返回执行所述步骤S2;S4.所述客户端根据预设的所述队列的顺序逐条处理所述队列中的所述任务,并将所述任务的处理结果发送至所述服务器,返回执行所述步骤S2。本发明避免了报文交互过程中容易出错的情形,提高了通道利用率。

Description

一种处理报文的方法
技术领域
本发明涉及网络领域,尤其涉及一种基于长连接用于处理报文的方法。
背景技术
传统的TR-069(CPE广域网管理协议)客户端普遍是基于会话机制与服务器短连接,为了解决服务器控制内网TR-069客户端的问题,需要将原本在开始会话时建立连接在结束会话时断开连接的短连接改为客户端启动后主动连接服务器且连接建立后连接一直保持不断的长连接。虽然长连接的引入解决服务器控制内网TR-069客户端的问题,但却引入了另一个问题:原本的会话机制无法正确工作,并且要求服务器和客户端必须按照顺序交互报文,只能等一个交互会话结束后才能开始另一个会话,如图1所示:服务器(Server)向客户端(Client)发送一空报文以通知客户端开始会话(session),客户端通知(Inform)服务器准备就绪,服务器通过远程过程调用协议(Remote Procedure Call Protocol,RPC)向客户端发送处理报文,客户端将处理报文进行处理并通过RPC协议向服务器回复处理结果,服务器向客户端发送通知响应(Inform Response),结束会话。一旦会话乱序就会导致客户端处理异常。但由于长连接一直处于连接状态的特点,致使只要上层有需要就会通过服务器向客户端发送报文,因此会发生如图2所示的会话错误(session error)。
发明内容
针对现有的基于会话机制的长连接存在的上述问题,现提供一种旨在实现基于长连接可避免报文交互过程中出错情形的处理报文的方法。
具体技术方案如下:
一种处理报文的方法,用于基于CPE广域网管理协议的客户端,包括下述步骤:
S1.所述客户端与一服务器建立长连接;
S2.所述客户端监听所述长连接是否有数据包传送,若是,执行步骤S3;若否,执行步骤S4;
S3.所述客户端对所述数据包进行解析,根据解析结果创建对应的任务,并将所述任务添加至一预设的队列中,返回执行所述步骤S2;
S4.所述客户端根据预设的所述队列的顺序逐条处理所述队列中的所述任务,并将所述任务的处理结果发送至所述服务器,返回执行所述步骤S2。
优选的,在执行所述S3之前,还包括:
所述客户端提供一缓冲区用以存储接收到的所述数据包,并从所述缓存区中读取所述数据包。
优选的,每一所述数据包中包括复数条报文,每一条所述报文对应一条所述任务。
优选的,所述步骤S3包括:
S31.所述客户端对所述数据包进行解析,获取所述数据包中的复数条所述报文;
S32.所述客户端根据获取的所述报文创建与所述报文对应的所述任务;
S33.所述客户端根据所述数据包的包头指示的顺序,将所述报文对应的所述任务添加于所述队列中。
优选的,在执行所述步骤S4之前还包括:
判断所述队列中是否存在未执行的所述任务,若是,执行所述步骤S4;若否,返回执行所述步骤S2。
优选的,在所述步骤S4中,每处理一条所述任务,将所述任务的处理结果发送至所述服务器。
优选的,在所述步骤S4中,根据所述队列的顺序逐条将所述队列中的所有所述任务处理完成后,根据所述队列的顺序逐一将每条所述任务的处理结果发送至所述服务器。
优选的,所述步骤S4中,还包括:
提供一预定周期;
所述步骤S4中,于所述预定周期内,根据所述队列的顺序,逐条执行所述队列中的所述任务,并将每条所述任务的处理结果发送至所述服务器。
上述技术方案的有益效果:
本技术方案中,处理报文的方法用于监听长连接是否有数据包传输,当有数据包传输时,对数据包进行解析,根据解析结果创建任务,并将任务添加于预设的队列中;当没有数据包传输时,集中处理队列中的所有任务,并将处理结果发送至服务器,避免了报文交互过程中容易出错的情形,提高了通道利用率。
附图说明
图1为现有的会话机制的交互图;
图2为现有的会话机制层出错场景交互图;
图3为本发明的任务队列机制的交互图;
图4为本发明所述的处理报文的方法的第一种实施例的方法流程图;
图5为本发明所述的处理报文的方法的第二种实施例的方法流程图;
图6为本发明所述的处理报文的方法的第三种实施例的方法流程图;
图7为本发明所述的处理报文的方法的第四种实施例的方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
本发明基于如下发现:
现有的长连接主要基于原始TR-069客户端的会话机制,原始的会话机制主要是为了保证报文顺序不乱序,如图1所示。但是基于长连接的客户端如果要处理服务器下发的并发无序报文,会发生如图2所示的会话错误。因此需要改进长连接的处理机制。可通过如下三种方法进行改进:
第一种方法:用多进程的方法,通过子进程处理会话,这样多个会话可以并发;
第二种方法:使用多线程,每个线程处理一个会话;
第三种方法:使用单进程并采用任务队列方式。
上述第一种方法和第二种方法对硬件要求较高,适合在多核,大内存的处理平台上使用。目前很多大型服务器是使用多进程,多线程方法来处理十万级,百万级的并发访问。而对于家庭网关这种网络终端设备,处理能力有限,并且并发数不会太多,多进程或多线程的处理方法会额外开销系统资源。所以本发明采取第三种方法,即采用任务队列的方式,以避免多条报文交互过程中出错的情形。
如图3-4所示,一种处理报文的方法,用于基于CPE广域网管理协议的客户端,包括下述步骤:
S1.客户端与一服务器建立长连接;
S2.客户端监听长连接是否有数据包传送,若是,执行步骤S3;若否,执行步骤S4;
S3.客户端对数据包进行解析,根据解析结果创建对应的任务,并将任务添加至一预设的队列中,返回执行步骤S2;
S4.客户端根据预设的队列的顺序逐条处理队列中的任务,并将任务的处理结果发送至服务器,返回执行步骤S2。
在本实施例中,处理报文的方法用于监听长连接是否有数据包传输,当有数据包传输时,对数据包进行解析,根据解析结果创建任务,并将任务添加于预设的队列中;当没有数据包传输时,集中处理队列中的所有任务,并将处理结果发送至服务器,避免了报文交互过程中容易出错的情形,提高了通道利用率。
如图5所示,在优选的实施例中,在执行S3之前,还包括:
客户端提供一缓冲区用以存储接收到的数据包,并从缓存区中读取数据包。
在本实施例中,通过缓冲区存储数据包以供客户端读取数据包中的数据。
在优选的实施例中,每一数据包中包括复数条报文,每一条报文对应一条任务。
在本实施例中,每一数据包中可包括一条或多条报文。
如图6所示,在优选的实施例中,步骤S3包括:
S31.客户端对数据包进行解析,获取数据包中的复数条报文;
S32.客户端根据获取的报文创建与报文对应的任务;
S33.客户端根据数据包的包头指示的顺序,将报文对应的任务添加于队列中。
在本实施例中,客户端对数据包进行解析以获取数据包中的报文,并建立相应的任务,根据数据包的包头顺序将与报文对应的任务添加于任务队列中,根据队列中的任务顺序逐一进行处理,从而避免了报文交互过程中出错的情形,提高了通道利用率。
如图7所示,在优选的实施例中,在执行步骤S4之前还包括:
判断队列中是否存在未执行的任务,若是,执行步骤S4;若否,返回执行步骤S2。
在本实施例中,判断队列中是否存在未执行的任务,若队列中有未执行的任务,则暂停监听长连接是否有数据包传送,根据队列的顺序逐条处理队列中的任务;若队列中没有未执行的任务,则返回步骤S2监听长连接是否有数据包传送。
在优选的实施例中,在步骤S4中,每处理一条任务,将任务的处理结果发送至服务器。
进步一地,处理结果为处理正确或处理错误。
在本实施例中,客户端可每处理一条任务就向服务器发送一条处理结果,避免了报文乱序的问题。
在优选的实施例中,在步骤S4中,根据队列的顺序逐条将队列中的所有任务处理完成后,根据队列的顺序逐一将每条任务的处理结果发送至服务器。
进步一地,处理结果为处理正确或处理错误。
在本实施例中,客户端可将队列中的所有任务处理完后,根据处理任务的先后顺序逐一向服务器发送处理结果,避免了报文乱序的问题。
在优选的实施例中,步骤S4中,还包括:
提供一预定周期;
步骤S4中,于预定周期内,根据队列的顺序,逐条执行队列中的任务,并将每条任务的处理结果发送至服务器。
以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。

Claims (6)

1.一种处理报文的方法,用于基于CPE广域网管理协议的客户端,其特征在于,包括下述步骤:
S1.所述客户端与一服务器建立长连接;
S2.所述客户端监听所述长连接是否有数据包传送,若是,执行步骤S3;若否,执行步骤S4;
S3.所述客户端对所述数据包进行解析,根据解析结果创建对应的任务,并将所述任务添加至一预设的队列中,返回执行所述步骤 S2;
S4.所述客户端根据预设的所述队列的顺序逐条处理所述队列中的所述任务,并将所述任务的处理结果发送至所述服务器,返回执 行所述步骤S2;
每一所述数据包中包括复数条报文,每一条所述报文对应一条所述任务;
所述步骤S3包括:
S31.所述客户端对所述数据包进行解析,获取所述数据包中的复数条所述报文;
S32.所述客户端根据获取的所述报文创建与所述报文对应的所述任务;
S33.所述客户端根据所述数据包的包头指示的顺序,将所述报文对应的所述任务添加于所述队列中。
2.如权利要求1所述的方法,其特征在于,在执行所述S3之前,还包括:
所述客户端提供一缓冲区用以存储接收到的所述数据包,并从所述缓冲区中读取所述数据包。
3.如权利要求1所述的方法,其特征在于,在执行所述步骤S4 之前还包括:
判断所述队列中是否存在未执行的所述任务,若是,执行所述步骤S4;若否,返回执行所述步骤S2。
4.如权利要求1所述的方法,其特征在于,在所述步骤S4中,每处理一条所述任务,将所述任务的处理结果发送至所述服务器。
5.如权利要求1所述的方法,其特征在于,在所述步骤S4中,根据所述队列的顺序逐条将所述队列中的所有所述任务处理完成后,根据所述队列的顺序逐一将每条所述任务的处理结果发送至所述服 务器。
6.如权利要求1所述的方法,其特征在于,所述步骤S4中,还包括:
提供一预定周期;
所述步骤S4中,于所述预定周期内,根据所述队列的顺序,逐条执行所述队列中的所述任务,并将每条所述任务的处理结果发送至所述服务器。
CN201510437962.8A 2015-07-23 2015-07-23 一种处理报文的方法 Active CN105119981B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510437962.8A CN105119981B (zh) 2015-07-23 2015-07-23 一种处理报文的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510437962.8A CN105119981B (zh) 2015-07-23 2015-07-23 一种处理报文的方法

Publications (2)

Publication Number Publication Date
CN105119981A CN105119981A (zh) 2015-12-02
CN105119981B true CN105119981B (zh) 2019-06-07

Family

ID=54667864

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510437962.8A Active CN105119981B (zh) 2015-07-23 2015-07-23 一种处理报文的方法

Country Status (1)

Country Link
CN (1) CN105119981B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109714415B (zh) * 2018-12-26 2021-09-21 北京小米移动软件有限公司 数据处理方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103856440A (zh) * 2012-11-29 2014-06-11 腾讯科技(深圳)有限公司 一种基于分布式总线的消息处理方法、服务器和系统
CN104506642A (zh) * 2014-12-30 2015-04-08 深圳市兰丁科技有限公司 一种客户端消息高效的收发和处理方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102946376B (zh) * 2011-11-29 2015-04-29 Ut斯达康通讯有限公司 一种异步通讯的实现方法
CN102591721A (zh) * 2011-12-30 2012-07-18 北京新媒传信科技有限公司 一种分配线程执行任务的方法和系统
CN102957627B (zh) * 2012-11-19 2016-06-08 浪潮电子信息产业股份有限公司 一种基于tcp长连接的提高数据传输效率的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103856440A (zh) * 2012-11-29 2014-06-11 腾讯科技(深圳)有限公司 一种基于分布式总线的消息处理方法、服务器和系统
CN104506642A (zh) * 2014-12-30 2015-04-08 深圳市兰丁科技有限公司 一种客户端消息高效的收发和处理方法及系统

Also Published As

Publication number Publication date
CN105119981A (zh) 2015-12-02

Similar Documents

Publication Publication Date Title
CN102333128B (zh) 一种Web实时数据主动推送方法
CN104144186B (zh) 云计算环境中基于Web浏览器的数据上传方法与系统
CN103339910A (zh) 通过基于远程过程调用的通信协议的全双工双向通信、及其应用
CN103457843A (zh) 通信方法和系统、中继网关装置、应用服务器和客户端
US20210273981A1 (en) Method for establishing a communication connection which is suitable for transmitting media streams between a first rtc client and a second rtc client
CN102158346A (zh) 基于云计算的信息采集系统及方法
CN102111419A (zh) 一种基于消息中间件的客户端自动重连方法
CN107820100A (zh) 互联网音视频播放方法及装置
CN103716371A (zh) 一种Web实时数据主动推送方法
JP2014524615A (ja) コンピュータにより実行されるネットワークアプリケーションのクライアント対話のための方法、デバイス、およびコンピュータ読取可能記憶媒体
CN103685398B (zh) 通信连接建立方法及通信系统
CN109194716A (zh) 一种处理请求的方法、系统、服务器及存储装置
CN105119981B (zh) 一种处理报文的方法
CN107454141B (zh) 解决端口冲突的方法及计算机可读存储介质
CN107819599B (zh) 报文处理方法及装置
CN102761608A (zh) Udp会话复用的方法和负载均衡设备
CN105635181B (zh) 一种去中心化的数据传输方法
CN105812443A (zh) 一种p2p系统及业务接入方法
CN107949004A (zh) 用于载人航天器的数据处理系统及方法
CN105188087B (zh) 一种基于短信网关的业务通信方法和系统
CN105099738B (zh) 数据获取方法、装置及系统
CN102523122A (zh) 广域网终端设备远程管理方法及管理装置
CN105306442A (zh) 代理服务器及其指令传输方法
CN105530321B (zh) 浏览器客户端访问设备的方法、客户端、服务器及系统
CN104462223B (zh) 一种基于对等网络模式的网页浏览方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201125

Address after: Room 10242, No. 260, Jiangshu Road, Xixing street, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: Hangzhou Jiji Intellectual Property Operation Co., Ltd

Address before: 201620 Shanghai city Songjiang District Sixian Road No. 3666

Patentee before: Phicomm (Shanghai) Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201221

Address after: 5 / F, block C, outsourcing service building, 301 Hanzhongmen street, Gulou District, Nanjing, Jiangsu Province 210000

Patentee after: Nanjing Junyao Environmental Technology Co., Ltd

Address before: Room 10242, No. 260, Jiangshu Road, Xixing street, Binjiang District, Hangzhou City, Zhejiang Province

Patentee before: Hangzhou Jiji Intellectual Property Operation Co., Ltd

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210304

Address after: 313000 room 1019, Xintiandi commercial office, Yishan street, Wuxing District, Huzhou, Zhejiang, China

Patentee after: Huzhou YingLie Intellectual Property Operation Co.,Ltd.

Address before: 5 / F, block C, outsourcing service building, 301 Hanzhongmen street, Gulou District, Nanjing, Jiangsu Province 210000

Patentee before: Nanjing Junyao Environmental Technology Co., Ltd