CN108777664B - 一种数据包处理方法及其设备、系统、存储介质 - Google Patents

一种数据包处理方法及其设备、系统、存储介质 Download PDF

Info

Publication number
CN108777664B
CN108777664B CN201810548624.5A CN201810548624A CN108777664B CN 108777664 B CN108777664 B CN 108777664B CN 201810548624 A CN201810548624 A CN 201810548624A CN 108777664 B CN108777664 B CN 108777664B
Authority
CN
China
Prior art keywords
data packet
processing device
packet processing
application
user terminal
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
CN201810548624.5A
Other languages
English (en)
Other versions
CN108777664A (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.)
Shenzhen Tencent Network Information Technology Co Ltd
Original Assignee
Shenzhen Tencent Network Information 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 Shenzhen Tencent Network Information Technology Co Ltd filed Critical Shenzhen Tencent Network Information Technology Co Ltd
Priority to CN201810548624.5A priority Critical patent/CN108777664B/zh
Publication of CN108777664A publication Critical patent/CN108777664A/zh
Application granted granted Critical
Publication of CN108777664B publication Critical patent/CN108777664B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开一种数据包处理方法及其设备、系统、存储介质,包括:第一数据包处理设备接收用户终端采用单发方式发送的应用数据包,并将应用数据包采用多发方式发送至第二数据包处理设备;第二数据包处理设备对接收到的应用数据包去重,并将去重后的应用数据包采用单发方式发送至应用服务器;应用服务器基于去重后的应用数据包获取反馈数据包,并采用单发方式发送至第二数据包处理设备;第二数据包处理设备接收反馈数据包,并将反馈数据包采用多发方式发送至第一数据包处理设备;第一数据包处理设备对接收到的反馈数据包去重,并将去重后的反馈数据包采用单发方式发送至用户终端。采用本发明,可以防止丢包的同时减小应用服务器的数据处理压力。

Description

