CN104717186A - 一种在网络系统中传输数据的方法、装置及数据传输系统 - Google Patents
一种在网络系统中传输数据的方法、装置及数据传输系统 Download PDFInfo
- Publication number
- CN104717186A CN104717186A CN201310689457.3A CN201310689457A CN104717186A CN 104717186 A CN104717186 A CN 104717186A CN 201310689457 A CN201310689457 A CN 201310689457A CN 104717186 A CN104717186 A CN 104717186A
- Authority
- CN
- China
- Prior art keywords
- packet
- data
- receiving terminal
- module
- node
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/06—Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
- H04W28/065—Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information using assembly or disassembly of packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/765—Media network packet handling intermediate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5683—Storage of data provided by user terminals, i.e. reverse caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/222—Secondary servers, e.g. proxy server, cable television Head-end
- H04N21/2225—Local VOD servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/239—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
- H04N21/2393—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
- H04W76/11—Allocation or use of connection identifiers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
- H04W76/12—Setup of transport tunnels
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Information Transfer Between Computers (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明涉及一种在网络系统中传输数据的方法、装置数据传输系统。在一个实施例中,上述方法包括:接收发送端发送给接收端的数据包;在所述加速节点的缓存内存储所述数据包;若成功在所述加速节点的缓存内存储所述数据包则根据所述数据包的内容以及预定的协议向所述发送端发送回应信息;以及将所述数据包内包括的数据转发至接收端。根据上述的方法、装置及系统,由于利用了加速节点的高速网络连接,使得处于世界各地的用户与中心节点之间的网络数据传输速率得到有效保证。
Description
技术领域
本发明涉及数据传输技术,尤其涉及一种在网络系统中传输数据的方法、装置及数据传输系统。
背景技术
内容分发网络(Content Delivery Network,CDN)的目的是通过在现有的互联网中增加一层新的网络架构,将热点资源或用户所需的资源分发到最接近用户的边缘节点上,使用户可以就近取得所需的内容,解决互联网网络拥挤的状况,提高用户访问资源的响应速度。
对于静态资源,例如一经发布基本不会再改动的新闻、已经发布的电视节目、电影、小说等,采用CDN技术不失为一种好的解决方案。然而对于动态资源来说,其一般是由用户生成的,随时随地都在变化,并不能将所有的资源立刻更新到离用户最近的边缘节点中。因此,用户并不能够通过现有的CDN架构获取动态资源的加速访问。
所以就需要提供一种新的数据传输方式,能够加速用户对于动态资源的网络访问。
发明内容
有鉴于此,有必要提供一种在网络系统中传输数据的方法、装置及数据传输系统,其可加速动态资源的网络传输速率。
一种在网络系统中传输数据的方法,用于所述网络系统内的至少一个加速节点,所述方法包括:接收发送端发送给接收端的数据包,所述发送端和接收端至少其中之一为数据中心,所述加速节点位于所述发送端与接收端两者之间;在所述加速节点的缓存内存储所述数据包;若成功在所述加速节点的缓存内存储所述数据包则根据所述数据包的内容以及预定的协议向所述发送端发送回应信息;以及将所述数据包内包括的数据转发至所述接收端。
一种在网络系统中传输数据的装置,用于所述网络系统内的至少一个加速节点,所述装置包括:代理模块、存储模块、以及逻辑处理模块;所述代理模块,用于接收发送端发送给接收端的数据包,并所接收到的数据包转发给所述逻辑处理模块,所述发送端和接收端至少其中之一为数据中心,所述加速节点位于所述发送端与接收端两者之间;所述逻辑处理模块,用于将所述代理模块发送的数据包发送至所述存储模块进行缓存;若所述存储模块成功在缓存储所述数据包则所述逻辑处理模块根据所述数据包的内容以及预定的协议指示所述代理模块向所述发送端发送回应信息;所述代理模块还用于根据所述逻辑处理模块的指令将所述数据包转发至所述接收端。
一种数据传输系统,包括:发送端、接收端以及位于所述发送端与接收端之间的至少一个加速节点,所述发送端与接收端至少其中之一为数据中心;所述发送端用于将要发送给接收端的数据包发送给所述加速节点;所述加速节点用于:接收所述发送端发送的数据包;在缓存内存储所述数据包;若成功在缓存内存储所述数据包则根据所述数据包的内容以及预定的协议向所述发送端发送回应信息;以及将所述数据包内包括的数据转发至所述接收端。
根据上述的方法、装置及系统,由于利用了加速节点的高速网络连接,使得处于世界各地的用户与中心节点之间的网络数据传输速率得到有效保证。
为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
附图说明
图1为第一实施例提供的数据传输系统的架构示意图。
图2为图1的数据传输系统的另一示意图。
图3为图1的数据传输系统的中心节点内的加速节点查询服务器的结构框图。
图4为图1的数据传输系统的中心节点内的应用服务器的结构框图。
图5为图1的数据传输系统的加速节点内的加速服务器的结构框图。
图6为图1所示的移动终端的结构框图。
图7为图1的数据传输系统的交互示意图。
图8为图1的数据传输系统的网络传输延时示意图。
图9为图1的数据传输系统中加速节点的另一结构示意图。
图10为图9所示的加速节点内各模块的交互示意图。
图11为图9所示的加速节点内各模块之间交互采用的消息结构示意图。
图12为图9所示的加速节点内数据包处理逻辑流程示意图。
图13为第二实施例提供的在网络系统中传输数据的方法流程图。
图14为第三实施例提供的在网络系统中传输数据的方法流程图。
图15为第四实施例提供的在网络系统中传输数据的方法流程图。
图16为第五实施例提供的在网络系统中传输数据的方法流程图。
具体实施方式
为更进一步阐述本发明为实现预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明的具体实施方式、结构、特征及其功效,详细说明如后。
图1为第一实施例提供的数据传输系统的架构示意图。如图1所示,数据传输系统100包括:一个或多个(图1中仅示出一个)中心节点10以及一个或多个(图1中示出四个)加速节点11。中心节点10例如可为数据中心,其内可包括多台服务器,用于分别提供不同的服务,或者以分布式架构提供同一种服务。
多个加速节点10可以分别部署在不同的地理区域内,例如,在每个国家、地区、城市可以设置一个加速节点11。加速节点11内也可包括一台或者多台加速服务器。中心节点10与加速节点11之间通过网络12连接。网络12可为高速互联网连接,例如,光纤网络、卫星通信网络等。
移动终端20可通过网络13连接至加速节点11。网络13例如可为移动通信网、无线局域网等。
参阅图2,中心节点10内可包括一个或多个(图1中仅示出一个)加速节点查询服务器101以及一个或多个(图中仅求出二个)应用服务器103。其中,加速节点查询服务器101用于接收客户端(例如图1所示的移动终端20)的加速节点查询请求,并返回距离移动终端20当前的地理位置最近的加速节点11。而应用服务器103用于提供某种网络服务,接收客户端(例如图1所示的移动终端20或者加速节点11)发送的数据,并发送其他数据给客户端。
参阅图3,其为上述的加速节点查询服务器101的一个实施例的结构框图。如图3所示,加速节点查询服务器101包括:存储器102、处理器104以及网络模块106。可以理解,图3所示的结构仅为示意,其并不对加速节点查询服务器101的结构造成限定。例如,加速节点查询服务器101还可包括比图3中所示更多或者更少的组件,或者具有与图3所示不同的配置。
存储器102可用于存储软件程序以及模块,处理器104通过运行存储在存储器102内的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器102可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器102可进一步包括相对于处理器104远程设置的存储器,这些远程存储器可以通过网络连接至加速节点查询服务器101。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输模块106用于接收以及发送网络信号。上述网络信号可包括无线信号或者有线信号。在一个实例中,上述网络信号为有线网络信号。此时,传输模块106可包括处理器、随机存储器、转换器、晶体振荡器等元件。
上述的软件程序以及模块包括:操作系统122以及加速节点查询模块124。其中操作系统122例如可为LINUX,UNIX,WINDOWS,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通讯,从而提供其他软件组件的运行环境。加速节点查询模块124运行在操作系统122的基础上,并通过操作系统122的网络服务监听来自网络的请求,根据请求完成相应的数据处理,并返回处理结果给客户端。也就是说,加速节点查询模块124用于接收客户端(例如图1所示的移动终端20)的加速节点查询请求,并返回距离移动终端20当前的地理位置最近的加速节点11。
参阅图4,其为上述的应用服务器101的一个实施例的结构框图。对比图3与图4,应用服务器101的硬件结构与加速节点查询服务器101相似,其不同之处在于,存储器102包括的是应用服务模块126。应用服务模块126通过操作系统122的网络服务监听来自网络的请求,根据请求完成相应的数据处理,并返回处理结果给客户端。具体地,应用服务模块126例如可提供一种即时通讯服务,其用于将用户输入的文字、语音、视频等内容发送/主动推送给指定的收件人。
参阅图5,其为上述的加速节点11内的加速服务器的一个实施例的结构框图。对比图3与图5,应用服务器101的硬件结构与加速节点查询服务器101相似,其不同之处在于,存储器102包括的是加速模块128。加速模块128通过操作系统122的网络服务监听来自网络的请求,根据请求完成相应的数据处理,并返回处理结果给客户端。具体地,加速模块128可接收移动终端20发送的数据,将其转发给应用服务器103,并将接收到的来自应用服务器103发送的数据转发给对应的移动终端20。此外,在转发数据后,加速模块128还可分别模仿移动终端20/应用服务器103向应用服务器103/移动终端20发送回应信息。
参阅图6,其为上述的移动终端20的一个实施例的结构框图。如图6所示,移动终端20包括存储器202、存储控制器204,一个或多个(图中仅示出一个)处理器206、外设接口208、射频模块210、定位模块212、摄像模块214、音频模块216、触控屏幕218以及按键模块220。这些组件通过一条或多条通讯总线/信号线222相互通讯。
可以理解,图6所示的结构仅为示意,移动终端20还可包括比图6中所示更多或者更少的组件,或者具有与图6所示不同的配置。图6中所示的各组件可以采用硬件、软件或其组合实现。
存储器202可用于存储软件程序以及模块,处理器206通过运行存储在存储器202内的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器202可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器202可进一步包括相对于处理器206远程设置的存储器,这些远程存储器可以通过网络连接至移动终端20。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。处理器206以及其他可能的组件对存储器202的访问可在存储控制器204的控制下进行。
本领域普通技术人员可以理解,相对于处理器206来说,所有其他的组件均属于外设,处理器206与这些外设之间通过多个外设接口208相耦合。外设接口208可基于以下标准实现:通用异步接收/发送装置(UniversalAsynchronous Receiver/Transmitter,UART)、通用输入/输出(GeneralPurpose Input Output,GPIO)、串行外设接口(Serial Peripheral Interface,SPI)、内部集成电路(Inter-Integrated Circuit,I2C),但不并限于上述标准。在一些实例中,外设接口208可仅包括总线;在另一些实例中,外设接口208还可包括其他元件,如一个或者多个控制器,例如用于连接液晶显示面板的显示控制器或者用于连接存储器的存储控制器。此外,这此控制器还可以从外设接口208中脱离出来,而集成于处理器206内或者相应的外设内。也就是说,在一些实施例中,外设接口208、处理器206以及存储控制器204可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
射频模块210用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通讯网络或者其他设备进行通讯。射频模块210可包括各种现有的用于执行这些功能的电路元件,例如,天线、射频收发器、数字信号处理器、加密/解密芯片、用户身份模块(SIM)卡、存储器等等。射频模块210可与各种网络如互联网、企业内部网、无线网络进行通讯或者通过无线网络与其他设备进行通讯。上述的无线网络可包括蜂窝式电话网、无线局域网或者城域网。上述的无线网络可以使用各种通信标准、协议及技术,包括但并不限于全球移动通信系统(Global System for MobileCommunication,GSM)、增强型移动通信技术(Enhanced Data GSMEnvironment,EDGE),宽带码分多址技术(wideband code division multipleaccess,W-CDMA),码分多址技术(Code division access,CDMA)、时分多址技术(time division multiple access,TDMA),蓝牙,无线保真技术(Wireless,Fidelity,WiFi)(如美国电气和电子工程师协会标准IEEE802.11a,IEEE802.11b,IEEE802.11g和/或IEEE802.11n)、网络电话(Voice over internet protocal,VoIP)、全球微波互联接入(WorldwideInteroperability for Microwave Access,Wi-Max)、其他用于邮件、即时通讯及短消息的协议,以及任何其他合适的通讯协议,甚至可包括那些当前仍未被开发出来的协议。
定位模块212用于获取移动终端20的当前位置。例如,定位模块212可接收卫星播报的定位信号,并根据定位信号计算出自身的位置。上述位置例如可用经度、纬度以及海拔高度来表示。可用的卫星定位系统包括全球定位系统(Global Positioning System,GPS)、北斗卫星定位系统(Compass Navigation Satellite System,CNSS)或者格洛纳斯系统(GlobalNavigation Satellite System,GLONASS)。定位模块212也并不限于采用卫星定位技术,例如,还可采用无线定位技术,例如基于无线基站的定位技术或者无线热点的定位技术。此时,定位模块212可被替换成相应的模块,或者直接经由处理器206执行特定的定位程序来实现。
摄像模块214用于拍摄照片或者视频。拍摄的照片或者视频可以存储至存储器202内,并可通过射频模块210发送。摄像模块214具体可包括镜头模组、影像感测器以及闪光灯等组件。镜头模组用于对被拍摄的目标成像,并将所成的像映射至影像感测器中。影像感测器用于接收来自镜头模组的光线,实现感光,以记录图像信息。具体地,影像感测器可基于互补金属氧化物半导体(Complementary Metal Oxide Semiconductor,CMOS)、电荷耦合元件(Charge-coupled Device,CCD)或者其他影像感测原理实现。闪光灯用于在拍摄时进行曝光补偿。一般来说,用于移动终端20的闪光灯可为发光二极体(Light Emitting Diode,LED)闪光灯。
音频模块216向用户提供音频接口,其可包括一个或多个麦克风、一个或者多个扬声器以及音频电路。音频电路从外设接口208处接收声音数据,将声音数据转换为电信息,将电信息传输至扬声器。扬声器将电信息转换为人耳能听到的声波。音频电路还从麦克风处接收电信息,将电信号转换为声音数据,并将声音数据传输至外设接口208中以进行进一步的处理。音频数据可以从存储器202处或者通过射频模块210获取。此外,音频数据也可以存储至存储器202中或者通过射频模块210进行发送。在一些实例中,音频模块216还可包括一个耳机播孔,用于向耳机或者其他设备提供音频接口。
触控屏幕218在移动终端20与用户之间同时提供一个输出及输入界面。具体地,触控屏幕218向用户显示视频输出,这些视频输出的内容可包括文字、图形、视频、及其任意组合。一些输出结果是对应于一些用户界面对象。触控屏幕218还接收用户的输入,例如用户的点击、滑动等手势操作,以便用户界面对象对这些用户的输入做出响应。检测用户输入的技术可以是基于电阻式、电容式或者其他任意可能的触控检测技术。触控屏幕218显示单元的具体实例包括但并不限于液晶显示器或发光聚合物显示器。在另一些实施例中,触控屏幕218还可被替换成其他类型的显示装置,例如包括一个投影显示装置。相比于一般的显示面板,投影显示装置还需要包括一些用于投影的部件例如透镜组。
按键模块220同样提供用户向移动终端20进行输入的接口,用户可以通过按下不同的按键以使移动终端20执行不同的功能。
存储器202内的软件程序以及模块可包括:操作系统224以及应用程序226。操作系统224例如可为任意适宜于移动终端的操作系统如:谷歌公司的安卓(Android)操作系统、苹果公司的IOS操作系统以及微软公司的Windows Mobile操作系统等。应用程序226运行在操作系统224的基础上。在一个实例中,应用程序226可包括一个网络通信应用程序,提供用户发联系人发送文字、语音、视频的功能。可以理解,上述的发送文字、语音、视频需要基于网络连接实现。
参阅图7,其为图1所示的数据传输系统100在进行数据传输时的交互时序示意图。如图7所示,移动终端20内的应用程序226在实际发送数据之前,先向中心节点10发送加速节点查询请求。所述加速节点查询请求可以是基于超文本传输协议(Hypertext Transfer Protocol,HTTP)、域名解析协议(Domain Name System,DNS)或者其他任意可以交换数据会协议。具体地,加速节点查询请求是被发送至加速节点查询服务器101。
在一个实例中,加速节点查询服务器101接收移动终端20发送的加速节点查询请求后,解析出加速节点请求内包含的IP地址,根据IP地址判断移动终端20所处的地理位置,并获取一个距离移动终端20最近的加速节点的IP地址返回给移动终端20。
在另一个实例中,上述的移动终端20可通自身的定位模块212确定自身的地理位置,并将上述的地理位置包含在上述的加速节点查询请求中。如此,加速节点查询服务器101无须再通过IP地址确定移动终端20的位置,可直接根据加速节点查询请求内的地理位置查找并返回最近的加速节点11的IP地址。
在接收到加速节点查询服务器101返回的加速节点11的IP地址后,移动终端20可向所述加速节点11请求建立网络连接。上述的网络连接可为长网络连接,如TCP(Transfer Control Protocol,传输控制协议)连接。可以理解,连接创建成功后,后续的数据传输都可使用已经建立好的网络连接,而无须每次发送数据都重新建立网络连接。由于会有多个移动终端20同时与加速节点11建立网络连接,因此,在加速节点11中,可以将每个建立的网络连接与移动终端20的唯一通用识别号(UniversalIdentification Number,UIN)关联起来。如此通过移动终端20的UIN,就可以顺利找到通过哪个网络连接可将数据发送到对应的移动终端20中。
在要发送数据时,例如,在应用程序226提供的对话界面中,用户输入了一段文字或者语音,并触发了发送条件(例如,点击了预定的按钮或者停止发言),则应用程序226将要发送的内容按钮预定的协议组装数据包,并通过已经建立的网络连接发送所述数据包。
应用程序226组装数据包的过程可如下:首先,判断待发送的数据的长度是否超过预设的阈值,若超过,则需要分片发送;否则,采用单个数据包发送。在需要分片发送时,按照预定的分片大小将待发送的数据分成多个分片,然后为将每个分片组装成分片数据包。
数据包一般可包括头信息及数据包正文。头信息内可包括所述数据包被发送的中心节点10的信息,以及其他控制信息,例如所述数据包是否是分片数据包。若是分片数据包还可包括一个母包标识,用于将多个分片数据包关联起来。数据包正文内可包括上述的文字或者语音经过编码后的数据。
相应地,加速节点11内的加速服务器会接收到所述数据包。在接收到所述数据包后,可尝试将数据包缓存在本地缓存内。上述的本地缓存例如是指缓存数据库(Cache Database,CDB)、内存、硬盘、固态存储器等任意可能的存储介质。具体地,可将所述数据包插入到与移动终端20对应的一个队列中。可以理解,一个具体的移动终端20发送的每一数据包可以具有唯一的序号作为所述数据包的唯一标识。因此,在上述的本地缓存中,对应于每个移动终端20,可存储一个队列,所述队列中存储的是与所述队列对应的移动终端20发送的所有数据包,而每个数据包采用唯一的序号来标识。
若将数据包缓存在本地缓存内成功,则加速节点11内的加速服务器可将所述数据包转发至中心节点10/应用服务器103,并可模拟中心节点10/应用服务器103的协议对所述数据包进行回应。若将数据包缓存在本地缓存内失败,可以重试预定次数,若仍然缓存失败,则可将所述数据包转发至中心节点10/应用服务器103,但不再模拟中心节点10/应用服务器103的协议对所述数据包进行回应。
上述的将所述数据包转发至中心节点10/应用服务器103可包括:
解析出所述数据包要发送到的中心节点10。如果没有获取到中心节点10的信息,例如,头信息中关于中心节点的字段为空或者非法,此时可以使用默认的中心节点10。可以理解,每个中心节点10内可包括多台应用服务器103,而数据包是要被发送到某台具体的应用服务器103中。因此,需要先确认要发送的应用服务器103的地址。
在一个实例中,加速节点11内的加速服务器根据预定的配置规则在目标中心节点10内选择一个应用服务器103作为目标服务器。
在另一个实施例中,中心节点10内具有一个或多个路由服务器,其用于接收客户端(如上述的加速服务器)的请求,并返回一个被分配的目标服务器。而路由服务器选择目标服务器也可以是根据上述的预定规则,或者是根据所有的应用服务器103的负载选择一个负载较低的应用服务器103。
在确定数据包要被发送的应用服务器103的地址后,加速服务器请求与所述应用服务器103建立网络连接。相应地,应用服务器103确认建立网络连接。建立的网络连接可为长网络连接,如TCP连接。可以理解,连接创建成功后,要向所述应用服务器103发送数据都可使用已经建立好的网络连接,而无须每次发送数据都重新建立网络连接。在应用服务器103中,可将网络连接与移动终端20的UIN关联起来,要向某个移动终端20发送数据包,通地其UIN查找对应的网络连接,再通过所述网络连接发送数据包即可。
然后,加速服务器可将移动终端20发送的数据包通过建立的网络连接发送至选定的应用服务器103。
在将数据包转发给选定的目标服务器103后,加速服务器可模拟目标服务器103向移动终端20发送回应信息。换言之,加速服务器采用与中心节点10/应用服务器103相同的协议直接对数据包做出回应,而不等待中心节点10/应用服务器103的处理结果。
对于不同类型的数据包,发送的回应信息也应不同。例如:
若所述数据包为一个分片数据包,则判断所述分片数据包是否为分片当中的最后一片;若是,则发送用于表示接收到完整数据的回应信息;否则,发送分片回应信息;
若所述数据包不是分片数据包则发送用于表示接收到完整数据包的回应信息。
若数据包内仅包括协议信令时,也就是说数据包为协议信令数据包时,则判断所述协议信令数据包是否已经被加速服务器模拟移动终端20发送至中心节点10/应用服务器103中。若已被发送,则执行加速节点11内的数据处理过程;否则,将所述数据包直接转发至中心节点10/应用服务器103,或者将数据包转发至中心节点10/应用服务器103并模拟中心节点10/应用服务器103采用的协议对所述数据包进行回应。
上述的执行加速节点11内的数据处理过程包括:
判断所述协议信令是否与某个数据包相关,若是,则从数据包的头信息中解析出此协议信令针对的数据包的序号。然后再针对具体的协议信息做出不同的数据处理。
例如,若所述协议信令是移动终端20对于某个数据包已经接收到的确认信息,则与所述序号对应的数据包没有再在本地缓存中保存的必要,可本地缓存中删除与所述序号对应的数据包。
若所述协议信令是移动终端20请求对某个数据包重新发送,则可将保存在本地缓存中的与所述序号对应的数据包重新发送至移动终端20。
以上所述为数据包上行的过程,即数据包从移动终端20被发送至中心节点10/应用服务器103的过程,以下结合具体的实例对数据包下行的过程,对数据包从中心节点10/应用服务器103被发送至移动终端20的过程描述如下。
应用服务器103在要向某个移动终端20发送数据包时,其可通过移动终端20的UIN来查询对应的网络连接,然后直接通过所述网络连接发送数据包。然而,如图7所示,此网络连接是连接至加速服务器,而非直接连接至移动终端20。
相应地,加速节点11内的加速服务器会接收到所述数据包。在接收到所述数据包后,可尝试将数据包缓存在本地缓存内。上述的本地缓存例如是指缓存数据库(Cache Database,CDB)、内存、硬盘、固态存储器等任意可能的存储介质。具体地,可将所述数据包插入到与移动终端20对应的一个队列中。可以理解,应用服务器103发送给移动终端20的每一数据包可以具有唯一的序号作为所述数据包的唯一标识。因此,在上述的本地缓存中,对应于每个移动终端20,可存储一个队列,所述队列中存储的是发送给与所述队列对应的移动终端20所有数据包,而每个数据包采用唯一的序号来标识。
若将数据包缓存在本地缓存内成功,则加速节点11内的加速服务器可将所述数据包转发至移动终端20,并可模拟移动终端20对所述数据包进行回应。若将数据包缓存在本地缓存内失败,可将所述数据包转发至移动终端20,但不再模拟移动终端20对所述数据包进行回应。
上述的将所述数据包转发至移动终端20可包括:根据UIN查找到对应的网络连接,并通过所述网络连接发送所述数据包。
在将数据包转发给移动终端20后,加速服务器可模拟移动终端20向应用服务器103发送回应信息,而不等待移动终端20的处理结果。
对于不同类型的数据包,发送的回应信息也应不同。例如:
若所述数据包为一个分片数据包,则判断所述分片数据包是否为分片当中的最后一片;若是,则发送用于表示接收到完整数据的回应信息;否则发送分片回应信息;或者
若所述数据包不是分片数据包则发送用于表示接收到完整数据包的回应信息。
若数据包内仅包括协议信令时,则判断所述协议信令是否已经被加速服务器模拟应用服务器103发送至移动终端20中。若已被发送,则执行加速节点11内的数据处理过程;否则,将所述数据包直接转发至移动终端20,或者将数据包转发至移动终端20并模拟移动终端20对所述数据包进行回应。
上述的执行加速节点11内的数据处理过程包括:
判断所述协议信令是否与某个数据包相关,若是,则从数据包的头信息中解析出此协议信令针对的数据包的序号。然后再针对具体的协议信息做出不同的数据处理。
例如,若所述协议信令是应用服务器103对于某个数据包已经接收到的确认信息,则与所述序号对应的数据包没有再在本地缓存中保存的必要,可本地缓存中删除与所述序号对应的数据包。
若所述协议信令是应用服务器103请求对某个数据包重新发送,则可将保存在本地缓存中的与所述序号对应的数据包重新发送至应用服务器。
参阅图8,其为本实施例数据传输系统100数据传输时需要的时间示意图。在一个典型的网络环境中,从移动终端20直接到中心节点10的网络延时为2秒,从移动终端20到加速节点11的网络延时为600毫秒,从加速节点11到中心节点10的网络延时为100毫秒。因此,根据本实施例的数据传输系统100,网络延时可以减少1300毫秒,极大程度的减少网络延时对于通信的影响。
在图5所示的加速服务器中仅示意出一个加速模块128,然而这并不是说加速模块128只能在一个服务器中实现,其功能可以被拆分成多个在同一个硬件环境中执行的软件模块,还可以是多个分别执行在不同硬件环境中的软件模块,甚至可以分别采用一个或多个硬件模块如现场可编程门阵列(Field-Programmable Gate Array,FPGA)来实现。
参阅图9,其为图5所示的加速模块128的一个实施例的结构框图。加速模块128包括:代理模块112、逻辑处理模块114、以及存储模块116。上述的代理模块112、逻辑处理模块114、以及存储模块116可以运行在同一服务器中,也可以是分别运行在不同的服务器中。
其中,代理模块112用于接收移动终端20或者应用服务器103发送的数据包,对数据包进行必要的预处理,并将预处理后的数据包转发给逻辑处理模块114进行逻辑处理,并在逻辑处理模块114的指示下将接收到的数据包转发给应用服务器103或者移动终端20。
逻辑处理模块114用于根据代理模块112转发的数据进行逻辑处理,在必要时将数据包提交到存储模块116进行存储,并将处理结果返回给代理模块112,使代理模块112将进行数据包转发以及向移动终端20/应用服务器103发送回应信息。
存储模块116用于缓存逻辑处理模块114提供的数据包,并响应逻辑处理模块数据包读取、删除的请求,返回数据包内容或者删除指定的数据包。
参阅图10,其为上述的代理模块112、逻辑处理模块114、以及存储模块116交互示意图。代理模块112在接收到移动终端20或者应用服务器103的数据包后,进行预处理操作。上述预处理操作例如可包括数据包完整性校验。若数据包完整,则将其转发给逻辑处理模块114。若数据包不完整,可请求移动终端20或者应用服务器103重新发送。
代理模块112、逻辑处理模块114、以及存储模块116之间交互采用短连接,可在需要使用时建立网络连接。且代理模块112、逻辑处理模块114、以及存储模块116之间的交互采用具有预定的消息格式。参阅图11,其为上述的消息格式的一个实例的示意图。消息包括命令字(order_code)以及其他内容(other_items)。此处的命令字即可为前述的协议信令。例如,在移动终端20发送给代理模块112的数据包中,可包括表示是一个完整的要发送到应用服务器103的数据包的命令字。所述命令字例如可包括表示所述数据包是上行还是下行的信息。而其他内容中可包括数据包的长度、移动终端20的UIN、消息序号、数据正文等内容。
具体地,逻辑处理模块114在接收到代理模块112发送的数据包后进行以下操作:将所述数据包转发给存储模块116进行本地缓存。无论是否存储成功,存储模块116返回确认信息给逻辑处理模块114。
若存储不成功,保持数据包内的命令字不变,将所述数据包返回代理模块112。
若存储成功,保持数据包内的命令字不变,将所述数据包返回代理模块112。此外,逻辑处理模块114还可从一个配置文件中读取针接收到的命令字的回应命令字,根据所述回应命令字组装回应数据包。并将所述回应数据包发送给代理模块112。
对于每一个来自逻辑处理模块114的数据包,代理模块112根据命令字即可判断是发送给移动终端20还是应用服务器103,并进行相应的发送操作。
根据本实施例的加速模块128,将不同的功能分散在不同的模块中,代理模块112可只负责转发,存储模块116只负责存储,而逻辑处理由逻辑处理模块114进行。由于模块功能的拆分,每个模块负责的功能单一,其可靠性及性能得到很大提升。而且,面向客户端的代理模块112并不能直接获取存储模块116内的数据,可提升数据的安全性。
可以理解,图10所示仅为加速节点11内的各模块进行数据包的处理逻辑的一个实例,例如图10的流程可用于非分片数据包的处理。然而加速节点11还可针对不同类型的数据包(例如分片数据包)采用不同的处理逻辑。上述的处理逻辑例如是由逻辑处理模块114实现的。参阅图12,其为加速节点11中的数据包处理逻辑的流程图。上述的处理逻辑包括以下步骤:
步骤S111,接收代理模块112转发的数据包;
步骤S112,将接收到的数据包转发给存储模块116进行缓存;
步骤S113,根据存储模块116返回的确认信息判断缓存是否成功;若缓存成功,则执行步骤S114;否则,可将接收到的数据包原包返回给代理模块112;或者,重新执行步骤S112预定次数。若重试超过预定次数后仍然缓存不成功,可将接收到的数据包原包返回给代理模块112。
步骤S114,判断数据包是否是分片数据包。例如,从数据包的头信息中解析出用于表示是否是分片数据包的字段,从而据以判断是否是分片数据包。若是分片数据包,则执行步骤S115;否则,可将接收到的数据包转发给代理模块112,并可根据预定的协议向移动终端20或者中心节点10发送回应信息。
步骤S115,判断是否是分片中的最后一片。若是,则执行步骤S116;否则,执行步骤S117。例如,从数据包的头信息中解析出用于表示分片序号的字段,然后再结合先前已经接收到的其他分片的序号,判断是否是分片中的最后一片。在一个实例中,逻辑处理模块114可以采用一个长度为n的字符串表示所有分片的状态,其中n为分片的总数,字符串中第k[1,n]个字符用于表示第k个分片是否已经接收到。例如,用0表示未接收到,用1表示已经接收到该分片。每接收到一个分片,可将对应的字符置为用于表示已经接收到的字符A。当需要判断所有分片是否已经全部接收到的时候,可将该字符串与字符串[A,n]进行比较,若两者相等,则所有分片已经接收到。其中,字符串[A,n]表示长度为n,且所有字符为A的字符串。
步骤S116,根据待处理队列中的所有数据包组装新数据包并转发给代理模块。在接收到所有的分片后,逻辑处理模块114可以解析出所有分片数据包内包含的数据,并将所有的分片内包含的数据重新连接以获取原始数据。进一步地,可将原始数据组装在一个单一数据包内,也可以重新进行分片处理。逻辑处理模块114的分片长度可以是与移动终端20中的分片长度不同。一般来说,逻辑处理模块114中的分片长度可以大于移动终端20中的分片长度。可以理解,在网络数据传输中,数据包的长度会影响到网络传输的成功率。一般来说,数据包越长,越容易发生丢包现象。因此,减少数据包大小可以提升传输成功率,但同时会降低数据传输速率。对于移动终端20来说,其一般通过面向一般用户的网络如移动通信网接入互联网,其网络质量并不能得到保障。为保障移动终端20发送数据包的成功率,其分片大小可能设置为一个较小的数值。而加速节点11一般会采用高速且可靠的网络连接接入互联网,因此其分片大小可以比移动终端20高,从而提升网络数据传输的速率。通过步骤S116,既可以在移动终端20提升数据包发送成功率,也可以在加速节点11提升数据发送速率。
步骤S117,将数据包添加至一个待处理队列中并等待后续分片的到达。如前所述,数据包的转发是由代理模块112进行的。只要逻辑处理模块114,不将数据包转发给代理模块112,该数据包就不会被发送给移动终端20或者中心节点10。
图13为第二实施例提供的在网络系统中传输数据的方法流程图。本实施的方法可用于图1所示的加速节点11中。如图13所示,本实施例的方法包括以下步骤:
步骤S201、接收发送端发送给接收端的数据包;
发送端及接收端例如可分别是图1中所示的移动终端20以及中心节点10内应用服务器103(图2),也可以分别是中心节点10以及移动终端20。也就是说,发送端和接收端至少其中之一为数据中心(中心节点10)。步骤S201例如可以由图9所示的代理模块112执行。代理模块112在接收到发送端发送的数据包后,可将其转发给逻辑处理模块114以执行步骤S202。
步骤S202、在所述加速节点的缓存内存储所述数据包。
逻辑处理模块114在接收到代理模块112发送的数据包后,将其转发给存储模块116进行缓存。可以理解,数据包都会与一个移动终端20(或其他发送端)相关联,每个移动终端20可被分配一个UIN。因此,可在缓存内针对每个移动终端20存储两个消息队列,分别用于缓存上行(例如从移动终端20到应用服务器103)数据包以及下行(例如从应用服务器103到移动终端20)数据包。而在队列内的每个数据包,具有唯一的消息序号用做唯一标识。存储模块116可将存储结果确认信息发送给逻辑处理模块114。
步骤S203、判断在所述加速节点的缓存内存储所述数据包是否成功;若成功则执行步骤S204,否则执行步骤S205。
根据存储模块116返回的确认信息,逻辑处理模块114可以判断是否缓存成功。若缓存不成功,逻辑处理模块114还可再次将数据包转发给存储模块116进行存储。重试预定次数后放弃重试,缓存不成功。
步骤S204,根据所述数据包的内容以及预定的协议向所述发送端发送回应信息。
若将数据包缓存在本地缓存内成功,则代理模块112可将所述数据包转发至接收端。此外逻辑处理模块114,还可根据预定的协议组装针对所述数据包的回应信息,将其转发给代理模块112,由代理模块112将回应信息发送给发送端。
例如,若所述数据包为一个完整数据包,则发送用于表示接收到数据包的回应信息;或者若所述数据包为分片中的最后一片,则发送用于表示接收到完整数据的回应信息;或者若所述数据包为分片中除最后一片外的其他分片,则发送分片回应信息。
值得注意的是,在执行步骤S204后,可继续执行步骤S205。此外,可以理解,步骤S204与步骤S205的执行步骤并不受限制。步骤S204还可以是在步骤S205之后执行。
步骤S205、将所述数据包内包括的数据转发至所述接收端。
步骤S205可包括:将所述数据包直接转发至所述接收端;或者将所述数据包直接转发至下一个加速节点,以使所述下一个加速节点将所述数据包转发至所述接收端。
若数据包是要发送到应用服务器103,则通过与应用服务器103之间已经建立的网络连接将数据包转发给应用服务器103。
若数据包是要发送到移动终端20,则通过移动终端20的UIN获取对应的网络连接,并通过获取的网络连接将数据包发送给移动终端20。
此外,除了将数据包直接转发,还可以是从数据包中提取出包括的数据,重新组装数据包以直接或间接转发至接收端。上述直接是指直接转发至接收端,不再经过其他加速节点11,而间接转发是指先发送至其他加速节点11,再由其他加速节点11转发至接收端。
进一步地,以上所述仅为一个数据包的通用处理流程。然而,针对特定类型的数据包,还可以采用专门的处理逻辑,例如,对于分片数据包,还可以采用图12所示的流程进行处理。
根据本实施例的方法,可大幅降低数据传输的网络延时,提升数据传输效率。
图14为第三实施例提供的在网络系统中传输数据的方法流程图。本实施的方法可用于图1所示的加速节点11中。如图14所示,本实施例的方法与图12的方法部分相似,其不同之处在于,在步骤S203中,若成功在所述加速节点的缓存内存储所述数据包则执行步骤S301。
步骤S301,判断所述数据包是否为协议信令数据包。协议信令数据包是指仅包括协议信令,而不包括数据正文的数据包。例如,移动终端20或者应用服务器103在接收到一个数据包后,可发送一个确认数据包,用于向应用服务器103/移动终端20确认已经收到某个数据包。这类数据包内可不包括数据正文,可以包括协议信令数据。若所述数据包为协议信令数据包则执行步骤S302;若所述数据包不是协议信令数据包,则可按照图13的流程处理。
步骤S302,判断所述协议信令数据包是否已经被加速节点模拟所述接收端发送至所述发送端。若未被发送,执行步骤S205;否则执行步骤S303。
当接收端接收到数据包后,根据预定的协议,会发送回应信息。由于加速节点11的存在,这个回应信息是被发送到加速节点11中。然而,根据图12的流程,在加速节点11中,当一个数据包被缓存成功后,除了被转发至接收端内外,还向发送端发送回应信息。也就是说,对于已经被成功缓存的数据包,回应信息实质上已经被加速节点11模拟接收端发送给了发送端。因此,在步骤S302中,可以从所述协议信令数据包中解析出对应的移动终端20的UIN、数据包的序号,数据包是上行还是下行等信息。这些信息可用于标识一个或多个与所述协议信令数据包关联的关联数据包。然后可在缓存中寻找所述关联数据包。若成功找到,则说明所述关联数据包回应信息已经被发送。否则,所述关联数据包的回应信息未被发送。
步骤S303,执行与所述协议信令相应的数据处理。
依据不同的协议信令,可以相应执行不同的数据处理过程。
例如,若所述协议信令为确认所述接收端接收到指定数据包的确认信息,则从所述缓存内删除所述指定数据包。如此,可以减少缓存消耗的存储空间,提升缓存的存储效率。
例如,若所述协议信令为接收端请求重新发送指定数据包的请求信息,则重新发送所述指定数据包至所述接收端。如此,可以确保数据包发送的高可靠性。
根据本实施例的方法,加速节点11在接收到的数据包为协议信令数据包时,可以按照预定的协议进行数据处理,可提升数据传输的可靠性及效率。
图15为第四实施例提供的在网络系统中传输数据的方法流程图。本实施的方法可用于图1所示的加速节点11中。如图15所示,本实施例的方法包括以下步骤:
步骤S401、接收移动终端发送的数据包;
移动终端20在要发送数据时,例如,在应用程序226提供的对话界面中,用户输入了一段文字或者语音,并触发了发送条件(例如,点击了预定的按钮或者停止发言),则应用程序226将要发送的内容按钮预定的协议组装数据包,并通过已经建立的网络连接发送所述数据包。数据包一般可包括头信息及数据包正文。头信息内可包括所述数据包被发送的中心节点10的信息,以及其他控制信息,例如所述数据包是否是分片数据包。若是分片数据包还可包括一个母包标识,用于将多个分片数据包关联起来。数据包正文内可包括上述的文字或者语音经过编码后的数据。
步骤S402、在所述加速节点的缓存内存储所述数据包。
在接收到移动终端发送的数据包后,加速节点11尝试将接收到的数据包保存在本地缓存中。可以理解,数据包都会与一个移动终端20(或其他发送端)相关联,每个移动终端20可被分配一个UIN。因此,可在缓存内针对每个移动终端20存储两个消息队列,分别用于缓存上行(例如从移动终端20到应用服务器103)数据包以及下行(例如从应用服务器103到移动终端20)数据包。而在队列内的每个数据包,具有唯一的消息序号用做唯一标识。
步骤S403、判断在所述加速节点的缓存内存储所述数据包是否成功;若成功则执行步骤S404,否则执行步骤S405。
加速节点11是将数据包提交给一个存储模块进行缓存,并接收存储模块返回的确认信息,根据确认信息判断是否缓存成功。
步骤S404,根据所述数据包的内容以及预定的协议向所述移动终端发送回应信息。
若将数据包缓存在本地缓存内成功,则加速节点11内的加速服务器可将所述数据包转发至应用服务器103,并可模拟应用服务器103对所述数据包进行回应。
例如,若所述数据包为一个完整数据包,则发送用于表示接收到数据包的回应信息;或者若所述数据包为分片中的最后一片,则发送用于表示接收到完整数据的回应信息;或者若所述数据包为分片中除最后一片外的其他分片,则发送分片回应信息。
值得注意的是,在执行步骤S404后,可继续执行步骤S405。此外,可以理解,步骤S404与步骤S405的执行步骤并不受限制。步骤S404还可以是在步骤S405之后执行。
步骤S405、将所述数据包转发至应用服务器。
具体地,可通过与应用服务器103之间已经建立的网络连接将数据包转发给应用服务器103。
根据本实施例的方法,可大幅降低移动终端向应用服务器发送数据时的网络延时,提升数据传输效率。
图16为第五实施例提供的在网络系统中传输数据的方法流程图。本实施的方法可用于图1所示的加速节点11中。如图16所示,本实施例的方法包括以下步骤:
步骤S501、接收应用服务器发送的数据包。
应用服务器可以提供一种或多个网络服务,例如网络通信服务,在两个或更多用户的设备(如移动终端20)之间转发消息。在第一用户向第二用户发送消息时,应用服务器会先接收到第一用户发送的消息,并负责推送给第二用户当前使用的一个或多个终端(如移动终端20)。具体地,应用服务器,通过移动终端的UIN查找对应的网络连接,并能过所述网络连接将数据包发送。根据图1所示的架构,此数据包会被发送至加速节点11。过一步地,如图9所示,此数据包会被代理模块112所接收。代理模块112在接收到数据包后将其转发给逻辑处理模块114以执行步骤S502。
步骤S502、在所述加速节点的缓存内存储所述数据包。
逻辑处理模块114在接收到代理模块112发送的数据包后,将其转发给存储模块116进行缓存。
步骤S503、判断在所述加速节点的缓存内存储所述数据包是否成功;若成功则执行步骤S504,否则执行步骤S505。
根据存储模块116返回的确认信息,逻辑处理模块114可以判断是否缓存成功。若缓存不成功,逻辑处理模块114还可再次将数据包转发给存储模块116进行存储。重试预定次数后放弃重试,缓存不成功。
步骤S404,根据所述数据包的内容以及预定的协议向所述移动终端发送回应信息。
若将数据包缓存在本地缓存内成功,则加速节点11内的加速服务器可将所述数据包转发至应用服务器103,并可模拟应用服务器103对所述数据包进行回应。
例如,若所述数据包为一个完整数据包,则发送用于表示接收到数据包的回应信息;或者若所述数据包为分片中的最后一片,则发送用于表示接收到完整数据的回应信息;或者若所述数据包为分片中除最后一片外的其他分片,则发送分片回应信息。
具体地,逻辑处理模块114根据要发送的回应信息组装回应数据包,将回应数据包发送给代理模块112。代理模块112根据回应数据包内的命令字进行相应的转发。
值得注意的是,在执行步骤S504后,可继续执行步骤S505。此外,可以理解,步骤S504与步骤S505的执行步骤并不受限制。步骤S504还可以是在步骤S505之后执行。
步骤S505、将所述数据包转发至移动终端。
代理模块112可根据数据包内包含的移动终端20的UIN获取对应的网络连接,然后通过获取的网络连接发送所述数据包即可。
根据本实施例的方法,可大幅降低应用服务器向移动终端发送数据时的网络延时,提升数据传输效率。
此外,可以理解,上述各实施例的装置仅为示例性说明,并不对本发明实施例提供的在电子装置中启动应用程序的装置做出任何限制,本领域普通技术人员可以将以上各实施例进行组合、稍加变化而得出新的技术方案,这些技术方案也应包含在上述的方法、装置及系统的范围内。
此外,本发明实施例还提供一种计算机可读存储介质,其内存储有计算机可执行指令,上述的计算机可读存储介质例如为非易失性存储器例如光盘、硬盘、或者闪存。上述的计算机可执行指令用于让计算机或者类似的运算装置完成上述的方法。
Claims (30)
1.一种在网络系统中传输数据的方法,用于所述网络系统内的至少一个加速节点,其特征在于,所述方法包括:
接收发送端发送给接收端的数据包,所述发送端和接收端至少其中之一为数据中心,所述加速节点位于所述发送端与接收端两者之间;
在所述加速节点的缓存内存储所述数据包;
若成功在所述加速节点的缓存内存储所述数据包则根据所述数据包的内容以及预定的协议向所述发送端发送回应信息;以及
将所述数据包内包括的数据转发至所述接收端。
2.如权利要求1所述的方法,其特征在于,所述将所述数据包内包括的数据转发至所述接收端包括:将所述数据包直接转发至所述接收端;或者将所述数据包直接转发至下一个加速节点,以使所述下一个加速节点将所述数据包转发至所述接收端。
3.如权利要求1所述的方法,其特征在于,所述将所述数据包内包括的数据转发至所述接收端包括:若所述数据包为一个分片数据包,则在接收到与所述分片数据包相关联的所有分片数据包后根据预定的分片协议重新组装数据包,并将组装后的数据包转发至所述接收端。
4.如权利要求1所述的方法,其特征在于,若在所述加速节点的缓存内存储所述数据包失败,则将所述数据包内包括的数据转发至所述接收端或者下一个加速节点,且不向所述发送端发送回应信息。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:进行数据包的完整性校验,若校验通过才进行在所述加速节点的缓存内存储所述数据包的步骤。
6.如权利要求5所述的方法,其特征在于,所述根据所述数据包的内容以及预定的协议向所述发送端发送回应信息包括:
若所述数据包为一个分片数据包,则判断所述分片数据包是否为分片当中的最后一片;若是,则发送用于表示接收到完整数据的回应信息;否则发送分片回应信息;或者
若所述数据包不是分片数据包则发送用于表示接收到完整数据包的回应信息。
7.如权利要求1所述的方法,其特征在于,所述方法还包括:若成功在所述加速节点的缓存内存储所述数据包且所述数据包为协议信令数据包,则判断所述协议信令数据包是否已经被发送至所述发送端,若否,则将所述协议信令数据包转发至所述发送端。
8.如权利要求7所述的方法,其特征在于,还包括:若所述协议信令数据包是否已经被发送至所述发送端,则执行与所述协议信令相应的数据处理。
9.如权利要求8所述的方法,其特征在于,执行与所述协议信令相应的数据处理包括:若所述协议信令为确认所述接收端接收到指定数据包的确认信息,则从所述缓存内删除所述指定数据包。
10.如权利要求8所述的方法,其特征在于,执行与所述协议信令相应的数据处理包括:若所述协议信令为所述接收端请求重新发送指定数据包的请求信息,则重新发送所述指定数据包。
11.一种在网络系统中传输数据的装置,用于所述网络系统内的至少一个加速节点,其特征在于,所述装置包括:代理模块、存储模块、以及逻辑处理模块;
所述代理模块,用于接收发送端发送给接收端的数据包,并所接收到的数据包转发给所述逻辑处理模块,所述发送端和接收端至少其中之一为数据中心,所述加速节点位于所述发送端与接收端两者之间;
所述逻辑处理模块,用于将所述代理模块发送的数据包发送至所述存储模块进行缓存;若所述存储模块成功在缓存储所述数据包则所述逻辑处理模块根据所述数据包的内容以及预定的协议指示所述代理模块向所述发送端发送回应信息;
所述代理模块还用于根据所述逻辑处理模块的指令将所述数据包转发至所述接收端。
12.如权利要求11所述的装置,其特征在于,所述代理模块将来自所述逻辑处理模块的数据包转发至所述接收端包括:将所述数据包直接转发至所述接收端;或者将所述数据包直接转发至下一个加速节点,以使所述下一个加速节点将所述数据包转发至所述接收端。
13.如权利要求11所述的装置,其特征在于,所述逻辑处理模块还用于:若所述数据包为一个分片数据包,则在接收到与所述分片数据包相关联的所有分片数据包后根据预定的分片协议重新组装数据包,并将组装后的数据包转发至所述代理模块。
14.如权利要求11所述的装置,其特征在于,若所述存储模块存储所述数据包失败,则所述逻辑处理模指示所述代理模块将所述数据包转发至所述接收端,且所述逻辑处理模块不指示所述代理模块向所述发送端发送回应信息。
15.如权利要求11所述的装置,其特征在于,所述代理模块还用于:进行数据包的完整性校验,若校验通过才将所述数据包转发给所述逻辑处理模块。
16.如权利要求15所述的装置,其特征在于,所述逻辑处理模块根据所述预定的协议以及所述数据包的内容指示所述代理模块向所述发送端发送回应信息包括:
若所述数据包为一个分片数据包,则判断所述分片数据包是否为分片当中的最后一片;若是,则指示所述代理模块发送用于表示接收到完整数据的回应信息;否则指示所述代理模块发送分片回应信息;或者
若所述数据包不是分片数据包则指示所述代理模块发送用于表示接收到完整数据包的回应信息。
17.如权利要求11所述的装置,其特征在于,所述逻辑处理模块还用于:若所述存储模块成功在所述加速节点的缓存内存储所述数据包且所述数据包为协议信令数据包则判断所述协议信令数据包是否已经被发送至所述发送端,若否,则指示所述代理模块将所述协议信令数据包转发至所述发送端。
18.如权利要求17所述的装置,其特征在于,所述逻辑处理模块还用于:若所述协议信令数据包是否已经被发送至所述发送端,则执行与所述协议信令相应的数据处理。
19.如权利要求18所述的装置,其特征在于,所述逻辑处理模块执行与所述协议信令相应的数据处理包括:若所述协议信令为确认所述接收端接收到指定数据包的确认信息,则指示所述存储模块从所述缓存内删除所述指定数据包。
20.如权利要求18所述的装置,其特征在于,所述逻辑处理模块执行与所述协议信令相应的数据处理包括:若所述协议信令为所述接收端请求重新发送指定数据包的请求信息,则获取所述指定数据包,并指示所述代理模块重新发送所述指定数据包。
21.一种数据传输系统,包括:
发送端、接收端以及位于所述发送端与接收端之间的至少一个加速节点,所述发送端与接收端至少其中之一为数据中心;
所述发送端用于将要发送给接收端的数据包发送给所述加速节点;
所述加速节点用于:接收所述发送端发送的数据包;在缓存内存储所述数据包;若成功在缓存内存储所述数据包则根据所述数据包的内容以及预定的协议向所述发送端发送回应信息;以及将所述数据包内包括的数据转发至所述接收端。
22.如权利要求21所述的数据传输系统,其特征在于,所述加速节点将所述数据包内包括的数据转发至所述接收端包括:将所述数据包直接转发至所述接收端;或者将所述数据包直接转发至下一个加速节点,以使所述下一个加速节点将所述数据包转发至所述接收端。
23.如权利要求21所述的数据传输系统,其特征在于,所述加速节点将所述数据包内包括的数据转发至所述接收端包括:若所述数据包为一个分片数据包,则在接收到与所述分片数据包相关联的所有分片数据包后根据预定的分片协议重新组装数据包,并将组装后的数据包转发至所述接收端。
24.如权利要求21所述的数据传输系统,其特征在于,所述加速节点还用于:若在所述缓存内存储所述数据包失败,则将所述数据包转发至所述应用服务器,且不向所述发送端发送回应信息。
25.如权利要求21所述的数据传输系统,其特征在于,所述加速节点还用于:进行数据包的完整性校验,若校验通过才进行在所述加速节点的缓存内存储所述数据包的步骤。
26.如权利要求21所述的数据传输系统,其特征在于,所述加速节点根据所述数据包的内容以及预定的协议向所述发送端发送回应信息包括:
若所述数据包为一个分片数据包,则判断所述分片数据包是否为分片当中的最后一片;若是,则发送用于表示接收到完整数据的回应信息;否则发送分片回应信息;或者
若所述数据包不是分片数据包则发送用于表示接收到完整数据包的回应信息。
27.如权利要求21所述的数据传输系统,其特征在于,所述加速节点还用于:若成功在所述缓存内存储所述数据包且所述数据包为协议信令数据包则判断所述协议信令数据包是否已经被发送至所述客户端,若否,则将所述协议信令数据包转发至所述客户端。
28.如权利要求27所述的数据传输系统,其特征在于,所述加速节点还用于:若所述协议信令数据包是否已经被发送至所述发送端,则执行与所述协议信令相应的数据处理。
29.如权利要求28所述的数据传输系统,其特征在于,所述加速节点执行与所述协议信令相应的数据处理包括:若所述协议信令为确认所述接收端接收到指定数据包的确认信息,则从所述缓存内删除所述指定数据包。
30.如权利要求27所述的数据传输系统,其特征在于,所述加速节点执行与所述协议信令相应的数据处理包括:若所述协议信令为所述接收端请求重新发送指定数据包的请求信息,则重新发送所述指定数据包。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310689457.3A CN104717186B (zh) | 2013-12-16 | 2013-12-16 | 一种在网络系统中传输数据的方法、装置及数据传输系统 |
PCT/CN2014/092424 WO2015090136A1 (en) | 2013-12-16 | 2014-11-28 | Method and apparatus for transmitting data in network system, and data transmission system |
TW103143932A TW201526586A (zh) | 2013-12-16 | 2014-12-16 | 在網路系統中傳輸資料的方法及裝置 |
US15/182,445 US9591524B2 (en) | 2013-12-16 | 2016-06-14 | Method and apparatus for transmitting data in network system, and data transmission system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310689457.3A CN104717186B (zh) | 2013-12-16 | 2013-12-16 | 一种在网络系统中传输数据的方法、装置及数据传输系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104717186A true CN104717186A (zh) | 2015-06-17 |
CN104717186B CN104717186B (zh) | 2019-06-25 |
Family
ID=53402085
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310689457.3A Active CN104717186B (zh) | 2013-12-16 | 2013-12-16 | 一种在网络系统中传输数据的方法、装置及数据传输系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9591524B2 (zh) |
CN (1) | CN104717186B (zh) |
TW (1) | TW201526586A (zh) |
WO (1) | WO2015090136A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106911434A (zh) * | 2017-02-23 | 2017-06-30 | 广州林邦信息科技有限公司 | 数据防重传方法及系统 |
CN107580233A (zh) * | 2017-08-21 | 2018-01-12 | 武汉斗鱼网络科技有限公司 | 一种传输数据的方法、装置及计算机设备 |
WO2018086617A1 (zh) * | 2016-11-14 | 2018-05-17 | 华为技术有限公司 | 一种数据处理方法及基站 |
CN108449273A (zh) * | 2018-01-25 | 2018-08-24 | 上海连尚网络科技有限公司 | 一种网络加速方法及系统 |
CN109257446A (zh) * | 2018-11-19 | 2019-01-22 | 杭州安恒信息技术股份有限公司 | 一种多终端系统的udp下载加速方法及装置 |
CN109660637A (zh) * | 2018-11-16 | 2019-04-19 | 深圳市网心科技有限公司 | P2p打洞传输方法和系统、电子装置及计算机可读存储介质 |
CN110601921A (zh) * | 2019-09-16 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 数据包传输参数的检测方法及装置、数据包传输系统 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106357792B (zh) * | 2016-10-10 | 2019-09-06 | 网宿科技股份有限公司 | 节点选路方法及系统 |
CN108768872A (zh) * | 2018-05-24 | 2018-11-06 | 北京维康恒科技有限公司 | 数据传输方法及系统 |
CN110225138B (zh) * | 2019-06-25 | 2021-12-14 | 深圳前海微众银行股份有限公司 | 一种分布式架构 |
CN110708374B (zh) * | 2019-09-30 | 2022-02-22 | 北京高途云集教育科技有限公司 | 一种边缘节点的分配方法、分配装置及可读存储介质 |
CN113038246A (zh) * | 2021-02-23 | 2021-06-25 | 北京金山云网络技术有限公司 | 多媒体帧的传输方法、装置和计算机可读存储介质 |
CN116170408A (zh) * | 2023-01-06 | 2023-05-26 | 中国互联网络信息中心 | 域名服务器解析加速方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102368767A (zh) * | 2011-09-27 | 2012-03-07 | 北京东方网信科技股份有限公司 | 一种基于hfc网络的加速互联网上网方法及系统 |
CN102938716A (zh) * | 2012-12-06 | 2013-02-20 | 网宿科技股份有限公司 | 内容分发网络加速测试方法和装置 |
CN103023768A (zh) * | 2013-01-11 | 2013-04-03 | 中国科学院声学研究所 | 边缘路由节点以及其从多源预取内容的方法 |
US20130188599A1 (en) * | 2011-09-12 | 2013-07-25 | Intellectual Ventures Holding 81 Llc | Wireless communication terminal to receive content data from an edge node |
CN103338278A (zh) * | 2013-07-15 | 2013-10-02 | 星云融创(北京)信息技术有限公司 | 一种网页浏览加速方法及装置 |
CN103401792A (zh) * | 2013-07-04 | 2013-11-20 | 中国科学院声学研究所 | 一种针对移动终端的自适应上传加速装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9444785B2 (en) * | 2000-06-23 | 2016-09-13 | Cloudshield Technologies, Inc. | Transparent provisioning of network access to an application |
CN1305270C (zh) * | 2004-07-04 | 2007-03-14 | 华中科技大学 | 基于集群的流媒体缓存代理服务器系统 |
US8982738B2 (en) * | 2010-05-13 | 2015-03-17 | Futurewei Technologies, Inc. | System, apparatus for content delivery for internet traffic and methods thereof |
US20130132580A1 (en) * | 2011-11-18 | 2013-05-23 | Samantha Inventions, L.L.C. | User interface to manage simultaneous downloads over distinct communication channels |
US9455864B2 (en) * | 2012-06-25 | 2016-09-27 | Radware, Ltd. | System and method for creation, distribution, application, and management of shared compression dictionaries for use in symmetric HTTP networks |
-
2013
- 2013-12-16 CN CN201310689457.3A patent/CN104717186B/zh active Active
-
2014
- 2014-11-28 WO PCT/CN2014/092424 patent/WO2015090136A1/en active Application Filing
- 2014-12-16 TW TW103143932A patent/TW201526586A/zh unknown
-
2016
- 2016-06-14 US US15/182,445 patent/US9591524B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130188599A1 (en) * | 2011-09-12 | 2013-07-25 | Intellectual Ventures Holding 81 Llc | Wireless communication terminal to receive content data from an edge node |
CN102368767A (zh) * | 2011-09-27 | 2012-03-07 | 北京东方网信科技股份有限公司 | 一种基于hfc网络的加速互联网上网方法及系统 |
CN102938716A (zh) * | 2012-12-06 | 2013-02-20 | 网宿科技股份有限公司 | 内容分发网络加速测试方法和装置 |
CN103023768A (zh) * | 2013-01-11 | 2013-04-03 | 中国科学院声学研究所 | 边缘路由节点以及其从多源预取内容的方法 |
CN103401792A (zh) * | 2013-07-04 | 2013-11-20 | 中国科学院声学研究所 | 一种针对移动终端的自适应上传加速装置 |
CN103338278A (zh) * | 2013-07-15 | 2013-10-02 | 星云融创(北京)信息技术有限公司 | 一种网页浏览加速方法及装置 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018086617A1 (zh) * | 2016-11-14 | 2018-05-17 | 华为技术有限公司 | 一种数据处理方法及基站 |
CN106911434A (zh) * | 2017-02-23 | 2017-06-30 | 广州林邦信息科技有限公司 | 数据防重传方法及系统 |
CN106911434B (zh) * | 2017-02-23 | 2020-10-27 | 广州林邦信息科技有限公司 | 数据防重传方法及系统 |
CN107580233A (zh) * | 2017-08-21 | 2018-01-12 | 武汉斗鱼网络科技有限公司 | 一种传输数据的方法、装置及计算机设备 |
CN108449273A (zh) * | 2018-01-25 | 2018-08-24 | 上海连尚网络科技有限公司 | 一种网络加速方法及系统 |
CN109660637A (zh) * | 2018-11-16 | 2019-04-19 | 深圳市网心科技有限公司 | P2p打洞传输方法和系统、电子装置及计算机可读存储介质 |
CN109660637B (zh) * | 2018-11-16 | 2024-01-19 | 深圳市网心科技有限公司 | P2p打洞传输方法和系统、电子装置及计算机可读存储介质 |
CN109257446A (zh) * | 2018-11-19 | 2019-01-22 | 杭州安恒信息技术股份有限公司 | 一种多终端系统的udp下载加速方法及装置 |
CN109257446B (zh) * | 2018-11-19 | 2021-06-22 | 杭州安恒信息技术股份有限公司 | 一种多终端系统的udp下载加速方法及装置 |
CN110601921A (zh) * | 2019-09-16 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 数据包传输参数的检测方法及装置、数据包传输系统 |
CN110601921B (zh) * | 2019-09-16 | 2022-04-08 | 腾讯科技(深圳)有限公司 | 数据包传输参数的检测方法及装置、数据包传输系统 |
Also Published As
Publication number | Publication date |
---|---|
US20160295457A1 (en) | 2016-10-06 |
TW201526586A (zh) | 2015-07-01 |
US9591524B2 (en) | 2017-03-07 |
CN104717186B (zh) | 2019-06-25 |
WO2015090136A1 (en) | 2015-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104717186A (zh) | 一种在网络系统中传输数据的方法、装置及数据传输系统 | |
US20220060970A1 (en) | Routing Rule Configuration Method and Communications Apparatus | |
CN104753808B (zh) | 一种在网络系统中传输数据的方法、装置及数据传输系统 | |
US20160269286A1 (en) | Method and apparatus for transmitting data in network system | |
US10341810B2 (en) | Geolocation compatibility for non-RCS devices | |
US8688148B2 (en) | Dynamic resource matching system | |
US10911378B2 (en) | System and method for providing conversational contents | |
US20140113657A1 (en) | Method and wireless access device for implementing positioning service for mobile device | |
EP3952434A1 (en) | Event processing method, device and system | |
US20240098595A1 (en) | Method and apparatus for determining handover configuration, and communication device | |
US20180146075A1 (en) | Network communication protocol translation system and method | |
US9485321B2 (en) | Method and apparatus for brokering server and device communications and computer-readable storage medium for executing the method | |
US20020112063A1 (en) | Methods, systems and computer program products for requesting wireless telephony application (WTA) protocol based actions | |
US20120179763A1 (en) | Session-based short message service management | |
CN111615694B (zh) | 一种服务器节点的选择方法和终端设备 | |
CA2693659C (en) | Method and apparatus for location request tracking | |
US20050009540A1 (en) | System and method for providing position information | |
WO2021163901A1 (zh) | 一种会话处理方法及其装置 | |
WO2018010640A1 (zh) | 一种基于虚拟卡的通信方法及装置、计算机存储介质 | |
WO2017045454A1 (zh) | 一种实现终端接入的方法、装置和系统 | |
CN113676351B (zh) | 一种会话处理方法、装置、电子设备及存储介质 | |
EP3422674A1 (en) | A method of resolving a domain name by a dns server to a plurality of ip addresses based on location information of the user equipment | |
KR20040008189A (ko) | 통신 시스템에서의 요구들 | |
EP3422675A1 (en) | A method of requesting a resource by simultaneously transmitting the same request message to a plurality of servers | |
CN114731211B (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 |
Effective date of registration: 20190731 Address after: Shenzhen Futian District City, Guangdong province 518044 Zhenxing Road, SEG Science Park 2 East Room 403 Co-patentee after: Tencent cloud computing (Beijing) limited liability company Patentee after: Tencent Technology (Shenzhen) Co., Ltd. Address before: Shenzhen Futian District City, Guangdong province 518044 Zhenxing Road, SEG Science Park 2 East Room 403 Patentee before: Tencent Technology (Shenzhen) Co., Ltd. |
|
TR01 | Transfer of patent right |