[go: up one dir, main page]

CN107231567B - A message transmission method, device and system - Google Patents

A message transmission method, device and system Download PDF

Info

Publication number
CN107231567B
CN107231567B CN201610178022.6A CN201610178022A CN107231567B CN 107231567 B CN107231567 B CN 107231567B CN 201610178022 A CN201610178022 A CN 201610178022A CN 107231567 B CN107231567 B CN 107231567B
Authority
CN
China
Prior art keywords
message
tcp
side router
data body
user
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
CN201610178022.6A
Other languages
Chinese (zh)
Other versions
CN107231567A (en
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201610178022.6A priority Critical patent/CN107231567B/en
Publication of CN107231567A publication Critical patent/CN107231567A/en
Application granted granted Critical
Publication of CN107231567B publication Critical patent/CN107231567B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2385Channel allocation; Bandwidth allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2405Monitoring of the internal components or processes of the server, e.g. server load

Landscapes

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

Abstract

A message transmission method, device and system, software defined network SDN controller receives the resource request message sent by user terminal; and the SDN controller sends the resource request message to a server in a proxy mode. A network side router receives a message sent by a server and sends an information header message to be transmitted to an SDN controller; and sending the data body message to be transmitted to each user side router in a preset user side router list. And the user side router modifies a TCP serial number and a TCP acknowledgement serial number included in a Transmission Control Protocol (TCP) message header of the data body message, generates a new data body message for sending to a user terminal, and sends the new data body message to each user terminal in a preset user terminal list. The invention can reduce the occupancy rate of the transmission of the repeated messages to the operator network.

Description

一种报文传输方法、装置及系统A message transmission method, device and system

技术领域technical field

本发明涉及通信技术领域,尤其涉及一种报文传输方法、装置及系统。The present invention relates to the field of communication technologies, and in particular, to a message transmission method, device and system.

背景技术Background technique

随着互联网技术的发展,视频直播业务被广泛应用。With the development of Internet technology, live video services are widely used.

目前的视频直播业务的实现主要采用如下过程:视频被切分成若干个基于超文本传输协议(Hyper Text Transfer Protocol,HTTP)的HTTP文件,这些HTTP文件被上传至HTTP流媒体服务器集群。用户终端请求直播视频时,向HTTP流媒体服务器发送HTTP请求,HTTP流媒体服务器接收到用户终端发送的HTTP请求后,与用户终端之间基于传输控制协议(Transmission Control Protocol,TCP)建立TCP链接,并采用端到端模式通过运营商网络,将报文传输给用户终端。然而针对同一视频内容,通常会有数量较多的用户终端请求直播,这样采用端到端的报文传输模式,就需要针对每一个用户终端的请求,HTTP流媒体服务器与每个用户终端建立TCP链接,并将同一视频内容的报文分别传输给不同的用户终端,造成大量内容重复的报文在运营商网络中传播,占用了不必要的带宽资源。The current implementation of the live video service mainly adopts the following process: the video is divided into several HTTP files based on the Hyper Text Transfer Protocol (Hyper Text Transfer Protocol, HTTP), and these HTTP files are uploaded to the HTTP streaming media server cluster. When the user terminal requests a live video, it sends an HTTP request to the HTTP streaming media server. After receiving the HTTP request sent by the user terminal, the HTTP streaming media server establishes a TCP link with the user terminal based on the Transmission Control Protocol (TCP), And adopt the end-to-end mode to transmit the message to the user terminal through the operator's network. However, for the same video content, there are usually a large number of user terminals requesting live broadcast. In this way, using the end-to-end message transmission mode, it is necessary to establish a TCP link between the HTTP streaming media server and each user terminal for the request of each user terminal. , and transmit the same video content packets to different user terminals respectively, causing a large number of duplicate content packets to spread in the operator's network, occupying unnecessary bandwidth resources.

发明内容SUMMARY OF THE INVENTION

本发明实施例提供一种报文传输方法、装置及系统,以降低重复报文的传输对运营商网络的占用率。Embodiments of the present invention provide a message transmission method, device, and system, so as to reduce the occupancy rate of an operator's network due to the transmission of repeated messages.

一方面,提供一种报文传输方法,网络侧路由器接收服务器发送的报文,确定所述报文为所需传输的数据体报文的情况下将所述数据体报文发送给预设用户侧路由器列表中指示的每个用户侧路由器,用户侧路由器接收网络侧路由器发送的数据体报文,将所述数据体报文发送给每个用户侧路由器分别连接的至少一个用户终端,通常用户侧路由器连接的用户终端会包括不止一个用户终端,即用户侧路由器的数量会少于用户终端的数量,故网络侧路由器将需要传输给用户终端的报文分发至用户侧路由器,可在一定程度上减少运营商网络中传输的内容相同的报文的数量,可在一定程度上降低内容相同的报文对运营商网络的带宽资源占用率。In one aspect, a message transmission method is provided, wherein a network side router receives a message sent by a server, and sends the data body message to a preset user when determining that the message is a data body message to be transmitted. For each user-side router indicated in the router-side router list, the user-side router receives the data body packet sent by the network-side router, and sends the data body packet to at least one user terminal connected to each user-side router. The user terminal connected to the side router will include more than one user terminal, that is, the number of user side routers will be less than the number of user terminals, so the network side router will distribute the packets that need to be transmitted to the user terminal to the user side router. In this way, the number of packets with the same content transmitted in the operator's network can be reduced to a certain extent, and the bandwidth resource occupation rate of the packets with the same content on the operator's network can be reduced to a certain extent.

一种可能的设计中,用户侧路由器自身连接的至少一个用户终端发送资源请求报文,所述用户侧路由器接收所述资源请求报文,所述用户侧路由器确定所述资源请求报文为所需传输的资源请求报文,所需传输的资源请求报文是指由用户侧路由器转发给SDN控制器,并由SDN控制器以代理方式向服务器发送的资源请求报文;所述用户侧路由器将所述资源请求报文发送给SDN控制器。软件定义网络(Software Defined Network,SDN)控制器截获用户终端发送并由用户侧路由器转发的资源请求报文,以代理方式,将所述资源请求报文发送至服务器,服务器响应所述资源请求报文并发送报文,所述报文包括信息头报文和数据体报文,所述信息头报文是指用于承载描述对所述服务器的网络资源请求操作、网络资源当前状态以及网络资源属性的元信息的报文,所述数据体报文是指用于承载服务器发送的数据实体内容的报文,所述网络侧路由器接收到所述报文后,确定所需传输的信息头报文和所需传输的数据体报文,所述所需传输的数据体报文是指经由网络侧路由器发送给用户侧路由器并由用户侧路由器分发给用户终端的数据体报文,所需传输的信息头报文是指经由网络侧路由器发送给SDN控制器的信息头报文。网络侧路由器将所需传输的信息头报文发送给SDN控制器,由SDN控制器实现对所述信息头报文的代理和处理,将所需传输的数据体报文发送给用户侧路由器,由用户侧路由器分发至用户终端。In a possible design, at least one user terminal connected to the user-side router itself sends a resource request message, the user-side router receives the resource request message, and the user-side router determines that the resource request message is the resource request message. The resource request message to be transmitted, the resource request message to be transmitted refers to the resource request message forwarded by the user-side router to the SDN controller, and sent by the SDN controller to the server in a proxy mode; the user-side router Send the resource request message to the SDN controller. The software defined network (Software Defined Network, SDN) controller intercepts the resource request message sent by the user terminal and forwarded by the router on the user side, and sends the resource request message to the server in a proxy manner, and the server responds to the resource request message. The message includes information header message and data body message. A message of meta-information about attributes, the data body message refers to a message used to carry the content of the data entity sent by the server, and after receiving the message, the network-side router determines the information header to be transmitted and the data body message to be transmitted, the data body message to be transmitted refers to the data body message sent to the user side router via the network side router and distributed to the user terminal by the user side router. The information header message refers to the information header message sent to the SDN controller via the network side router. The network side router sends the information header message to be transmitted to the SDN controller, and the SDN controller realizes the proxy and processing of the information header message, and sends the data body message to be transmitted to the user side router, It is distributed to the user terminal by the user-side router.

另一种可能的设计中,SDN控制器截获来自用户终端的资源请求报文后,向网络侧路由器发送发送第一控制指令,向用户侧路由器发送第二控制指令。In another possible design, after intercepting the resource request message from the user terminal, the SDN controller sends the first control instruction to the network side router, and sends the second control instruction to the user side router.

所述第一控制指令用于指示所述网络侧路由器设置用户侧路由器列表、第一流表以及第一缓存;所述用户侧路由器列表中指示的用户侧路由器用于接收所需传输的数据体报文,所需传输的数据体报文是指经由网络侧路由器发送给用户侧路由器并由用户侧路由器分发给用户终端的数据体报文;所述第一流表中包括的流表项用于识别所需传输的信息头报文以及所需传输的数据体报文,所需传输的信息头报文是指经由网络侧路由器发送并需要发送给所述SDN控制器的信息头报文;所述第一缓存用于缓存所述网络侧服务器接收到的数据体报文、以及所述网络侧路由器向所述服务器发送传输控制协议TCP报文所需的TCP序列号和TCP确认序列号。The first control instruction is used to instruct the network-side router to set the user-side router list, the first flow table and the first cache; the user-side router indicated in the user-side router list is used to receive the data body message to be transmitted The data body message to be transmitted refers to the data body message sent to the user side router via the network side router and distributed to the user terminal by the user side router; the flow table entry included in the first flow table is used to identify The information header message to be transmitted and the data body message to be transmitted, the information header message to be transmitted refers to the information header message sent via the network side router and needs to be sent to the SDN controller; the The first cache is used to cache the data body message received by the network-side server, and the TCP sequence number and the TCP acknowledgment sequence number required by the network-side router to send a transmission control protocol TCP message to the server.

所述第二控制指令用于指示所述用户侧路由器设置终端列表、第二流表以及第二缓存。所述终端列表中指示的用户终端用于接收所需传输的数据体报文;所述第二流表中包括的流表项用于识别出所需传输的数据体报文;所述第二缓存用于缓存用户侧路由器接收的数据体报文、所述用户侧路由器接收的数据体报文的TCP序列号以及所述SDN控制器为所述终端列表中指示的每一用户终端设定的TCP序列号修订值以及TCP确认序列号。The second control instruction is used to instruct the user-side router to set a terminal list, a second flow table and a second cache. The user terminal indicated in the terminal list is used to receive the data body message to be transmitted; the flow entry included in the second flow table is used to identify the data body message to be transmitted; the second flow table is used to identify the data body message to be transmitted; The cache is used to cache the data body message received by the user-side router, the TCP sequence number of the data body message received by the user-side router, and the data set by the SDN controller for each user terminal indicated in the terminal list. TCP sequence number revision value and TCP acknowledgment sequence number.

网络侧路由器接收所述第一控制指令并预先创建第一流表,并依据预先创建的第一流表中的流表项对所述报文进行深度报文检测,识别出接收到的服务器发送的所述报文为所需传输的信息头报文,将所述信息头报文发送至SDN控制器,识别出接收到的服务器发送的所述报文为所需传输的数据体报文,将所述数据体报文发送给用户侧路由器。The network side router receives the first control instruction and pre-creates the first flow table, and performs in-depth packet detection on the packet according to the flow table entries in the pre-created first flow table, and identifies the received data sent by the server. The message is an information header message to be transmitted, the information header message is sent to the SDN controller, the received message sent by the server is identified as the data body message to be transmitted, and the received message is sent to the SDN controller. The data body message is sent to the user-side router.

用户侧路由器接收所述第二控制指令并预先创建第二流表,所述用户侧路由器依据预先创建的所述第二流表中的流表项,识别接收到的网络侧路由器发送的所述数据体报文为所需传输的数据体报文,修改所述数据体报文的传输控制协议TCP报文头中包括的TCP序列号和TCP确认序列号,并生成用于分别发送给所述用户侧路由器连接的至少一个用户终端的新数据体报文。所述用户侧路由器将所述新数据体报文,发送给预设终端列表中指示的、所述用户侧路由器分别连接的至少一个用户终端。The user-side router receives the second control instruction and pre-creates a second flow table. The data body message is the data body message to be transmitted, modify the TCP sequence number and the TCP acknowledgment sequence number included in the transmission control protocol TCP header of the data body message, and generate and send them to the A new data body packet of at least one user terminal connected to the user-side router. The user-side router sends the new data body message to at least one user terminal indicated in the preset terminal list and connected to the user-side router respectively.

再一种可能的设计中,所述用户侧路由器采用如下方式修改所述数据体报文的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确认序列号。In yet another possible design, the user-side router modifies the TCP sequence number and the TCP acknowledgment sequence number included in the TCP header of the data body message in the following manner, including: the user-side router is defined according to software. The revised value of the TCP sequence number set by the network SDN controller modifies the TCP sequence number included in the TCP header of the data body message; wherein, the TCP sequence number included in the modified TCP header is the data The sum of the TCP sequence number included in the TCP header of the body message and the revised value of the TCP sequence number, where the revised value of the TCP sequence number is sent as the sender when the SDN controller establishes a TCP connection with the user terminal The difference between the TCP sequence number of the message and the TCP sequence number of the message sent by the sender when the SDN controller and the server establish a TCP link; the user-side router confirms the sequence number according to the TCP set by the SDN controller , modify the TCP acknowledgment sequence number included in the TCP header of the data body message, wherein the TCP acknowledgment sequence number included in the modified TCP header is the TCP acknowledgment sequence number set by the SDN controller .

又一种可能的设计中,所述网络侧路由器确定所述报文为所需传输的数据体报文之后,所述网络侧路由器还可在设定的有效缓存时间内缓存接收到的该数据体报文,并缓存接收到的该数据体报文携带的TCP序列号。所述网络侧路由器向所述服务器发送传输控制协议TCP确认报文,其中,所述TCP确认报文的TCP报文头中包括的TCP序列号为SDN控制器与服务器进行报文交互时设定的TCP序列号,所述TCP确认报文的TCP报文头中包括的TCP确认序列号依据缓存的TCP序列号所确定。In another possible design, after the network-side router determines that the message is a data body message to be transmitted, the network-side router may also cache the received data within the set effective cache time. body message, and buffer the TCP sequence number carried in the received data body message. The network side router sends a transmission control protocol TCP acknowledgment message to the server, wherein the TCP sequence number included in the TCP header of the TCP acknowledgment message is set when the SDN controller and the server exchange messages The TCP sequence number of the TCP acknowledgement packet, the TCP acknowledgement sequence number included in the TCP header of the TCP acknowledgement packet is determined according to the buffered TCP sequence number.

所述用户侧路由器在设定的有效缓存时间内缓存接收到的该数据体报文,并缓存接收到的该数据体报文携带的TCP序列号。The user-side router buffers the received data body message within the set effective buffering time, and buffers the TCP sequence number carried in the received data body message.

另一方面,提供一种网络侧路由器,该网络侧路由器具有实现上述报文传输方法中网络侧路由器的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。In another aspect, a network-side router is provided, and the network-side router has the function of implementing the network-side router in the above message transmission method. The functions can be implemented by hardware, or can be implemented by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the above functions.

一种可能的设计中,所述网络侧路由器包括接收单元,处理单元和发送单元,所述接收单元,用于接收服务器发送的报文。所述处理单元,用于确定所述接收单元接收的所述报文为所需传输的数据体报文,所述数据体报文是指用于承载服务器发送的数据实体内容的报文,所需传输的数据体报文是指经由网络侧路由器发送给用户侧路由器并由用户侧路由器分发给用户终端的数据体报文。所述发送单元,用于将所述处理单元确定的所述所需传输的数据体报文发送给预设用户侧路由器列表中指示的每个用户侧路由器,通过每个用户侧路由器将所述数据体报文发送给每个用户侧路由器分别连接的至少一个用户终端。In a possible design, the network-side router includes a receiving unit, a processing unit, and a sending unit, and the receiving unit is configured to receive a message sent by a server. The processing unit is configured to determine that the message received by the receiving unit is a data body message that needs to be transmitted, and the data body message refers to a message used to carry the content of the data entity sent by the server. The data body message to be transmitted refers to the data body message sent to the user side router via the network side router and distributed by the user side router to the user terminal. The sending unit is configured to send the data body message to be transmitted determined by the processing unit to each user-side router indicated in the preset user-side router list, and send the data body message through each user-side router. The data body message is sent to at least one user terminal respectively connected to each user side router.

另一种可能的设计中,网络侧路由器的结构中包括接收器、处理器和发射器,所述处理器被配置为支持网络侧路由器执行上述方法中相应的功能。所述接收器、发射器用于支持网络侧路由器与服务器之间的通信,支持网络侧路由器与SDN控制器之间的通信,以及支持网络侧路由器与用户侧路由器之间的通信。所述网络侧路由器还可以包括存储器,所述存储器用于与处理器耦合,其保存网络侧路由器必要的程序指令和数据。In another possible design, the structure of the network side router includes a receiver, a processor and a transmitter, and the processor is configured to support the network side router to perform the corresponding functions in the above method. The receiver and transmitter are used to support the communication between the network side router and the server, the communication between the network side router and the SDN controller, and the communication between the network side router and the user side router. The network-side router may further include a memory, which is coupled to the processor and stores necessary program instructions and data of the network-side router.

再一方面,提供一种用户侧路由器,该用户侧路由器具有实现上述报文传输方法中用户侧路由器的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。In another aspect, a user-side router is provided, and the user-side router has the function of implementing the user-side router in the foregoing packet transmission method. The functions can be implemented by hardware, or can be implemented by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the above functions.

一种可能的设计中,所述用户侧路由器包括接收单元、处理单元和发送单元,其中,所述接收单元,用于接收网络侧路由器发送的数据体报文,所述数据体报文为用于承载服务器发送的数据实体内容的报文。所述处理单元,用于确定所述接收单元接收的所述数据体报文为所需传输的数据体报文,修改所述数据体报文的传输控制协议TCP报文头中包括的TCP序列号和TCP确认序列号,并生成用于分别发送给所述用户侧路由器连接的至少一个用户终端的新数据体报文,所需传输的数据体报文是指经由网络侧路由器发送给用户侧路由器并由用户侧路由器分发给用户终端的数据体报文。所述发送单元,用于将所述处理单元生成的所述新数据体报文,发送给预设用户终端列表中指示的、所述用户侧路由器分别连接的至少一个用户终端。In a possible design, the user-side router includes a receiving unit, a processing unit, and a sending unit, wherein the receiving unit is used to receive a data body message sent by the network-side router, and the data body message is used for Packets that carry the content of the data entity sent by the server. The processing unit is configured to determine that the data body message received by the receiving unit is a data body message to be transmitted, and modify the TCP sequence included in the transmission control protocol TCP header of the data body message number and TCP acknowledgment sequence number, and generate a new data body message for sending to at least one user terminal connected to the user side router respectively. The data body message to be transmitted refers to the data body message sent to the user side via the network side router The router and the data body packet distributed by the user-side router to the user terminal. The sending unit is configured to send the new data body message generated by the processing unit to at least one user terminal indicated in the preset user terminal list and respectively connected to the user-side router.

另一种可能的设计中,所述用户侧路由器的结构中包括接收器、处理器和发射器,所述处理器被配置为支持用户侧路由器执行上述方法中相应的功能。所述接收器,发射器用于支持用户侧路由器与网络侧路由器之间的通信,支持用户侧路由器与SDN控制器之间的通信,以及支持用户侧路由器与用户终端之间的通信。所述用户侧路由器还可以包括存储器,所述存储器用于与处理器耦合,其保存用户侧路由器必要的程序指令和数据。In another possible design, the structure of the user side router includes a receiver, a processor and a transmitter, and the processor is configured to support the user side router to perform the corresponding functions in the above method. The receiver and the transmitter are used to support the communication between the user-side router and the network-side router, the communication between the user-side router and the SDN controller, and the communication between the user-side router and the user terminal. The user-side router may further include a memory, which is coupled to the processor and stores necessary program instructions and data of the user-side router.

又一方面,提供一种SDN控制器,该SDN控制器具有实现上述报文传输方法中SDN控制器的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。In yet another aspect, an SDN controller is provided, and the SDN controller has the function of implementing the SDN controller in the above message transmission method. The functions can be implemented by hardware, or can be implemented by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the above functions.

一种可能的设计中,所述SDN控制器包括接收单元和发送单元,其中,所述接收单元,用于接收用户侧路由器转发的资源请求报文,所述资源请求报文为所需传输的资源请求报文,所需传输的资源请求报文是指由用户侧路由器转发给SDN控制器,并由SDN控制器以代理方式向服务器发送的资源请求报文。所述发送单元,用于以代理方式,向服务器发送所述所述接收单元接收的所述资源请求报文。In a possible design, the SDN controller includes a receiving unit and a sending unit, wherein the receiving unit is configured to receive a resource request message forwarded by a router on the user side, where the resource request message is required to be transmitted. Resource request message, the resource request message to be transmitted refers to the resource request message forwarded by the user-side router to the SDN controller, and sent by the SDN controller to the server in a proxy manner. The sending unit is configured to send the resource request message received by the receiving unit to the server in a proxy manner.

另一种可能的设计中,所述SDN控制器包括接收器和发射器,所述接收器和所述发射器用于支持SDN控制器与用户侧路由器之间的通信,支持SDN控制器与网络侧路由器之间的通信,以及支持SDN控制器与服务器之间的通信。In another possible design, the SDN controller includes a receiver and a transmitter, and the receiver and the transmitter are used to support the communication between the SDN controller and the router on the user side, and support the communication between the SDN controller and the network side Communication between routers, and supports communication between SDN controllers and servers.

再一方面,提供一种通信系统,该通信系统中包括上述涉及的网络侧路由器、用户侧路由器和SDN控制器。In yet another aspect, a communication system is provided, which includes the above-mentioned network-side router, user-side router, and SDN controller.

再一方面,本发明实施例提供了一种计算机存储介质,用于储存为上述网络侧路由器所用的计算机软件指令,其包含用于执行上述方面所涉及的程序。In another aspect, an embodiment of the present invention provides a computer storage medium for storing computer software instructions used by the above-mentioned network-side router, which includes a program for executing the above-mentioned aspects.

再一方面,本发明实施例提供了一种计算机存储介质,用于储存为上述用户侧路由器所用的计算机软件指令,其包含用于执行上述方面所涉及的程序。In another aspect, an embodiment of the present invention provides a computer storage medium for storing computer software instructions used by the above-mentioned user-side router, which includes a program for executing the above-mentioned aspects.

再一方面,本发明实施例提供了一种计算机存储介质,用于储存为上述SDN控制器所用的计算机软件指令,其包含用于执行上述方面所涉及的程序。In another aspect, an embodiment of the present invention provides a computer storage medium for storing computer software instructions used by the above-mentioned SDN controller, which includes a program for executing the above-mentioned aspects.

相较于现有技术,本发明实施例提供的方案可以在一定程度上减少运营商网络中传输的内容相同的报文的数量,可在一定程度上降低内容相同的报文对运营商网络的带宽资源占用率。Compared with the prior art, the solution provided by the embodiment of the present invention can reduce the number of messages with the same content transmitted in the operator's network to a certain extent, and can reduce the impact of the messages with the same content on the operator's network to a certain extent. Bandwidth resource usage.

附图说明Description of drawings

图1为视频直播录制系统的架构示意图;1 is a schematic diagram of the architecture of a live video recording system;

图2为本发明实施例适用的系统架构图;FIG. 2 is a system architecture diagram to which an embodiment of the present invention is applicable;

图3为本发明实施例提供的报文传输方法实施流程图;FIG. 3 is an implementation flowchart of a message transmission method provided by an embodiment of the present invention;

图4为本发明实施例提供的网络侧路由器进行报文传输的过程示意图;4 is a schematic diagram of a process of packet transmission performed by a network-side router according to an embodiment of the present invention;

图5为本发明实施例提供的用户侧路由器进行报文传输的过程示意图;5 is a schematic diagram of a process of packet transmission performed by a user-side router according to an embodiment of the present invention;

图6A至图6C为本发明实施例提供的网络侧路由器结构示意图;6A to 6C are schematic structural diagrams of a network side router according to an embodiment of the present invention;

图7A至图7C为本发明实施例提供的用户侧路由器结构示意图;7A to 7C are schematic structural diagrams of a user-side router according to an embodiment of the present invention;

图8A至图8B为本发明实施例提供的SDN控制器结构示意图。8A to 8B are schematic structural diagrams of an SDN controller according to an embodiment of the present invention.

具体实施方式Detailed ways

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行详细地描述。The technical solutions in the embodiments of the present invention will be described in detail below with reference to the accompanying drawings in the embodiments of the present invention.

本发明实施例提供的报文传输方法、装置和系统,可应用于例如图1所示的视频直播录制系统。直播录制的视频文件被切分成若干个基于超文本传输协议(Hyper TextTransfer Protocol,HTTP)的HTTP文件,这些HTTP文件被上传至HTTP服务器,HTTP服务器通过运营商网络将HTTP文件传输给用户终端。The message transmission method, device, and system provided by the embodiments of the present invention can be applied to, for example, the live video recording system shown in FIG. 1 . The video files recorded by the live broadcast are divided into several HTTP files based on Hyper Text Transfer Protocol (HTTP), and these HTTP files are uploaded to the HTTP server, and the HTTP server transmits the HTTP files to the user terminal through the operator network.

图1所示的视频直播录制系统中,在将HTTP文件传输给用户终端过程中通常会有大量内容重复的HTTP报文在运营商网络中传输。本发明实施例中为避免例如图1所示的视频直播录制系统中过多重复的HTTP报文在运营商网络中传输,造成不必要的带宽资源浪费,可采用图2所述的系统架构,通过网络侧路由器将需要传输给用户终端的报文分发至用户侧路由器,再由用户侧路由器分发至用户终端,通常用户侧路由器连接的用户终端会包括不止一个用户终端,即用户侧路由器的数量会少于用户终端的数量,故网络侧路由器将需要传输给用户终端报文分发至用户侧路由器,可在一定程度上减少运营商网络中传输的内容相同的报文的数量,可在一定程度上降低内容相同的报文对运营商网络的带宽资源占用率。In the live video recording system shown in FIG. 1 , during the process of transmitting HTTP files to the user terminal, a large number of HTTP packets with repeated content are usually transmitted in the operator's network. In this embodiment of the present invention, in order to avoid, for example, in the live video recording system shown in FIG. 1, excessive and repeated HTTP packets are transmitted in the operator network, causing unnecessary waste of bandwidth resources, the system architecture shown in FIG. 2 can be adopted, The packets that need to be transmitted to the user terminal are distributed to the user-side router through the network-side router, and then distributed to the user-side router by the user-side router. Usually, the user-side router connected to the user-side router will include more than one user terminal, that is, the number of user-side routers. will be less than the number of user terminals, so the network-side router distributes the packets that need to be transmitted to the user terminal to the user-side router, which can reduce the number of packets with the same content transmitted in the operator's network to a certain extent. This reduces the bandwidth resource occupancy rate on the carrier's network for packets with the same content.

图2所示的系统中包括有用户侧路由器、网络侧路由器和软件定义网络(SoftwareDefined Network,SDN)控制器。服务器需要发送的报文包括信息头报文和数据体报文,其中,信息头是指在请求/响应模型中,用于描述对网络资源的请求操作、网络资源当前状态、以及网络资源属性的元信息。数据体是指由服务器传送的数据实体内容。所述信息头报文是指用于承载信息头的报文。所述数据体报文是指用于承载数据体的报文。信息头报文和数据体报文在不同的传输协议中可能会有不同的名称,例如在采用HTTP传输协议时,信息头报文可以称为HTTP协议报文,HTTP协议报文包括资源请求报文和HTTP应答报文。数据体报文可称为HTTP数据报文。本发明实施例中可由SDN控制器负责信息头报文的代理或处理,由运营商网络中的网络侧路由器和用户侧路由器处理数据体报文。用户侧路由器连接用户终端,接收用户终端发送的资源请求报文,将所述资源请求报文发送给SDN控制器。SDN控制器以代理方式向服务器发送所述资源请求报文。服务器接收到资源请求报文后发送报文,网络侧路由器与服务器连接,接收服务器发送的报文,并将信息头报文发送给SDN控制器,将数据体报文分发给用户侧路由器,通过每个用户侧路由器将所述数据体报文分发给每个用户侧路由器分别连接的至少一个用户终端。The system shown in FIG. 2 includes a user-side router, a network-side router, and a Software Defined Network (SDN) controller. The packets that the server needs to send include information header packets and data body packets, where information headers are used to describe the request operation for network resources, the current state of network resources, and the attributes of network resources in the request/response model. meta information. The data body refers to the content of the data entity transmitted by the server. The information header message refers to a message for carrying an information header. The data body message refers to a message for carrying a data body. The header message and the data body message may have different names in different transmission protocols. For example, when the HTTP transmission protocol is used, the information header message can be called the HTTP protocol message, and the HTTP protocol message includes the resource request message. message and HTTP response message. The data body message may be referred to as an HTTP data message. In the embodiment of the present invention, the SDN controller may be responsible for the proxy or processing of the information header message, and the network side router and the user side router in the operator network process the data body message. The user-side router is connected to the user terminal, receives the resource request message sent by the user terminal, and sends the resource request message to the SDN controller. The SDN controller sends the resource request message to the server in a proxy manner. After receiving the resource request message, the server sends the message. The network-side router connects to the server, receives the message sent by the server, sends the header message to the SDN controller, and distributes the data body message to the user-side router. Each user-side router distributes the data body message to at least one user terminal respectively connected to each user-side router.

本发明实施例以下为描述方便,将经由网络侧路由器发送并需要发送给SDN控制器的信息头报文称为所需传输的信息头报文,将经由网络侧路由器发送给用户侧路由器并由用户侧路由器分发给用户终端的数据体报文,称为所需传输的数据体报文。For the convenience of description in the following embodiments of the present invention, the information header message sent via the network side router and needs to be sent to the SDN controller is referred to as the information header message to be transmitted, which will be sent to the user side router via the network side router and sent by The data body message distributed by the user-side router to the user terminal is called the data body message to be transmitted.

通常,运营商网络中用户侧路由器的数量为多个,本发明实施例中所述多个可以理解为是至少一个。可以理解的是,本发明实施例中通过网络侧路由器将数据体报文分发至用户侧路由器,再由用户侧路由器分发至用户终端,以减少运营商网络中相同HTTP报文的数量,适用于用户侧路由器连接的用户终端数量多于所述用户侧路由器的数量的场景,即所述多个用户侧路由器中有至少一个用户侧路由器连接的用户终端数量为至少两个。Generally, the number of user-side routers in an operator network is multiple, and the multiple in this embodiment of the present invention may be understood as at least one. It can be understood that, in this embodiment of the present invention, the data body packets are distributed to the user-side routers through the network-side routers, and then distributed to the user terminals by the user-side routers, so as to reduce the number of identical HTTP packets in the operator's network, which is suitable for In a scenario where the number of user terminals connected to the user side routers is more than the number of the user side routers, that is, the number of user terminals connected to at least one user side router in the multiple user side routers is at least two.

需要说明的是,本发明实施例中图1以视频直播系统为例进行说明的,但并不引以为限,其它在运营商网络中应用TCP链接进行报文传输的系统也可适用。It should be noted that, in the embodiment of the present invention, FIG. 1 takes a live video system as an example for description, but it is not limited thereto, and other systems that use TCP links for packet transmission in an operator network are also applicable.

进一步需要说明的是,本发明实施例中涉及的用户终端可以包括各种具有无线通信功能的手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其它处理设备,以及各种形式的用户设备(User Equipment,UE),移动台(Mobile station,MS),终端(terminal),终端设备(Terminal Equipment)等等。It should be further noted that the user terminals involved in the embodiments of the present invention may include various handheld devices with wireless communication functions, vehicle-mounted devices, wearable devices, computing devices, or other processing devices connected to the wireless modem, as well as various forms of user equipment (User Equipment, UE), mobile station (Mobile station, MS), terminal (terminal), terminal equipment (Terminal Equipment) and so on.

本发明实施例以下将对应用图2所示系统进行报文传输的实施过程进行说明。In the embodiment of the present invention, an implementation process of packet transmission by using the system shown in FIG. 2 will be described below.

图3所示为本发明实施例提供的报文传输方法实施流程图,如图3所示包括:FIG. 3 is a flowchart of the implementation of the message transmission method provided by the embodiment of the present invention. As shown in FIG. 3 , the method includes:

S101:用户终端发送资源请求报文。S101: The user terminal sends a resource request message.

本发明实施例中用户终端在需要请求服务器发送报文的时候发送资源请求报文,例如用户终端在需要进行视频直播业务时,可向HTTP服务器发送HTTP请求报文。In this embodiment of the present invention, the user terminal sends a resource request message when it needs to request the server to send a message. For example, when the user terminal needs to perform a live video service, the user terminal can send an HTTP request message to the HTTP server.

S102:SDN控制器截获用户终端发送的资源请求报文,并以代理方式向服务器发送所述资源请求报文。S102: The SDN controller intercepts the resource request message sent by the user terminal, and sends the resource request message to the server in a proxy manner.

可选的,本发明实施例中通过SDN控制器处理信息头报文,通过网络侧路由器和用户侧路由器处理数据体报文,进而实现服务器与用户终端之间报文传输的代理,故本发明实施例中所述SDN控制器向网络侧路由器发送第一控制指令,所述第一控制指令用于指示所述网络侧路由器预设用户侧路由器列表、第一流表以及第一缓存。其中,所述用户侧路由器列表中包括的用户侧路由器用于接收所需传输的数据体报文。所述第一流表中包括的流表项用于识别所需传输的信息头报文以及所需传输的数据体报文。所述第一缓存用于缓存所述网络侧服务器接收到的数据体报文、以及所述网络侧路由器向所述服务器发送传输控制协议TCP报文所需的TCP序列号和TCP确认序列号。Optionally, in this embodiment of the present invention, the SDN controller is used to process the information header message, and the network-side router and the user-side router are used to process the data body message, thereby realizing the proxy of message transmission between the server and the user terminal. Therefore, the present invention In the embodiment, the SDN controller sends a first control instruction to the network side router, where the first control instruction is used to instruct the network side router to preset the user side router list, the first flow table and the first cache. Wherein, the user-side routers included in the user-side router list are used to receive the data body message to be transmitted. The flow entry included in the first flow table is used to identify the information header message to be transmitted and the data body message to be transmitted. The first buffer is used for buffering the data body message received by the network side server, and the TCP sequence number and the TCP acknowledgment sequence number required by the network side router to send a transmission control protocol TCP message to the server.

所述SDN控制器向用户侧路由器发送第二控制指令,所述第二控制指令用于指示所述用户侧路由器预设终端列表、第二流表以及第二缓存。其中,所述用户终端列表中包括的用户终端用于接收所需传输的数据体报文,所述第二流表中包括的流表项用于识别出所需传输的数据体报文,所述第二缓存用于缓存用户侧路由器接收的数据体报文、所述用户侧路由器接收的数据体报文的TCP序列号以及所述SDN控制器为所述终端列表中包括的每一用户终端设定的TCP序列号修订值以及TCP确认序列号。The SDN controller sends a second control instruction to the user-side router, where the second control instruction is used to instruct the user-side router to preset a terminal list, a second flow table, and a second cache. Wherein, the user terminal included in the user terminal list is used to receive the data body message to be transmitted, the flow entry included in the second flow table is used to identify the data body message to be transmitted, and the The second cache is used to cache the data body message received by the user side router, the TCP sequence number of the data body message received by the user side router, and the SDN controller for each user terminal included in the terminal list. Set TCP sequence number revision value and TCP acknowledgment sequence number.

S103:服务器发送报文,所述报文包括信息头报文和数据体报文。S103: The server sends a message, where the message includes an information header message and a data body message.

本发明实施例中所述服务器发送的报文可以是用户侧路由器预先设定的某种业务类型的报文,例如可以是HTTP视频报文。The message sent by the server in the embodiment of the present invention may be a message of a certain service type preset by the router on the user side, for example, may be an HTTP video message.

S104:网络侧路由器接收服务器发送的报文,确定所述服务器发送的报文为所需传输的信息头报文或所需传输的数据体报文。S104: The network-side router receives the message sent by the server, and determines that the message sent by the server is an information header message to be transmitted or a data body message to be transmitted.

本发明实施例中网络侧路由器可预先设定所需传输的信息头报文和数据体报文,即可以预先设定流表,该预先设定的流表是可以依据SDN控制器发送的第一控制指令进行预先创建的,即上文中涉及的第一流表。网络侧路由器在接收到服务器发送的信息头报文时,依据预先创建的流表中的流表项对所述报文进行深度报文检测,识别出所述报文为所需传输的信息头报文或数据体报文。其中,所述进行深度报文检测过程可以是:判断预先创建的流表中是否存在与所述报文相匹配的IP五元组和关键字,若存在,则所述报文为所需传输的信息头报文;若不存在,则继续判断预先创建的流表中是否存在与所述报文的IP五元组相匹配的IP五元组,若存在,则所述报文为所需传输的数据体报文。In this embodiment of the present invention, the network-side router may preset information header packets and data body packets to be transmitted, that is, may preset a flow table, and the preset flow table may be based on the first information sent by the SDN controller. A control instruction is pre-created, that is, the first flow table mentioned above. When the network-side router receives the information header message sent by the server, it performs in-depth packet inspection on the message according to the flow entry in the pre-created flow table, and identifies the message as the information header that needs to be transmitted. message or data body message. The process of performing in-depth packet detection may be: judging whether there is an IP quintuple and a keyword matching the packet in the pre-created flow table, and if so, the packet is required to be transmitted If it does not exist, continue to judge whether there is an IP quintuple that matches the IP quintuple of the message in the pre-created flow table, if so, the message is required The transmitted data body message.

本发明实施例中,若所述报文为所需传输的信息头报文,则执行S105的步骤。若所述报文为所需传输的数据体报文,则执行S106的步骤。In this embodiment of the present invention, if the message is an information header message to be transmitted, step S105 is performed. If the message is a data body message to be transmitted, the step of S106 is performed.

S105:若所述报文为所需传输的信息头报文,则网络侧路由器将所述信息头报文发送给SDN控制器。S105: If the packet is an information header packet to be transmitted, the network side router sends the information header packet to the SDN controller.

S106:若所述报文为所需传输的数据体报文,则网络侧路由器将所述数据体报文发送给预设用户侧路由器列表中的每个用户侧路由器。S106: If the message is a data body message to be transmitted, the network side router sends the data body message to each user side router in the preset user side router list.

S107:网络侧路由器缓存接收到的数据体报文,并缓存接收到的该数据体报文携带的TCP序列号,实现更新已缓存的数据体报文的TCP序列号。S107: The network side router buffers the received data body message, and buffers the TCP sequence number carried in the received data body message, so as to update the TCP sequence number of the buffered data body message.

本发明实施例中将接收到的数据体报文缓存在第一缓存中,并记录缓存的数据体报文的TCP序列号,可实现依据所述TCP序列号确定目前接收到的数据体报文的字节号。In the embodiment of the present invention, the received data body message is cached in the first cache, and the TCP sequence number of the buffered data body message is recorded, so that the currently received data body message can be determined according to the TCP sequence number. byte number.

本发明实施例中所述第一缓存为上述实施例中依据SDN控制器发送的第一控制指令所创建的。The first cache in the embodiment of the present invention is created according to the first control instruction sent by the SDN controller in the foregoing embodiment.

为了保证第一缓存中记录的数据体报文的TCP序列号的准确性,在每次缓存数据体报文时,更新已缓存数据体报文的TCP序列号。In order to ensure the accuracy of the TCP sequence number of the data body message recorded in the first cache, the TCP sequence number of the cached data body message is updated each time the data body message is cached.

进一步的,本发明实施例中为保证第一缓存中数据体报文的时效性,可设定缓存的数据体报文的老化时间,即实现在设定的有效缓存时间内缓存所述数据体报文。Further, in this embodiment of the present invention, in order to ensure the timeliness of the data body message in the first cache, the aging time of the cached data body message may be set, that is, to cache the data body within the set effective cache time. message.

需要说明的是,本发明实施例中S107为可选步骤。It should be noted that, in this embodiment of the present invention, S107 is an optional step.

S108:所述网络侧路由器向服务器发送TCP确认报文。S108: The network-side router sends a TCP confirmation message to the server.

其中,所述TCP确认报文的TCP报文头中包括的TCP序列号为SDN控制器与服务器进行报文交互时设定的TCP序列号,所述TCP确认报文的TCP报文头中包括的TCP确认序列号依据所述网络侧路由器已缓存的TCP序列号所确定。Wherein, the TCP sequence number included in the TCP header of the TCP acknowledgment message is the TCP sequence number set when the SDN controller and the server exchange messages, and the TCP header of the TCP acknowledgment message includes The TCP acknowledgment sequence number is determined according to the TCP sequence number that has been cached by the network side router.

需要说明的是,本发明实施例中S108为可选步骤。It should be noted that, in this embodiment of the present invention, S108 is an optional step.

进一步需要说明的是,S105、S106、S107和S108的执行顺序不分先后。It should be further noted that the execution order of S105 , S106 , S107 and S108 is in no particular order.

本发明实施例中网络侧路由器进行报文传输的过程示意图如图4所示。FIG. 4 is a schematic diagram of a process of packet transmission performed by the router on the network side in the embodiment of the present invention.

S109:用户侧路由器接收网络侧路由器发送的数据体报文,修改所述数据体报文的TCP报文头中包括的TCP序列号和TCP确认序列号,并生成用于分别发送给所述用户侧路由器连接的至少一个用户终端的新数据体报文。S109: The user-side router receives the data body message sent by the network-side router, modifies the TCP sequence number and the TCP acknowledgment sequence number included in the TCP header of the data body message, and generates a packet for sending to the user respectively A new data body message of at least one user terminal connected to the side router.

本发明实施例中SDN控制器与服务器建立一个公共TCP连接,用户设备又与SDN控制器建立独立的用户TCP连接,故本发明实施例中用户侧路由器向用户终端发送数据体报文时,需要将公共TCP连接的报文转成独立的用户TCP连接的报文,转发给用户终端。In the embodiment of the present invention, the SDN controller establishes a common TCP connection with the server, and the user equipment establishes an independent user TCP connection with the SDN controller. Converts the packets of the common TCP connection into the packets of the independent user TCP connection and forwards them to the user terminal.

本发明实施例中所述用户侧路由器依据SDN控制器设定的TCP序列号修订值修改所述数据体报文的TCP报文头中包括的TCP序列号。其中,修改后的TCP报文头中包括的TCP序列号为所述数据体报文的TCP报文头中包括的TCP序列号与所述TCP序列号修订值之和,所述TCP序列号修订值为所述SDN控制器与用户终端建立TCP链接时作为发送端发送的报文的TCP序列号与所述SDN控制器与服务器建立TCP链接时作为发送端发送的报文的TCP序列号之差。In the embodiment of the present invention, the user-side router modifies the TCP sequence number included in the TCP header of the data body message according to the revision value of the TCP sequence number set by the SDN controller. Wherein, the TCP sequence number included in the modified TCP header is the sum of the TCP sequence number included in the TCP header of the data body message and the revised value of the TCP sequence number, and the revised TCP sequence number The value is the difference between the TCP sequence number of the message sent by the sender when the SDN controller establishes a TCP link with the user terminal and the TCP sequence number of the message sent by the sender when the SDN controller and the server established a TCP link .

例如,假设所述SDN控制器与服务器建立TCP链接时作为发送端发送的报文的TCP序列号是0。所述SDN控制器与用户终端a建立TCP链接时作为发送端发送的报文的TCP序列号是17,则TCP序列号修订值=17-0=17。For example, it is assumed that the TCP sequence number of the packet sent by the sending end when the SDN controller establishes a TCP connection with the server is 0. When the SDN controller establishes a TCP link with the user terminal a, the TCP sequence number of the message sent by the sender as the sender is 17, and the revised value of the TCP sequence number=17-0=17.

假设当前服务器发送的数据体报文为第10000字节,所述数据体报文的TCP报文头中包括的TCP序列号=10000,则修改后的TCP报文头中包括的TCP序列号=10000+17=10017。Assuming that the data body message sent by the current server is the 10000th byte, the TCP sequence number included in the TCP header of the data body message=10000, then the TCP sequence number included in the modified TCP header= 10000+17=10017.

同样的,TCP确认序列号,是由用户终端发送报文的初始TCP序列号与已发送字节数决定的,故不同的用户终端的TCP确认序列号也不一样。Similarly, the TCP acknowledgment sequence number is determined by the initial TCP sequence number of the message sent by the user terminal and the number of bytes sent, so the TCP acknowledgment sequence numbers of different user terminals are different.

本发明实施例中所述用户侧路由器依据所述SDN控制器设定的TCP确认序列号,修改所述数据体报文的TCP报文头中包括的确认TCP序列号。其中,修改后的TCP报文头中包括的TCP确认序列号为所述SDN控制器设定的TCP确认序列号,所述SDN控制器设定的TCP确认序列号为用户终端发送报文的初始TCP序列号与已发送字节数之和再加1。In the embodiment of the present invention, the user-side router modifies the confirmation TCP sequence number included in the TCP header of the data body message according to the TCP confirmation sequence number set by the SDN controller. The TCP acknowledgment sequence number included in the modified TCP header is the TCP acknowledgment sequence number set by the SDN controller, and the TCP acknowledgment sequence number set by the SDN controller is the initial message sent by the user terminal. Add 1 to the sum of the TCP sequence number and the number of bytes sent.

本发明实施例中用户侧路由器可预先设定所需传输的数据体报文,即可以预先设定流表,该预先设定的流表是可以依据SDN控制器发送的第二控制指令进行预先创建的,即上文中涉及的第二流表,通过该流表中保存的流表项用于识别所需传输的数据体报文。用户侧路由器接收到网络侧路由器发送的数据体报文后,可判断预先创建的流表中是否存在与所述数据体报文的IP五元组相匹配的IP五元组,若存在,则确定该数据体报文为需要传输给用户终端的报文,然后再进行报文的修改生成新报文并发送给用户终端。In the embodiment of the present invention, the user-side router may preset the data body message to be transmitted, that is, may preset the flow table, and the preset flow table may be preset according to the second control instruction sent by the SDN controller. The created second flow table, that is, the above-mentioned second flow table, is used to identify the data body message to be transmitted through the flow entry stored in the flow table. After receiving the data body message sent by the network side router, the user-side router can determine whether there is an IP quintuple that matches the IP quintuple of the data body message in the pre-created flow table. It is determined that the data body message is a message that needs to be transmitted to the user terminal, and then the message is modified to generate a new message and send it to the user terminal.

S110:所述用户侧路由器将所述新数据体报文,发送给预设终端列表中指示的、所述用户侧路由器分别连接的至少一个用户终端。S110: The user-side router sends the new data body message to at least one user terminal indicated in the preset terminal list and respectively connected to the user-side router.

S111:用户侧路由器在设定的有效缓存时间内缓存所述数据体报文,并缓存接收到的该数据体报文携带的TCP序列号,实现更新已缓存数据体报文的TCP序列号。S111: The user-side router buffers the data body message within the set effective buffering time, and buffers the TCP sequence number carried in the received data body message, so as to update the TCP sequence number of the buffered data body message.

本发明实施例中用户侧路由器缓存报文的实现过程与网络侧路由器保存数据体报文的过程相似,在此不再赘述。In the embodiment of the present invention, the implementation process of the user-side router buffering the message is similar to the process of the network-side router saving the data body message, and details are not repeated here.

本发明实施例中S110和S111的执行顺序不分先后。In this embodiment of the present invention, S110 and S111 are executed in no particular order.

本发明实施例中用户侧路由器进行报文传输的过程示意图如图5所示。FIG. 5 is a schematic diagram of a process of packet transmission performed by the router on the user side in the embodiment of the present invention.

本发明实施例中上述实现报文传输的方法,通过网络侧路由器将数据体报文分发至用户侧路由器,再由用户侧路由器分发至用户终端,通常用户侧路由器连接的用户终端会包括不止一个用户终端,实现一种类似组播的树形报文传输方法,代替现有需要服务器与用户终端之间端到端的TCP传输方式,可在一定程度上减少运营商网络中传输的内容相同的报文的数量,在一定程度上降低内容相同的报文对运营商网络的带宽资源占用率。In the above method for implementing message transmission in the embodiment of the present invention, the data body message is distributed to the user-side router through the network-side router, and then distributed to the user-side router by the user-side router. Usually, the user-side router connected to the user-side router will include more than one The user terminal implements a tree-like packet transmission method similar to multicast, which replaces the existing end-to-end TCP transmission method between the server and the user terminal, which can reduce the transmission of the same content in the operator network to a certain extent. This reduces the bandwidth resource occupancy rate of the packets with the same content on the carrier's network to a certain extent.

可选的,本发明实施例中用户侧路由器预先设定的第一流表和第二流表,可依据SDN控制器再次接收的资源请求报文进行更新。即若SDN控制器接收到新的用户终端发送的资源请求报文时,若确定该新的用户终端请求的报文为重复的报文,则SDN控制器不再向服务器发送资源请求报文,而是直接生成应答报文。SDN控制器向用户侧路由器下发更新指令,以更新第二流表和终端列表,将新的用户终端信息加入用户侧路由器的终端列表中。控制器向网络侧路由器下发下发更新指令,以更新第一流表和用户侧路由器列表。Optionally, in the embodiment of the present invention, the first flow table and the second flow table preset by the user-side router may be updated according to the resource request message received again by the SDN controller. That is, if the SDN controller receives the resource request message sent by the new user terminal, if it is determined that the message requested by the new user terminal is a duplicate message, the SDN controller will no longer send the resource request message to the server. Instead, a response message is generated directly. The SDN controller sends an update instruction to the user-side router to update the second flow table and the terminal list, and adds new user terminal information to the terminal list of the user-side router. The controller issues an update instruction to the network side router to update the first flow table and the user side router list.

上述主要从各个网元之间交互的角度对本发明实施例提供的方案进行了介绍。可以理解的是,各个网元,例如用户侧路由器,网络侧路由器和SDN控制器等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。The foregoing mainly introduces the solutions provided by the embodiments of the present invention from the perspective of interaction between various network elements. It can be understood that each network element, such as a user-side router, a network-side router, and an SDN controller, includes hardware structures and/or software modules corresponding to each function in order to implement the above-mentioned functions. Those skilled in the art should easily realize that the present invention can be implemented in hardware or a combination of hardware and computer software in conjunction with the units and algorithm steps of each example described in the embodiments disclosed herein. Whether a function is performed by hardware or computer software driving hardware depends on the specific application and design constraints of the technical solution. Skilled artisans may implement the described functionality using different methods for each particular application, but such implementations should not be considered beyond the scope of the present invention.

本发明实施例提供一种网络侧路由器100,图6A所示为本发明实施例提供的网络侧路由器100的一种可能的结构示意图,如图6A所示,网络侧路由器100包括接收单元101、处理单元102和发送单元103,其中,An embodiment of the present invention provides a network side router 100. FIG. 6A shows a possible schematic structural diagram of the network side router 100 provided by the embodiment of the present invention. As shown in FIG. 6A , the network side router 100 includes a receiving unit 101, The processing unit 102 and the sending unit 103, wherein,

接收单元101,用于接收服务器发送的报文。The receiving unit 101 is configured to receive the message sent by the server.

处理单元102,用于确定所述接收单元101接收的所述报文为所需传输的数据体报文,所述数据体报文是指用于承载服务器发送的数据实体内容的报文,所需传输的数据体报文是指经由网络侧路由器发送给用户侧路由器并由用户侧路由器分发给用户终端的数据体报文。The processing unit 102 is configured to determine that the message received by the receiving unit 101 is a data body message to be transmitted, and the data body message refers to a message used to carry the content of the data entity sent by the server. The data body message to be transmitted refers to the data body message sent to the user side router via the network side router and distributed by the user side router to the user terminal.

发送单元103,用于将所述处理单元102确定的所述所需传输的数据体报文发送给预设用户侧路由器列表中指示的每个用户侧路由器,通过每个用户侧路由器将所述数据体报文发送给每个用户侧路由器分别连接的至少一个用户终端。The sending unit 103 is configured to send the data body message to be transmitted determined by the processing unit 102 to each user-side router indicated in the preset user-side router list, and send the data body message through each user-side router. The data body message is sent to at least one user terminal respectively connected to each user side router.

一种可实现的方式中,所述处理器还用于:在所述接收单元101接收服务器发送的报文之后,确定所述报文为所需传输的信息头报文,所述信息头报文是指用于承载描述对所述服务器的网络资源请求操作、网络资源当前状态以及网络资源属性的元信息的报文,所需传输的信息头报文是指经由网络侧路由器发送给SDN控制器的信息头报文。In an achievable manner, the processor is further configured to: after the receiving unit 101 receives the message sent by the server, determine that the message is an information header message to be transmitted, and the information header message The message refers to the message used to carry the meta-information describing the network resource request operation to the server, the current state of the network resource, and the attribute of the network resource. The information header message to be transmitted refers to the message sent to the SDN controller via the network side router. information header of the device.

所述发送单元103,还用于将所述信息头报文发送给所述SDN控制器。The sending unit 103 is further configured to send the information header packet to the SDN controller.

其中,所述处理单元102,具体采用如下方式确定所述报文为所需传输的信息头报文或数据体报文:Wherein, the processing unit 102 specifically adopts the following method to determine that the message is an information header message or a data body message to be transmitted:

依据预先创建的流表中的流表项对所述报文进行深度报文检测,识别出所述报文为所需传输的信息头报文或数据体报文,其中,所述流表为所述网络侧路由器依据SDN控制器在接收到用户终端发送的资源请求报文时所发送的控制指令预先创建的。Perform in-depth packet detection on the packet according to the flow table entry in the pre-created flow table, and identify that the packet is an information header packet or data body packet to be transmitted, wherein the flow table is The network side router is pre-created according to the control instruction sent by the SDN controller when receiving the resource request message sent by the user terminal.

另一种可实现的方式中,所述网络侧路由器还包括缓存单元104,如图6B所示,其中,In another achievable manner, the network side router further includes a cache unit 104, as shown in FIG. 6B , wherein,

所述缓存单元104,用于在所述处理单元102确定所述报文为所需传输的数据体报文之后,在设定的有效缓存时间内缓存接收到的该数据体报文,并缓存接收到的该数据体报文携带的TCP序列号。The cache unit 104 is configured to, after the processing unit 102 determines that the message is a data body message to be transmitted, cache the received data body message within the set effective cache time, and cache the received data body message. The TCP sequence number carried in the received data body packet.

所述发送单元103,还用于:向所述服务器发送传输控制协议TCP确认报文,其中,所述TCP确认报文的TCP报文头中包括的TCP序列号为SDN控制器与服务器进行报文交互时设定的TCP序列号,所述TCP确认报文的TCP报文头中包括的TCP确认序列号依据所述缓存单元104缓存的TCP序列号所确定。The sending unit 103 is further configured to: send a transmission control protocol TCP acknowledgment message to the server, wherein the TCP sequence number included in the TCP header of the TCP acknowledgment message is for the SDN controller and the server to report. The TCP sequence number set during the file exchange, and the TCP acknowledgement sequence number included in the TCP header of the TCP acknowledgement packet is determined according to the TCP sequence number cached by the cache unit 104 .

图6C为本发明实施例提供的网络侧路由器100另一种可能的结构示意图,如图6C所示,网络侧路由器100包括处理器1001、接收器1002、发射器1003和存储器1004。FIG. 6C is another possible schematic structural diagram of the network side router 100 according to an embodiment of the present invention. As shown in FIG. 6C , the network side router 100 includes a processor 1001 , a receiver 1002 , a transmitter 1003 , and a memory 1004 .

存储器1004,用于存储处理器1001执行的程序代码。The memory 1004 is used for storing program codes executed by the processor 1001 .

处理器1001,用于调用所述存储器1004存储的程序,通过接收器1002接收服务器发送的报文,并确定接收的所述报文为所需传输的数据体报文,通过发射器1003将所述所需传输的数据体报文发送给预设用户侧路由器列表中指示的每个用户侧路由器,通过每个用户侧路由器将所述数据体报文发送给每个用户侧路由器分别连接的至少一个用户终端。The processor 1001 is used to call the program stored in the memory 1004, receive the message sent by the server through the receiver 1002, and determine that the received message is the data body message to be transmitted, and transmit the received message through the transmitter 1003. The data body message to be transmitted is sent to each user-side router indicated in the preset user-side router list, and the data body message is sent to at least one of the user-side routers connected to each user-side router through each user-side router. a user terminal.

本发明实施例提供了一种计算机存储介质,用于储存为上述网络侧路由器所用的计算机软件指令,其包含用于执行上述方面所涉及的程序。An embodiment of the present invention provides a computer storage medium for storing computer software instructions used by the above-mentioned network-side router, which includes a program for executing the above-mentioned aspects.

本发明实施例提供一种用户侧路由器,图7A为本发明实施例提供的用户侧路由器200的一种可能的结构示意图,如图7A所示,用户侧路由器200包括接收单元201、处理单元202和发送单元203,其中,An embodiment of the present invention provides a user-side router. FIG. 7A is a possible schematic structural diagram of a user-side router 200 provided by an embodiment of the present invention. As shown in FIG. 7A , the user-side router 200 includes a receiving unit 201 and a processing unit 202 and sending unit 203, wherein,

接收单元201,用于接收网络侧路由器发送的数据体报文,所述数据体报文为用于承载服务器发送的数据实体内容的报文。The receiving unit 201 is configured to receive a data body packet sent by a network-side router, where the data body packet is a packet used to carry the content of the data entity sent by the server.

处理单元202,用于确定所述接收单元201接收的所述数据体报文为所需传输的数据体报文,修改所述数据体报文的TCP报文头中包括的TCP序列号和TCP确认序列号,并生成用于分别发送给所述用户侧路由器连接的至少一个用户终端的新数据体报文,所需传输的数据体报文是指经由网络侧路由器发送给用户侧路由器并由用户侧路由器分发给用户终端的数据体报文。The processing unit 202 is configured to determine that the data body message received by the receiving unit 201 is the data body message to be transmitted, and modify the TCP sequence number and the TCP sequence number included in the TCP header of the data body message Confirm the serial number, and generate a new data body message for sending to at least one user terminal connected to the user side router respectively. The data body message to be transmitted refers to the data body message sent to the user side router via the network side router and sent by The data body packet distributed by the user-side router to the user terminal.

发送单元203,用于将所述处理单元202生成的所述新数据体报文,发送给预设用户终端列表中指示的、所述用户侧路由器分别连接的至少一个用户终端。The sending unit 203 is configured to send the new data body message generated by the processing unit 202 to at least one user terminal indicated in the preset user terminal list and respectively connected to the user-side router.

其中,所述处理单元202,具体用于按如下方式修改所述数据体报文的TCP报文头中包括的TCP序列号和TCP确认序列号:The processing unit 202 is specifically configured to modify the TCP sequence number and the TCP acknowledgment sequence number included in the TCP header of the data body message as follows:

依据SDN控制器设定的TCP序列号修订值修改所述数据体报文的TCP报文头中包括的TCP序列号。其中,修改后的TCP报文头中包括的TCP序列号为所述数据体报文的TCP报文头中包括的TCP序列号与所述TCP序列号修订值之和,所述TCP序列号修订值为所述SDN控制器与用户终端建立TCP链接时作为发送端发送的报文的TCP序列号与所述SDN控制器和服务器建立TCP链接时作为发送端发送的报文的TCP序列号之差。依据所述SDN控制器设定的TCP确认序列号,修改所述数据体报文的TCP报文头中包括的TCP确认序列号,其中,修改后的TCP报文头中包括的TCP确认序列号为所述SDN控制器设定的TCP确认序列号。The TCP sequence number included in the TCP header of the data body message is modified according to the revised value of the TCP sequence number set by the SDN controller. Wherein, the TCP sequence number included in the modified TCP header is the sum of the TCP sequence number included in the TCP header of the data body message and the revised value of the TCP sequence number, and the revised TCP sequence number The value is the difference between the TCP sequence number of the message sent by the sender when the SDN controller establishes a TCP link with the user terminal and the TCP sequence number of the message sent by the sender when the SDN controller and the server established a TCP link . Modifying the TCP acknowledgment sequence number included in the TCP header of the data body message according to the TCP acknowledgment sequence number set by the SDN controller, wherein the modified TCP acknowledgment sequence number included in the TCP header The TCP acknowledgment sequence number set for the SDN controller.

其中,所述处理单元202,具体用于按如下方式确定所述数据体报文为所需传输的数据体报文:The processing unit 202 is specifically configured to determine that the data body message is the data body message to be transmitted in the following manner:

依据预先创建的流表中的流表项,识别所述数据体报文为所需传输的数据体报文,其中,所述流表为所述用户侧路由器依据SDN控制器在接收到用户终端发送的资源请求报文时所发送的控制指令预先创建的。According to the flow table entry in the pre-created flow table, identify the data body message as the data body message to be transmitted, wherein the flow table is that the user side router receives the user terminal according to the SDN controller. The control command sent when the resource request message is sent is created in advance.

一种可能的实现方式中,所述用户侧路由器还包括缓存单元204,如图7B所示,其中,In a possible implementation manner, the user-side router further includes a cache unit 204, as shown in FIG. 7B , wherein,

所述缓存单元204,用于在所述接收单元201接收网络侧路由器发送的数据体报文之后,在设定的有效缓存时间内缓存接收到的该数据体报文,并缓存接收到的该数据体报文携带的TCP序列号。The caching unit 204 is configured to, after the receiving unit 201 receives the data body message sent by the network-side router, cache the received data body message within the set valid cache time, and cache the received data body message. The TCP sequence number carried in the data body packet.

另一种可能的实现方式中,所述接收单元201,还用于:接收网络侧路由器发送的数据体报文之前,接收自身连接的至少一个用户终端发送的资源请求报文。In another possible implementation manner, the receiving unit 201 is further configured to receive a resource request message sent by at least one user terminal connected to itself before receiving the data body message sent by the network side router.

所述处理单元202,还用于:确定所述资源请求报文为所需传输的资源请求报文,所需传输的资源请求报文是指由用户侧路由器转发给SDN控制器,并由SDN控制器以代理方式向服务器发送的资源请求报文。The processing unit 202 is further configured to: determine that the resource request message is a resource request message to be transmitted, and the resource request message to be transmitted is forwarded by the user side router to the SDN controller, and sent by the SDN The resource request message sent by the controller to the server in proxy mode.

所述发送单元203,还用于:将所述资源请求报文发送给SDN控制器。The sending unit 203 is further configured to: send the resource request message to the SDN controller.

图7C为本发明实施例提供的用户侧路由器200另一种可能的结构示意图,如图7C所示,用户侧路由器200包括处理器2001、接收器2002、发射器2003和存储器2004。FIG. 7C is another possible schematic structural diagram of the user-side router 200 according to an embodiment of the present invention. As shown in FIG. 7C , the user-side router 200 includes a processor 2001 , a receiver 2002 , a transmitter 2003 , and a memory 2004 .

存储器2004,用于存储处理器2001执行的程序代码。The memory 2004 is used for storing program codes executed by the processor 2001 .

处理器2001,用于调用所述存储器2004存储的程序,通过接收器2002接收网络侧路由器发送的数据体报文,并确定所述数据体报文为所需传输的数据体报文,修改所述数据体报文的TCP报文头中包括的TCP序列号和TCP确认序列号,并生成用于分别发送给所述用户侧路由器连接的至少一个用户终端的新数据体报文,并通过发射器2003将生成的所述新数据体报文,发送给预设终端列表中指示的、所述用户侧路由器分别连接的至少一个用户终端。The processor 2001 is configured to call the program stored in the memory 2004, receive the data body message sent by the network side router through the receiver 2002, determine that the data body message is the data body message to be transmitted, and modify the data body message. the TCP sequence number and the TCP acknowledgment sequence number included in the TCP header of the data body message, and generate a new data body message for respectively sending to at least one user terminal connected to the user side router, and transmit The controller 2003 sends the generated new data body message to at least one user terminal indicated in the preset terminal list and connected to the user side router respectively.

本发明实施例提供了一种计算机存储介质,用于储存为上述用户侧路由器所用的计算机软件指令,其包含用于执行上述方面所涉及的程序。An embodiment of the present invention provides a computer storage medium for storing computer software instructions used by the above-mentioned user-side router, which includes a program for executing the above-mentioned aspects.

本发明实施例还提供一种SDN控制器,图8A所示为本发明实施例提供的SDN控制器300的一种可能的结构示意图,如图8A所示,SDN控制300包括接收单元301和发送单元302,其中,接收单元301,用于接收用户侧路由器转发的资源请求报文,所述资源请求报文为所需传输的资源请求报文,所需传输的资源请求报文是指由用户侧路由器转发给SDN控制器,并由SDN控制器以代理方式向服务器发送的资源请求报文。An embodiment of the present invention further provides an SDN controller. FIG. 8A shows a possible schematic structural diagram of the SDN controller 300 provided by the embodiment of the present invention. As shown in FIG. 8A , the SDN controller 300 includes a receiving unit 301 and a sending unit 300. Unit 302, wherein the receiving unit 301 is configured to receive the resource request message forwarded by the router on the user side, where the resource request message is the resource request message to be transmitted, and the resource request message to be transmitted refers to the resource request message transmitted by the user The side router forwards the resource request message to the SDN controller, and the SDN controller sends the resource request message to the server in the proxy mode.

发送单元302,用于以代理方式,向服务器发送所述所述接收单元301接收的所述资源请求报文。The sending unit 302 is configured to send the resource request message received by the receiving unit 301 to a server in a proxy manner.

一种可能的实现方式中,所述发送单元302,还用于:在所述接收单元301接收用户侧路由器转发的资源请求报文之后,向网络侧路由器发送第一控制指令,以及向用户侧路由器发送第二控制指令。In a possible implementation manner, the sending unit 302 is further configured to: after the receiving unit 301 receives the resource request message forwarded by the user-side router, send the first control instruction to the network-side router, and send the first control instruction to the user-side router. The router sends the second control instruction.

所述第一控制指令用于指示所述网络侧路由器设置用户侧路由器列表、第一流表以及第一缓存。所述用户侧路由器列表中指示的用户侧路由器用于接收所需传输的数据体报文,所需传输的数据体报文是指经由网络侧路由器发送给用户侧路由器并由用户侧路由器分发给用户终端的数据体报文。所述第一流表中包括的流表项用于识别所需传输的信息头报文以及所需传输的数据体报文,所需传输的信息头报文是指经由网络侧路由器发送并需要发送给所述SDN控制器的信息头报文。所述第一缓存用于缓存所述网络侧服务器接收到的数据体报文、以及所述网络侧路由器向所述服务器发送传输控制协议TCP报文所需的TCP序列号和TCP确认序列号。The first control instruction is used to instruct the network side router to set the user side router list, the first flow table and the first cache. The user-side router indicated in the user-side router list is used to receive the data body message to be transmitted, and the data body message to be transmitted is sent to the user-side router via the network-side router and distributed by the user-side router. The data body packet of the user terminal. The flow entry included in the first flow table is used to identify the information header message to be transmitted and the data body message to be transmitted. Information header message to the SDN controller. The first buffer is used for buffering the data body message received by the network side server, and the TCP sequence number and the TCP acknowledgment sequence number required by the network side router to send a transmission control protocol TCP message to the server.

所述第二控制指令用于指示所述用户侧路由器设置终端列表、第二流表以及第二缓存。所述终端列表中指示的用户终端用于接收所需传输的数据体报文。所述第二流表中包括的流表项用于识别出所需传输的数据体报文。所述第二缓存用于缓存用户侧路由器接收的数据体报文、所述用户侧路由器接收的数据体报文的TCP序列号以及所述SDN控制器为所述终端列表中指示的每一用户终端设定的TCP序列号修订值以及TCP确认序列号。The second control instruction is used to instruct the user-side router to set a terminal list, a second flow table and a second cache. The user terminal indicated in the terminal list is used to receive the data body message to be transmitted. The flow entry included in the second flow table is used to identify the data body message to be transmitted. The second cache is used to cache the data body message received by the user side router, the TCP sequence number of the data body message received by the user side router, and the SDN controller for each user indicated in the terminal list. The revised value of the TCP sequence number set by the terminal and the TCP acknowledgment sequence number.

图8B为本发明实施例提供的SDN控制器300的另一种结构示意图,如图8B所示。SDN控制器300包括接收器3001和发射器3002。FIG. 8B is another schematic structural diagram of the SDN controller 300 according to an embodiment of the present invention, as shown in FIG. 8B . The SDN controller 300 includes a receiver 3001 and a transmitter 3002 .

其中,接收器3001用于接收用户侧路由器转发的资源请求报文。The receiver 3001 is configured to receive the resource request message forwarded by the router on the user side.

发射器3002,用于以代理方式,向服务器发送所述所述接收器3001接收的所述资源请求报文。The transmitter 3002 is configured to send the resource request message received by the receiver 3001 to a server in a proxy manner.

本发明实施例提供了一种计算机存储介质,用于储存为上述SDN控制器所用的计算机软件指令,其包含用于执行上述方面所涉及的程序。Embodiments of the present invention provide a computer storage medium for storing computer software instructions used by the above-mentioned SDN controller, including a program for executing the above-mentioned aspects.

可以理解的是,本发明实施例上述涉及的网络侧路由器100、用户侧路由器200和SDN控制器300,可用于实现上述方法实施例中涉及的功能,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。It can be understood that the network-side router 100, the user-side router 200, and the SDN controller 300 involved in the foregoing embodiments of the present invention may be used to implement the functions involved in the foregoing method embodiments, and the specific implementation process may refer to the foregoing method embodiments. Relevant descriptions are not repeated here.

本发明实施例还提供一种报文传输系统,该报文传输系统包括上述涉及的网络侧路由器100、用户侧路由器200和SDN控制器300,并具有相应的功能,在此不再赘述。An embodiment of the present invention further provides a message transmission system, which includes the network side router 100, the user side router 200, and the SDN controller 300 mentioned above, and has corresponding functions, which are not repeated here.

本发明实施例提供的报文传输方法、装置及系统,网络侧路由器将需要传输给用户终端的报文分发至用户侧路由器,用户侧路由器接收网络侧路由器发送的数据体报文,将所述数据体报文发送给每个用户侧路由器分别连接的至少一个用户终端,可在一定程度上减少运营商网络中传输的内容相同的报文的数量,可在一定程度上降低内容相同的报文对运营商网络的带宽资源占用率。In the packet transmission method, device, and system provided by the embodiments of the present invention, the network-side router distributes the packet that needs to be transmitted to the user terminal to the user-side router, and the user-side router receives the data body packet sent by the network-side router, and transmits the packet to the user-side router. The data body packet is sent to at least one user terminal connected to each user-side router, which can reduce the number of packets with the same content transmitted in the operator's network to a certain extent, and can reduce the number of packets with the same content to a certain extent. The bandwidth resource occupancy rate of the operator's network.

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit and scope of the invention. Thus, provided that these modifications and variations of the present invention fall within the scope of the claims of the present invention and their equivalents, the present invention is also intended to include these modifications and variations.

Claims (13)

1. A method for packet transmission, comprising:
a network side router receives a message sent by a server, wherein the message comprises a data body message and an information header message;
the network side router carries out deep packet inspection on the packet according to a flow table entry in a pre-created flow table, and identifies that the packet is a data body packet to be transmitted, wherein the flow table is pre-created by the network side router according to a control instruction sent by an SDN controller when receiving a resource request packet sent by a user terminal; the data body message is used for bearing data entity content sent by a server, and the data body message to be transmitted is sent to a user side router through a network side router and distributed to a user terminal by the user side router;
the network side router sends the data body message to each user side router indicated in a preset user side router list, and the data body message is sent to at least one user terminal connected with each user side router through each user side router;
the network side router determines the information header message, wherein the information header message is a message used for bearing meta-information describing network resource request operation on the server, the current state of the network resource and the attribute of the network resource, and the information header message to be transmitted is the information header message sent to the SDN controller by the network side router;
and the network side router sends the information header message to the SDN controller.
2. The method of claim 1, wherein the determining, by the network-side router, that the packet is a header packet to be transmitted comprises:
and the network side router carries out deep packet inspection on the packet according to the flow table entry in the flow table, and identifies that the packet is an information header packet to be transmitted.
3. The method according to any of claims 1 to 2, wherein after the network-side router determines that the packet is a data body packet that needs to be transmitted, the method further comprises:
the network side router caches the received data body message within a set effective caching time and caches a TCP serial number carried by the received data body message;
the network side router sends a Transmission Control Protocol (TCP) confirmation message to the server, wherein a TCP serial number included in a TCP message header of the TCP confirmation message is a TCP serial number set when an SDN controller performs message interaction with the server, and the TCP confirmation serial number included in the TCP message header of the TCP confirmation message is determined according to a cached TCP serial number.
4. A method for packet transmission, comprising:
a user side router receives a resource request message sent by at least one user terminal connected with the user side router;
the user side router determines that the resource request message is a resource request message required to be transmitted, wherein the resource request message required to be transmitted refers to a resource request message which is forwarded to an SDN controller by the user side router and is sent to a server by the SDN controller in a proxy mode;
the user side router sends the resource request message to an SDN controller;
the user side router receives a data body message sent by a network side router, wherein the data body message is used for bearing data entity content sent by a server;
the user side router determines that the data body message is the data body message required to be transmitted, wherein the data body message required to be transmitted is the data body message which is sent to the user side router through the network side router and distributed to the user terminal by the user side router;
the user side router determines that the data body message is a data body message to be transmitted, and the method comprises the following steps:
the user side router identifies the data body message as a data body message to be transmitted according to a flow table entry in a pre-established flow table, wherein the flow table is pre-established by the user side router according to a control instruction sent by an SDN controller when receiving a resource request message sent by a user terminal;
the user side router modifies a TCP serial number and a TCP acknowledgement serial number included in a Transmission Control Protocol (TCP) message header of the data body message and generates a new data body message which is respectively sent to at least one user terminal connected with the user side router;
and the user side router sends the new data body message to at least one user terminal indicated in a preset user terminal list and respectively connected with the user side router.
5. The method of claim 4, wherein the user-side router modifies a TCP sequence number and a TCP acknowledgement sequence number included in a TCP header of the data body packet, including:
the user side router modifies a TCP serial number included in a TCP message header of the data body message according to a TCP serial number revision value set by a Software Defined Network (SDN) controller;
the modified TCP message header comprises a TCP serial number which is the sum of a TCP serial number which is contained in the TCP message header of the data body message and a TCP serial number revision value, wherein the TCP serial number revision value is the difference between the TCP serial number of the message which is sent by a sending end when the SDN controller establishes a TCP link with a user terminal and the TCP serial number of the message which is sent by the sending end when the SDN controller establishes a TCP link with a server;
and the user side router modifies a TCP acknowledgement serial number included in a TCP message header of the data body message according to the TCP acknowledgement serial number set by the SDN controller, wherein the TCP acknowledgement serial number included in the modified TCP message header is the TCP acknowledgement serial number set by the SDN controller.
6. The method according to claim 4 or 5, wherein after the user-side router receives the data body packet sent by the network-side router, the method further comprises:
and the user side router caches the received data body message within the set effective caching time and caches a TCP serial number carried by the received data body message.
7. A network-side router, comprising:
the receiving unit is used for receiving a message sent by a server, wherein the message comprises a data body message and an information header message;
the processing unit is configured to perform deep packet inspection on the packet according to a flow table entry in a pre-created flow table, and identify that the packet is a data body packet to be transmitted, where the flow table is pre-created by the network side router according to a control instruction sent by an SDN controller when receiving a resource request packet sent by a user terminal; the data body message is used for bearing data entity content sent by a server, and the data body message to be transmitted is sent to a user side router through a network side router and distributed to a user terminal by the user side router;
the processing unit is further configured to:
after the receiving unit receives a message sent by a server, determining that the message is a message header message to be transmitted, where the message header message is a message used for carrying meta-information describing a network resource request operation to the server, a current state of a network resource, and a network resource attribute, and the message header message to be transmitted is a message header message sent to an SDN controller via a network-side router;
a sending unit, configured to send the data body packet to be transmitted, which is determined by the processing unit, to each user-side router indicated in a preset user-side router list, and send the data body packet to at least one user terminal connected to each user-side router through each user-side router;
the sending unit is further configured to send the header packet to the SDN controller.
8. The network-side router according to claim 7, wherein the processing unit determines that the packet is a header packet to be transmitted specifically by:
the method comprises the steps of carrying out deep packet inspection on a packet according to a packet entry in a pre-created packet table, and identifying that the packet is a header packet to be transmitted, wherein the packet table is pre-created by a network side router according to a control instruction sent by an SDN controller when receiving a resource request packet sent by a user terminal.
9. The network-side router of any of claims 7 to 8, wherein the network-side router further comprises a caching unit, wherein,
the cache unit is configured to cache the received data body packet within a set effective cache time after the processing unit determines that the packet is a data body packet to be transmitted, and cache a TCP serial number carried by the received data body packet;
the sending unit is further configured to:
and sending a Transmission Control Protocol (TCP) confirmation message to the server, wherein a TCP serial number included in a TCP message header of the TCP confirmation message is a TCP serial number set when the SDN controller performs message interaction with the server, and the TCP confirmation serial number included in the TCP message header of the TCP confirmation message is determined according to the TCP serial number cached by the caching unit.
10. A user-side router, comprising:
a receiving unit configured to: receiving a resource request message sent by at least one user terminal connected with the user terminal;
a processing unit to: determining that the resource request message is a resource request message required to be transmitted, wherein the resource request message required to be transmitted refers to a resource request message which is forwarded to an SDN controller by a user side router and is sent to a server by the SDN controller in a proxy mode;
a transmitting unit configured to: sending the resource request message to an SDN controller;
the receiving unit is further configured to receive a data body packet sent by a network-side router, where the data body packet is a packet for carrying data entity content sent by a server;
the processing unit is further configured to determine that the data body packet received by the receiving unit is a data body packet to be transmitted, modify a TCP sequence number and a TCP acknowledgement sequence number included in a TCP packet header of the data body packet, and generate a new data body packet for being respectively sent to at least one user terminal connected to the user-side router, where the data body packet to be transmitted is a data body packet sent to the user-side router via the network-side router and distributed to the user terminal by the user-side router;
the processing unit is specifically configured to determine that the data body packet is a data body packet to be transmitted according to the following manner:
identifying the data body message as a data body message to be transmitted according to a flow table entry in a pre-created flow table, wherein the flow table is pre-created by the user side router according to a control instruction sent by an SDN controller when receiving a resource request message sent by a user terminal;
the sending unit is further configured to send the new data packet generated by the processing unit to at least one user terminal indicated in a preset terminal list and respectively connected to the user-side router.
11. The user-side router according to claim 10, wherein the processing unit is specifically configured to modify a TCP sequence number and a TCP acknowledgement sequence number included in a TCP packet header of the data body packet as follows:
modifying a TCP serial number included in a TCP message header of the data body message according to a TCP serial number revision value set by a Software Defined Network (SDN) controller;
the modified TCP message header comprises a TCP serial number which is the sum of a TCP serial number which is contained in the TCP message header of the data body message and a TCP serial number revision value, wherein the TCP serial number revision value is the difference between the TCP serial number of the message which is sent by a sending end when the SDN controller establishes a TCP link with a user terminal and the TCP serial number of the message which is sent by the sending end when the SDN controller establishes a TCP link with a server;
and modifying a TCP acknowledgement sequence number included in a TCP message header of the data body message according to the TCP acknowledgement sequence number set by the SDN controller, wherein the TCP acknowledgement sequence number included in the modified TCP message header is the TCP acknowledgement sequence number set by the SDN controller.
12. The user-side router according to claim 10 or 11, wherein the user-side router further comprises a caching unit, wherein,
the cache unit is configured to cache the received data body packet within a set effective cache time after the receiving unit receives the data body packet sent by the network-side router, and cache a TCP serial number carried by the received data body packet.
13. A message transmission system, characterized in that it comprises a network-side router according to any of claims 7 to 9 and a user-side router according to any of claims 10 to 12.
CN201610178022.6A 2016-03-25 2016-03-25 A message transmission method, device and system Active CN107231567B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610178022.6A CN107231567B (en) 2016-03-25 2016-03-25 A message transmission method, device and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610178022.6A CN107231567B (en) 2016-03-25 2016-03-25 A message transmission method, device and system

Publications (2)

Publication Number Publication Date
CN107231567A CN107231567A (en) 2017-10-03
CN107231567B true CN107231567B (en) 2020-10-23

Family

ID=59931891

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610178022.6A Active CN107231567B (en) 2016-03-25 2016-03-25 A message transmission method, device and system

Country Status (1)

Country Link
CN (1) CN107231567B (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11329912B2 (en) * 2019-05-13 2022-05-10 128 Technology, Inc. Source-based routing
US10999182B2 (en) 2019-05-13 2021-05-04 128 Technology, Inc. Routing using segment-based metrics
US12137045B2 (en) 2019-05-13 2024-11-05 Juniper Networks, Inc. Metric-based multi-hop path selection
US11153202B2 (en) 2019-05-13 2021-10-19 128 Technology, Inc. Service and topology exchange protocol

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010084769A (en) * 2000-02-29 2001-09-06 윤영찬 Ethernet TCP/IP Modem
CN101243724A (en) * 2005-08-16 2008-08-13 西门子公司 Method, communication device and communication equipment for transferring information
CN101924771A (en) * 2010-08-26 2010-12-22 北京天融信科技有限公司 Core-level TCP adhering junction method for accelerating application proxy
CN102098167A (en) * 2010-12-29 2011-06-15 杭州华三通信技术有限公司 Multicasting stream forwarding method, device and system
CN102137005A (en) * 2010-12-31 2011-07-27 华为技术有限公司 Method, device and system for forwarding date in communication system
CN105262667A (en) * 2015-09-17 2016-01-20 杭州数梦工场科技有限公司 Method and device for controlling multicast transmission in Overlay network

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010084769A (en) * 2000-02-29 2001-09-06 윤영찬 Ethernet TCP/IP Modem
CN101243724A (en) * 2005-08-16 2008-08-13 西门子公司 Method, communication device and communication equipment for transferring information
CN101924771A (en) * 2010-08-26 2010-12-22 北京天融信科技有限公司 Core-level TCP adhering junction method for accelerating application proxy
CN102098167A (en) * 2010-12-29 2011-06-15 杭州华三通信技术有限公司 Multicasting stream forwarding method, device and system
CN102137005A (en) * 2010-12-31 2011-07-27 华为技术有限公司 Method, device and system for forwarding date in communication system
CN105262667A (en) * 2015-09-17 2016-01-20 杭州数梦工场科技有限公司 Method and device for controlling multicast transmission in Overlay network

Also Published As

Publication number Publication date
CN107231567A (en) 2017-10-03

Similar Documents

Publication Publication Date Title
KR100585230B1 (en) Method and system for establishing TPC proxy to reduce packet loss and transmission delay in wired / wireless integrated internet protocol network
CN102143078B (en) Forwarding equipment as well as method and system for processing message
EP2629466B1 (en) Method, device and system for forwarding data in communication system
CN101917742B (en) Data transmission method, equipment and system
CN103312807B (en) Data transmission method, apparatus and system
JP2009544259A (en) Method and apparatus for policy enforcement in a wireless communication system
US8984158B2 (en) Data communication system and method
JP2018524887A (en) Method and apparatus for multipath media transmission
JP2014524092A (en) System and method for reliable virtual bidirectional data stream communication with single socket point-to-multipoint performance
JP6663082B2 (en) Data Streaming Support Control Based on Node Type
CN107231567B (en) A message transmission method, device and system
US20140310339A1 (en) Content delivery method and apparatus, and access network device
CN112583874A (en) Message forwarding method and device for heterogeneous network
CN109818905B (en) Method, network element equipment and system for adapting transport layer protocol
EP3135016A1 (en) Managing sequence values with added headers in computing devices
US10136375B2 (en) Method for service data management, apparatus, and system
EP3186959B1 (en) Enrichment of upper layer protocol content in tcp based session
WO2012072045A1 (en) Method, network node and system for data transmission in cdn network
CN104205743A (en) Method and apparatus for content delivery in radio access networks
WO2016165524A1 (en) Content access method, wireless access network content distribution network base station and core content distribution network apparatus
JP2005520374A (en) Changes to TCP / IP
WO2016045065A1 (en) Tcp connection establishment and handover
WO2014206263A1 (en) Packet transmission method, system, and station
WO2016078072A1 (en) Method and system for implementing service optimization
WO2015135124A1 (en) Information transfer method and apparatus

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