一种数据包处理方法及其设备、系统、存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据包处理方法及其设备、系统、存储介质。
背景技术
由于越来越多的设备使用无线网络(Wireless-FIdelity,WiFi)协议进行通信,而在WiFi下各种应用的通信质量却很难得到保证,如各种干扰、网络拥塞、网络流量被占用等导致用户终端和应用服务器之间通信的数据包存在比较大的时延,甚至丢包,从而影响了设备之间的数据业务的传输。
为了解决丢包问题而保证设备之间数据业务的正常运行,目前多采用net-speeder等多倍发包软件进行数据传输,即在设备之间将同份数据包发送多份。但这种发包方式不管网络传输质量好坏都会在用户终端与应用服务器之间发送多份,从而使得应用服务器接收到的数据包的数量大大增加,进而增加了应用服务器的数据处理压力。
发明内容
本发明实施例提供了一种数据包处理方法及其设备、系统、存储介质,可在防止丢包的同时不会增加应用服务器的流量,进而也可以减小应用服务器的数据处理压力。
本发明实施例一方面提供了一种数据包处理方法,可包括:
第一数据包处理设备接收用户终端采用单发方式发送的应用数据包,并将所述应用数据包采用多发方式发送至第二数据包处理设备;
所述第二数据包处理设备对所接收到的所述应用数据包进行去重处理,并将去重处理后的所述应用数据包采用单发方式发送至应用服务器;
所述应用服务器基于所述去重处理后的应用数据包获取反馈数据包,并采用单发方式发送至所述第二数据包处理设备;
所述第二数据包处理设备接收所述反馈数据包,并将所述反馈数据包采用多发方式发送至所述第一数据包处理设备;
所述第一数据包处理设备对所接收到的所述反馈数据包进行去重处理,并将去重处理后的所述反馈数据包采用单发方式发送至所述用户终端。
可选的,所述第一数据包处理设备接收用户终端采用单发方式发送的应用数据包,并将所述应用数据包采用多发方式发送至第二数据包处理设备,包括:
当检测到目标数据通道的网络传输质量小于网络质量阈值时,第一数据包处理设备接收用户终端采用单发方式发送的应用数据包,并将所述应用数据包采用多发方式发送至第二数据包处理设备。
可选的,还包括:
当检测到所述目标数据通道的网络传输质量大于或者等于所述网络质量阈值时,所述第一数据包处理设备接收所述用户终端采用单发方式发送的应用数据包,并将所述应用数据包采用单发方式发送至所述第二数据包处理设备。
可选的,所述第一数据包处理设备接收用户终端采用单发方式发送的应用数据包,并将所述应用数据包采用多发方式发送至第二数据包处理设备,包括:
所述第一数据包处理设备接收用户终端采用单发方式发送的应用数据包;
所述第一数据包处理设备获取第二数据包处理设备的设备标识,向数据服务器获取所述设备标识对应的多发参数,并基于所述多发参数将所述应用数据包发送至所述第二数据包处理设备。
可选的,所述第一数据包处理设备获取第二数据包处理设备的设备标识,包括:
所述第一数据包处理设备向所述第二数据包处理设备发送标识获取请求;
所述第一数据包处理设备接收并保存所述第二数据包处理设备发送的设备标识。
可选的,所述多发参数包括设备多发功能指示,所述第一数据包处理设备基于所述多发参数将所述应用数据包发送至所述第二数据包处理设备之前,还包括:
当所述设备多发功能指示为所述第二数据包处理设备具备数据多发功能时,所述第一数据包处理设备启动数据多发功能,并通知所述第二数据包处理设备启动数据多发功能。
可选的,所述多发参数还包括发送份数和时间间隔,所述第一数据包处理设备基于所述多发参数将所述应用数据包发送至所述第二数据包处理设备,包括:
所述第一数据包处理设备按照所述时间间隔以及发送份数将所述应用数据包发送至所述第二数据包处理设备。
可选的,所述当所述设备多发功能指示为所述第二数据包处理设备具备数据多发功能时之后,还包括:
所述第一数据包处理设备获取所述用户终端对应的用户登录标识,当所述用户登录标识在设定的白名单标识集合中时,转入执行所述第一数据包处理设备启动数据多发功能的步骤。
本发明实施例一方面提供了一种数据包处理方法,可包括:
接收用户终端采用单发方式发送的应用数据包,并将所述应用数据包采用多发方式发送至第二数据包处理设备,以使所述第二数据包处理设备对所接收到的所述应用数据包进行去重处理后采用单发方式发送至应用服务器,并以使所述应用服务器获取反馈数据包,所述反馈数据包为所述应用服务器基于所述去重处理后的应用数据包所反馈的数据包;
接收所述第二数据包处理设备采用多发方式发送的所述反馈数据包,并对所接收到的所述反馈数据包进行去重处理;
将去重处理后的所述反馈数据包采用单发方式发送至所述用户终端。
可选的,所述接收用户终端采用单发方式发送的应用数据包,并将所述应用数据包采用多发方式发送至第二数据包处理设备,包括:
当检测到目标数据通道的网络传输质量小于网络质量阈值时,接收用户终端采用单发方式发送的应用数据包,并将所述应用数据包采用多发方式发送至第二数据包处理设备。
可选的,还包括:
当检测到所述目标数据通道的网络传输质量大于或者等于所述网络质量阈值时,接收所述用户终端采用单发方式发送的应用数据包,并将所述应用数据包采用单发方式发送至所述第二数据包处理设备。
可选的,所述接收用户终端采用单发方式发送的应用数据包,并将所述应用数据包采用多发方式发送至第二数据包处理设备,包括:
接收用户终端采用单发方式发送的应用数据包;
获取第二数据包处理设备的设备标识,向数据服务器获取所述设备标识对应的多发参数,并基于所述多发参数将所述应用数据包发送至所述第二数据包处理设备。
可选的,所述获取第二数据包处理设备的设备标识,包括:
向所述第二数据包处理设备发送标识获取请求;
接收并保存所述第二数据包处理设备发送的设备标识。
可选的,所述多发参数包括设备多发功能指示,所述基于所述多发参数将所述应用数据包发送至所述第二数据包处理设备之前,还包括:
当所述设备多发功能指示为所述第二数据包处理设备具备数据多发功能时,启动数据多发功能,并通知所述第二数据包处理设备启动数据多发功能。
可选的,所述多发参数还包括发送份数和时间间隔,所述基于所述多发参数将所述应用数据包发送至所述第二数据包处理设备,包括:
按照所述时间间隔以及发送份数将所述应用数据包发送至所述第二数据包处理设备。
可选的,所述当所述设备多发功能指示为所述第二数据包处理设备具备数据多发功能时之后,还包括:
获取所述用户终端对应的用户登录标识,当所述用户登录标识在设定的白名单标识集合中时,转入执行所述启动数据多发功能的步骤。
本发明实施例一方面提供了一种数据包处理方法,可包括:
接收第一数据包处理设备采用多发方式发送的应用数据包,并对所接收到的所述应用数据包进行去重处理;
将去重处理后的所述应用数据包采用单发方式发送至应用服务器,以使所述应用服务器基于所述去重处理后的应用数据包获取反馈数据包,并采用单发方式发送至所述第二数据包处理设备;
接收所述应用服务器采用单发方式发送的所述反馈数据包,并将所述反馈数据包采用多发方式发送至所述第一数据包处理设备,以使所述第一数据包处理设备对所接收到的所述反馈数据包进行去重处理后采用单发方式发送至用户终端。
可选的,所述接收第一数据包处理设备采用多发方式发送的应用数据包,包括:
当检测到目标数据通道的网络传输质量小于网络质量阈值时,接收第一数据包处理设备采用多发方式发送的应用数据包。
可选的,还包括:
当检测到所述目标数据通道的网络传输质量大于或者等于所述网络质量阈值时,接收所述第一数据包处理设备采用单发方式发送的应用数据包。
可选的,所述接收所述第一数据包处理设备采用多发方式发送的应用数据包,包括:
接收所述第一数据包处理设备发送的标识获取请求;
获取设备标识,并将所述设备标识发送至所述第一数据包处理设备,以使所述第一数据包处理设备基于所述设备标识向数据服务器获取多发参数;
接收所述第一数据包处理设备基于所述多发参数发送的应用数据包。
可选的,所述多发参数包括设备多发功能指示,所述接收所述第一数据包处理设备基于所述多发参数发送的应用数据包之前,还包括:
当所述设备多发功能指示为所述第二数据包处理设备具备数据多发功能时,接收所述第一数据包处理设备发送的数据多发功能启动通知。
可选的,所述多发参数还包括发送份数和时间间隔,所述接收所述第一数据包处理设备基于所述多发参数发送的应用数据包,包括:
接收所述第一数据包处理设备按照所述时间间隔以及发送份数发送的应用数据包。
本发明实施例一方面提供了一种数据包处理系统,包括用户终端、第一数据包处理设备、第二数据包处理设备、应用服务器以及数据服务器,其中:
所述用户终端,用于将所获取的应用数据包采用单发方式发送至所述第一数据包处理设备;
所述第一数据包处理设备,用于接收所述用户终端采用单发方式发送的应用数据包;
所述第二数据包处理设备,用于对所接收到的所述应用数据包进行去重处理,并将去重处理后的所述应用数据包采用单发方式发送至所述应用服务器;
所述应用服务器,用于基于所述去重处理后的应用数据包获取反馈数据包,并采用单发方式发送至所述第二数据包处理设备;
所述第二数据包处理设备,还用于接收所述反馈数据包,并将所述反馈数据包采用多发方式发送至所述第一数据包处理设备;
所述第一数据包处理设备,还用于对所接收到的所述反馈数据包进行去重处理,并将去重处理后的所述反馈数据包采用单发方式发送至所述用户终端。
可选的,所述第一数据包处理设备用于接收所述用户终端采用单发方式发送的应用数据包,并将所述应用数据包采用多发方式发送至第二数据包处理设备,具体用于:
当检测到目标数据通道的网络传输质量小于网络质量阈值时,接收所述用户终端采用单发方式发送的应用数据包,并将所述应用数据包采用多发方式发送至第二数据包处理设备。
可选的,所述第一数据包处理设备还用于:
当检测到所述目标数据通道的网络传输质量大于或者等于所述网络质量阈值时,接收所述用户终端采用单发方式发送的应用数据包,并将所述应用数据包采用单发方式发送至所述第二数据包处理设备。
可选的,所述第一数据包处理设备用于接收所述用户终端采用单发方式发送的应用数据包,并将所述应用数据包采用多发方式发送至第二数据包处理设备,具体用于:
接收用户终端采用单发方式发送的应用数据包;
获取第二数据包处理设备的设备标识,向所述数据服务器获取所述设备标识对应的多发参数,并基于所述多发参数将所述应用数据包发送至所述第二数据包处理设备。
可选的,所述第一数据包处理设备用于获取第二数据包处理设备的设备标识,具体用于:
向所述第二数据包处理设备发送标识获取请求;
接收并保存所述第二数据包处理设备发送的设备标识。
可选的,所述多发参数包括设备多发功能指示,所述第一数据包处理设备用于基于所述多发参数将所述应用数据包发送至所述第二数据包处理设备之前,所述第一数据包处理设备还用于:
当所述设备多发功能指示为所述第二数据包处理设备具备数据多发功能时,启动数据多发功能,并通知所述第二数据包处理设备启动数据多发功能。
可选的,所述多发参数还包括发送份数和时间间隔,所述第一数据包处理设备用于基于所述多发参数将所述应用数据包发送至所述第二数据包处理设备,具体用于:
按照所述时间间隔以及发送份数将所述应用数据包发送至所述第二数据包处理设备。
可选的,所述当所述设备多发功能指示为所述第二数据包处理设备具备数据多发功能时之后,所述第一数据包处理设备还用于:
获取所述用户终端对应的用户登录标识,当所述用户登录标识在设定的白名单标识集合中时,转入执行启动数据多发功能的步骤。
本发明实施例一方面提供了一种数据包处理设备,可包括:
数据包收发单元,用于接收用户终端采用单发方式发送的应用数据包,并将所述应用数据包采用多发方式发送至第二数据包处理设备,以使所述第二数据包处理设备对所接收到的所述应用数据包进行去重处理后采用单发方式发送至应用服务器,并以使所述应用服务器获取反馈数据包,所述反馈数据包为所述应用服务器基于所述去重处理后的应用数据包所反馈的数据包;
数据包去重单元,用于接收所述第二数据包处理设备采用多发方式发送的所述反馈数据包,并对所接收到的所述反馈数据包进行去重处理;
所述数据包收发单元,还用于将去重处理后的所述反馈数据包采用单发方式发送至所述用户终端。
可选的,所述数据包收发单元,具体用于:
当检测到目标数据通道的网络传输质量小于网络质量阈值时,接收用户终端采用单发方式发送的应用数据包,并将所述应用数据包采用多发方式发送至第二数据包处理设备。
可选的,所述数据包收发单元还用于:
当检测到所述目标数据通道的网络传输质量大于或者等于所述网络质量阈值时,接收所述用户终端采用单发方式发送的应用数据包,并将所述应用数据包采用单发方式发送至所述第二数据包处理设备。
可选的,所述数据包收发单元,包括:
数据包接收子单元,用于接收用户终端采用单发方式发送的应用数据包;
数据包发送子单元,用于获取第二数据包处理设备的设备标识,向数据服务器获取所述设备标识对应的多发参数,并基于所述多发参数将所述应用数据包发送至所述第二数据包处理设备。
可选的,所述数据包发送子单元,具体用于:
向所述第二数据包处理设备发送标识获取请求;
接收并保存所述第二数据包处理设备发送的设备标识。
可选的,所述多发参数包括设备多发功能指示,还包括功能启动通知单元,用于:
当所述设备多发功能指示为所述第二数据包处理设备具备数据多发功能时,启动数据多发功能,并通知所述第二数据包处理设备启动数据多发功能。
可选的,所述多发参数还包括发送份数和时间间隔,所述数据包发送子单元,具体用于:
按照所述时间间隔以及发送份数将所述应用数据包发送至所述第二数据包处理设备。
可选的,所述当所述设备多发功能指示为所述第二数据包处理设备具备数据多发功能时之后,还包括:
标识匹配单元,用于获取所述用户终端对应的用户登录标识,当所述用户登录标识在设定的白名单标识集合中时,触发所述功能启动通知单元执行所述启动数据多发功能。
本发明实施例一方面提供了一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法步骤。
本发明实施例一方面提供了一种第一数据包处理设备,可包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行以下步骤:
接收用户终端采用单发方式发送的应用数据包,并将所述应用数据包采用多发方式发送至第二数据包处理设备,以使所述第二数据包处理设备对所接收到的所述应用数据包进行去重处理后采用单发方式发送至应用服务器,并以使所述应用服务器获取反馈数据包,所述反馈数据包为所述应用服务器基于所述去重处理后的应用数据包所反馈的数据包;
接收所述第二数据包处理设备采用多发方式发送的所述反馈数据包,并对所接收到的所述反馈数据包进行去重处理;
将去重处理后的所述反馈数据包采用单发方式发送至所述用户终端。
本发明实施例一方面提供了一种数据包处理设备,可包括:
数据包去重单元,用于接收第一数据包处理设备采用多发方式发送的应用数据包,并对所接收到的所述应用数据包进行去重处理;
数据包收发单元,用于将去重处理后的所述应用数据包采用单发方式发送至应用服务器,以使所述应用服务器基于所述去重处理后的应用数据包获取反馈数据包;
所述数据包收发单元,还用于接收所述应用服务器采用单发方式发送的所述反馈数据包,并将所述反馈数据包采用多发方式发送至所述第一数据包处理设备,以使所述第一数据包处理设备对所接收到的所述反馈数据包进行去重处理后采用单发方式发送至用户终端。
可选的,所述数据包去重单元,具体用于:
当检测到目标数据通道的网络传输质量小于网络质量阈值时,接收第一数据包处理设备采用多发方式发送的应用数据包。
可选的,所述数据包收发单元还用于:
当检测到所述目标数据通道的网络传输质量大于或者等于所述网络质量阈值时,接收所述第一数据包处理设备采用单发方式发送的应用数据包。
可选的,所述数据包去重单元,包括:
请求接收子单元,用于接收所述第一数据包处理设备发送的标识获取请求;
标识发送子单元,用于获取设备标识,并将所述设备标识发送至所述第一数据包处理设备,以使所述第一数据包处理设备基于所述设备标识向数据服务器获取多发参数;
数据包接收子单元,用于接收所述第一数据包处理设备基于所述多发参数发送的应用数据包。
可选的,所述多发参数包括设备多发功能指示,还包括通知接收子单元,用于:
当所述设备多发功能指示为所述第二数据包处理设备具备数据多发功能时,接收所述第一数据包处理设备发送的数据多发功能启动通知。
可选的,所述多发参数还包括发送份数和时间间隔,所述数据包接收子单元,具体用于:
接收所述第一数据包处理设备按照所述时间间隔以及发送份数发送的应用数据包。
本发明实施例一方面提供了一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法步骤。
本发明实施例一方面提供了一种第二数据包处理设备,可包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行以下步骤:
接收第一数据包处理设备采用多发方式发送的应用数据包,并对所接收到的所述应用数据包进行去重处理;
将去重处理后的所述应用数据包采用单发方式发送至应用服务器,以使所述应用服务器基于所述去重处理后的应用数据包获取反馈数据包;
接收所述应用服务器采用单发方式发送的所述反馈数据包,并将所述反馈数据包采用多发方式发送至所述第一数据包处理设备,以使所述第一数据包处理设备对所接收到的所述反馈数据包进行去重处理后采用单发方式发送至用户终端。
在本发明实施例中,通过第一数据包处理设备接收用户终端采用单发方式发送的应用数据包后,并采用多发方式发送至第二数据包处理设备,第二数据包处理设备对所接收到的应用数据包进行去重处理,然后采用单发方式发送至应用服务器,而应用服务器基于去重处理后的应用数据包获取反馈数据包,并采用单发方式发送至第二数据包处理设备,第二数据包处理设备将接收到的反馈数据包采用多发方式发送至第一数据包处理设备,第一数据包处理设备对所接收到的反馈数据包进行去重处理后的反馈数据包采用单发方式发送至用户终端。可以通过第一数据包处理设备和第二数据包处理设备对接收到的数据包进行去重处理后以单发方式进行发送,在防止丢包的情况下不会增加应用服务器的流量,进而也可以减小应用服务器的数据处理压力,同样,也不会增加用户终端的流量,并可以减小用户终端的数据处理压力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据包处理方法的流程示意图;
图2是本发明实施例提供的一种数据包处理方法的流程示意图;
图3是本发明实施例提供的一种数据包处理方法的流程示意图;
图4是本发明实施例提供的一种数据包处理方法的流程示意图;
图5是本发明实施例提供的一种数据包处理方法的流程示意图;
图6是本发明实施例提供的一种数据包处理方法的流程示意图;
图7是本发明实施例提供的一种数据包处理方法的场景示意图;
图8是本发明实施例提供的一种数据包处理系统的架构示意图;
图9是本发明实施例提供的一种数据包处理设备的结构示意图;
图10是本发明实施例提供的一种数据包收发单元的结构示意图;
图11是本发明实施例提供的一种数据包处理设备的结构示意图;
图12是本发明实施例提供的一种数据包处理设备的结构示意图;
图13是本发明实施例提供的一种数据包去重单元的结构示意图;
图14是本发明实施例提供的一种数据包处理设备的结构示意图;
图15是本发明实施例提供的一种电子设备的结构示意图;
图16是本发明实施例提供的一种路由设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面将结合附图1-附图7,对本发明实施例提供的数据包处理方法进行详细介绍。
请参见图1,为本发明实施例提供了一种数据包处理方法的流程示意图。以用户终端、第一数据包处理设备、应用服务器和第二数据包处理设备四侧进行描述,如图1所示,本发明实施例的所述方法可以包括以下步骤S101-步骤S105。
S101,第一数据包处理设备接收用户终端采用单发方式发送的应用数据包,并将所述应用数据包采用多发方式发送至第二数据包处理设备;
可以理解的是,数据包是传输控制协议(Transmission Control Protocol,TCP)/网络通讯协议(Internet Protocol,IP)协议通信传输中的数据单位。在包交换网络里,单个消息被划分为多个数据包,在每个数据包中包含发送者和接收者的地址信息(源IP和目的IP)。这些数据包可沿着源IP到目的IP之间的不同路径在一个或多个网络中传输,并且在目的IP重新组合。
所述应用数据包即为单个消息,也是用于数据交换的源数据。例如,用户通过用户终端玩网络游戏的过程就需要通过用户终端与游戏服务器之间的数据交换实现,而由用户终端向游戏服务器传送的数据即为应用数据包。又例如,第一用户终端与第二用户终端通过通信服务器进行即时通信,第一用户终端向第二用户终端发送的消息即为应用数据包。
当然,应用数据包从源IP到目的IP是通过中继站传输的,所述中继站为主机或第二数据包处理设备,基于路由信息(接口Port数组对,包括源IP、源Port、TCP/用户数据报协议(User Datagram Protocol,UDP)、目的IP、目的Port),将应用数据包向下一个中继站传递。在应用数据包传输的路途上,由于第二数据包处理设备在遇到大数据流量的情况下某些数据通道的带宽被占用,而使得这些数据通道的网络传输质量差,进而导致这些数据通道可能会丢掉一些数据包,从而导致不能实现数据交换。因此,本发明实施例主要解决在大流量数据下的丢包问题。
所述单发方式是指只发送一份数据包,所述多发方式是指发送多份数据包,如两份、三份、四份等。其中,所发送的份数由第二数据包处理设备的性能决定,目前,大多数第二数据包处理设备普遍支持两份数据包,即支持双倍数据包的发送和接收。一种获取数据包发送份数的方式是基于第二数据包处理设备的设备标识向数据服务器(云服务器)在预存的设备标识与发送份数映射关系表中查询。所述设备标识用于唯一识别第二数据包处理设备,可以为第二数据包处理设备的编号、型号、识别码、序列号等。可以理解的是,第二数据包处理设备的多收份数和多发份数相同,当然,也可以不同,不同情况下可基于预存数据确定多收份数和多发份数。
例如,如表1所示为数据服务器所存储的一种形式的第二数据包处理设备多发参数表,其中包括设备标识与发送份数的映射关系,当第一数据包处理设备获取到设备标识后,将携带该设备标识的数据发送查询请求发送至数据服务器,数据服务器则在表1中查找接收到的设备标识对应的发送份数。优选的,在该映射关系表中还可包括发送时间间隔,即间隔多久发送一份数据包,还可以包括是否支持多发功能。当然,也可以理解为,若在该映射表中未查找到与接收到的设备标识相匹配的项,则可认为该设备标识对应的第二数据包处理设备不支持多发功能。
表1
设备标识 发送份数 发送时间间隔 是否支持多发功能
10400400331 2 2ms
10401653401 2 3ms
10402432100 3 4ms
具体实现中,第一数据包处理设备接收用户终端所发送的应用数据包,然后基于所获取的发送份数和发送时间间隔等参数信息将所述应用数据包发送至第二数据包处理设备。例如,发送份数为2,发送时间间隔为4ms,则先发送一份所述应用数据包,并在4ms后再发送一份所述应用数据包,以避免因网络传输质量差而影响丢包,从而导致无法实现上行数据交互过程。其中,所述上行可以理解为由源IP到目的IP的数据传输方向,即用户终端经第一数据包处理设备向第二数据包处理设备传输应用数据包的方向。所述用户终端可以包括平板电脑、个人计算机(Personal Computer,PC)、智能手机、掌上电脑以及移动互联网设备(Mobile Internet Device,MID)等具备数据包收发功能的终端设备;所述第一数据包处理设备可以为用户终端的一个具有数据多收多发及数据去重功能的功能模块,如网络软件开发工具包(Software Development Kit,SDK),也可以为一个具有数据多收多发及数据去重功能的独立终端设备。
S102,所述第二数据包处理设备对所接收到的所述应用数据包进行去重处理,并将去重处理后的所述应用数据包采用单发方式发送至应用服务器;
可以理解的是,所述去重处理是指对所接收到的多份数据包中的相同数据包进行过滤,以去掉重复数据包的过程。所述去重处理可采用去重算法实现,一种可行的去重算法为SimHash算法。所述SimHash simhash算法分为5个步骤:分词、hash、加权、合并、降维,其中:
分词,把需要判断的文本进行分词处理,从而得到该文本的多个特征词。然后对每个特征词分别加上权重。
具体实现中,第二数据包处理设备在接收到第一数据包处理设备发送的多份应用数据包后,可采用Simhash算法将每份应用数据包转换为Simhash码,然后计算每两个Simhash码的相似度,当相似度在设定的阈值范围内时,确定这两个应用数据包为相同的数据包,则过滤掉其中相同的数据包,并只保留一份发送至应用服务器。其中,所述第二数据包处理设备是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。所述第二数据包处理设备可以为无线路由设备,也可以为有线路由设备。
需要说明的是,在所述第二数据包处理设备中安装有访问接入点(Access Point,AP)插件,安装插件后能增加相关辅助功能。比如安装迅雷远程下载插件,第二数据包处理设备带USB接口,可以外接U盘、硬盘,就可以通过远程下载影视节目,无需打开电脑;或者安装游戏加速软件,提供第二数据包处理设备加速;或者安装去广告插件,能够屏蔽广告。在本发明实施例中,通过安装AP插件使得第二数据包处理设备具备数据多发多收功能和去重功能。
S103,所述应用服务器基于所述去重处理后的应用数据包获取反馈数据包,并采用单发方式发送至所述第二数据包处理设备;
可以理解的是,所述反馈数据包也可以为单个消息,用于与所述应用数据包进行数据交互而实现任务。例如,用户通过用户终端玩网络游戏时选择“回城”功能后,用户终端将“回城”请求(应用数据包)发送至游戏服务器,游戏服务器反馈回城权限(反馈数据包)至用户终端。又例如,第一用户终端与第二用户终端通过通信服务器进行即时通信,第一用户终端向第二用户终端发送的消息即为应用数据包,服务器将该应用数据包转发至第二用户终端后,第二用户终端再通过该通信服务器转发消息至第一用户终端,此时所转发的消息即为反馈数据包。
具体实现中,所述应用服务器在接收到第一数据包处理设备单发的应用数据包后,获取与该应用数据包对应的反馈数据包,再将该反馈数据包发送一份至第二数据包处理设备。所述应用服务器指为各种应用程序提供服务的服务器,如游戏服务器、即时通信服务器、信息搜索服务器等。
需要说明的是,在第二数据包处理设备与应用服务器之间也存在丢包的情况,但相对第一数据包处理设备与第二数据包处理设备的传输而言,丢包概率小,本发明实施例不予考虑。
S104,所述第二数据包处理设备接收所述反馈数据包,并将所述反馈数据包采用多发方式发送至所述第一数据包处理设备;
具体实现中,第二数据包处理设备在接收到应用服务器发送的反馈数据包后,可基于所获取的发送份数、发送时间间隔等多发参数将该反馈数据包发送至第一数据包处理设备。所述多发参数的获取可以理解为第二数据包处理设备基于设备标识向数据服务器获取,如表1所示的方式,也可以是第二数据包处理设备直接基于预存的设备标识与多发参数的映射关系表进行查找,还可以是第二数据包处理设备向第一数据包处理设备获取等方式,以实现下行数据交互过程。其中,所述下行是相对前述上行而言,可以理解为由目的IP到源IP的数据传输方向,即第二数据包处理设备经第一数据包处理设备向用户终端传输应用数据包的方向。
S105,所述第一数据包处理设备对所接收到的所述反馈数据包进行去重处理,并将去重处理后的所述反馈数据包采用单发方式发送至所述用户终端。
具体实现中,所述第一数据包处理设备将接收到的多份反馈数据包进行去重处理,并发送一份去重处理后的反馈数据包至用户终端。用户终端在接收到反馈数据包后,可基于该反馈数据包执行指令任务,如在游戏场景下基于用户选择的功能按键反馈执行权限,基于该执行权限实现游戏功能;或者确认应答,如在信息浏览场景下基于用户发送的访问权限请求通过信息服务器反馈应答以允许访问;又或者实现数据交互,如两用户终端聊天场景下,一用户终端向另一用户终端发送消息后,在接收到另一终端反馈的消息时,再继续给予反馈的消息向另一用户终端再次发送消息。其中,在第一数据包处理设备与用户终端之间也存在丢包的情况,但相对第一数据包处理设备与第二数据包处理设备的传输而言,丢包概率小,本发明实施例不予考虑。
需要说明的是,所述第一数据包处理设备对所述反馈数据包的去重处理可与第二数据包处理设备的去重处理相同,此处不再赘述。
在本发明实施例中,通过第一数据包处理设备接收用户终端采用单发方式发送的应用数据包后,并采用多发方式发送至第二数据包处理设备,第二数据包处理设备对所接收到的应用数据包进行去重处理,然后采用单发方式发送至应用服务器,而应用服务器基于去重处理后的应用数据包获取反馈数据包,并采用单发方式发送至第二数据包处理设备,第二数据包处理设备将接收到的反馈数据包采用多发方式发送至第一数据包处理设备,第一数据包处理设备对所接收到的反馈数据包进行去重处理后的反馈数据包采用单发方式发送至用户终端。可以通过第一数据包处理设备和第二数据包处理设备对接收到的数据包进行去重处理后以单发方式进行发送,在防止丢包的情况下不会增加应用服务器的流量,进而也可以减小应用服务器的数据处理压力,同样,也不会增加用户终端的流量,并可以减小用户终端的数据处理压力。
请参见图2,为本发明实施例提供了一种数据包处理方法的流程示意图,以用户终端、第一数据包处理设备、应用服务器、第二数据包处理设备和数据服务器五侧进行描述,如图2所示,本发明实施例的所述方法可以包括以下步骤S201-步骤S213。
S201,当检测到目标数据通道的网络传输质量小于网络质量阈值时,所述用户终端获取应用数据包,并将所述应用数据包采用单发方式发送至所述数据处理终端;
可以理解的是,所述数据通道是指数据从源IP到目的IP的传输通道。所述数据通道由路由信息(接口Port数组对,包括源IP、源Port、TCP/UDP协议、目的IP、目的Port)确定。
由于多个用户可以使用同一个网络或者一个用户可以使用同一个网络实现不同的操作(如看视频+聊天),而对于每个操作则对应不同的数据通道。通过对同一网络中的每个数据通道的网络传输质量进行检测,以判断各数据通道网络传输质量的好坏。其中,所述网络传输质量是网络与用户之间以及网络上互相通信的用户之间关于信息传输与共享的质的约定。所述网络质量阈值可以包括传输延时允许时间、最小传输画面失真度、声像同步以及最小丢包率等。例如,目标数据通道的网络延时>200ms且/或丢包率>5%时,确定目标数据通道的网络传输质量小于网络质量阈值,即目标数据通道的当前网络质量差。
数据包是TCP/IP协议通信传输中的数据单位。在包交换网络里,单个消息被划分为多个数据包,在每个数据包中包含发送者和接收者的地址信息(源IP和目的IP)。这些数据包可沿着源IP到目的IP之间的不同路径在一个或多个网络中传输,并且在目的IP重新组合。
所述应用数据包即为单个消息,也是用于数据交换的源数据。例如,用户通过用户终端玩网络游戏的过程就需要通过用户终端与游戏服务器之间的数据交换实现,而由用户终端向游戏服务器传送的数据即为应用数据包。又例如,第一用户终端与第二用户终端通过通信服务器进行即时通信,第一用户终端向第二用户终端发送的消息即为应用数据包。
当然,应用数据包从源IP到目的IP是通过中继站传输的,所述中继站为主机或第二数据包处理设备,基于路由信息,将应用数据包向下一个中继站传递。在应用数据包传输的路途上,由于第二数据包处理设备在遇到大数据流量的情况下某些数据通道的带宽被占用,而使得这些数据通道的网络传输质量差,进而导致这些数据通道可能会丢掉一些数据包,从而导致不能实现数据交换。因此,本发明实施例主要解决在大流量数据下的丢包问题。
所述单发方式是指只发送一份数据包,所述多发方式是指发送多份数据包,如两份、三份、四份等。
具体实现中,当用户终端检测到目标数据通道的网络传输质量小于网络质量阈值时,或者当第一数据包处理设备检测到目标数据通道的网络传输质量小于网络质量阈值时通知用户终端,表明目标数据通道的网络传输质量差,此时存在丢包的可能性,因此,用户终端获取用于交换的应用数据包,并以单发方式(发送一份)将该应用数据包发送至第一数据包处理设备,第一数据包处理设备接收用户终端所发送的应用数据包,然后基于所获取的发送份数和发送时间间隔等参数信息将所述应用数据包发送至第二数据包处理设备。例如,发送份数为2,发送时间间隔为4ms,则先发送一份所述应用数据包,并在4ms后再发送一份所述应用数据包,以避免因网络传输质量差而影响丢包,从而导致无法实现上行数据交互过程。其中,所述上行可以理解为由源IP到目的IP的数据传输方向,即用户终端经第一数据包处理设备向第二数据包处理设备传输应用数据包的方向。所述用户终端可以包括平板电脑、个人计算机(PC)、智能手机、掌上电脑以及移动互联网设备(MID)等具备数据包收发功能的终端设备;所述第一数据包处理设备可以为用户终端的一个具有数据多收多发及数据去重功能的功能模块,如网络SDK,也可以为一个具有数据多收多发及数据去重功能的独立终端设备。
S202,所述第一数据包处理设备接收所述用户终端采用单发方式发送的应用数据包,并向所述第二数据包处理设备发送标识获取请求;
可以理解的是,第一数据包处理设备与第二数据包处理设备之间可通过互联网通信。当第一数据包处理设备接收到用户终端发送的应用数据包时,触发第一数据包处理设备向第二数据包处理设备获取设备标识。其中,所述第二数据包处理设备是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。所述第二数据包处理设备可以为无线路由设备,也可以为有线路由设备。所述设备标识用于唯一识别第二数据包处理设备,可以为第二数据包处理设备的编号、型号、识别码、序列号等。
S203,所述第二数据包处理设备基于所述标识获取请求获取设备标识,并将所述设备标识发送至所述第一数据包处理设备;
在一种可行的实现方式中,所述第二数据包处理设备直接在缓存中读取设备标识或者提取缓存数据并对缓存数据进行解析而获取,同时,将所获取的设备标识反馈至第一数据包处理设备。
S204,所述第一数据包处理设备接收并保存所述第二数据包处理设备发送的设备标识;
可以理解的是,所述第一数据包处理设备将所接收到的设备标识添加到设定的缓存空间中。优选的,可设定周期清除缓存,以节省缓存空间。
S205,所述第一数据包处理设备向数据服务器获取所述设备标识对应的多发参数;
可以理解的是,所述多发参数包括第二数据包处理设备是否支持多发功能,多发份数以及发送时间间隔等参数,所发送的份数由第二数据包处理设备的性能决定,目前,大多数第二数据包处理设备普遍支持两份数据包,即支持双倍数据包的发送和接收。优选的,当第一数据包处理设备获取到该第二数据包处理设备的多发参数后,将该多发参数添加到S204对应的缓存空间中,以便下次启动数据多发时直接在缓存中查找多发参数即可。
具体的,第一数据包处理设备将携带设备标识的多发参数获取请求发送至数据服务器,数据服务器基于第二数据包处理设备的设备标识在预存的设备标识与发送份数映射关系表中查询,并将查询的结果反馈至第一数据包处理设备。可以理解的是,第二数据包处理设备的多收份数和多发份数相同,当然,也可以不同,不同情况下可基于预存数据确定多收份数和多发份数。
例如,如表1所示为数据服务器所存储的一种形式的第二数据包处理设备多发参数表,其中包括设备标识与发送份数的映射关系。数据服务器在表1中查找接收到的设备标识对应的发送份数。优选的,在该映射关系表中还可包括发送时间间隔,即间隔多久发送一份数据包,还可以包括是否支持多发功能。当然,也可以理解为,若在该映射表中未查找到与接收到的设备标识相匹配的项,则可认为该设备标识对应的第二数据包处理设备不支持多发功能。
其中,所述数据服务器即为用于数据存储、查询、更新等数据管理的服务器。
S206,所述多发参数包括设备多发功能指示,当所述设备多发功能指示为所述第二数据包处理设备具备数据多发功能时,所述第一数据包处理设备获取所述用户终端对应的用户登录标识;
可以理解的是,所述用户登录标识可以为用户登录账号或用户ID等,该用户登录标识主要用于验证登录用户的合法性。
具体的,当第一数据包处理设备确定所述第二数据包处理设备具备多发功能时,通过读取应用数据包中携带的用户登录标识或者向用户终端获取用户登录标识,以对操作用户终端的当前用户的合法性进行验证,提高数据交互的安全性。
S207,当所述用户登录标识在设定的白名单标识集合中时,所述第一数据包处理设备启动数据多发功能,并通知所述第二数据包处理设备启动数据多发功能。
可以理解的是,所述白名单标识集合中包括至少一个白名单标识,所述至少一个白名单标识即为合法用户登录标识。若用户登录标识与白名单标识集合中的标识相匹配时,确定该用户登录标识为合法标识,具有数据交互权限。此时,第一数据包处理设备启动数据多发功能,同时,通知第二数据包处理设备启动数据多发功能,以便实现数据多发操作。当然,第二数据包处理设备启动数据多发功能后,也会相应的回复确认信息,以告知第一数据包处理设备多发功能已启动,可以完成数据多发操作了。
S208,所述多发参数还包括发送份数和时间间隔,所述第一数据包处理设备按照所述时间间隔以及发送份数将所述应用数据包发送至所述第二数据包处理设备;
具体实现中,第一数据包处理设备接收用户终端所发送的应用数据包,然后基于所获取的发送份数和发送时间间隔等参数信息将所述应用数据包发送至第二数据包处理设备。例如,发送份数为2,发送时间间隔为4ms,则第一数据包处理设备先发送一份所述应用数据包,并在4ms后再发送一份所述应用数据包,以避免因网络传输质量差而影响丢包而导致无法实现上行数据交互。
S209,当检测到所述目标数据通道的网络传输质量大于或者等于所述网络质量阈值时,所述第一数据包处理设备接收所述用户终端采用单发方式发送的应用数据包,并将所述应用数据包采用单发方式发送至所述第二数据包处理设备;
可以理解的是,若目标数据通道的网络传输质量大于或者等于所述网络质量阈值时,表明目标数据通道的网络质量可以支持当前的数据传输要求,不会导致丢包问题,因此,只需要将应用数据包采用单发方式进行传输即可。
S210,所述第二数据包处理设备对所接收到的所述应用数据包进行去重处理,并将去重处理后的所述应用数据包采用单发方式发送至应用服务器;
可以理解的是,所述去重处理是指对所接收到的多份数据包中的相同数据包进行过滤,以去掉重复数据包的过程。所述去重处理可采用去重算法实现,一种可行的去重算法为SimHash算法。所述SimHash simhash算法分为5个步骤:分词、hash、加权、合并、降维,其中:
分词,把需要判断的文本进行分词处理,从而得到该文本的多个特征词。然后对每个特征词分别加上权重。
具体实现中,第二数据包处理设备在接收到第一数据包处理设备发送的多份应用数据包后,可采用Simhash算法将每份应用数据包转换为Simhash码,然后计算每两个Simhash码的相似度,当相似度在设定的阈值范围内时,确定这两个应用数据包为相同的数据包,则过滤掉其中相同的数据包,并只保留一份发送至应用服务器。其中,所述第二数据包处理设备是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。
需要说明的是,在所述第二数据包处理设备中安装有AP插件,安装插件后能增加相关辅助功能。比如安装迅雷远程下载插件,第二数据包处理设备带USB接口,可以外接U盘、硬盘,就可以通过远程下载影视节目,无需打开电脑;或者安装游戏加速软件,提供第二数据包处理设备加速;或者安装去广告插件,能够屏蔽广告。在本发明实施例中,通过安装AP插件使得第二数据包处理设备具备数据多发多收功能和去重功能。
S211,所述应用服务器基于所述去重处理后的应用数据包获取反馈数据包,并采用单发方式发送至所述第二数据包处理设备;
可以理解的是,所述反馈数据包也可以为单个消息,用于与所述应用数据包进行数据交互而实现任务。例如,用户通过用户终端玩网络游戏时选择“回城”功能后,用户终端将“回城”请求(应用数据包)发送至游戏服务器,游戏服务器反馈回城权限(反馈数据包)至用户终端。又例如,第一用户终端与第二用户终端通过通信服务器进行即时通信,第一用户终端向第二用户终端发送的消息即为应用数据包,服务器将该应用数据包转发至第二用户终端后,第二用户终端再通过该通信服务器转发消息至第一用户终端,此时所转发的消息即为反馈数据包。
具体实现中,所述应用服务器在接收到第二数据包处理设备单发的应用数据包后,获取与该应用数据包对应的反馈数据包,再将该反馈数据包发送一份至第二数据包处理设备。所述应用服务器指为各种应用程序提供服务的服务器,如游戏服务器、即时通信服务器、信息搜索服务器等。
需要说明的是,在第二数据包处理设备与应用服务器之间也存在丢包的情况,但相对第一数据包处理设备与第二数据包处理设备的传输而言,丢包概率小,本发明实施例不予考虑。
S212,所述第二数据包处理设备接收所述反馈数据包,并将所述反馈数据包采用多发方式发送至所述第一数据包处理设备;
具体实现中,第二数据包处理设备在接收到应用服务器发送的反馈数据包后,可基于所获取的发送份数、发送时间间隔等多发参数将该反馈数据包发送至第一数据包处理设备。所述多发参数的获取可以理解为第二数据包处理设备基于设备标识向数据服务器获取,如表1所示的方式,也可以是第二数据包处理设备直接基于预存的设备标识与多发参数的映射关系表进行查找,还可以是第二数据包处理设备向第一数据包处理设备获取等方式,以实现下行数据交互过程。其中,所述下行是相对前述上行而言,可以理解为由目的IP到源IP的数据传输方向,即第二数据包处理设备经第一数据包处理设备向用户终端传输应用数据包的方向。
S213,所述第一数据包处理设备对所接收到的所述反馈数据包进行去重处理,并将去重处理后的所述反馈数据包采用单发方式发送至所述用户终端。
具体实现中,所述第一数据包处理设备将接收到的多份反馈数据包进行去重处理,并发送一份去重处理后的反馈数据包至用户终端。用户终端在接收到反馈数据包后,可基于该反馈数据包执行指令任务,如在游戏场景下基于用户选择的功能按键反馈执行权限,基于该执行权限实现游戏功能;或者确认应答,如在信息浏览场景下基于用户发送的访问权限请求通过信息服务器反馈应答以允许访问;又或者实现数据交互,如两用户终端聊天场景下,一用户终端向另一用户终端发送消息后,在接收到另一终端反馈的消息时,再继续给予反馈的消息向另一用户终端再次发送消息。其中,在第一数据包处理设备与用户终端之间也存在丢包的情况,但相对第一数据包处理设备与第二数据包处理设备的传输而言,丢包概率小,本发明实施例不予考虑。
需要说明的是,所述第一数据包处理设备对所述反馈数据包的去重处理可与第二数据包处理设备的去重处理相同,此处不再赘述。
在本发明实施例中,通过第一数据包处理设备接收用户终端采用单发方式发送的应用数据包后,并采用多发方式发送至第二数据包处理设备,第二数据包处理设备对所接收到的应用数据包进行去重处理,然后采用单发方式发送至应用服务器,而应用服务器基于去重处理后的应用数据包获取反馈数据包,并采用单发方式发送至第二数据包处理设备,第二数据包处理设备将接收到的反馈数据包采用多发方式发送至第一数据包处理设备,第一数据包处理设备对所接收到的反馈数据包进行去重处理后的反馈数据包采用单发方式发送至用户终端。仅在网络质量差的时候进行多倍发包,并可以通过第一数据包处理设备和第二数据包处理设备对接收到的数据包进行去重处理后以单发方式进行发送,在防止丢包的情况下不会增加应用服务器的流量,进而也可以减小应用服务器的数据处理压力,同样,也不会增加用户终端的流量,并可以减小用户终端的数据处理压力。
请参见图3,为本发明实施例提供了一种数据包处理方法的流程示意图,以第一数据包处理设备侧进行描述,如图3所示,本发明实施例的所述方法可以包括以下步骤S301-步骤S303。
S301,接收用户终端采用单发方式发送的应用数据包,并将所述应用数据包采用多发方式发送至第二数据包处理设备,以使所述第二数据包处理设备对所接收到的所述应用数据包进行去重处理后采用单发方式发送至应用服务器,并以使所述应用服务器获取反馈数据包,所述反馈数据包为所述应用服务器基于所述去重处理后的应用数据包所反馈的数据包;
可以理解的是,数据包是TCP/IP协议通信传输中的数据单位。在包交换网络里,单个消息被划分为多个数据包,在每个数据包中包含发送者和接收者的地址信息(源IP和目的IP)。这些数据包可沿着源IP到目的IP之间的不同路径在一个或多个网络中传输,并且在目的IP重新组合。所述应用数据包即为单个消息,也是用于数据交换的源数据。
当然,应用数据包从源IP到目的IP是通过中继站传输的,所述中继站为主机或第二数据包处理设备,基于路由信息(接口Port数组对,包括源IP、源Port、TCP/UDP协议、目的IP、目的Port),将应用数据包向下一个中继站传递。在应用数据包传输的路途上,由于在遇到大数据流量的情况下某些数据通道的带宽被占用,而使得这些数据通道的网络传输质量差,进而导致这些数据通道可能会丢掉一些数据包,从而导致不能实现数据交换。因此,本发明实施例主要解决在大流量数据下的丢包问题。
所述单发方式是指只发送一份数据包,所述多发方式是指发送多份数据包,如两份、三份、四份等。其中,所发送的份数由第二数据包处理设备的性能决定,目前,大多数第二数据包处理设备普遍支持两份数据包,即支持双倍数据包的发送和接收。一种获取数据包发送份数的方式是基于第二数据包处理设备的设备标识向数据服务器(云服务器)在预存的设备标识与发送份数映射关系表中查询。所述设备标识用于唯一识别第二数据包处理设备,可以为第二数据包处理设备编号、型号、识别码、序列号等。可以理解的是,第二数据包处理设备的多收份数和多发份数相同,当然,也可以不同,不同情况下可基于预存数据确定多收份数和多发份数。
例如,如表1所示为数据服务器所存储的一种形式的第二数据包处理设备多发参数表,其中包括设备标识与发送份数的映射关系,当第一数据包处理设备获取到设备标识后,将携带该设备标识的数据发送查询请求发送至数据服务器,数据服务器则在表1中查找接收到的设备标识对应的发送份数。优选的,在该映射关系表中还可包括发送时间间隔,即间隔多久发送一份数据包,还可以包括是否支持多发功能。当然,也可以理解为,若在该映射表中未查找到与接收到的设备标识相匹配的项,则可认为该设备标识对应的第二数据包处理设备不支持多发功能。
具体实现中,第一数据包处理设备接收用户终端所发送的应用数据包,然后基于所获取的发送份数和发送时间间隔等参数信息将所述应用数据包发送至第二数据包处理设备,使得第二数据包处理设备对所接收到的应用数据包进行去重处理后发送至应用服务器,进而使得应用服务器基于所接收到的应用服务器获取反馈数据包再发送至第二数据包处理设备,并由第二数据包处理设备将反馈数据包多发至第一数据包处理设备。所述用户终端可以包括平板电脑、个人计算机(PC)、智能手机、掌上电脑以及移动互联网设备(MID)等具备数据包收发功能的终端设备;所述第一数据包处理设备可以为用户终端的一个具有数据多收多发及数据去重功能的功能模块,如网络SDK,也可以为一个具有数据多收多发及数据去重功能的独立终端设备。
需要说明的是,所述去重处理是指对所接收到的多份数据包中的相同数据包进行过滤,以去掉重复数据包的过程。所述去重处理可采用去重算法实现,一种可行的去重算法为SimHash算法。所述SimHash simhash算法分为5个步骤:分词、hash、加权、合并、降维,其中:
分词,把需要判断的文本进行分词处理,从而得到该文本的多个特征词。然后对每个特征词分别加上权重。
所述第二数据包处理设备可以为无线路由设备,也可以为有线路由设备。所述应用服务器指为各种应用程序提供服务的服务器,如游戏服务器、即时通信服务器、信息搜索服务器等。
需要说明的是,在所述第二数据包处理设备中安装有AP插件,安装插件后能增加相关辅助功能。比如安装迅雷远程下载插件,第二数据包处理设备带USB接口,可以外接U盘、硬盘,就可以通过远程下载影视节目,无需打开电脑;或者安装游戏加速软件,提供第二数据包处理设备加速;或者安装去广告插件,能够屏蔽广告。在本发明实施例中,通过安装AP插件使得第二数据包处理设备具备数据多发多收功能和去重功能。
S302,接收所述第二数据包处理设备采用多发方式发送的所述反馈数据包,并对所接收到的所述反馈数据包进行去重处理;
可以理解的是,所述反馈数据包也可以为单个消息,用于与所述应用数据包进行数据交互而实现任务。例如,用户通过用户终端玩网络游戏时选择“回城”功能后,用户终端将“回城”请求(应用数据包)发送至游戏服务器,游戏服务器反馈回城权限(反馈数据包)至用户终端。又例如,第一用户终端与第二用户终端通过通信服务器进行即时通信,第一用户终端向第二用户终端发送的消息即为应用数据包,服务器将该应用数据包转发至第二用户终端后,第二用户终端再通过该通信服务器转发消息至第一用户终端,此时所转发的消息即为反馈数据包。
具体实现中,所述第一数据包处理设备在接收到所述第二数据包处理设备发送的多份反馈数据包后,对多份反馈数据包进行去重处理,从而获取一份完整的反馈数据包。第一数据包处理设备的去重处理方式可与第二数据包处理设备的去重处理方式相同,可参见S301,此处不再赘述。
S303,将去重处理后的所述反馈数据包采用单发方式发送至所述用户终端。
具体实现中,所述第一数据包处理设备发送一份去重处理后的反馈数据包至用户终端,以使用户终端在接收到反馈数据包后,可基于该反馈数据包执行指令任务,如在游戏场景下基于用户选择的功能按键反馈执行权限,基于该执行权限实现游戏功能;或者确认应答,如在信息浏览场景下基于用户发送的访问权限请求通过信息服务器反馈应答以允许访问;又或者实现数据交互,如两用户终端聊天场景下,一用户终端向另一用户终端发送消息后,在接收到另一终端反馈的消息时,再继续给予反馈的消息向另一用户终端再次发送消息。其中,在第一数据包处理设备与用户终端之间也存在丢包的情况,但相对第一数据包处理设备与第二数据包处理设备的传输而言,丢包概率小,本发明实施例不予考虑。
在本发明实施例中,通过第一数据包处理设备接收用户终端采用单发方式发送的应用数据包后,并采用多发方式发送至第二数据包处理设备,以使第二数据包处理设备对所接收到的应用数据包进行去重处理并采用单发方式发送至应用服务器,进而接收应用服务器基于去重处理后的应用数据包获取的反馈数据包,进而,第一数据包处理设备接收第二数据包处理设备以多发方式发送的反馈数据包,并对所接收到的反馈数据包进行去重处理后采用单发方式发送至用户终端。可以通过第一数据包处理设备触发第二数据包处理设备对接收到的数据包进行去重处理后以单发方式进行发送以及对所接收到的数据包进行去重处理后以单发方式进行发送,在防止丢包的情况下不会增加应用服务器以及用户终端的流量,进而也可以减小应用服务器和用户终端的数据处理压力。
请参见图4,为本发明实施例提供了一种数据包处理方法的流程示意图,以第一数据包处理设备侧进行描述,如图4所示,本发明实施例的所述方法可以包括以下步骤S401-步骤S408。
S401,当检测到目标数据通道的网络传输质量小于网络质量阈值时,接收用户终端采用单发方式发送的应用数据包;
可以理解的是,所述数据通道是指数据从源IP到目的IP的传输通道。所述数据通道由路由信息(接口Port数组对,包括源IP、源Port、TCP/UDP协议、目的IP、目的Port)确定。
由于多个用户可以使用同一个网络或者一个用户可以使用同一个网络实现不同的操作(如看视频+聊天),而对于每个操作则对应不同的数据通道。通过对同一网络中的每个数据通道的网络传输质量进行检测,以判断各数据通道网络传输质量的好坏。其中,所述网络传输质量是网络与用户之间以及网络上互相通信的用户之间关于信息传输与共享的质的约定。所述网络质量阈值可以包括传输延时允许时间、最小传输画面失真度、声像同步以及最小丢包率等。例如,目标数据通道的网络延时>200ms且/或丢包率>5%时,确定目标数据通道的网络传输质量小于网络质量阈值,即目标数据通道的当前网络质量差。
数据包是TCP/IP协议通信传输中的数据单位。在包交换网络里,单个消息被划分为多个数据包,在每个数据包中包含发送者和接收者的地址信息(源IP和目的IP)。这些数据包可沿着源IP到目的IP之间的不同路径在一个或多个网络中传输,并且在目的IP重新组合。
所述应用数据包即为单个消息,也是用于数据交换的源数据。例如,用户通过用户终端玩网络游戏的过程就需要通过用户终端与游戏服务器之间的数据交换实现,而由用户终端向游戏服务器传送的数据即为应用数据包。又例如,第一用户终端与第二用户终端通过通信服务器进行即时通信,第一用户终端向第二用户终端发送的消息即为应用数据包。
当然,应用数据包从源IP到目的IP是通过中继站传输的,所述中继站为主机或第二数据包处理设备,基于路由信息,将应用数据包向下一个中继站传递。在应用数据包传输的路途上,由于第二数据包处理设备在遇到大数据流量的情况下某些数据通道的带宽被占用,而使得这些数据通道的网络传输质量差,进而导致这些数据通道可能会丢掉一些数据包,从而导致不能实现数据交换。因此,本发明实施例主要解决在大流量数据下的丢包问题。所述单发方式是指只发送一份数据包。
具体实现中,当用户终端检测到目标数据通道的网络传输质量小于网络质量阈值时,或者当第一数据包处理设备检测到目标数据通道的网络传输质量小于网络质量阈值时通知用户终端,表明目标数据通道的网络传输质量差,此时存在丢包的可能性,因此,用户终端获取用于交换的应用数据包,并以单发方式(发送一份)将该应用数据包发送至第一数据包处理设备,第一数据包处理设备接收用户终端所发送的应用数据包。所述用户终端可以包括平板电脑、个人计算机(PC)、智能手机、掌上电脑以及移动互联网设备(MID)等具备数据包收发功能的终端设备;所述第一数据包处理设备可以为用户终端的一个具有数据多收多发及数据去重功能的功能模块,如网络SDK,也可以为一个具有数据多收多发及数据去重功能的独立终端设备。
可选的,当检测到所述目标数据通道的网络传输质量大于或者等于所述网络质量阈值时,接收所述用户终端采用单发方式发送的应用数据包,并将所述应用数据包采用单发方式发送至所述第二数据包处理设备。
可以理解的是,若目标数据通道的网络传输质量大于或者等于所述网络质量阈值时,表明目标数据通道的网络质量可以支持当前的数据传输要求,不会导致丢包问题,因此,只需要将应用数据包采用单发方式进行传输即可。
S402,向所述第二数据包处理设备发送标识获取请求,接收并保存所述第二数据包处理设备发送的设备标识;
可以理解的是,第一数据包处理设备与第二数据包处理设备之间可通过互联网通信。当第一数据包处理设备接收到用户终端发送的应用数据包时,触发第一数据包处理设备向第二数据包处理设备获取设备标识。所述第一数据包处理设备将所接收到的设备标识添加到设定的缓存空间中。优选的,可设定周期清除缓存,以节省缓存空间。所述设备标识用于唯一识别第二数据包处理设备,可以为第二数据包处理设备的编号、型号、识别码、序列号等。
S403,向数据服务器获取所述设备标识对应的多发参数,所述多发参数包括设备多发功能指示;
可以理解的是,所述多发参数包括第二数据包处理设备是否支持多发功能指示,多发份数以及发送时间间隔等参数,所发送的份数由第二数据包处理设备的性能决定,目前,大多数第二数据包处理设备普遍支持两份数据包,即支持双倍数据包的发送和接收。优选的,当第一数据包处理设备获取到该第二数据包处理设备的多发参数后,将该多发参数添加到缓存空间中,以便下次启动数据多发时直接在缓存中查找多发参数即可。
具体的,第一数据包处理设备将携带设备标识的多发参数获取请求发送至数据服务器,以使数据服务器基于第二数据包处理设备的设备标识在预存的设备标识与发送份数映射关系表中查询,并将查询的结果反馈至第一数据包处理设备。可以理解的是,第二数据包处理设备的多收份数和多发份数相同,当然,也可以不同,不同情况下可基于预存数据确定多收份数和多发份数。其中,所述数据服务器即为用于数据存储、查询、更新等数据管理的服务器。
例如,如表1所示为数据服务器所存储的一种形式的第二数据包处理设备多发参数表,其中包括设备标识与发送份数的映射关系。数据服务器在表1中查找接收到的设备标识对应的发送份数。优选的,在该映射关系表中还可包括发送时间间隔,即间隔多久发送一份数据包,还可以包括是否支持多发功能。当然,也可以理解为,若在该映射表中未查找到与接收到的设备标识相匹配的项,则可认为该设备标识对应的第二数据包处理设备不支持多发功能。
S404,当所述设备多发功能指示为所述第二数据包处理设备具备数据多发功能时,获取所述用户终端对应的用户登录标识;
可以理解的是,所述用户登录标识可以为用户登录账号或用户ID等,该用户登录标识主要用于验证登录用户的合法性。
具体的,当第一数据包处理设备确定所述第二数据包处理设备具备多发功能时,通过读取应用数据包中携带的用户登录标识或者向用户终端获取用户登录标识,以对操作用户终端的当前用户的合法性进行验证,提高数据交互的安全性。
S405,当所述用户登录标识在设定的白名单标识集合中时,启动数据多发功能,并通知所述第二数据包处理设备启动数据多发功能;
可以理解的是,所述白名单标识集合中包括至少一个白名单标识,所述至少一个白名单标识即为合法用户登录标识。若用户登录标识与白名单标识集合中的标识相匹配时,确定该用户登录标识为合法标识,具有数据交互权限。此时,第一数据包处理设备启动数据多发功能,同时,通知第二数据包处理设备启动数据多发功能,以便实现数据多发操作。当然,第二数据包处理设备启动数据多发功能后,也会相应的回复确认信息,以告知第一数据包处理设备多发功能已启动,可以完成数据多发操作了。
S406,所述多发参数还包括发送份数和时间间隔,按照所述时间间隔以及发送份数将所述应用数据包发送至所述第二数据包处理设备,以使所述第二数据包处理设备对所接收到的所述应用数据包进行去重处理后采用单发方式发送至应用服务器,并以使所述应用服务器获取反馈数据包,所述反馈数据包为所述应用服务器基于所述去重处理后的应用数据包所反馈的数据包;
具体实现中,第一数据包处理设备接收用户终端所发送的应用数据包,然后基于所获取的发送份数和发送时间间隔等参数信息将所述应用数据包发送至第二数据包处理设备。例如,发送份数为2,发送时间间隔为4ms,则第一数据包处理设备先发送一份所述应用数据包,并在4ms后再发送一份所述应用数据包至第二数据包处理设备,以使第二数据包处理设备对所接收到的所述应用数据包进行去重处理再单发至应用服务器,从而使得应用服务器对应用数据包进行数据交换而获取反馈数据包并发送至第二数据包处理设备,再由第二数据包处理设备发送至第一数据包处理设备。所述反馈数据包也可以为单个消息,用于与所述应用数据包进行数据交互而实现任务。
其中,所述去重处理是指对所接收到的多份数据包中的相同数据包进行过滤,以去掉重复数据包的过程。所述去重处理可采用去重算法实现,一种可行的去重算法为SimHash算法。所述SimHash算法分为5个步骤:分词、hash、加权、合并、降维,其中:
分词,把需要判断的文本进行分词处理,从而得到该文本的多个特征词。然后对每个特征词分别加上权重。
具体实现中,第二数据包处理设备在接收到第一数据包处理设备发送的多份应用数据包后,可采用Simhash算法将每份应用数据包转换为Simhash码,然后计算每两个Simhash码的相似度,当相似度在设定的阈值范围内时,确定这两个应用数据包为相同的数据包,则过滤掉其中相同的数据包,并只保留一份发送至应用服务器。其中,所述第二数据包处理设备是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。所述第二数据包处理设备可以为无线路由设备,也可以为有线路由设备。
需要说明的是,在所述第二数据包处理设备中安装有AP插件,安装插件后能增加相关辅助功能。比如安装迅雷远程下载插件,第二数据包处理设备带USB接口,可以外接U盘、硬盘,就可以通过远程下载影视节目,无需打开电脑;或者安装游戏加速软件,提供第二数据包处理设备加速;或者安装去广告插件,能够屏蔽广告。在本发明实施例中,通过安装AP插件使得第二数据包处理设备具备数据多发多收功能和去重功能。
S407,接收所述第二数据包处理设备采用多发方式发送的所述反馈数据包,并对所接收到的所述反馈数据包进行去重处理;
需要说明的是,所述第一数据包处理设备对所述反馈数据包的去重处理可与第二数据包处理设备的去重处理相同,此处不再赘述。
S408,将去重处理后的所述反馈数据包采用单发方式发送至所述用户终端。
具体实现中,所述第一数据包处理设备将接收到的多份反馈数据包进行去重处理,并发送一份去重处理后的反馈数据包至用户终端。用户终端在接收到反馈数据包后,可基于该反馈数据包执行指令任务,如在游戏场景下基于用户选择的功能按键反馈执行权限,基于该执行权限实现游戏功能;或者确认应答,如在信息浏览场景下基于用户发送的访问权限请求通过信息服务器反馈应答以允许访问;又或者实现数据交互,如两用户终端聊天场景下,一用户终端向另一用户终端发送消息后,在接收到另一终端反馈的消息时,再继续给予反馈的消息向另一用户终端再次发送消息。其中,在第一数据包处理设备与用户终端之间也存在丢包的情况,但相对第一数据包处理设备与第二数据包处理设备的传输而言,丢包概率小,本发明实施例不予考虑。
在本发明实施例中,通过第一数据包处理设备接收用户终端采用单发方式发送的应用数据包后,并采用多发方式发送至第二数据包处理设备,以使第二数据包处理设备对所接收到的应用数据包进行去重处理并采用单发方式发送至应用服务器,进而接收应用服务器基于去重处理后的应用数据包获取的反馈数据包,进而,第一数据包处理设备接收第二数据包处理设备以多发方式发送的反馈数据包,并对所接收到的反馈数据包进行去重处理后采用单发方式发送至用户终端。只在目标数据通道的网络传输质量差时,可以通过第一数据包处理设备触发第二数据包处理设备对接收到的数据包进行去重处理后以单发方式进行发送以及对所接收到的数据包进行去重处理后以单发方式进行发送,在防止丢包的情况下不会增加应用服务器以及用户终端的流量,进而也可以减小应用服务器和用户终端的数据处理压力。
请参见图5,为本发明实施例提供了一种数据包处理方法的流程示意图,以第二数据包处理设备侧进行描述,如图5所示,本发明实施例的所述方法可以包括以下步骤S501-步骤S503。
S501,接收第一数据包处理设备采用多发方式发送的应用数据包,并对所接收到的所述应用数据包进行去重处理;
可以理解的是,数据包是TCP/IP协议通信传输中的数据单位。在包交换网络里,单个消息被划分为多个数据包,在每个数据包中包含发送者和接收者的地址信息(源IP和目的IP)。这些数据包可沿着源IP到目的IP之间的不同路径在一个或多个网络中传输,并且在目的IP重新组合。
所述应用数据包即为单个消息,也是用于数据交换的源数据。例如,用户通过用户终端玩网络游戏的过程就需要通过用户终端与游戏服务器之间的数据交换实现,而由用户终端向游戏服务器传送的数据即为应用数据包。又例如,第一用户终端与第二用户终端通过通信服务器进行即时通信,第一用户终端向第二用户终端发送的消息即为应用数据包。
所述单发方式是指只发送一份数据包,所述多发方式是指发送多份数据包,如两份、三份、四份等。其中,所发送的份数由第二数据包处理设备的性能决定,目前,大多数第二数据包处理设备普遍支持两份数据包,即支持双倍数据包的发送和接收。一种获取数据包发送份数的方式是基于第二数据包处理设备的设备标识向数据服务器(云服务器)在预存的设备标识与发送份数映射关系表中查询。所述设备标识用于唯一识别第二数据包处理设备,可以为第二数据包处理设备的编号、型号、识别码、序列号等。可以理解的是,第二数据包处理设备的多收份数和多发份数相同,当然,也可以不同,不同情况下可基于预存数据确定多收份数和多发份数。
所述去重处理是指对所接收到的多份数据包中的相同数据包进行过滤,以去掉重复数据包的过程。所述去重处理可采用去重算法实现,一种可行的去重算法为SimHash算法。所述SimHash simhash算法分为5个步骤:分词、hash、加权、合并、降维,其中:
分词,把需要判断的文本进行分词处理,从而得到该文本的多个特征词。然后对每个特征词分别加上权重。
具体实现中,第二数据包处理设备接收第一数据包处理设备基于发送份数以及发送时间间隔等多发参数所发送的应用数据包,可采用Simhash算法将每份应用数据包转换为Simhash码,然后计算每两个Simhash码的相似度,当相似度在设定的阈值范围内时,确定这两个应用数据包为相同的数据包,则过滤掉其中相同的数据包。其中,所述第二数据包处理设备是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。所述第二数据包处理设备可以为无线路由设备,也可以为有线路由设备。所述用户终端可以包括平板电脑、个人计算机(PC)、智能手机、掌上电脑以及移动互联网设备(MID)等具备数据包收发功能的终端设备;所述第一数据包处理设备可以为用户终端的一个具有数据多收多发及数据去重功能的功能模块,如网络SDK,也可以为一个具有数据多收多发及数据去重功能的独立终端设备。
需要说明的是,在所述第二数据包处理设备中安装有AP插件,安装插件后能增加相关辅助功能。比如安装迅雷远程下载插件,第二数据包处理设备带USB接口,可以外接U盘、硬盘,就可以通过远程下载影视节目,无需打开电脑;或者安装游戏加速软件,提供第二数据包处理设备加速;或者安装去广告插件,能够屏蔽广告。在本发明实施例中,通过安装AP插件使得第二数据包处理设备具备数据多发多收功能和去重功能。
S502,将去重处理后的所述应用数据包采用单发方式发送至应用服务器,以使所述应用服务器基于所述去重处理后的应用数据包获取反馈数据包;
可以理解的是,所述反馈数据包也可以为单个消息,用于与所述应用数据包进行数据交互而实现任务。例如,用户通过用户终端玩网络游戏时选择“回城”功能后,用户终端将“回城”请求(应用数据包)发送至游戏服务器,游戏服务器反馈回城权限(反馈数据包)至用户终端。又例如,第一用户终端与第二用户终端通过通信服务器进行即时通信,第一用户终端向第二用户终端发送的消息即为应用数据包,服务器将该应用数据包转发至第二用户终端后,第二用户终端再通过该通信服务器转发消息至第一用户终端,此时所转发的消息即为反馈数据包。
具体实现中,所述第二数据包处理设备将接收到的应用数据包进行去重处理后发送至应用服务器,以使所述应用服务器获取与该应用数据包对应的反馈数据包,再将该反馈数据包发送一份至第二数据包处理设备。所述应用服务器指为各种应用程序提供服务的服务器,如游戏服务器、即时通信服务器、信息搜索服务器等。
需要说明的是,在第二数据包处理设备与应用服务器之间也存在丢包的情况,但相对第一数据包处理设备与第二数据包处理设备的传输而言,丢包概率小,本发明实施例不予考虑。
S503,接收所述应用服务器采用单发方式发送的所述反馈数据包,并将所述反馈数据包采用多发方式发送至所述第一数据包处理设备,以使所述第一数据包处理设备对所接收到的所述反馈数据包进行去重处理后采用单发方式发送至用户终端。
具体实现中,第二数据包处理设备在接收到应用服务器发送的反馈数据包后,可基于所获取的发送份数、发送时间间隔等多发参数将该反馈数据包发送至第一数据包处理设备,进而由第一数据包处理设备对所接收到的反馈数据包进行去重处理后发送至用户终端。所述多发参数的获取可以理解为第二数据包处理设备基于设备标识向数据服务器获取,如表1所示的方式,也可以是第二数据包处理设备直接基于预存的设备标识与多发参数的映射关系表进行查找,还可以是第二数据包处理设备向第一数据包处理设备获取等方式。而第一数据包处理设备去重处理方式可与第二数据包处理设备的去重处理方式相同,此处不再赘述。
需要说明的是,在第一数据包处理设备与用户终端之间也存在丢包的情况,但相对第一数据包处理设备与第二数据包处理设备的传输而言,丢包概率小,本发明实施例不予考虑。
在本发明实施例中,通过第二数据包处理设备接收第一数据包处理设备采用多发方式发送的应用数据包,并对所接收到的应用数据包进行去重处理后采用单发方式发送至应用服务器,以使应用服务器基于去重处理后的应用数据包获取反馈数据包,然后接收应用服务器采用单发方式发送的反馈数据包,并将所述反馈数据包采用多发方式发送至第一数据包处理设备,以使第一数据包处理设备对所接收到的反馈数据包进行去重处理后采用单发方式发送至用户终端。可以通过第二数据包处理设备对接收到的数据包进行去重处理后以单发方式进行发送在防止丢包的情况下不会增加应用服务器的流量,进而也可以减小应用服务器的数据处理压力。
请参见图6,为本发明实施例提供了一种数据包处理方法的流程示意图,以第二数据包处理设备侧进行描述,如图6所示,本发明实施例的所述方法可以包括以下步骤S601-步骤S606。
S601,当检测到目标数据通道的网络传输质量小于网络质量阈值时,接收第一数据包处理设备发送的标识获取请求;
可以理解的是,所述数据通道是指数据从源IP到目的IP的传输通道。所述数据通道由路由信息(接口Port数组对,包括源IP、源Port、TCP/UDP协议、目的IP、目的Port)确定。
由于多个用户可以使用同一个网络或者一个用户可以使用同一个网络实现不同的操作(如看视频+聊天),而对于每个操作则对应不同的数据通道。通过对同一网络中的每个数据通道的网络传输质量进行检测,以判断各数据通道网络传输质量的好坏。其中,所述网络传输质量是网络与用户之间以及网络上互相通信的用户之间关于信息传输与共享的质的约定。所述网络质量阈值可以包括传输延时允许时间、最小传输画面失真度、声像同步以及最小丢包率等。例如,目标数据通道的网络延时>200ms且/或丢包率>5%时,确定目标数据通道的网络传输质量小于网络质量阈值,即目标数据通道的当前网络质量差。
第一数据包处理设备与第二数据包处理设备之间可通过互联网通信。当第二数据包处理设备接收到第一数据包处理设备发送的标识获取请求时,触发第二数据包处理设备获取设备标识。其中,所述第二数据包处理设备是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。所述第二数据包处理设备可以为无线路由设备,也可以为有线路由设备。
具体实现中,当用户终端检测到目标数据通道的网络传输质量小于网络质量阈值时,或者当第一数据包处理设备检测到目标数据通道的网络传输质量小于网络质量阈值时通知用户终端,表明目标数据通道的网络传输质量差,此时存在丢包的可能性,因此,触发第一数据包处理设备启动数据多发功能,则首先需要向第二数据包处理设备发送标识获取请求。所述用户终端可以包括平板电脑、个人计算机(PC)、智能手机、掌上电脑以及移动互联网设备(MID)等具备数据包收发功能的终端设备;所述第一数据包处理设备可以为用户终端的一个具有数据多收多发及数据去重功能的功能模块,如网络SDK,也可以为一个具有数据多收多发及数据去重功能的独立终端设备。
可选的,当检测到所述目标数据通道的网络传输质量大于或者等于所述网络质量阈值时,表明目标数据通道的网络质量可以支持当前的数据传输要求,不会导致丢包问题,因此,只需要将应用数据包采用单发方式进行发送,并由第二数据包处理设备接收第一数据包处理设备所发送的应用数据包。
S602,获取设备标识,并将所述设备标识发送至所述第一数据包处理设备,以使所述第一数据包处理设备基于所述设备标识向数据服务器获取多发参数;
可以理解的是,所述多发参数包括第二数据包处理设备是否支持多发功能,多发份数以及发送时间间隔等参数,所发送的份数由第二数据包处理设备的性能决定,目前,大多数第二数据包处理设备普遍支持两份数据包,即支持双倍数据包的发送和接收。
具体的,第二数据包处理设备在接收到第一数据包处理设备发送的标识获取请求后,直接在缓存中读取设备标识或者提取缓存数据并对缓存数据进行解析而获取,同时,将所获取的设备标识反馈至第一数据包处理设备,从而使得第一数据包处理设备将携带设备标识的多发参数获取请求发送至数据服务器,数据服务器基于第二数据包处理设备的设备标识在预存的设备标识与发送份数映射关系表中查询,并将查询的结果反馈至第一数据包处理设备。所述设备标识用于唯一识别第二数据包处理设备,可以为第二数据包处理设备的编号、型号、识别码、序列号等。第二数据包处理设备的多收份数和多发份数相同,当然,也可以不同,不同情况下可基于预存数据确定多收份数和多发份数。
例如,如表1所示为数据服务器所存储的一种形式的第二数据包处理设备多发参数表,其中包括设备标识与发送份数的映射关系。数据服务器在表1中查找接收到的设备标识对应的发送份数。优选的,在该映射关系表中还可包括发送时间间隔,即间隔多久发送一份数据包,还可以包括是否支持多发功能。当然,也可以理解为,若在该映射表中未查找到与接收到的设备标识相匹配的项,则可认为该设备标识对应的第二数据包处理设备不支持多发功能。
其中,所述数据服务器即为用于数据存储、查询、更新等数据管理的服务器。
S603,所述多发参数包括设备多发功能指示,当所述设备多发功能指示为所述第二数据包处理设备具备数据多发功能时,接收所述第一数据包处理设备发送的数据多发功能启动通知;
可以理解的是,当所述设备多发功能指示为所述第二数据包处理设备具备数据多发功能时,第一数据包处理设备知晓第二数据包处理设备具备数据多发功能,则通知第二数据包处理设备启动数据多发功能,而第二数据包处理设备在接收到通知后启动数据多发功能,以便实现数据多发操作。当然,第二数据包处理设备启动数据多发功能后,也会相应的回复确认信息,以告知第一数据包处理设备多发功能已启动,可以完成数据多发操作了。
S604,所述多发参数还包括发送份数和时间间隔,接收所述第一数据包处理设备按照所述时间间隔以及发送份数发送的应用数据包,并对所接收到的所述应用数据包进行去重处理;
可以理解的是,所述去重处理是指对所接收到的多份数据包中的相同数据包进行过滤,以去掉重复数据包的过程。所述去重处理可采用去重算法实现,一种可行的去重算法为SimHash算法。所述SimHash simhash算法分为5个步骤:分词、hash、加权、合并、降维,其中:
分词,把需要判断的文本进行分词处理,从而得到该文本的多个特征词。然后对每个特征词分别加上权重。
具体实现中,第二数据包处理设备在接收到第一数据包处理设备发送的多份应用数据包后,可采用Simhash算法将每份应用数据包转换为Simhash码,然后计算每两个Simhash码的相似度,当相似度在设定的阈值范围内时,确定这两个应用数据包为相同的数据包,则过滤掉其中相同的数据包。其中,所述第二数据包处理设备是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。
需要说明的是,在所述第二数据包处理设备中安装有AP插件,安装插件后能增加相关辅助功能。比如安装迅雷远程下载插件,第二数据包处理设备带USB接口,可以外接U盘、硬盘,就可以通过远程下载影视节目,无需打开电脑;或者安装游戏加速软件,提供第二数据包处理设备加速;或者安装去广告插件,能够屏蔽广告。在本发明实施例中,通过安装AP插件使得第二数据包处理设备具备数据多发多收功能和去重功能。
S605,将去重处理后的所述应用数据包采用单发方式发送至应用服务器,以使所述应用服务器基于所述去重处理后的应用数据包获取反馈数据包;
可以理解的是,所述反馈数据包也可以为单个消息,用于与所述应用数据包进行数据交互而实现任务。例如,用户通过用户终端玩网络游戏时选择“回城”功能后,用户终端将“回城”请求(应用数据包)发送至游戏服务器,游戏服务器反馈回城权限(反馈数据包)至用户终端。又例如,第一用户终端与第二用户终端通过通信服务器进行即时通信,第一用户终端向第二用户终端发送的消息即为应用数据包,服务器将该应用数据包转发至第二用户终端后,第二用户终端再通过该通信服务器转发消息至第一用户终端,此时所转发的消息即为反馈数据包。
具体实现中,第二数据包处理设备将去重处理后的应用数据包发送一份至应用服务器,以使应用服务器在接收到应用数据包后,获取与该应用数据包对应的反馈数据包,再将该反馈数据包发送一份至第二数据包处理设备。所述应用服务器指为各种应用程序提供服务的服务器,如游戏服务器、即时通信服务器、信息搜索服务器等。
需要说明的是,在第二数据包处理设备与应用服务器之间也存在丢包的情况,但相对第一数据包处理设备与第二数据包处理设备的传输而言,丢包概率小,本发明实施例不予考虑。
S606,接收所述应用服务器采用单发方式发送的所述反馈数据包,并将所述反馈数据包采用多发方式发送至所述第一数据包处理设备,以使所述第一数据包处理设备对所接收到的所述反馈数据包进行去重处理后采用单发方式发送至用户终端。
具体实现中,第二数据包处理设备在接收到应用服务器发送的反馈数据包后,可基于所获取的发送份数、发送时间间隔等多发参数将该反馈数据包发送至第一数据包处理设备,以使第一数据包处理设备将接收到的多份反馈数据包进行去重处理,并发送一份去重处理后的反馈数据包至用户终端,从而使得用户终端在接收到反馈数据包后,可基于该反馈数据包执行指令任务,或者确认应答,又或者实现数据交互等。所述多发参数的获取可以理解为第二数据包处理设备基于设备标识向数据服务器获取,如表1所示的方式,也可以是第二数据包处理设备直接基于预存的设备标识与多发参数的映射关系表进行查找,还可以是第二数据包处理设备向第一数据包处理设备获取等方式。
其中,在第一数据包处理设备与用户终端之间也存在丢包的情况,但相对第一数据包处理设备与第二数据包处理设备的传输而言,丢包概率小,本发明实施例不予考虑。
需要说明的是,所述第一数据包处理设备对所述反馈数据包的去重处理可与第二数据包处理设备的去重处理相同,此处不再赘述。
在本发明实施例中,通过第二数据包处理设备接收第一数据包处理设备采用多发方式发送的应用数据包,并对所接收到的应用数据包进行去重处理后采用单发方式发送至应用服务器,以使应用服务器基于去重处理后的应用数据包获取反馈数据包,然后接收应用服务器采用单发方式发送的反馈数据包,并将所述反馈数据包采用多发方式发送至第一数据包处理设备,以使第一数据包处理设备对所接收到的反馈数据包进行去重处理后采用单发方式发送至用户终端。仅在目标数据通道的网络传输质量差时,可以通过第二数据包处理设备对接收到的数据包进行去重处理后以单发方式进行发送,在防止丢包的情况下不会增加应用服务器的流量,进而也可以减小应用服务器的数据处理压力。同时,还可以触发第一数据包处理设备对接收到的数据包进行去重处理后以单发方式进行发送,在防止丢包的情况下不会增加用户终端的流量,进而也可以减小用户终端的数据处理压力。
请参见图7,为本发明实施例提供了一种数据包处理方法的场景示意图。如图7所示,本发明实施例具体以一实际上网场景的方式对数据包处理方法进行介绍。
如在家中,多个手机以及电脑等多个终端连接无线路由器接入电信宽带上网。其中,笔记本电脑在下载大文件,手机2和手机3的用户在观看视频,手机1的用户在玩网络手游。此时,由于带宽被占用,有可能导致手机1、手机2、手机3以及笔记本电脑都无法正常上网。通过分别对这些终端上网的数据通道进行网络质量检测,若手机2、手机3以及笔记本电脑可以按照日常情况上网,而只有手机1会发生漂移、卡顿等现象而不能正常游戏,且存在丢包现象。那么,将手机1接入网络SDK,路由器接入AP插件,以同时启用手机1和无线路由器的多发方法及去重功能。此时,手机1采用多发方式将游戏数据包发送至无线路由器,无线路由器对所接收到的游戏数据包进行去重处理,并将去重处理后的游戏数据包采用单发方式发送至游戏服务器,游戏服务器基于去重处理后的游戏数据包获取反馈数据包,并采用单发方式发送至无线路由器,无线接收到反馈数据包后采用多发方式发送至手机1,手机1再对所接收到的反馈数据包进行去重处理。在网络丢包严重的情况下,由于数据包发送多份,因此游戏服务器和手机1能收到正确的数据包而不影响游戏体验。
下面将结合附图8-附图14,对本发明实施例提供的数据包处理系统及其设备进行详细介绍。需要说明的是,附图8所示的数据包处理系统,用于执行本发明图1-图7所示实施例的方法,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明图1-图7所示的实施例。
请参见图8,为本发明实施例提供了一种数据包处理系统的结构示意图。如图8所示,本发明实施例的所述数据包处理系统可以包括:用户终端1、第一数据包处理设备2、第二数据包处理设备3、应用服务器4以及数据服务器5。
所述用户终端1,用于将所获取的应用数据包采用单发方式发送至所述第一数据包处理设备2;
可以理解的是,数据包是TCP/IP协议通信传输中的数据单位。在包交换网络里,单个消息被划分为多个数据包,在每个数据包中包含发送者和接收者的地址信息(源IP和目的IP)。这些数据包可沿着源IP到目的IP之间的不同路径在一个或多个网络中传输,并且在目的IP重新组合。
所述应用数据包即为单个消息,也是用于数据交换的源数据。例如,用户通过用户终端玩网络游戏的过程就需要通过用户终端与游戏服务器之间的数据交换实现,而由用户终端向游戏服务器传送的数据即为应用数据包。又例如,第一用户终端与第二用户终端通过通信服务器进行即时通信,第一用户终端向第二用户终端发送的消息即为应用数据包。
当然,应用数据包从源IP到目的IP是通过中继站传输的,所述中继站为主机或第二数据包处理设备,基于路由信息,将应用数据包向下一个中继站传递。在应用数据包传输的路途上,由于第二数据包处理设备在遇到大数据流量的情况下某些数据通道的带宽被占用,而使得这些数据通道的网络传输质量差,进而导致这些数据通道可能会丢掉一些数据包,从而导致不能实现数据交换。因此,本发明实施例主要解决在大流量数据下的丢包问题。
所述单发方式是指只发送一份数据包,相应的,多发方式是指发送多份数据包,如两份、三份、四份等。
具体实现中,用户终端获取用于交换的应用数据包,并以单发方式(发送一份)将该应用数据包发送至第一数据包处理设备。所述用户终端1可以包括平板电脑、个人计算机(PC)、智能手机、掌上电脑以及移动互联网设备(MID)等具备数据包收发功能的终端设备;所述第一数据包处理设备2可以为用户终端1的一个具有数据多收多发及数据去重功能的功能模块,如网络SDK,也可以为一个具有数据多收多发及数据去重功能的独立终端设备。
所述第一数据包处理设备2,用于接收所述用户终端1采用单发方式发送的应用数据包,并将所述应用数据包采用多发方式发送至所述第二数据包处理设备3;
具体实现中,第一数据包处理设备2接收用户终端1所发送的应用数据包,然后将该应用数据包发送多份至第二数据包处理设备34,以避免因网络传输质量差而影响丢包,从而导致无法实现上行数据交互过程。其中,所述上行可以理解为由源IP到目的IP的数据传输方向,即用户终端1经第一数据包处理设备2向第二数据包处理设备3传输应用数据包的方向。
可选的,所述第一数据包处理设备2用于接收所述用户终端1采用单发方式发送的应用数据包,并将所述应用数据包采用多发方式发送至第二数据包处理设备3,具体用于:
当检测到目标数据通道的网络传输质量小于网络质量阈值时,接收所述用户终端1采用单发方式发送的应用数据包,并将所述应用数据包采用多发方式发送至第二数据包处理设备3。
可以理解的是,所述数据通道是指数据从源IP到目的IP的传输通道。所述数据通道由路由信息(接口Port数组对,包括源IP、源Port、TCP/UDP协议、目的IP、目的Port)确定。
由于多个用户可以使用同一个网络或者一个用户可以使用同一个网络实现不同的操作(如看视频+聊天),而对于每个操作则对应不同的数据通道。通过对同一网络中的每个数据通道的网络传输质量进行检测,以判断各数据通道网络传输质量的好坏。其中,所述网络传输质量是网络与用户之间以及网络上互相通信的用户之间关于信息传输与共享的质的约定。所述网络质量阈值可以包括传输延时允许时间、最小传输画面失真度、声像同步以及最小丢包率等。例如,目标数据通道的网络延时>200ms且/或丢包率>5%时,确定目标数据通道的网络传输质量小于网络质量阈值,即目标数据通道的当前网络质量差。
具体实现中,当用户终端1检测到目标数据通道的网络传输质量小于网络质量阈值时,或者当第一数据包处理设备2检测到目标数据通道的网络传输质量小于网络质量阈值时通知用户终端1,表明目标数据通道的网络传输质量差,此时存在丢包的可能性,因此,用户终端1获取用于交换的应用数据包,并以单发方式(发送一份)将该应用数据包发送至第一数据包处理设备2,第一数据包处理设备2接收用户终端1所发送的应用数据包,然后将所述应用数据包发送至第二数据包处理设备3。
可选的,所述第一数据包处理设备2还用于:
当检测到所述目标数据通道的网络传输质量大于或者等于所述网络质量阈值时,接收所述用户终端1采用单发方式发送的应用数据包,并将所述应用数据包采用单发方式发送至所述第二数据包处理设备3。
可以理解的是,若目标数据通道的网络传输质量大于或者等于所述网络质量阈值时,表明目标数据通道的网络质量可以支持当前的数据传输要求,不会导致丢包问题,因此,只需要将应用数据包采用单发方式进行传输即可。
可选的,所述第一数据包处理设备2用于接收所述用户终端1采用单发方式发送的应用数据包,并将所述应用数据包采用多发方式发送至第二数据包处理设备3,具体用于:
接收用户终端1采用单发方式发送的应用数据包;
获取第二数据包处理设备3的设备标识,向所述数据服务器5获取所述设备标识对应的多发参数,并基于所述多发参数将所述应用数据包发送至所述第二数据包处理设备3。
可以理解的是,所述多发参数包括第二数据包处理设备3是否支持多发功能,多发份数以及发送时间间隔等参数,所发送的份数由第二数据包处理设备3的性能决定,目前,大多数第二数据包处理设备3普遍支持两份数据包,即支持双倍数据包的发送和接收。优选的,当第一数据包处理设备2获取到该第二数据包处理设备的多发参数后,将该多发参数添加到对应的缓存空间中,以便下次启动数据多发时直接在缓存中查找多发参数即可。
具体的,第一数据包处理设备2将携带设备标识的多发参数获取请求发送至数据服务器5,数据服务器5基于第二数据包处理设备3的设备标识在预存的设备标识与发送份数映射关系表中查询,并将查询的结果反馈至第一数据包处理设备。可以理解的是,第二数据包处理设备3的多收份数和多发份数相同,当然,也可以不同,不同情况下可基于预存数据确定多收份数和多发份数。
例如,如表1所示为数据服务器5所存储的一种形式的第二数据包处理设备3多发参数表,其中包括设备标识与发送份数的映射关系。数据服务器5在表1中查找接收到的设备标识对应的发送份数。优选的,在该映射关系表中还可包括发送时间间隔,即间隔多久发送一份数据包,还可以包括是否支持多发功能。当然,也可以理解为,若在该映射表中未查找到与接收到的设备标识相匹配的项,则可认为该设备标识对应的第二数据包处理设备3不支持多发功能。
其中,所述数据服务器5即为用于数据存储、查询、更新等数据管理的服务器。
可选的,所述第一数据包处理设备2用于获取第二数据包处理设备3的设备标识,具体用于:
向所述第二数据包处理设备3发送标识获取请求;
可以理解的是,第一数据包处理设备2与第二数据包处理设备3之间可通过互联网通信。当第一数据包处理设备2接收到用户终端1发送的应用数据包时,触发第一数据包处理设备2向第二数据包处理设备3获取设备标识。其中,所述第二数据包处理设备3是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。所述第二数据包处理设备3可以为无线路由设备,也可以为有线路由设备。
在一种可行的实现方式中,所述第二数据包处理设备3直接在缓存中读取设备标识或者提取缓存数据并对缓存数据进行解析而获取,同时,将所获取的设备标识反馈至第一数据包处理设备1。所述设备标识用于唯一识别第二数据包处理设备,可以为第二数据包处理设备的编号、型号、识别码、序列号等。
接收并保存所述第二数据包处理设备3发送的设备标识。
可以理解的是,所述第一数据包处理设备2将所接收到的设备标识添加到设定的缓存空间中。优选的,可设定周期清除缓存,以节省缓存空间。
可选的,所述多发参数包括设备多发功能指示,所述第一数据包处理设备2用于基于所述多发参数将所述应用数据包发送至所述第二数据包处理设备3之前,所述第一数据包处理设备2还用于:
当所述设备多发功能指示为所述第二数据包处理设备具备数据多发功能时,启动数据多发功能,并通知所述第二数据包处理设备3启动数据多发功能。
可以理解的是,第一数据包处理设备2启动数据多发功能,同时,通知第二数据包处理设备3启动数据多发功能,以便实现数据多发操作。当然,第二数据包处理设备3启动数据多发功能后,也会相应的回复确认信息,以告知第一数据包处理设备2多发功能已启动,可以完成数据多发操作了。
可选的,所述多发参数还包括发送份数和时间间隔,所述第一数据包处理设备2用于基于所述多发参数将所述应用数据包发送至所述第二数据包处理设备3,具体用于:
按照所述时间间隔以及发送份数将所述应用数据包发送至所述第二数据包处理设备3。
例如,发送份数为2,发送时间间隔为4ms,则先发送一份所述应用数据包,并在4ms后再发送一份所述应用数据包。
可选的,所述当所述设备多发功能指示为所述第二数据包处理设备3具备数据多发功能时之后,所述第一数据包处理设备2还用于:
获取所述用户终端1对应的用户登录标识,当所述用户登录标识在设定的白名单标识集合中时,转入执行启动数据多发功能的步骤。
可以理解的是,所述用户登录标识可以为用户登录账号或用户ID等,该用户登录标识主要用于验证登录用户的合法性。
所述白名单标识集合中包括至少一个白名单标识,所述至少一个白名单标识即为合法用户登录标识。若用户登录标识与白名单标识集合中的标识相匹配时,确定该用户登录标识为合法标识,具有数据交互权限。
具体的,当第一数据包处理设备2确定所述用户登录标识在设定的白名单标识集合中时,触发第二数据包处理设备3启动数据多发功能以进行数据多发操作。
所述第二数据包处理设备3,用于对所接收到的所述应用数据包进行去重处理,并将去重处理后的所述应用数据包采用单发方式发送至所述应用服务器4;
可以理解的是,所述去重处理是指对所接收到的多份数据包中的相同数据包进行过滤,以去掉重复数据包的过程。所述去重处理可采用去重算法实现,一种可行的去重算法为SimHash算法。所述SimHash simhash算法分为5个步骤:分词、hash、加权、合并、降维,其中:
分词,把需要判断的文本进行分词处理,从而得到该文本的多个特征词。然后对每个特征词分别加上权重。
具体实现中,第二数据包处理设备3在接收到第一数据包处理设备2发送的多份应用数据包后,可采用Simhash算法将每份应用数据包转换为Simhash码,然后计算每两个Simhash码的相似度,当相似度在设定的阈值范围内时,确定这两个应用数据包为相同的数据包,则过滤掉其中相同的数据包,并只保留一份发送至应用服务器4。其中,所述第二数据包处理设备3是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。
需要说明的是,在所述第二数据包处理设备3中安装有AP插件,安装插件后能增加相关辅助功能。比如安装迅雷远程下载插件,第二数据包处理设备带USB接口,可以外接U盘、硬盘,就可以通过远程下载影视节目,无需打开电脑;或者安装游戏加速软件,提供第二数据包处理设备加速;或者安装去广告插件,能够屏蔽广告。在本发明实施例中,通过安装AP插件使得第二数据包处理设备3具备数据多发多收功能和去重功能。
所述应用服务器4,用于基于所述去重处理后的应用数据包获取反馈数据包,并采用单发方式发送至所述第二数据包处理设备3;
可以理解的是,所述反馈数据包也可以为单个消息,用于与所述应用数据包进行数据交互而实现任务。例如,用户通过用户终端玩网络游戏时选择“回城”功能后,用户终端将“回城”请求(应用数据包)发送至游戏服务器,游戏服务器反馈回城权限(反馈数据包)至用户终端。又例如,第一用户终端与第二用户终端通过通信服务器进行即时通信,第一用户终端向第二用户终端发送的消息即为应用数据包,服务器将该应用数据包转发至第二用户终端后,第二用户终端再通过该通信服务器转发消息至第一用户终端,此时所转发的消息即为反馈数据包。
具体实现中,所述应用服务器4在接收到第二数据包处理设备3单发的应用数据包后,获取与该应用数据包对应的反馈数据包,再将该反馈数据包发送一份至第二数据包处理设备3。所述应用服务器4指为各种应用程序提供服务的服务器,如游戏服务器、即时通信服务器、信息搜索服务器等。
需要说明的是,在第二数据包处理设备3与应用服务器4之间也存在丢包的情况,但相对第一数据包处理设备2与第二数据包处理设备3的传输而言,丢包概率小,本发明实施例不予考虑。
所述第二数据包处理设备3,还用于接收所述反馈数据包,并将所述反馈数据包采用多发方式发送至所述第一数据包处理设备2;
具体实现中,第二数据包处理设备3在接收到应用服务器4发送的反馈数据包后,可基于所获取的发送份数、发送时间间隔等多发参数将该反馈数据包发送至第一数据包处理设备2。所述多发参数的获取可以理解为第二数据包处理设备3基于设备标识向数据服务器5获取,如表1所示的方式,也可以是第二数据包处理设备3直接基于预存的设备标识与多发参数的映射关系表进行查找,还可以是第二数据包处理设备3向第一数据包处理设备2获取等方式,以实现下行数据交互过程。其中,所述下行是相对前述上行而言,可以理解为由目的IP到源IP的数据传输方向,即第二数据包处理设备3经第一数据包处理设备2向用户终端1传输应用数据包的方向。
所述第一数据包处理设备2,还用于对所接收到的所述反馈数据包进行去重处理,并将去重处理后的所述反馈数据包采用单发方式发送至所述用户终端1。
具体实现中,所述第一数据包处理设备2将接收到的多份反馈数据包进行去重处理,并发送一份去重处理后的反馈数据包至用户终端1。用户终端1在接收到反馈数据包后,可基于该反馈数据包执行指令任务,如在游戏场景下基于用户选择的功能按键反馈执行权限,基于该执行权限实现游戏功能;或者确认应答,如在信息浏览场景下基于用户发送的访问权限请求通过信息服务器反馈应答以允许访问;又或者实现数据交互,如两用户终端聊天场景下,一用户终端向另一用户终端发送消息后,在接收到另一终端反馈的消息时,再继续给予反馈的消息向另一用户终端再次发送消息。其中,在第一数据包处理设备2与用户终端1之间也存在丢包的情况,但相对第一数据包处理设备2与第二数据包处理设备3的传输而言,丢包概率小,本发明实施例不予考虑。
需要说明的是,所述第一数据包处理设备2对所述反馈数据包的去重处理可与第二数据包处理设备3的去重处理相同,此处不再赘述。
在本发明实施例中,通过第一数据包处理设备接收用户终端采用单发方式发送的应用数据包后,并采用多发方式发送至第二数据包处理设备,第二数据包处理设备对所接收到的应用数据包进行去重处理,然后采用单发方式发送至应用服务器,而应用服务器基于去重处理后的应用数据包获取反馈数据包,并采用单发方式发送至第二数据包处理设备,第二数据包处理设备将接收到的反馈数据包采用多发方式发送至第一数据包处理设备,第一数据包处理设备对所接收到的反馈数据包进行去重处理后的反馈数据包采用单发方式发送至用户终端。仅在网络质量差的时候进行多倍发包,并可以通过第一数据包处理设备和第二数据包处理设备对接收到的数据包进行去重处理后以单发方式进行发送,在防止丢包的情况下不会增加应用服务器的流量,进而也可以减小应用服务器的数据处理压力,同样,也不会增加用户终端的流量,并可以减小用户终端的数据处理压力。
请参见图9,为本发明实施例提供了一种数据包处理设备的结构示意图。如图9所示,本发明实施例的所述数据包处理设备9可以包括:数据包收发单元101和数据包去重单元102。
数据包收发单元101,用于接收用户终端采用单发方式发送的应用数据包,并将所述应用数据包采用多发方式发送至第二数据包处理设备,以使所述第二数据包处理设备对所接收到的所述应用数据包进行去重处理后采用单发方式发送至应用服务器,并以使所述应用服务器获取反馈数据包,所述反馈数据包为所述应用服务器基于所述去重处理后的应用数据包所反馈的数据包;
可选的,所述数据包收发单元101,具体用于:
当检测到目标数据通道的网络传输质量小于网络质量阈值时,接收用户终端采用单发方式发送的应用数据包,并将所述应用数据包采用多发方式发送至第二数据包处理设备。
可以理解的是,所述数据通道是指数据从源IP到目的IP的传输通道。所述数据通道由路由信息(接口Port数组对,包括源IP、源Port、TCP/UDP协议、目的IP、目的Port)确定。
由于多个用户可以使用同一个网络或者一个用户可以使用同一个网络实现不同的操作(如看视频+聊天),而对于每个操作则对应不同的数据通道。数据包收发单元101通过对同一网络中的每个数据通道的网络传输质量进行检测,以判断各数据通道网络传输质量的好坏。其中,所述网络传输质量是网络与用户之间以及网络上互相通信的用户之间关于信息传输与共享的质的约定。所述网络质量阈值可以包括传输延时允许时间、最小传输画面失真度、声像同步以及最小丢包率等。例如,目标数据通道的网络延时>200ms且/或丢包率>5%时,确定目标数据通道的网络传输质量小于网络质量阈值,即目标数据通道的当前网络质量差。
数据包是TCP/IP协议通信传输中的数据单位。在包交换网络里,单个消息被划分为多个数据包,在每个数据包中包含发送者和接收者的地址信息(源IP和目的IP)。这些数据包可沿着源IP到目的IP之间的不同路径在一个或多个网络中传输,并且在目的IP重新组合。
所述应用数据包即为单个消息,也是用于数据交换的源数据。例如,用户通过用户终端玩网络游戏的过程就需要通过用户终端与游戏服务器之间的数据交换实现,而由用户终端向游戏服务器传送的数据即为应用数据包。又例如,第一用户终端与第二用户终端通过通信服务器进行即时通信,第一用户终端向第二用户终端发送的消息即为应用数据包。
当然,应用数据包从源IP到目的IP是通过中继站传输的,所述中继站为主机或第二数据包处理设备,基于路由信息,将应用数据包向下一个中继站传递。在应用数据包传输的路途上,由于第二数据包处理设备在遇到大数据流量的情况下某些数据通道的带宽被占用,而使得这些数据通道的网络传输质量差,进而导致这些数据通道可能会丢掉一些数据包,从而导致不能实现数据交换。因此,本发明实施例主要解决在大流量数据下的丢包问题。所述单发方式是指只发送一份数据包。
具体实现中,当用户终端检测到目标数据通道的网络传输质量小于网络质量阈值时,或者当数据包收发单元101检测到目标数据通道的网络传输质量小于网络质量阈值时通知用户终端,表明目标数据通道的网络传输质量差,此时存在丢包的可能性,因此,用户终端获取用于交换的应用数据包,并以单发方式(发送一份)将该应用数据包发送至数据包收发单元101,数据包收发单元101接收用户终端所发送的应用数据包,并将所述应用数据包以多发方式发送至第二数据包处理设备。所述用户终端可以包括平板电脑、个人计算机(PC)、智能手机、掌上电脑以及移动互联网设备(MID)等具备数据包收发功能的终端设备。
可选的,所述数据包收发单元101还用于:
当检测到所述目标数据通道的网络传输质量大于或者等于所述网络质量阈值时,接收所述用户终端采用单发方式发送的应用数据包,并将所述应用数据包采用单发方式发送至所述第二数据包处理设备。
可以理解的是,若目标数据通道的网络传输质量大于或者等于所述网络质量阈值时,表明目标数据通道的网络质量可以支持当前的数据传输要求,不会导致丢包问题,因此,只需要将应用数据包采用单发方式进行传输即可。
可选的,如图10所示,所述数据包收发单元101,包括:
数据包接收子单元1011,用于接收用户终端采用单发方式发送的应用数据包;
具体的,用户终端获取用于交换的应用数据包,并以单发方式(发送一份)将该应用数据包发送至数据包接收子单元1011,数据包接收子单元1011接收用户终端所发送的应用数据包。
数据包发送子单元1012,用于获取第二数据包处理设备的设备标识,向数据服务器获取所述设备标识对应的多发参数,并基于所述多发参数将所述应用数据包发送至所述第二数据包处理设备。
可以理解的是,所述多发参数包括第二数据包处理设备是否支持多发功能指示,多发份数以及发送时间间隔等参数,所发送的份数由第二数据包处理设备的性能决定,目前,大多数第二数据包处理设备普遍支持两份数据包,即支持双倍数据包的发送和接收。优选的,当数据包发送子单元1012获取到该第二数据包处理设备的多发参数后,将该多发参数添加到缓存空间中,以便下次启动数据多发时直接在缓存中查找多发参数即可。
可选的,所述数据包发送子单元1012,具体用于:
向所述第二数据包处理设备发送标识获取请求;
可以理解的是,第一数据包处理设备与第二数据包处理设备之间可通过互联网通信。当数据包发送子单元1012接收到用户终端发送的应用数据包时,触发数据包发送子单元1012向第二数据包处理设备获取设备标识。
接收并保存所述第二数据包处理设备发送的设备标识。
所述数据包发送子单元1012将所接收到的设备标识添加到设定的缓存空间中。优选的,可设定周期清除缓存,以节省缓存空间。所述设备标识用于唯一识别第二数据包处理设备,可以为第二数据包处理设备的编号、型号、识别码、序列号等。
可选的,如图11所示,所述多发参数包括设备多发功能指示,还包括功能启动通知单元103,用于:
当所述设备多发功能指示为所述第二数据包处理设备具备数据多发功能时,启动数据多发功能,并通知所述第二数据包处理设备启动数据多发功能。
具体的,功能启动通知单元103将携带设备标识的多发参数获取请求发送至数据服务器,以使数据服务器基于第二数据包处理设备的设备标识在预存的设备标识与发送份数映射关系表中查询,并将查询的结果反馈至功能启动通知单元103,当所述设备多发功能指示为所述第二数据包处理设备具备数据多发功能时,启动数据多发功能,同时,通知第二数据包处理设备启动数据多发功能,以便实现数据多发操作。当然,第二数据包处理设备启动数据多发功能后,也会相应的回复确认信息,以告知第一数据包处理设备多发功能已启动,可以完成数据多发操作了。其中,所述数据服务器即为用于数据存储、查询、更新等数据管理的服务器。
可选的,所述多发参数还包括发送份数和时间间隔,所述数据包发送子单元1012,具体用于:
按照所述时间间隔以及发送份数将所述应用数据包发送至所述第二数据包处理设备。
具体实现中,数据包发送子单元1012接收用户终端所发送的应用数据包,然后基于所获取的发送份数和发送时间间隔等参数信息将所述应用数据包发送至第二数据包处理设备。例如,发送份数为2,发送时间间隔为4ms,则数据包发送子单元1012先发送一份所述应用数据包,并在4ms后再发送一份所述应用数据包至第二数据包处理设备。
可选的,如图11所示,所述当所述设备多发功能指示为所述第二数据包处理设备具备数据多发功能时之后,还包括:
标识匹配单元104,用于获取所述用户终端对应的用户登录标识,当所述用户登录标识在设定的白名单标识集合中时,触发所述功能启动通知单元执行所述启动数据多发功能。
数据包去重单元102,用于接收所述第二数据包处理设备采用多发方式发送的所述反馈数据包,并对所接收到的所述反馈数据包进行去重处理;
所述去重处理是指对所接收到的多份数据包中的相同数据包进行过滤,以去掉重复数据包的过程。所述去重处理可采用去重算法实现,一种可行的去重算法为SimHash算法。所述SimHash算法分为5个步骤:分词、hash、加权、合并、降维,其中:
分词,把需要判断的文本进行分词处理,从而得到该文本的多个特征词。然后对每个特征词分别加上权重。
具体实现中,数据包去重单元102在接收到第二数据包处理设备发送的多份反馈数据包后,可采用Simhash算法将每份反馈数据包转换为Simhash码,然后计算每两个Simhash码的相似度,当相似度在设定的阈值范围内时,确定这两个反馈数据包为相同的数据包,则过滤掉其中相同的数据包,并只保留一份发送。
所述数据包收发单元101,还用于将去重处理后的所述反馈数据包采用单发方式发送至所述用户终端。
具体实现中,所述数据包收发单元101发送一份去重处理后的反馈数据包至用户终端。用户终端在接收到反馈数据包后,可基于该反馈数据包执行指令任务,如在游戏场景下基于用户选择的功能按键反馈执行权限,基于该执行权限实现游戏功能;或者确认应答,如在信息浏览场景下基于用户发送的访问权限请求通过信息服务器反馈应答以允许访问;又或者实现数据交互,如两用户终端聊天场景下,一用户终端向另一用户终端发送消息后,在接收到另一终端反馈的消息时,再继续给予反馈的消息向另一用户终端再次发送消息。其中,在第一数据包处理设备与用户终端之间也存在丢包的情况,但相对第一数据包处理设备与第二数据包处理设备的传输而言,丢包概率小,本发明实施例不予考虑。
在本发明实施例中,通过第一数据包处理设备接收用户终端采用单发方式发送的应用数据包后,并采用多发方式发送至第二数据包处理设备,以使第二数据包处理设备对所接收到的应用数据包进行去重处理并采用单发方式发送至应用服务器,进而接收应用服务器基于去重处理后的应用数据包获取的反馈数据包,进而,第一数据包处理设备接收第二数据包处理设备以多发方式发送的反馈数据包,并对所接收到的反馈数据包进行去重处理后采用单发方式发送至用户终端。只在目标数据通道的网络传输质量差时,可以通过第一数据包处理设备触发第二数据包处理设备对接收到的数据包进行去重处理后以单发方式进行发送以及对所接收到的数据包进行去重处理后以单发方式进行发送,在防止丢包的情况下不会增加应用服务器以及用户终端的流量,进而也可以减小应用服务器和用户终端的数据处理压力。
请参见图12,为本发明实施例提供了一种数据包处理设备的结构示意图。如图12所示,本发明实施例的所述数据包处理设备20可以包括:数据包去重单元201和数据包收发单元202。
数据包去重单元201,用于接收第一数据包处理设备采用多发方式发送的应用数据包,并对所接收到的所述应用数据包进行去重处理;
可以理解的是,所述去重处理是指对所接收到的多份数据包中的相同数据包进行过滤,以去掉重复数据包的过程。所述去重处理可采用去重算法实现,一种可行的去重算法为SimHash算法。所述SimHash simhash算法分为5个步骤:分词、hash、加权、合并、降维,其中:
分词,把需要判断的文本进行分词处理,从而得到该文本的多个特征词。然后对每个特征词分别加上权重。
具体实现中,数据包去重单元201在接收到第一数据包处理设备发送的多份应用数据包后,可采用Simhash算法将每份应用数据包转换为Simhash码,然后计算每两个Simhash码的相似度,当相似度在设定的阈值范围内时,确定这两个应用数据包为相同的数据包,则过滤掉其中相同的数据包。
可选的,所述数据包去重单元201,具体用于:
当检测到目标数据通道的网络传输质量小于网络质量阈值时,接收第一数据包处理设备采用多发方式发送的应用数据包。
可以理解的是,所述数据通道是指数据从源IP到目的IP的传输通道。所述数据通道由路由信息(接口Port数组对,包括源IP、源Port、TCP/UDP协议、目的IP、目的Port)确定。
由于多个用户可以使用同一个网络或者一个用户可以使用同一个网络实现不同的操作(如看视频+聊天),而对于每个操作则对应不同的数据通道。通过对同一网络中的每个数据通道的网络传输质量进行检测,以判断各数据通道网络传输质量的好坏。其中,所述网络传输质量是网络与用户之间以及网络上互相通信的用户之间关于信息传输与共享的质的约定。所述网络质量阈值可以包括传输延时允许时间、最小传输画面失真度、声像同步以及最小丢包率等。例如,目标数据通道的网络延时>200ms且/或丢包率>5%时,确定目标数据通道的网络传输质量小于网络质量阈值,即目标数据通道的当前网络质量差。
具体实现中,当用户终端检测到目标数据通道的网络传输质量小于网络质量阈值时,或者当第一数据包处理设备检测到目标数据通道的网络传输质量小于网络质量阈值时通知用户终端,表明目标数据通道的网络传输质量差,此时存在丢包的可能性,因此,触发第一数据包处理设备向数据包去重单元201发送多份应用数据包以防止丢包。
可选的,所述数据包收发单元202还用于:
当检测到所述目标数据通道的网络传输质量大于或者等于所述网络质量阈值时,接收所述第一数据包处理设备采用单发方式发送的应用数据包。
可以理解的是,若目标数据通道的网络传输质量大于或者等于所述网络质量阈值时,表明目标数据通道的网络质量可以支持当前的数据传输要求,不会导致丢包问题,因此,只需要将应用数据包采用单发方式进行传输即可,也就是说,数据包收发单元202此时只接收到一份应用数据包。
可选的,如图13所示,所述数据包去重单元201,包括:
请求接收子单元2011,用于接收所述第一数据包处理设备发送的标识获取请求;
第一数据包处理设备与数据包去重单元201之间可通过互联网通信。当数据包去重单元201接收到第一数据包处理设备发送的标识获取请求时,触发数据包去重单元201获取设备标识。
标识发送子单元2012,用于获取设备标识,并将所述设备标识发送至所述第一数据包处理设备,以使所述第一数据包处理设备基于所述设备标识向数据服务器获取多发参数;
可以理解的是,所述多发参数包括数据包去重单元201是否支持多发功能,多发份数以及发送时间间隔等参数,所发送的份数由数据包去重单元201的性能决定,目前,大多数数据包去重单元201普遍支持两份数据包,即支持双倍数据包的发送和接收。
具体的,数据包去重单元201在接收到第一数据包处理设备发送的标识获取请求后,直接在缓存中读取设备标识或者提取缓存数据并对缓存数据进行解析而获取,同时,将所获取的设备标识反馈至第一数据包处理设备,从而使得第一数据包处理设备将携带设备标识的多发参数获取请求发送至数据服务器,数据服务器基于设备标识在预存的设备标识与发送份数映射关系表中查询,并将查询的结果反馈至第一数据包处理设备。所述设备标识用于唯一识别数据包去重单元201,可以为数据包去重单元201的编号、型号、识别码、序列号等。数据包去重单元201的多收份数和多发份数相同,当然,也可以不同,不同情况下可基于预存数据确定多收份数和多发份数。
例如,如表1所示为数据服务器所存储的一种形式的数据包去重单元201多发参数表,其中包括设备标识与发送份数的映射关系。数据服务器在表1中查找接收到的设备标识对应的发送份数。优选的,在该映射关系表中还可包括发送时间间隔,即间隔多久发送一份数据包,还可以包括是否支持多发功能。当然,也可以理解为,若在该映射表中未查找到与接收到的设备标识相匹配的项,则可认为该设备标识对应的数据包去重单元201不支持多发功能。
其中,所述数据服务器即为用于数据存储、查询、更新等数据管理的服务器。
数据包接收子单元2013,用于接收所述第一数据包处理设备基于所述多发参数发送的应用数据包。
可以理解的是,第一数据包处理设备在接收到数据服务器发送的多发参数后,基于该多发参数将应用数据包发送至数据包接收子单元2013。
可选的,如图14所示,所述多发参数包括设备多发功能指示,还包括通知接收单元203,用于:
当所述设备多发功能指示为所述第二数据包处理设备具备数据多发功能时,接收所述第一数据包处理设备发送的数据多发功能启动通知。
可以理解的是,当所述设备多发功能指示为所述数据包去重单元201具备数据多发功能时,第一数据包处理设备知晓数据包去重单元201具备数据多发功能,则通知数据包去重单元201启动数据多发功能,而数据包去重单元201在接收到通知后启动数据多发功能,以便实现数据多发操作。当然,数据包去重单元201启动数据多发功能后,也会相应的回复确认信息,以告知第一数据包处理设备多发功能已启动,可以完成数据多发操作了。
可选的,所述多发参数还包括发送份数和时间间隔,所述数据包接收子单元2013,具体用于:
接收所述第一数据包处理设备按照所述时间间隔以及发送份数发送的应用数据包。
具体实现中,第一数据包处理设备接收用户终端所发送的应用数据包,然后基于所获取的发送份数和发送时间间隔等参数信息将所述应用数据包发送至数据包接收子单元2013。例如,发送份数为2,发送时间间隔为4ms,则第一数据包处理设备先发送一份所述应用数据包,并在4ms后再发送一份所述应用数据包,以避免因网络传输质量差而影响丢包而导致无法实现数据交互。
数据包收发单元202,用于将去重处理后的所述应用数据包采用单发方式发送至应用服务器,以使所述应用服务器基于所述去重处理后的应用数据包获取反馈数据包;
所述反馈数据包也可以为单个消息,用于与所述应用数据包进行数据交互而实现任务。例如,用户通过用户终端玩网络游戏时选择“回城”功能后,用户终端将“回城”请求(应用数据包)发送至游戏服务器,游戏服务器反馈回城权限(反馈数据包)至用户终端。又例如,第一用户终端与第二用户终端通过通信服务器进行即时通信,第一用户终端向第二用户终端发送的消息即为应用数据包,服务器将该应用数据包转发至第二用户终端后,第二用户终端再通过该通信服务器转发消息至第一用户终端,此时所转发的消息即为反馈数据包。
具体实现中,数据包收发单元202将去重处理后的应用数据包发送一份至应用服务器,以使应用服务器在接收到应用数据包后,获取与该应用数据包对应的反馈数据包,再将该反馈数据包发送一份至数据包收发单元202。所述应用服务器指为各种应用程序提供服务的服务器,如游戏服务器、即时通信服务器、信息搜索服务器等。
所述数据包收发单元202,还用于接收所述应用服务器采用单发方式发送的所述反馈数据包,并将所述反馈数据包采用多发方式发送至所述第一数据包处理设备,以使所述第一数据包处理设备对所接收到的所述反馈数据包进行去重处理后采用单发方式发送至用户终端。
具体实现中,数据包收发单元202在接收到应用服务器发送的反馈数据包后,可基于所获取的发送份数、发送时间间隔等多发参数将该反馈数据包发送至第一数据包处理设备,以使第一数据包处理设备将接收到的多份反馈数据包进行去重处理,并发送一份去重处理后的反馈数据包至用户终端,从而使得用户终端在接收到反馈数据包后,可基于该反馈数据包执行指令任务,或者确认应答,又或者实现数据交互等。所述多发参数的获取可以理解为数据包收发单元202基于设备标识向数据服务器获取,如表1所示的方式,也可以是第二数据包处理设备直接基于预存的设备标识与多发参数的映射关系表进行查找,还可以是第二数据包处理设备向第一数据包处理设备获取等方式。
需要说明的是,所述第一数据包处理设备对所述反馈数据包的去重处理可与第二数据包处理设备的去重处理相同,此处不再赘述。
在本发明实施例中,通过第二数据包处理设备接收第一数据包处理设备采用多发方式发送的应用数据包,并对所接收到的应用数据包进行去重处理后采用单发方式发送至应用服务器,以使应用服务器基于去重处理后的应用数据包获取反馈数据包,然后接收应用服务器采用单发方式发送的反馈数据包,并将所述反馈数据包采用多发方式发送至第一数据包处理设备,以使第一数据包处理设备对所接收到的反馈数据包进行去重处理后采用单发方式发送至用户终端。仅在目标数据通道的网络传输质量差时,可以通过第二数据包处理设备对接收到的数据包进行去重处理后以单发方式进行发送,在防止丢包的情况下不会增加应用服务器的流量,进而也可以减小应用服务器的数据处理压力。同时,还可以触发第一数据包处理设备对接收到的数据包进行去重处理后以单发方式进行发送,在防止丢包的情况下不会增加用户终端的流量,进而也可以减小用户终端的数据处理压力。
本发明实施例还提供了一种计算机存储介质,所述计算机存储介质可以存储有多条指令,所述指令适于由处理器加载并执行如上述图1-图7所示实施例的方法步骤,具体执行过程可以参见图1-图7所示实施例的具体说明,在此不进行赘述。
请参见图15,为本发明实施例提供了一种电子设备的结构示意图。如图15所示,所述电子设备1000可以包括:至少一个处理器1001,例如CPU,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、摄像头(Camera),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图15所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及数据包处理应用程序。
在图15所示的电子设备1000中,用户接口1003主要用于为用户提供输入的接口,获取用户输入的数据;而处理器1001可以用于调用存储器1005中存储的数据包处理应用程序,并具体执行以下操作:
接收用户终端采用单发方式发送的应用数据包,并将所述应用数据包采用多发方式发送至第二数据包处理设备,以使所述第二数据包处理设备对所接收到的所述应用数据包进行去重处理后采用单发方式发送至应用服务器,并以使所述应用服务器获取反馈数据包,所述反馈数据包为所述应用服务器基于所述去重处理后的应用数据包所反馈的数据包;
接收所述第二数据包处理设备采用多发方式发送的所述反馈数据包,并对所接收到的所述反馈数据包进行去重处理;
将去重处理后的所述反馈数据包采用单发方式发送至所述用户终端。
在一个实施例中,所述处理器1001在执行接收用户终端采用单发方式发送的应用数据包,并将所述应用数据包采用多发方式发送至第二数据包处理设备时,具体执行以下操作:
当检测到目标数据通道的网络传输质量小于网络质量阈值时,接收用户终端采用单发方式发送的应用数据包,并将所述应用数据包采用多发方式发送至第二数据包处理设备。
在一个实施例中,所述处理器1001还执行以下操作:
当检测到所述目标数据通道的网络传输质量大于或者等于所述网络质量阈值时,接收所述用户终端采用单发方式发送的应用数据包,并将所述应用数据包采用单发方式发送至所述第二数据包处理设备。
在一个实施例中,所述处理器1001在执行接收用户终端采用单发方式发送的应用数据包,并将所述应用数据包采用多发方式发送至第二数据包处理设备时,具体执行以下操作:
接收用户终端采用单发方式发送的应用数据包;
获取第二数据包处理设备的设备标识,向数据服务器获取所述设备标识对应的多发参数,并基于所述多发参数将所述应用数据包发送至所述第二数据包处理设备。
在一个实施例中,所述处理器1001在执行获取第二数据包处理设备的设备标识时,具体执行以下操作:
向所述第二数据包处理设备发送标识获取请求;
接收并保存所述第二数据包处理设备发送的设备标识。
在一个实施例中,所述多发参数包括设备多发功能指示,所述处理器1001在执行基于所述多发参数将所述应用数据包发送至所述第二数据包处理设备之前,还执行以下操作:
当所述设备多发功能指示为所述第二数据包处理设备具备数据多发功能时,启动数据多发功能,并通知所述第二数据包处理设备启动数据多发功能。
在一个实施例中,所述多发参数还包括发送份数和时间间隔,所述处理器1001在执行基于所述多发参数将所述应用数据包发送至所述第二数据包处理设备时,具体执行以下操作:
按照所述时间间隔以及发送份数将所述应用数据包发送至所述第二数据包处理设备。
在一个实施例中,所述处理器1001在执行当所述设备多发功能指示为所述第二数据包处理设备具备数据多发功能时之后,还执行以下操作:
获取所述用户终端对应的用户登录标识,当所述用户登录标识在设定的白名单标识集合中时,转入执行所述启动数据多发功能的步骤。
在本发明实施例中,通过第一数据包处理设备接收用户终端采用单发方式发送的应用数据包后,并采用多发方式发送至第二数据包处理设备,以使第二数据包处理设备对所接收到的应用数据包进行去重处理并采用单发方式发送至应用服务器,进而接收应用服务器基于去重处理后的应用数据包获取的反馈数据包,进而,第一数据包处理设备接收第二数据包处理设备以多发方式发送的反馈数据包,并对所接收到的反馈数据包进行去重处理后采用单发方式发送至用户终端。只在目标数据通道的网络传输质量差时,可以通过第一数据包处理设备触发第二数据包处理设备对接收到的数据包进行去重处理后以单发方式进行发送以及对所接收到的数据包进行去重处理后以单发方式进行发送,在防止丢包的情况下不会增加应用服务器以及用户终端的流量,进而也可以减小应用服务器和用户终端的数据处理压力。
请参见图16,为本发明实施例提供了一种路由设备的结构示意图。如图16所示,所述路由设备2000可以包括:至少一个处理器2001,例如CPU,至少一个网络接口2004,用户接口2003,存储器2005,至少一个通信总线2002。其中,通信总线2002用于实现这些组件之间的连接通信。其中,用户接口2003可以包括显示屏(Display)、摄像头(Camera),可选用户接口2003还可以包括标准的有线接口、无线接口。网络接口2004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器2005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器2001的存储装置。如图16所示,作为一种计算机存储介质的存储器2005中可以包括操作系统、网络通信模块、用户接口模块以及数据包处理应用程序。
在图16所示的路由设备2000中,用户接口2003主要用于为用户提供输入的接口,获取用户输入的数据;而处理器2001可以用于调用存储器1005中存储的数据包处理应用程序,并具体执行以下操作:
接收第一数据包处理设备采用多发方式发送的应用数据包,并对所接收到的所述应用数据包进行去重处理;
将去重处理后的所述应用数据包采用单发方式发送至应用服务器,以使所述应用服务器基于所述去重处理后的应用数据包获取反馈数据包;
接收所述应用服务器采用单发方式发送的所述反馈数据包,并将所述反馈数据包采用多发方式发送至所述第一数据包处理设备,以使所述第一数据包处理设备对所接收到的所述反馈数据包进行去重处理后采用单发方式发送至用户终端。
在一个实施例中,所述处理器2001在执行接收第一数据包处理设备采用多发方式发送的应用数据包时,具体执行以下操作:
当检测到目标数据通道的网络传输质量小于网络质量阈值时,接收第一数据包处理设备采用多发方式发送的应用数据包。
在一个实施例中,所述处理器2001还执行以下操作:
当检测到所述目标数据通道的网络传输质量大于或者等于所述网络质量阈值时,接收所述第一数据包处理设备采用单发方式发送的应用数据包。
在一个实施例中,所述处理器2001在执行接收所述第一数据包处理设备采用多发方式发送的应用数据包时,具体执行以下操作:
接收所述第一数据包处理设备发送的标识获取请求;
获取设备标识,并将所述设备标识发送至所述第一数据包处理设备,以使所述第一数据包处理设备基于所述设备标识向数据服务器获取多发参数;
接收所述第一数据包处理设备基于所述多发参数发送的应用数据包。
在一个实施例中,所述多发参数包括设备多发功能指示,所述处理器2001在执行接收所述第一数据包处理设备基于所述多发参数发送的应用数据包之前,还执行以下操作:
当所述设备多发功能指示为所述第二数据包处理设备具备数据多发功能时,接收所述第一数据包处理设备发送的数据多发功能启动通知。
在一个实施例中,所述多发参数还包括发送份数和时间间隔,所述处理器2001在执行接收所述第一数据包处理设备基于所述多发参数发送的应用数据包时,具体执行以下操作:
接收所述第一数据包处理设备按照所述时间间隔以及发送份数发送的应用数据包。
在本发明实施例中,通过第二数据包处理设备接收第一数据包处理设备采用多发方式发送的应用数据包,并对所接收到的应用数据包进行去重处理后采用单发方式发送至应用服务器,以使应用服务器基于去重处理后的应用数据包获取反馈数据包,然后接收应用服务器采用单发方式发送的反馈数据包,并将所述反馈数据包采用多发方式发送至第一数据包处理设备,以使第一数据包处理设备对所接收到的反馈数据包进行去重处理后采用单发方式发送至用户终端。仅在目标数据通道的网络传输质量差时,可以通过第二数据包处理设备对接收到的数据包进行去重处理后以单发方式进行发送,在防止丢包的情况下不会增加应用服务器的流量,进而也可以减小应用服务器的数据处理压力。同时,还可以触发第一数据包处理设备对接收到的数据包进行去重处理后以单发方式进行发送,在防止丢包的情况下不会增加用户终端的流量,进而也可以减小用户终端的数据处理压力。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

