一种报文传输方法、装置及系统与流程

文档序号:11181045阅读:311来源:国知局
一种报文传输方法、装置及系统与流程

本发明涉及通信技术领域,尤其涉及一种报文传输方法、装置及系统。



背景技术:

随着互联网技术的发展,视频直播业务被广泛应用。

目前的视频直播业务的实现主要采用如下过程:视频被切分成若干个基于超文本传输协议(hypertexttransferprotocol,http)的http文件,这些http文件被上传至http流媒体服务器集群。用户终端请求直播视频时,向http流媒体服务器发送http请求,http流媒体服务器接收到用户终端发送的http请求后,与用户终端之间基于传输控制协议(transmissioncontrolprotocol,tcp)建立tcp链接,并采用端到端模式通过运营商网络,将报文传输给用户终端。然而针对同一视频内容,通常会有数量较多的用户终端请求直播,这样采用端到端的报文传输模式,就需要针对每一个用户终端的请求,http流媒体服务器与每个用户终端建立tcp链接,并将同一视频内容的报文分别传输给不同的用户终端,造成大量内容重复的报文在运营商网络中传播,占用了不必要的带宽资源。



技术实现要素:

本发明实施例提供一种报文传输方法、装置及系统,以降低重复报文的传输对运营商网络的占用率。

一方面,提供一种报文传输方法,网络侧路由器接收服务器发送的报文,确定所述报文为所需传输的数据体报文的情况下将所述数据体报文发送给预设用户侧路由器列表中指示的每个用户侧路由器,用户侧路由器接收网络侧路由器发送的数据体报文,将所述数据体报文发送给每个用户侧路由器分别连接 的至少一个用户终端,通常用户侧路由器连接的用户终端会包括不止一个用户终端,即用户侧路由器的数量会少于用户终端的数量,故网络侧路由器将需要传输给用户终端的报文分发至用户侧路由器,可在一定程度上减少运营商网络中传输的内容相同的报文的数量,可在一定程度上降低内容相同的报文对运营商网络的带宽资源占用率。

一种可能的设计中,用户侧路由器自身连接的至少一个用户终端发送资源请求报文,所述用户侧路由器接收所述资源请求报文,所述用户侧路由器确定所述资源请求报文为所需传输的资源请求报文,所需传输的资源请求报文是指由用户侧路由器转发给sdn控制器,并由sdn控制器以代理方式向服务器发送的资源请求报文;所述用户侧路由器将所述资源请求报文发送给sdn控制器。软件定义网络(softwaredefinednetwork,sdn)控制器截获用户终端发送并由用户侧路由器转发的资源请求报文,以代理方式,将所述资源请求报文发送至服务器,服务器响应所述资源请求报文并发送报文,所述报文包括信息头报文和数据体报文,所述信息头报文是指用于承载描述对所述服务器的网络资源请求操作、网络资源当前状态以及网络资源属性的元信息的报文,所述数据体报文是指用于承载服务器发送的数据实体内容的报文,所述网络侧路由器接收到所述报文后,确定所需传输的信息头报文和所需传输的数据体报文,所述所需传输的数据体报文是指经由网络侧路由器发送给用户侧路由器并由用户侧路由器分发给用户终端的数据体报文,所需传输的信息头报文是指经由网络侧路由器发送给sdn控制器的信息头报文。网络侧路由器将所需传输的信息头报文发送给sdn控制器,由sdn控制器实现对所述信息头报文的代理和处理,将所需传输的数据体报文发送给用户侧路由器,由用户侧路由器分发至用户终端。

另一种可能的设计中,sdn控制器截获来自用户终端的资源请求报文后,向网络侧路由器发送发送第一控制指令,向用户侧路由器发送第二控制指令。

所述第一控制指令用于指示所述网络侧路由器设置用户侧路由器列表、第 一流表以及第一缓存;所述用户侧路由器列表中指示的用户侧路由器用于接收所需传输的数据体报文,所需传输的数据体报文是指经由网络侧路由器发送给用户侧路由器并由用户侧路由器分发给用户终端的数据体报文;所述第一流表中包括的流表项用于识别所需传输的信息头报文以及所需传输的数据体报文,所需传输的信息头报文是指经由网络侧路由器发送并需要发送给所述sdn控制器的信息头报文;所述第一缓存用于缓存所述网络侧服务器接收到的数据体报文、以及所述网络侧路由器向所述服务器发送传输控制协议tcp报文所需的tcp序列号和tcp确认序列号。