Claims (13)

1.一种数据包处理方法,其特征在于,包括:
当检测到目标数据通道的网络传输质量小于网络质量阈值时,第一数据包处理设备接收用户终端采用单发方式发送的应用数据包,并将所述应用数据包采用多发方式发送至第二数据包处理设备;
当检测到所述目标数据通道的网络传输质量大于或者等于所述网络质量阈值时,所述第一数据包处理设备接收所述用户终端采用单发方式发送的应用数据包,并将所述应用数据包采用单发方式发送至所述第二数据包处理设备;
所述第二数据包处理设备对所接收到的所述应用数据包进行去重处理,并将去重处理后的所述应用数据包采用单发方式发送至应用服务器;
所述应用服务器基于所述去重处理后的应用数据包获取反馈数据包,并采用单发方式发送至所述第二数据包处理设备;
所述第二数据包处理设备接收所述反馈数据包,并将所述反馈数据包采用多发方式发送至所述第一数据包处理设备;
所述第一数据包处理设备对所接收到的所述反馈数据包进行去重处理,并将去重处理后的所述反馈数据包采用单发方式发送至所述用户终端。
2.根据权利要求1所述的方法,其特征在于,所述第一数据包处理设备接收用户终端采用单发方式发送的应用数据包,并将所述应用数据包采用多发方式发送至第二数据包处理设备,包括:
所述第一数据包处理设备接收用户终端采用单发方式发送的应用数据包;
所述第一数据包处理设备获取第二数据包处理设备的设备标识,向数据服务器获取所述设备标识对应的多发参数,并基于所述多发参数将所述应用数据包发送至所述第二数据包处理设备。
3.根据权利要求2所述的方法,其特征在于,所述第一数据包处理设备获取第二数据包处理设备的设备标识,包括:
所述第一数据包处理设备向所述第二数据包处理设备发送标识获取请求;
所述第一数据包处理设备接收并保存所述第二数据包处理设备发送的设备标识。
4.根据权利要求2所述的方法,其特征在于,所述多发参数包括设备多发功能指示,所述第一数据包处理设备基于所述多发参数将所述应用数据包发送至所述第二数据包处理设备之前,还包括:
当所述设备多发功能指示为所述第二数据包处理设备具备数据多发功能时,所述第一数据包处理设备启动数据多发功能,并通知所述第二数据包处理设备启动数据多发功能。
5.根据权利要求4所述的方法,其特征在于,所述多发参数还包括发送份数和时间间隔,所述第一数据包处理设备基于所述多发参数将所述应用数据包发送至所述第二数据包处理设备,包括:
所述第一数据包处理设备按照所述时间间隔以及发送份数将所述应用数据包发送至所述第二数据包处理设备。
6.根据权利要求4所述的方法,其特征在于,所述当所述设备多发功能指示为所述第二数据包处理设备具备数据多发功能时之后,还包括:
所述第一数据包处理设备获取所述用户终端对应的用户登录标识,当所述用户登录标识在设定的白名单标识集合中时,转入执行所述第一数据包处理设备启动数据多发功能的步骤。
7.一种数据包处理方法,其特征在于,包括:
接收用户终端采用单发方式发送的应用数据包,将所述应用数据包发送至第二数据包处理设备,以使所述第二数据包处理设备对所接收到的所述应用数据包进行去重处理后采用单发方式发送至应用服务器,并以使所述应用服务器获取反馈数据包,所述反馈数据包为所述应用服务器基于所述去重处理后的应用数据包所反馈的数据包;其中,当检测到目标数据通道的网络传输质量小于网络质量阈值时,将所述应用数据包发送至第二数据包处理设备的发送方式为多发方式;当检测到所述目标数据通道的网络传输质量大于或者等于所述网络质量阈值时,将所述应用数据包发送至第二数据包处理设备的发送方式为单发方式;
接收所述第二数据包处理设备采用多发方式发送的所述反馈数据包,并对所接收到的所述反馈数据包进行去重处理;
将去重处理后的所述反馈数据包采用单发方式发送至所述用户终端。
8.一种数据包处理方法,其特征在于,包括:
接收第一数据包处理设备发送的应用数据包,并对所接收到的所述应用数据包进行去重处理;其中,当检测到目标数据通道的网络传输质量小于网络质量阈值时,所述第一数据包处理设备发送应用数据包的发送方式为多发方式;当检测到所述目标数据通道的网络传输质量大于或者等于所述网络质量阈值时,所述第一数据包处理设备发送应用数据包的发送方式为单发方式;
将去重处理后的所述应用数据包采用单发方式发送至应用服务器,以使所述应用服务器基于所述去重处理后的应用数据包获取反馈数据包;
接收所述应用服务器采用单发方式发送的所述反馈数据包,并将所述反馈数据包采用多发方式发送至所述第一数据包处理设备,以使所述第一数据包处理设备对所接收到的所述反馈数据包进行去重处理后采用单发方式发送至用户终端。
9.一种数据包处理系统,其特征在于,包括用户终端、第一数据包处理设备、第二数据包处理设备、应用服务器以及数据服务器,其中:
所述用户终端,用于将所获取的应用数据包采用单发方式发送至所述第一数据包处理设备;
所述第一数据包处理设备,用于当检测到目标数据通道的网络传输质量小于网络质量阈值时,接收用户终端采用单发方式发送的应用数据包,并将所述应用数据包采用多发方式发送至第二数据包处理设备;
所述第一数据包处理设备,还用于当检测到所述目标数据通道的网络传输质量大于或者等于所述网络质量阈值时,接收所述用户终端采用单发方式发送的应用数据包,并将所述应用数据包采用单发方式发送至所述第二数据包处理设备;
所述第二数据包处理设备,用于对所接收到的所述应用数据包进行去重处理,并将去重处理后的所述应用数据包采用单发方式发送至所述应用服务器;
所述应用服务器,用于基于所述去重处理后的应用数据包获取反馈数据包,并采用单发方式发送至所述第二数据包处理设备;
所述第二数据包处理设备,还用于接收所述反馈数据包,并将所述反馈数据包采用多发方式发送至所述第一数据包处理设备;
所述第一数据包处理设备,还用于对所接收到的所述反馈数据包进行去重处理,并将去重处理后的所述反馈数据包采用单发方式发送至所述用户终端。
10.一种数据包处理设备,其特征在于,包括:
数据包收发单元,用于接收用户终端采用单发方式发送的应用数据包,并将所述应用数据包发送至第二数据包处理设备,以使所述第二数据包处理设备对所接收到的所述应用数据包进行去重处理后采用单发方式发送至应用服务器,并以使所述应用服务器获取反馈数据包,所述反馈数据包为所述应用服务器基于所述去重处理后的应用数据包所反馈的数据包;其中,当检测到目标数据通道的网络传输质量小于网络质量阈值时,将所述应用数据包发送至第二数据包处理设备的发送方式为多发方式;当检测到所述目标数据通道的网络传输质量大于或者等于所述网络质量阈值时,将所述应用数据包发送至第二数据包处理设备的发送方式为单发方式;
数据包去重单元,用于接收所述第二数据包处理设备采用多发方式发送的所述反馈数据包,并对所接收到的所述反馈数据包进行去重处理;
所述数据包收发单元,还用于将去重处理后的所述反馈数据包采用单发方式发送至所述用户终端。
11.一种计算机存储介质,其特征在于,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如权利要求7所述的方法。
12.一种电子设备,其特征在于,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行以下步骤:
接收用户终端采用单发方式发送的应用数据包,并将所述应用数据包发送至第二数据包处理设备,以使所述第二数据包处理设备对所接收到的所述应用数据包进行去重处理后采用单发方式发送至应用服务器,并以使所述应用服务器获取反馈数据包,所述反馈数据包为所述应用服务器基于所述去重处理后的应用数据包所反馈的数据包;其中,当检测到目标数据通道的网络传输质量小于网络质量阈值时,将所述应用数据包发送至第二数据包处理设备的发送方式为多发方式;当检测到所述目标数据通道的网络传输质量大于或者等于所述网络质量阈值时,将所述应用数据包发送至第二数据包处理设备的发送方式为单发方式;
接收所述第二数据包处理设备采用多发方式发送的所述反馈数据包,并对所接收到的所述反馈数据包进行去重处理;
将去重处理后的所述反馈数据包采用单发方式发送至所述用户终端。
13.一种数据包处理设备,其特征在于,包括:
数据包去重单元,用于接收第一数据包处理设备发送的应用数据包,并对所接收到的所述应用数据包进行去重处理;其中,当检测到目标数据通道的网络传输质量小于网络质量阈值时,所述第一数据包处理设备发送应用数据包的发送方式为多发方式;当检测到所述目标数据通道的网络传输质量大于或者等于所述网络质量阈值时,所述第一数据包处理设备发送应用数据包的发送方式为单发方式;
数据包收发单元,用于将去重处理后的所述应用数据包采用单发方式发送至应用服务器,以使所述应用服务器基于所述去重处理后的应用数据包获取反馈数据包;
所述数据包收发单元,还用于接收所述应用服务器采用单发方式发送的所述反馈数据包,并将所述反馈数据包采用多发方式发送至所述第一数据包处理设备,以使所述第一数据包处理设备对所接收到的所述反馈数据包进行去重处理后采用单发方式发送至用户终端。
CN201810548624.5A 2018-05-31 2018-05-31 一种数据包处理方法及其设备、系统、存储介质 Active CN108777664B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810548624.5A CN108777664B (zh) 2018-05-31 2018-05-31 一种数据包处理方法及其设备、系统、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810548624.5A CN108777664B (zh) 2018-05-31 2018-05-31 一种数据包处理方法及其设备、系统、存储介质

Publications (2)

Publication Number Publication Date
CN108777664A CN108777664A (zh) 2018-11-09
CN108777664B true CN108777664B (zh) 2023-07-14

Family

ID=64028216

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810548624.5A Active CN108777664B (zh) 2018-05-31 2018-05-31 一种数据包处理方法及其设备、系统、存储介质

Country Status (1)

Country Link
CN (1) CN108777664B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110099403B (zh) 2019-05-17 2022-07-19 腾讯科技(深圳)有限公司 一种数据传输方法、装置、设备及存储介质
CN111200830B (zh) * 2020-01-02 2022-04-26 腾讯科技(深圳)有限公司 数据传输方法及装置、电子设备
CN111318012B (zh) * 2020-02-24 2023-04-25 网易(杭州)网络有限公司 游戏数据的传输方法及装置
CN116546557B (zh) * 2023-06-29 2023-11-17 阿里巴巴(中国)有限公司 数据包处理方法、系统、设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101355408A (zh) * 2007-07-25 2009-01-28 华为技术有限公司 数据的传输处理方法与传输处理装置
CN105162868A (zh) * 2015-09-18 2015-12-16 华中师范大学 一种教师端与学生端之间的可靠数据传输方法
CN106549989A (zh) * 2015-09-17 2017-03-29 腾讯科技(深圳)有限公司 一种数据传输方法及其系统、用户终端、应用服务器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9374294B1 (en) * 2013-11-05 2016-06-21 Cisco Technology, Inc. On-demand learning in overlay networks

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101355408A (zh) * 2007-07-25 2009-01-28 华为技术有限公司 数据的传输处理方法与传输处理装置
CN106549989A (zh) * 2015-09-17 2017-03-29 腾讯科技(深圳)有限公司 一种数据传输方法及其系统、用户终端、应用服务器
CN105162868A (zh) * 2015-09-18 2015-12-16 华中师范大学 一种教师端与学生端之间的可靠数据传输方法