所述第二控制指令用于指示所述用户侧路由器设置终端列表、第二流表以及第二缓存。所述终端列表中指示的用户终端用于接收所需传输的数据体报文;所述第二流表中包括的流表项用于识别出所需传输的数据体报文;所述第二缓存用于缓存用户侧路由器接收的数据体报文、所述用户侧路由器接收的数据体报文的tcp序列号以及所述sdn控制器为所述终端列表中指示的每一用户终端设定的tcp序列号修订值以及tcp确认序列号。

网络侧路由器接收所述第一控制指令并预先创建第一流表,并依据预先创建的第一流表中的流表项对所述报文进行深度报文检测,识别出接收到的服务器发送的所述报文为所需传输的信息头报文,将所述信息头报文发送至sdn控制器,识别出接收到的服务器发送的所述报文为所需传输的数据体报文,将所述数据体报文发送给用户侧路由器。

用户侧路由器接收所述第二控制指令并预先创建第二流表,所述用户侧路由器依据预先创建的所述第二流表中的流表项,识别接收到的网络侧路由器发送的所述数据体报文为所需传输的数据体报文,修改所述数据体报文的传输控制协议tcp报文头中包括的tcp序列号和tcp确认序列号,并生成用于分别发送给所述用户侧路由器连接的至少一个用户终端的新数据体报文。所述用户侧路由器将所述新数据体报文,发送给预设终端列表中指示的、所述用户侧路由器分别连接的至少一个用户终端。

再一种可能的设计中,所述用户侧路由器采用如下方式修改所述数据体报文的tcp报文头中包括的tcp序列号和tcp确认序列号,包括:所述用户侧路由器依据软件定义网络sdn控制器设定的tcp序列号修订值修改所述数据体报文的tcp报文头中包括的tcp序列号;其中,修改后的tcp报文头中包括的tcp序列号为所述数据体报文的tcp报文头中包括的tcp序列号与所述tcp序列号修订值之和,所述tcp序列号修订值为所述sdn控制器与用户终端建立tcp链接时作为发送端发送的报文的tcp序列号与所述sdn控制器和服务器建立tcp链接时作为发送端发送的报文的tcp序列号之差;所述用户侧路由器依据所述sdn控制器设定的tcp确认序列号,修改所述数据体报文的tcp报文头中包括的tcp确认序列号,其中,修改后的tcp报文头中包括的tcp确认序列号为所述sdn控制器设定的tcp确认序列号。

又一种可能的设计中,所述网络侧路由器确定所述报文为所需传输的数据体报文之后,所述网络侧路由器还可在设定的有效缓存时间内缓存接收到的该数据体报文,并缓存接收到的该数据体报文携带的tcp序列号。所述网络侧路由器向所述服务器发送传输控制协议tcp确认报文,其中,所述tcp确认报文的tcp报文头中包括的tcp序列号为sdn控制器与服务器进行报文交互时设定的tcp序列号,所述tcp确认报文的tcp报文头中包括的tcp确认序列号依据缓存的tcp序列号所确定。

所述用户侧路由器在设定的有效缓存时间内缓存接收到的该数据体报文,并缓存接收到的该数据体报文携带的tcp序列号。

另一方面,提供一种网络侧路由器,该网络侧路由器具有实现上述报文传输方法中网络侧路由器的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。

一种可能的设计中,所述网络侧路由器包括接收单元,处理单元和发送单元,所述接收单元,用于接收服务器发送的报文。所述处理单元,用于确定所 述接收单元接收的所述报文为所需传输的数据体报文,所述数据体报文是指用于承载服务器发送的数据实体内容的报文,所需传输的数据体报文是指经由网络侧路由器发送给用户侧路由器并由用户侧路由器分发给用户终端的数据体报文。所述发送单元,用于将所述处理单元确定的所述所需传输的数据体报文发送给预设用户侧路由器列表中指示的每个用户侧路由器,通过每个用户侧路由器将所述数据体报文发送给每个用户侧路由器分别连接的至少一个用户终端。

另一种可能的设计中,网络侧路由器的结构中包括接收器、处理器和发射器,所述处理器被配置为支持网络侧路由器执行上述方法中相应的功能。所述接收器、发射器用于支持网络侧路由器与服务器之间的通信,支持网络侧路由器与sdn控制器之间的通信,以及支持网络侧路由器与用户侧路由器之间的通信。所述网络侧路由器还可以包括存储器,所述存储器用于与处理器耦合,其保存网络侧路由器必要的程序指令和数据。

再一方面,提供一种用户侧路由器,该用户侧路由器具有实现上述报文传输方法中用户侧路由器的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。

一种可能的设计中,所述用户侧路由器包括接收单元、处理单元和发送单元,其中,所述接收单元,用于接收网络侧路由器发送的数据体报文,所述数据体报文为用于承载服务器发送的数据实体内容的报文。所述处理单元,用于确定所述接收单元接收的所述数据体报文为所需传输的数据体报文,修改所述数据体报文的传输控制协议tcp报文头中包括的tcp序列号和tcp确认序列号,并生成用于分别发送给所述用户侧路由器连接的至少一个用户终端的新数据体报文,所需传输的数据体报文是指经由网络侧路由器发送给用户侧路由器并由用户侧路由器分发给用户终端的数据体报文。所述发送单元,用于将所述处理单元生成的所述新数据体报文,发送给预设用户终端列表中指示的、所述 用户侧路由器分别连接的至少一个用户终端。

另一种可能的设计中,所述用户侧路由器的结构中包括接收器、处理器和发射器,所述处理器被配置为支持用户侧路由器执行上述方法中相应的功能。所述接收器,发射器用于支持用户侧路由器与网络侧路由器之间的通信,支持用户侧路由器与sdn控制器之间的通信,以及支持用户侧路由器与用户终端之间的通信。所述用户侧路由器还可以包括存储器,所述存储器用于与处理器耦合,其保存用户侧路由器必要的程序指令和数据。

又一方面,提供一种sdn控制器,该sdn控制器具有实现上述报文传输方法中sdn控制器的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。

一种可能的设计中,所述sdn控制器包括接收单元和发送单元,其中,所述接收单元,用于接收用户侧路由器转发的资源请求报文,所述资源请求报文为所需传输的资源请求报文,所需传输的资源请求报文是指由用户侧路由器转发给sdn控制器,并由sdn控制器以代理方式向服务器发送的资源请求报文。所述发送单元,用于以代理方式,向服务器发送所述所述接收单元接收的所述资源请求报文。

另一种可能的设计中,所述sdn控制器包括接收器和发射器,所述接收器和所述发射器用于支持sdn控制器与用户侧路由器之间的通信,支持sdn控制器与网络侧路由器之间的通信,以及支持sdn控制器与服务器之间的通信。

再一方面,提供一种通信系统,该通信系统中包括上述涉及的网络侧路由器、用户侧路由器和sdn控制器。

再一方面,本发明实施例提供了一种计算机存储介质,用于储存为上述网络侧路由器所用的计算机软件指令,其包含用于执行上述方面所涉及的程序。

再一方面,本发明实施例提供了一种计算机存储介质,用于储存为上述用 户侧路由器所用的计算机软件指令,其包含用于执行上述方面所涉及的程序。

再一方面,本发明实施例提供了一种计算机存储介质,用于储存为上述sdn控制器所用的计算机软件指令,其包含用于执行上述方面所涉及的程序。

相较于现有技术,本发明实施例提供的方案可以在一定程度上减少运营商网络中传输的内容相同的报文的数量,可在一定程度上降低内容相同的报文对运营商网络的带宽资源占用率。

附图说明

图1为视频直播录制系统的架构示意图;

图2为本发明实施例适用的系统架构图;

图3为本发明实施例提供的报文传输方法实施流程图;

图4为本发明实施例提供的网络侧路由器进行报文传输的过程示意图;

图5为本发明实施例提供的用户侧路由器进行报文传输的过程示意图;

图6a至图6c为本发明实施例提供的网络侧路由器结构示意图;

图7a至图7c为本发明实施例提供的用户侧路由器结构示意图;

图8a至图8b为本发明实施例提供的sdn控制器结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行详细地描述。

本发明实施例提供的报文传输方法、装置和系统,可应用于例如图1所示的视频直播录制系统。直播录制的视频文件被切分成若干个基于超文本传输协议(hypertexttransferprotocol,http)的http文件,这些http文件被上传至http服务器,http服务器通过运营商网络将http文件传输给用户终端。

图1所示的视频直播录制系统中,在将http文件传输给用户终端过程中通常会有大量内容重复的http报文在运营商网络中传输。本发明实施例中为 避免例如图1所示的视频直播录制系统中过多重复的http报文在运营商网络中传输,造成不必要的带宽资源浪费,可采用图2所述的系统架构,通过网络侧路由器将需要传输给用户终端的报文分发至用户侧路由器,再由用户侧路由器分发至用户终端,通常用户侧路由器连接的用户终端会包括不止一个用户终端,即用户侧路由器的数量会少于用户终端的数量,故网络侧路由器将需要传输给用户终端报文分发至用户侧路由器,可在一定程度上减少运营商网络中传输的内容相同的报文的数量,可在一定程度上降低内容相同的报文对运营商网络的带宽资源占用率。

图2所示的系统中包括有用户侧路由器、网络侧路由器和软件定义网络(softwaredefinednetwork,sdn)控制器。服务器需要发送的报文包括信息头报文和数据体报文,其中,信息头是指在请求/响应模型中,用于描述对网络资源的请求操作、网络资源当前状态、以及网络资源属性的元信息。数据体是指由服务器传送的数据实体内容。所述信息头报文是指用于承载信息头的报文。所述数据体报文是指用于承载数据体的报文。信息头报文和数据体报文在不同的传输协议中可能会有不同的名称,例如在采用http传输协议时,信息头报文可以称为http协议报文,http协议报文包括资源请求报文和http应答报文。数据体报文可称为http数据报文。本发明实施例中可由sdn控制器负责信息头报文的代理或处理,由运营商网络中的网络侧路由器和用户侧路由器处理数据体报文。用户侧路由器连接用户终端,接收用户终端发送的资源请求报文,将所述资源请求报文发送给sdn控制器。sdn控制器以代理方式向服务器发送所述资源请求报文。服务器接收到资源请求报文后发送报文,网络侧路由器与服务器连接,接收服务器发送的报文,并将信息头报文发送给sdn控制器,将数据体报文分发给用户侧路由器,通过每个用户侧路由器将所述数据体报文分发给每个用户侧路由器分别连接的至少一个用户终端。

本发明实施例以下为描述方便,将经由网络侧路由器发送并需要发送给sdn控制器的信息头报文称为所需传输的信息头报文,将经由网络侧路由器发 送给用户侧路由器并由用户侧路由器分发给用户终端的数据体报文,称为所需传输的数据体报文。

通常,运营商网络中用户侧路由器的数量为多个,本发明实施例中所述多个可以理解为是至少一个。可以理解的是,本发明实施例中通过网络侧路由器将数据体报文分发至用户侧路由器,再由用户侧路由器分发至用户终端,以减少运营商网络中相同http报文的数量,适用于用户侧路由器连接的用户终端数量多于所述用户侧路由器的数量的场景,即所述多个用户侧路由器中有至少一个用户侧路由器连接的用户终端数量为至少两个。

需要说明的是,本发明实施例中图1以视频直播系统为例进行说明的,但并不引以为限,其它在运营商网络中应用tcp链接进行报文传输的系统也可适用。

进一步需要说明的是,本发明实施例中涉及的用户终端可以包括各种具有无线通信功能的手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其它处理设备,以及各种形式的用户设备(userequipment,ue),移动台(mobilestation,ms),终端(terminal),终端设备(terminalequipment)等等。

本发明实施例以下将对应用图2所示系统进行报文传输的实施过程进行说明。

图3所示为本发明实施例提供的报文传输方法实施流程图,如图3所示包括:

s101:用户终端发送资源请求报文。

本发明实施例中用户终端在需要请求服务器发送报文的时候发送资源请求报文,例如用户终端在需要进行视频直播业务时,可向http服务器发送http请求报文。

s102:sdn控制器截获用户终端发送的资源请求报文,并以代理方式向服务器发送所述资源请求报文。

可选的,本发明实施例中通过sdn控制器处理信息头报文,通过网络侧路由器和用户侧路由器处理数据体报文,进而实现服务器与用户终端之间报文传输的代理,故本发明实施例中所述sdn控制器向网络侧路由器发送第一控制指令,所述第一控制指令用于指示所述网络侧路由器预设用户侧路由器列表、第一流表以及第一缓存。其中,所述用户侧路由器列表中包括的用户侧路由器用于接收所需传输的数据体报文。所述第一流表中包括的流表项用于识别所需传输的信息头报文以及所需传输的数据体报文。所述第一缓存用于缓存所述网络侧服务器接收到的数据体报文、以及所述网络侧路由器向所述服务器发送传输控制协议tcp报文所需的tcp序列号和tcp确认序列号。

所述sdn控制器向用户侧路由器发送第二控制指令,所述第二控制指令用于指示所述用户侧路由器预设终端列表、第二流表以及第二缓存。其中,所述用户终端列表中包括的用户终端用于接收所需传输的数据体报文,所述第二流表中包括的流表项用于识别出所需传输的数据体报文,所述第二缓存用于缓存用户侧路由器接收的数据体报文、所述用户侧路由器接收的数据体报文的tcp序列号以及所述sdn控制器为所述终端列表中包括的每一用户终端设定的tcp序列号修订值以及tcp确认序列号。

s103:服务器发送报文,所述报文包括信息头报文和数据体报文。

本发明实施例中所述服务器发送的报文可以是用户侧路由器预先设定的某种业务类型的报文,例如可以是http视频报文。

s104:网络侧路由器接收服务器发送的报文,确定所述服务器发送的报文为所需传输的信息头报文或所需传输的数据体报文。

本发明实施例中网络侧路由器可预先设定所需传输的信息头报文和数据体报文,即可以预先设定流表,该预先设定的流表是可以依据sdn控制器发送的第一控制指令进行预先创建的,即上文中涉及的第一流表。网络侧路由器在接收到服务器发送的信息头报文时,依据预先创建的流表中的流表项对所述报文进行深度报文检测,识别出所述报文为所需传输的信息头报文或数据体报 文。其中,所述进行深度报文检测过程可以是:判断预先创建的流表中是否存在与所述报文相匹配的ip五元组和关键字,若存在,则所述报文为所需传输的信息头报文;若不存在,则继续判断预先创建的流表中是否存在与所述报文的ip五元组相匹配的ip五元组,若存在,则所述报文为所需传输的数据体报文。

本发明实施例中,若所述报文为所需传输的信息头报文,则执行s105的步骤。若所述报文为所需传输的数据体报文,则执行s106的步骤。

s105:若所述报文为所需传输的信息头报文,则网络侧路由器将所述信息头报文发送给sdn控制器。

s106:若所述报文为所需传输的数据体报文,则网络侧路由器将所述数据体报文发送给预设用户侧路由器列表中的每个用户侧路由器。

s107:网络侧路由器缓存接收到的数据体报文,并缓存接收到的该数据体报文携带的tcp序列号,实现更新已缓存的数据体报文的tcp序列号。

本发明实施例中将接收到的数据体报文缓存在第一缓存中,并记录缓存的数据体报文的tcp序列号,可实现依据所述tcp序列号确定目前接收到的数据体报文的字节号。

本发明实施例中所述第一缓存为上述实施例中依据sdn控制器发送的第一控制指令所创建的。

为了保证第一缓存中记录的数据体报文的tcp序列号的准确性,在每次缓存数据体报文时,更新已缓存数据体报文的tcp序列号。

进一步的,本发明实施例中为保证第一缓存中数据体报文的时效性,可设定缓存的数据体报文的老化时间,即实现在设定的有效缓存时间内缓存所述数据体报文。

需要说明的是,本发明实施例中s107为可选步骤。

s108:所述网络侧路由器向服务器发送tcp确认报文。

其中,所述tcp确认报文的tcp报文头中包括的tcp序列号为sdn控 制器与服务器进行报文交互时设定的tcp序列号,所述tcp确认报文的tcp报文头中包括的tcp确认序列号依据所述网络侧路由器已缓存的tcp序列号所确定。

需要说明的是,本发明实施例中s108为可选步骤。

进一步需要说明的是,s105、s106、s107和s108的执行顺序不分先后。

本发明实施例中网络侧路由器进行报文传输的过程示意图如图4所示。

s109:用户侧路由器接收网络侧路由器发送的数据体报文,修改所述数据体报文的tcp报文头中包括的tcp序列号和tcp确认序列号,并生成用于分别发送给所述用户侧路由器连接的至少一个用户终端的新数据体报文。

本发明实施例中sdn控制器与服务器建立一个公共tcp连接,用户设备又与sdn控制器建立独立的用户tcp连接,故本发明实施例中用户侧路由器向用户终端发送数据体报文时,需要将公共tcp连接的报文转成独立的用户tcp连接的报文,转发给用户终端。

本发明实施例中所述用户侧路由器依据sdn控制器设定的tcp序列号修订值修改所述数据体报文的tcp报文头中包括的tcp序列号。其中,修改后的tcp报文头中包括的tcp序列号为所述数据体报文的tcp报文头中包括的tcp序列号与所述tcp序列号修订值之和,所述tcp序列号修订值为所述sdn控制器与用户终端建立tcp链接时作为发送端发送的报文的tcp序列号与所述sdn控制器与服务器建立tcp链接时作为发送端发送的报文的tcp序列号之差。

例如,假设所述sdn控制器与服务器建立tcp链接时作为发送端发送的报文的tcp序列号是0。所述sdn控制器与用户终端a建立tcp链接时作为发送端发送的报文的tcp序列号是17,则tcp序列号修订值=17-0=17。

假设当前服务器发送的数据体报文为第10000字节,所述数据体报文的tcp报文头中包括的tcp序列号=10000,则修改后的tcp报文头中包括的tcp序列号=10000+17=10017。

同样的,tcp确认序列号,是由用户终端发送报文的初始tcp序列号与已发送字节数决定的,故不同的用户终端的tcp确认序列号也不一样。

本发明实施例中所述用户侧路由器依据所述sdn控制器设定的tcp确认序列号,修改所述数据体报文的tcp报文头中包括的确认tcp序列号。其中,修改后的tcp报文头中包括的tcp确认序列号为所述sdn控制器设定的tcp确认序列号,所述sdn控制器设定的tcp确认序列号为用户终端发送报文的初始tcp序列号与已发送字节数之和再加1。

本发明实施例中用户侧路由器可预先设定所需传输的数据体报文,即可以预先设定流表,该预先设定的流表是可以依据sdn控制器发送的第二控制指令进行预先创建的,即上文中涉及的第二流表,通过该流表中保存的流表项用于识别所需传输的数据体报文。用户侧路由器接收到网络侧路由器发送的数据体报文后,可判断预先创建的流表中是否存在与所述数据体报文的ip五元组相匹配的ip五元组,若存在,则确定该数据体报文为需要传输给用户终端的报文,然后再进行报文的修改生成新报文并发送给用户终端。

s110:所述用户侧路由器将所述新数据体报文,发送给预设终端列表中指示的、所述用户侧路由器分别连接的至少一个用户终端。

s111:用户侧路由器在设定的有效缓存时间内缓存所述数据体报文,并缓存接收到的该数据体报文携带的tcp序列号,实现更新已缓存数据体报文的tcp序列号。

本发明实施例中用户侧路由器缓存报文的实现过程与网络侧路由器保存数据体报文的过程相似,在此不再赘述。

本发明实施例中s110和s111的执行顺序不分先后。

本发明实施例中用户侧路由器进行报文传输的过程示意图如图5所示。

本发明实施例中上述实现报文传输的方法,通过网络侧路由器将数据体报文分发至用户侧路由器,再由用户侧路由器分发至用户终端,通常用户侧路由器连接的用户终端会包括不止一个用户终端,实现一种类似组播的树形报文传 输方法,代替现有需要服务器与用户终端之间端到端的tcp传输方式,可在一定程度上减少运营商网络中传输的内容相同的报文的数量,在一定程度上降低内容相同的报文对运营商网络的带宽资源占用率。

可选的,本发明实施例中用户侧路由器预先设定的第一流表和第二流表,可依据sdn控制器再次接收的资源请求报文进行更新。即若sdn控制器接收到新的用户终端发送的资源请求报文时,若确定该新的用户终端请求的报文为重复的报文,则sdn控制器不再向服务器发送资源请求报文,而是直接生成应答报文。sdn控制器向用户侧路由器下发更新指令,以更新第二流表和终端列表,将新的用户终端信息加入用户侧路由器的终端列表中。控制器向网络侧路由器下发下发更新指令,以更新第一流表和用户侧路由器列表。

上述主要从各个网元之间交互的角度对本发明实施例提供的方案进行了介绍。可以理解的是,各个网元,例如用户侧路由器,网络侧路由器和sdn控制器等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

本发明实施例提供一种网络侧路由器100,图6a所示为本发明实施例提供的网络侧路由器100的一种可能的结构示意图,如图6a所示,网络侧路由器100包括接收单元101、处理单元102和发送单元103,其中,

接收单元101,用于接收服务器发送的报文。

处理单元102,用于确定所述接收单元101接收的所述报文为所需传输的数据体报文,所述数据体报文是指用于承载服务器发送的数据实体内容的报文,所需传输的数据体报文是指经由网络侧路由器发送给用户侧路由器并由用 户侧路由器分发给用户终端的数据体报文。

发送单元103,用于将所述处理单元102确定的所述所需传输的数据体报文发送给预设用户侧路由器列表中指示的每个用户侧路由器,通过每个用户侧路由器将所述数据体报文发送给每个用户侧路由器分别连接的至少一个用户终端。

一种可实现的方式中,所述处理器还用于:在所述接收单元101接收服务器发送的报文之后,确定所述报文为所需传输的信息头报文,所述信息头报文是指用于承载描述对所述服务器的网络资源请求操作、网络资源当前状态以及网络资源属性的元信息的报文,所需传输的信息头报文是指经由网络侧路由器发送给sdn控制器的信息头报文。

所述发送单元103,还用于将所述信息头报文发送给所述sdn控制器。

其中,所述处理单元102,具体采用如下方式确定所述报文为所需传输的信息头报文或数据体报文:

依据预先创建的流表中的流表项对所述报文进行深度报文检测,识别出所述报文为所需传输的信息头报文或数据体报文,其中,所述流表为所述网络侧路由器依据sdn控制器在接收到用户终端发送的资源请求报文时所发送的控制指令预先创建的。

另一种可实现的方式中,所述网络侧路由器还包括缓存单元104,如图6b所示,其中,

所述缓存单元104,用于在所述处理单元102确定所述报文为所需传输的数据体报文之后,在设定的有效缓存时间内缓存接收到的该数据体报文,并缓存接收到的该数据体报文携带的tcp序列号。

所述发送单元103,还用于:向所述服务器发送传输控制协议tcp确认报文,其中,所述tcp确认报文的tcp报文头中包括的tcp序列号为sdn控制器与服务器进行报文交互时设定的tcp序列号,所述tcp确认报文的tcp报文头中包括的tcp确认序列号依据所述缓存单元104缓存的tcp序列号所 确定。

图6c为本发明实施例提供的网络侧路由器100另一种可能的结构示意图,如图6c所示,网络侧路由器100包括处理器1001、接收器1002、发射器1003和存储器1004。

存储器1004,用于存储处理器1001执行的程序代码。

处理器1001,用于调用所述存储器1004存储的程序,通过接收器1002接收服务器发送的报文,并确定接收的所述报文为所需传输的数据体报文,通过发射器1003将所述所需传输的数据体报文发送给预设用户侧路由器列表中指示的每个用户侧路由器,通过每个用户侧路由器将所述数据体报文发送给每个用户侧路由器分别连接的至少一个用户终端。

本发明实施例提供了一种计算机存储介质,用于储存为上述网络侧路由器所用的计算机软件指令,其包含用于执行上述方面所涉及的程序。

本发明实施例提供一种用户侧路由器,图7a为本发明实施例提供的用户侧路由器200的一种可能的结构示意图,如图7a所示,用户侧路由器200包括接收单元201、处理单元202和发送单元203,其中,

接收单元201,用于接收网络侧路由器发送的数据体报文,所述数据体报文为用于承载服务器发送的数据实体内容的报文。

处理单元202,用于确定所述接收单元201接收的所述数据体报文为所需传输的数据体报文,修改所述数据体报文的tcp报文头中包括的tcp序列号和tcp确认序列号,并生成用于分别发送给所述用户侧路由器连接的至少一个用户终端的新数据体报文,所需传输的数据体报文是指经由网络侧路由器发送给用户侧路由器并由用户侧路由器分发给用户终端的数据体报文。

发送单元203,用于将所述处理单元202生成的所述新数据体报文,发送给预设用户终端列表中指示的、所述用户侧路由器分别连接的至少一个用户终端。

其中,所述处理单元202,具体用于按如下方式修改所述数据体报文的tcp 报文头中包括的tcp序列号和tcp确认序列号:

依据sdn控制器设定的tcp序列号修订值修改所述数据体报文的tcp报文头中包括的tcp序列号。其中,修改后的tcp报文头中包括的tcp序列号为所述数据体报文的tcp报文头中包括的tcp序列号与所述tcp序列号修订值之和,所述tcp序列号修订值为所述sdn控制器与用户终端建立tcp链接时作为发送端发送的报文的tcp序列号与所述sdn控制器和服务器建立tcp链接时作为发送端发送的报文的tcp序列号之差。依据所述sdn控制器设定的tcp确认序列号,修改所述数据体报文的tcp报文头中包括的tcp确认序列号,其中,修改后的tcp报文头中包括的tcp确认序列号为所述sdn控制器设定的tcp确认序列号。

其中,所述处理单元202,具体用于按如下方式确定所述数据体报文为所需传输的数据体报文:

依据预先创建的流表中的流表项,识别所述数据体报文为所需传输的数据体报文,其中,所述流表为所述用户侧路由器依据sdn控制器在接收到用户终端发送的资源请求报文时所发送的控制指令预先创建的。

一种可能的实现方式中,所述用户侧路由器还包括缓存单元204,如图7b所示,其中,

所述缓存单元204,用于在所述接收单元201接收网络侧路由器发送的数据体报文之后,在设定的有效缓存时间内缓存接收到的该数据体报文,并缓存接收到的该数据体报文携带的tcp序列号。

另一种可能的实现方式中,所述接收单元201,还用于:接收网络侧路由器发送的数据体报文之前,接收自身连接的至少一个用户终端发送的资源请求报文。

所述处理单元202,还用于:确定所述资源请求报文为所需传输的资源请求报文,所需传输的资源请求报文是指由用户侧路由器转发给sdn控制器,并由sdn控制器以代理方式向服务器发送的资源请求报文。

所述发送单元203,还用于:将所述资源请求报文发送给sdn控制器。

图7c为本发明实施例提供的用户侧路由器200另一种可能的结构示意图,如图7c所示,用户侧路由器200包括处理器2001、接收器2002、发射器2003和存储器2004。

存储器2004,用于存储处理器2001执行的程序代码。

处理器2001,用于调用所述存储器2004存储的程序,通过接收器2002接收网络侧路由器发送的数据体报文,并确定所述数据体报文为所需传输的数据体报文,修改所述数据体报文的tcp报文头中包括的tcp序列号和tcp确认序列号,并生成用于分别发送给所述用户侧路由器连接的至少一个用户终端的新数据体报文,并通过发射器2003将生成的所述新数据体报文,发送给预设终端列表中指示的、所述用户侧路由器分别连接的至少一个用户终端。

本发明实施例提供了一种计算机存储介质,用于储存为上述用户侧路由器所用的计算机软件指令,其包含用于执行上述方面所涉及的程序。

本发明实施例还提供一种sdn控制器,图8a所示为本发明实施例提供的sdn控制器300的一种可能的结构示意图,如图8a所示,sdn控制300包括接收单元301和发送单元302,其中,接收单元301,用于接收用户侧路由器转发的资源请求报文,所述资源请求报文为所需传输的资源请求报文,所需传输的资源请求报文是指由用户侧路由器转发给sdn控制器,并由sdn控制器以代理方式向服务器发送的资源请求报文。

发送单元302,用于以代理方式,向服务器发送所述所述接收单元301接收的所述资源请求报文。

一种可能的实现方式中,所述发送单元302,还用于:在所述接收单元301接收用户侧路由器转发的资源请求报文之后,向网络侧路由器发送第一控制指令,以及向用户侧路由器发送第二控制指令。

所述第一控制指令用于指示所述网络侧路由器设置用户侧路由器列表、第一流表以及第一缓存。所述用户侧路由器列表中指示的用户侧路由器用于接收 所需传输的数据体报文,所需传输的数据体报文是指经由网络侧路由器发送给用户侧路由器并由用户侧路由器分发给用户终端的数据体报文。所述第一流表中包括的流表项用于识别所需传输的信息头报文以及所需传输的数据体报文,所需传输的信息头报文是指经由网络侧路由器发送并需要发送给所述sdn控制器的信息头报文。所述第一缓存用于缓存所述网络侧服务器接收到的数据体报文、以及所述网络侧路由器向所述服务器发送传输控制协议tcp报文所需的tcp序列号和tcp确认序列号。

所述第二控制指令用于指示所述用户侧路由器设置终端列表、第二流表以及第二缓存。所述终端列表中指示的用户终端用于接收所需传输的数据体报文。所述第二流表中包括的流表项用于识别出所需传输的数据体报文。所述第二缓存用于缓存用户侧路由器接收的数据体报文、所述用户侧路由器接收的数据体报文的tcp序列号以及所述sdn控制器为所述终端列表中指示的每一用户终端设定的tcp序列号修订值以及tcp确认序列号。

图8b为本发明实施例提供的sdn控制器300的另一种结构示意图,如图8b所示。sdn控制器300包括接收器3001和发射器3002。

其中,接收器3001用于接收用户侧路由器转发的资源请求报文。

发射器3002,用于以代理方式,向服务器发送所述所述接收器3001接收的所述资源请求报文。

本发明实施例提供了一种计算机存储介质,用于储存为上述sdn控制器所用的计算机软件指令,其包含用于执行上述方面所涉及的程序。

可以理解的是,本发明实施例上述涉及的网络侧路由器100、用户侧路由器200和sdn控制器300,可用于实现上述方法实施例中涉及的功能,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。

本发明实施例还提供一种报文传输系统,该报文传输系统包括上述涉及的网络侧路由器100、用户侧路由器200和sdn控制器300,并具有相应的功能,在此不再赘述。

本发明实施例提供的报文传输方法、装置及系统,网络侧路由器将需要传输给用户终端的报文分发至用户侧路由器,用户侧路由器接收网络侧路由器发送的数据体报文,将所述数据体报文发送给每个用户侧路由器分别连接的至少一个用户终端,可在一定程度上减少运营商网络中传输的内容相同的报文的数量,可在一定程度上降低内容相同的报文对运营商网络的带宽资源占用率。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1