Also Published As

Publication number Publication date
CN108777664A (zh) 2018-11-09

Similar Documents

Publication Publication Date Title
CN108777664B (zh) 一种数据包处理方法及其设备、系统、存储介质
US20140359041A1 (en) Message Processing Method, Apparatus, and System
CN108270687B (zh) 一种负载均衡处理方法及装置
CN108781473B (zh) 一种在不同终端间共享文件的方法及设备
WO2015103929A1 (en) Method and apparatus for transmitting data in network system
CN108200567B (zh) 一种设备发现方法及设备
CN103647869A (zh) 一种终端的配对方法、终端及系统
US20150312131A1 (en) Software Defined Wireless Device Management
KR101120778B1 (ko) 브로드캐스트 서비스 가이드의 관리 객체 변경 방법,시스템 및 단말
KR20230150878A (ko) 데이터 송신 방법 및 장치, 그리고 서버, 저장 매체, 및 프로그램 제품
US20180146075A1 (en) Network communication protocol translation system and method
JP2012083891A (ja) フェイルオーバシステム、記憶処理装置及びフェイルオーバ制御方法
US9621629B2 (en) Content distribution system, cache server, and content distribution method
JP6562573B2 (ja) サービスフローパケットのための処理方法および装置
US10171346B2 (en) Method, apparatus and system for transmitting information
EP3282765B1 (en) Path selection method, device and system
US20130097228A1 (en) Network storage system, data manipulation method in network storage system, storage device and computer program product for controlling client device
CN107634896B (zh) 数据传输方法及装置
CN103701952A (zh) 一种业务数据的下行传输方法及分组数据网关
US11575601B2 (en) Network device and packet processing method using same
CN113169936B (zh) 用于数据流处理的服务链机制
CN109691202B (zh) 用于调度终端无线电资源的方法和设备
US20150006756A1 (en) Transmission management device, system, and method
CN114024917A (zh) 互联网业务带宽保障的方法、装置、设备及存储介质
CN107637047B (zh) 聚合目标和探索查询

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant