WO2012159287A1 - Procédé et dispositif pour la transmission de données - Google Patents

Procédé et dispositif pour la transmission de données Download PDF

Info

Publication number
WO2012159287A1
WO2012159287A1 PCT/CN2011/076176 CN2011076176W WO2012159287A1 WO 2012159287 A1 WO2012159287 A1 WO 2012159287A1 CN 2011076176 W CN2011076176 W CN 2011076176W WO 2012159287 A1 WO2012159287 A1 WO 2012159287A1
Authority
WO
WIPO (PCT)
Prior art keywords
client device
server
proxy device
optimized connection
connection
Prior art date
Application number
PCT/CN2011/076176
Other languages
English (en)
Chinese (zh)
Inventor
黄一宏
吴钦
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Priority to CN201180000950.9A priority Critical patent/CN102439946B/zh
Priority to PCT/CN2011/076176 priority patent/WO2012159287A1/fr
Publication of WO2012159287A1 publication Critical patent/WO2012159287A1/fr

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content

Definitions

  • the present invention relates to the field of communications technologies, and in particular, to a data transmission method and device.
  • HTTP streaming hypertext transfer protocol
  • HTTP Hyper Text Transfer Protocol
  • HTTP is a unicast protocol.
  • the server may need to provide services for a large number of users, which will inevitably put a lot of pressure on the performance of the server and network bandwidth.
  • proxy caching To alleviate the pressure on concurrent servers from concurrent users, it is common to add agents between servers and users, and use proxy caching to ease server stress.
  • the proxy caches the accessed data first and then sends it to the requesting user.
  • the proxy can directly send the cached data to the user without re-acquiring from the server. Data, which reduces the bandwidth pressure from the agent to the server.
  • the embodiment of the invention provides a data transmission method and device, which can reduce the pressure on the server caused by concurrent users in the live broadcast scenario.
  • a data transmission method includes:
  • the server obtains an embedded protocol supported by the client device
  • the server specifies a proxy device, and establishes an optimized connection connected to the proxy device by using an embedded protocol supported by the client device;
  • the server generates response data based on the embedded protocol, and sends the response data to the proxy device through the optimized connection, so that the proxy device encapsulates the response data by using a hypertext transfer protocol. Sent to the client device.
  • a data transmission method includes:
  • the proxy device forwards the received data request sent by the client device to the server;
  • the proxy device sends the response data to the client device by using a hypertext transfer protocol.
  • a server comprising:
  • An obtaining module configured to obtain an embedded protocol supported by the client device
  • connection establishing module configured to specify a proxy device, and establish an optimized connection connected to the proxy device by using an embedded protocol supported by the client device;
  • a receiving module configured to receive, by the proxy device, a data request from the client device
  • a response module configured to generate response data based on the embedded protocol, and send the response data to the proxy device by using the optimized connection, so that the proxy device performs the outer layer of the response data by using a hypertext transfer protocol After being encapsulated, it is sent to the client device.
  • An agent device including:
  • a request forwarding module configured to forward the data request sent by the received client device to the server;
  • the data receiving module is configured to receive response data sent by the server through the established optimized connection, where the optimized connection is the proxy
  • the device and the server are established by using an embedded protocol supported by the client device, and the response data is response data based on the embedded protocol;
  • a data sending module configured to send the response data to the client device by using a hypertext transfer protocol.
  • the server can change the designated proxy device when the designated proxy device fails; on the other hand, establishes between the server and the proxy device Optimized connections with better transmission efficiency than HTTP connections can transmit data, which can alleviate the pressure on the server, especially the concurrent users requesting pressure on the server in the live broadcast scenario.
  • FIG. 1 is a flowchart of a data transmission method according to an embodiment of the present invention.
  • FIG. 2 is a flowchart of a data transmission method according to another embodiment of the present invention.
  • FIG. 4 is a schematic diagram of a server according to an embodiment of the present invention.
  • FIG. 5 is a schematic diagram of a proxy device according to an embodiment of the present invention.
  • a proxy device is placed between the server and the client device to take advantage of the proxy device's caching capabilities to ease server stress.
  • the proxy device is generally pre-configured, and the client device requests data from the server through the proxy device by default. However, once the proxy device fails, the connection between the client and the server is interrupted, and the data request sent by the client device cannot reach the server or receive the response data sent by the server.
  • a unicast protocol HTTP is usually used to establish an HTTP connection and transfer data, and the client device receives the HTTP.
  • Layer encapsulated data the data transfer efficiency of the HTTP connection is low, which will cause the server to be under pressure.
  • an embodiment of the present invention provides a data transmission method.
  • a server designates a proxy device, and a client device requests data from a server through a proxy device specified by the server.
  • a proxy device specified by the server.
  • between the server and the proxy device Establish a connection with better transmission efficiency than HTTP connection for data transmission.
  • the connection that has better transmission efficiency than the HTTP connection is referred to herein as an optimized connection, and the optimized connection may be a WebSocket connection or a multicast connection.
  • the server can further specify other proxy devices, and the client can perform data interaction with the server through other proxy devices to obtain the requested data; on the other hand, optimize the connection such as a WebSocket connection or Multicast connections have higher data transfer efficiency than HTTP connections, which can alleviate server stress.
  • Embodiments of the present invention also provide corresponding devices and systems. The following is a detailed description.
  • an embodiment of the present invention provides a data transmission method, including: 110.
  • the server obtains an embedded protocol supported by the client device.
  • an embedded protocol supported by the client device is used between the server and the proxy device, and the embedded protocol supported by the client device is used to establish an optimized connection for data transmission.
  • the embedded protocol may be a WebSocket protocol or a multicast protocol.
  • the data sent by the server received by the proxy device will be the data encapsulated by the embedded protocol.
  • the proxy device needs to use the HTTP protocol to encapsulate the received data before sending it to the client device through the HTTP connection.
  • the data received by the client device will be double-encapsulated with the embedded protocol as the inner layer encapsulation protocol and the HTTP protocol as the outer encapsulation protocol. This requires the client device to have the ability to parse data encapsulated in a two-tier protocol.
  • This capability of the client device is referred to as the tunneling capability of the client device.
  • the tunnel capability of the client device can be obtained, so as to establish an optimized connection with the proxy device by using an embedded protocol supported by the client.
  • the client device may send a tunnel negotiation request to the server before sending the data request to the server, and the tunneling capability of the client device is carried in the tunnel negotiation request to notify the server.
  • the tunnel negotiation request includes: an identifier of the embedded protocol supported by the client device, and a data content requested by the client device, for example, an identifier of the program requested to be viewed; and the identifier of the client device.
  • the identifier of the program requested by the client device may be any information such as a channel number or a frequency (frequency) that can identify the program requested to be viewed.
  • the identifier of the embedded protocol may be any name that identifies the embedded protocol, such as the name, code, or ID (IDentity) of the embedded protocol.
  • the embedded protocol may be a WebSocket protocol or a multicast protocol, and the multicast protocol may be a Real Time Streaming Protocol (RTSP) or a Real-Time Transport Protocol (RTP).
  • RTSP Real Time Streaming Protocol
  • RTP Real-Time Transport Protocol
  • the identity of the client device is any information that can identify the client, such as the Internet Protocol (IP) address of the client.
  • IP Internet Protocol
  • the server identifies the tunnel capability of the client device by receiving a tunnel negotiation request sent by the client device. If the client device supports two or more embedding protocols, the server may select one of them as a protocol for subsequent establishment of an optimized connection with the proxy device. If there is only one type of embedding protocol supported by the client device, the server directly selects the embedding protocol as a protocol for subsequent establishment of an optimized connection with the proxy device. If the server does not recognize the tunneling capability of the client device, ie, it does not recognize the identity of the embedded protocol supported by the client device, it can respond to the error response. Client device.
  • the server specifies a proxy device, and uses an embedded protocol supported by the client device to establish an optimized connection that is connected to the specified proxy device.
  • the server can specify an agent device from the currently available proxy devices according to the policy to establish an optimized connection with the specified proxy device.
  • the said policy may be: comparing the burden of each available proxy device, specifying a proxy device with less burden, such as comparing the number of client devices connected to each proxy device, and specifying a proxy device in which fewer client devices are connected It is also possible to compare the distance of the proxy device relative to the server, such as a hop count, a difference from a standard value, specify the proxy device with the smallest difference; or compare the indices of the available proxy devices.
  • the index is weighted according to the burden of the proxy device and the distance from the server, specifying the proxy device with the largest or smallest index.
  • the server After the server specifies the proxy device, it sends a tunnel designation message to the specified proxy device.
  • the tunnel specifies the identifier of the embedded protocol supported by the client device. If the server selects one of the embedded protocols supported by the client device, the tunnel designation message includes only the identity of the selected embedded protocol.
  • the tunnel designation message may further include an identifier of a program requested by the client device to view.
  • the tunnel designation message may also include an identifier of the client device, such as an IP address of the client device, and the IP address of the client device may be obtained from the tunnel negotiation request.
  • the proxy device supports at least one of the embedded protocol in the tunnel designation message, the embedded protocol embedded protocol and the supported embedded protocol embedding protocol are used to establish an optimized connection with the server, if the tunnel designation message is present and the embedded protocol it supports If there is more than one, choose one of the embedded protocols to establish an optimized connection with the server.
  • the optimized connection can be: a WebSocket connection, or an RTSP connection, or an RTP connection.
  • the proxy device can send a tunnel specifying a successful response to the server to indicate that the optimized connection has been established successfully.
  • the server After the optimized connection establishment is completed, the server establishes and saves a first correspondence between the identifier of the optimized connection and the identifier of the program requested by the client device to view. If the first correspondence exists, the first correspondence is updated according to the identifier of the optimized connection and the identifier of the program requested by the client device, that is, if the identifier of the optimized connection corresponds to the identifier of the program requested by the client device If the relationship is not in the first correspondence, it is added to the first correspondence.
  • the first correspondence may be saved in the form of a correspondence table, which is referred to as a first correspondence table, as shown in Table 1, wherein a digital number such as 101 may be used as an identifier for optimizing the connection, and a channel number such as a central set may be used.
  • a digital number such as 101
  • a channel number such as a central set
  • the identifier of the program requested to be viewed by the client device may also be the frequency 57.75 MHz corresponding to the frequency of the CCTV 1 as the identifier of the program to be viewed.
  • the proxy device may also establish and save the identifier of the optimized connection and request the viewing by the client device.
  • the correspondence between the identifiers of the programs is called the second correspondence, and may also be the form of the correspondence table, as shown in FIG. 1 . If the second correspondence exists, the second correspondence is updated according to the identifier of the optimized connection and the identifier of the program requested by the client device included in the tunnel designation message, that is, if the identifier of the optimized connection and the client device request to view The correspondence of the identifiers of the programs is not in the second correspondence, and is added to the second correspondence.
  • the optimized connection between the proxy device and the server has a one-to-one correspondence with the program requested by the client device.
  • the server may query whether the optimized connection of the program already exists in the saved first correspondence, and if it does not exist, indicating that the optimized connection of the program has not been established, the server and the proxy device are Establishing an optimized connection for the program; if an optimized connection to the program already exists, the server and the proxy device may no longer establish a new optimized connection, but instead employ an established optimized connection of the program.
  • the server may also not carry out the query, but the identifier of the program is carried in the tunnel designation message and sent to the proxy device, and the proxy device queries whether the optimized connection of the program already exists in the saved second correspondence, if not, the proxy device An optimized connection to the program is established with the server; if it already exists, the proxy device and the server can no longer establish a new optimized connection, but instead utilize the established optimized connection of the program.
  • one program may correspond to more than one optimized connection.
  • the program CCTV 6 corresponds to two optimized connections 103 and 104.
  • each optimized connection can only correspond to one program.
  • the server or proxy device may also store the identity of the client device, such as an IP address, in its first or second correspondence, as shown in Table 2.
  • the IP address of the client device can be obtained from the tunnel negotiation request, for example, from the source address field of the tunnel negotiation request. In this way, it is also possible to determine whether the burden of optimizing the connection is too heavy, as described above, and determine whether the number of client devices corresponding to the optimized connection reaches a threshold.
  • the proxy device specified by the server does not support the embedded protocol selected by the server, the proxy device sends an error response to the server.
  • the server can re-designate a new proxy device to establish an optimized connection with the new proxy device.
  • the server can also reject the client's tunnel negotiation request, that is, send a tunnel negotiation failure message to the client. device.
  • the server After the server successfully establishes an optimized connection with the specified proxy device, the server sends the identifier of the specified proxy device to the client device to instruct the client device to send a data request for requesting program data to the designated proxy device. Data is requested from the server through the proxy device.
  • the server can also send the identity of the optimized connection to the client device.
  • the server may send the identifier of the specified proxy device to the client device in a tunnel negotiation success response. After the client device receives the identity of the proxy device, it can send a data request to the proxy device to request program data.
  • the server receives, by the proxy device, a data request from the client device, and generates response data based on the embedded protocol, and sends the response data to the proxy device by using the optimized connection.
  • the proxy device uses the HTTP protocol to externally encapsulate the response data and then sends the response data to the client device.
  • the data request is an HTTP request
  • the proxy device establishes an HTTP connection with the client device based on the data request.
  • the client device After the client device obtains the identity of the proxy device sent by the server, it can send a data request for requesting program data to the proxy device.
  • the data request includes an identifier of a program requested by the client device and an identifier of the client.
  • the server sends the identifier of the optimized connection to the client device
  • the data request may also include the identifier of the optimized connection and the identifier of the client, or the identifier of the program requested by the client device, the identifier of the optimized connection, and the client. The identity of the end.
  • a third correspondence is established on the proxy device.
  • the third correspondence may also be saved in the form of a correspondence table, which is referred to as a third correspondence table, as shown in Table 3.
  • the third correspondence corresponds to at least the correspondence between the identifier of the optimized connection and the identifier of the client device.
  • the proxy device can establish a third correspondence according to the tunnel designation message or the data request. For example, if the identifier of the client device is included in the tunnel designation message, after receiving the tunnel designation message sent by the server, the proxy device establishes or utilizes the identifier of the client device according to the tunnel designation message according to the tunnel designation message.
  • the identifier of the optimized connection establishes a third correspondence.
  • the proxy device After receiving the data request, the proxy device establishes a third correspondence according to the identifier of the client device in the data request and the identifier of the optimized connection. If the third correspondence is already existing, the third correspondence is updated according to the identifier of the optimized connection and the identifier of the client device, that is, if the correspondence between the identifier of the optimized connection and the identifier of the client device is not in the third correspondence, Then add it to the third correspondence.
  • the third correspondence may also include an identifier of the program, which is saved in the form of a third correspondence table.
  • the third correspondence is shown in Table 4.
  • the proxy device may establish a third correspondence according to the tunnel designation message or the data request, or establish a third correspondence including the identifier of the program according to the tunnel designation message and the data request. For example, if the tunnel designation message includes the identifier of the program requested by the client device and the identifier of the client device, after receiving the tunnel designation message sent by the server, the proxy device requests the client device according to the tunnel designation message.
  • the identifier of the program being watched, the identifier of the client device, and the identifier of the optimized connection established or utilized according to the tunnel designation message establish a third correspondence.
  • the proxy device after receiving the data request, the proxy device optimizes the connection according to the identifier of the program in the data request.
  • the identifier of the client establishes a third correspondence with the identifier of the client.
  • the proxy device may obtain the correspondence between the identifier of the program and the identifier of the optimized connection from the tunnel designation message, obtain the correspondence between the identifier of the program and the identifier of the client device from the data request, or optimize the identifier of the connection and the identifier of the client device. Correspondence relationship, thereby establishing a third correspondence.
  • the corresponding relationship between the identifier of the client device and the identifier of the optimized connection may be obtained from the tunnel designation message, and the correspondence between the identifier of the program and the identifier of the client device is obtained from the data request, thereby establishing a third correspondence. If the second correspondence and the third correspondence are both established according to the tunnel designation message, the content of the second correspondence and the third correspondence may be the same, or may be the same correspondence.
  • the proxy device may directly forward the data request to the server. If the proxy device has the aggregation function, the second data request sent by the multiple client devices may be aggregated into one first data. The request is sent to the server.
  • the aggregation function may be a multiplexing function defined by a real-time streaming protocol, and may specifically be to package multiple second data requests for requesting different programs into one first data request, or to view multiple requests.
  • the second data request of the same program is suppressed into a first data request. The suppression means that only one is retained. The second data request ignores other requests for the second data to view the same program, and the reserved second data request is used as the first data request.
  • the server generates response data of the program according to the identifier of the program included in the received data request, and obtains an optimized connection corresponding to the program according to the first correspondence, and sends the response data of the program to the proxy through the optimized connection corresponding to the program. device. If the data request received by the server includes the identifiers of the plurality of programs, the server generates multiple response data, that is, generates one response data for each program; then the server queries the first correspondence to obtain an optimized connection for each program, and Response data for different programs is sent to the proxy device via their respective optimized connections.
  • the proxy device After receiving the response data sent by the server through the optimized connection, the proxy device needs to use the HTTP protocol to encapsulate the response data before sending the encapsulated response data to the client device through the HTTP connection. Specifically, after receiving the response data sent by the server through the optimized connection, for example, the proxy device, the proxy device performs external encapsulation on the response data by using the HTTP protocol, and then queries the third corresponding relationship to obtain the client device corresponding to the optimized connection 101. The identifier, the encapsulated response data is sent to the client device obtained by the query; if the query is that the corresponding client device has multiple, the encapsulated response data is copied into the number according to the corresponding client device. The copies are sent to the corresponding multiple client devices.
  • the data received by the client device will be double-encapsulated with the embedded protocol as the inner layer encapsulation protocol and the HTTP protocol as the outer encapsulation protocol.
  • the inner embedding protocol is an embedded protocol supported by the client. Thus, the client device can parse the received data and watch the program normally.
  • the proxy device is specified by the server, and when the designated proxy device fails, the server can change the designated proxy device, and establish an optimized connection with the changed proxy device.
  • the client performs data interaction, so as to ensure that the data transmission between the client and the server is not interrupted; on the other hand, an optimized connection is established between the server and the proxy device by using an embedded protocol supported by the client, and the optimized connection is transmitted through the connection.
  • the data request sent by the client device through the proxy device and the response data returned by the server may have better transmission efficiency than the HTTP connection transmission data in the prior art, thereby reducing the pressure on the server, especially in the live broadcast scenario. User requests pressure on the server.
  • the proxy device has an aggregation function, by aggregating multiple data requests into one, the traffic bandwidth between the proxy device and the server can be further reduced, resources are saved, and the burden on the server is reduced. The steps to connect.
  • the client device may send a disconnect request to the proxy device to inform the proxy device that the program has stopped watching, the disconnect request includes an identifier of the program that the client device stops watching, and the client device Logo.
  • the client device can also notify the proxy device not to send a disconnect request when stopping watching the program, and the proxy device needs to use a preset mechanism, such as a timeout mechanism, to sense whether the client device has stopped watching the program.
  • a preset mechanism such as a timeout mechanism
  • the proxy device may also know the server after updating the second correspondence saved by the server, so that the server updates the first correspondence saved by itself, and stops watching the program. The identity of the client device is removed from the first correspondence.
  • the optimized connection may be removed.
  • the operation of tearing down the connection can be initiated by the proxy device. If the first correspondence established by the server holds the client identifier, the operation of tearing down the connection may also be initiated by the server.
  • an embodiment of the present invention provides a data transmission method, including:
  • the proxy device forwards the received data request sent by the client device to the server.
  • the proxy device and the server have established an optimized connection in advance, and the optimized connection is established by using an embedded protocol supported by the client device, and the embedded protocol is a protocol with better transmission efficiency than HTTP, and specifically may be a WebSocket protocol or Multicast protocol.
  • the steps for the proxy device and the server to establish an optimized connection may include:
  • the proxy device receives the tunnel designation message sent by the server, where the tunnel designation message carries the embedded protocol supported by the client device and the identifier of the program requested by the client device.
  • the proxy device can send a tunnel specifying a successful response to the server to indicate that the optimized connection has been established successfully.
  • the proxy device may establish and save a second correspondence, where the second correspondence includes at least: a correspondence between the program requested by the client device and the optimized connection.
  • the second correspondence is updated according to the identifier of the optimized connection and the identifier of the program requested by the client device included in the tunnel designation message, that is, if the identifier of the optimized connection and the client device request to view
  • the correspondence of the identifiers of the programs is not in the second correspondence, and is added to the second correspondence.
  • the second correspondence may specifically be in the form of a correspondence table, as shown in FIG. 1 .
  • the proxy device may query whether the optimized connection of the program already exists in the second correspondence relationship before establishing the optimized connection with the server. If not, it indicates that the optimized connection of the program has not been established yet, and the proxy device and the proxy device The server establishes an optimized connection for the program. If the query finds that an optimized connection for the program already exists, the proxy device and the server may no longer establish a new optimized connection, but instead utilize the established optimized connection of the program.
  • the server sends the identifier of the proxy device to the client device to instruct the client device to send a data request for requesting program data to the designated proxy device.
  • the proxy device may directly forward the data request to the server.
  • the proxy device has the aggregation function, the second data request sent by the multiple client devices may be aggregated into one first data.
  • the request is sent to the server.
  • the aggregation function may be a multiplexing function defined by a real-time streaming protocol, and may specifically be to package multiple second data requests for requesting different programs into one first data request, or to view multiple requests.
  • the second data request of the same program is suppressed into a first data request.
  • the suppression means that only one second data request is reserved, and other second data requests for viewing the same program are ignored, and the retained second data request is used as the first data request.
  • the third correspondence may also be established and saved.
  • the third correspondence may also be saved in the form of a correspondence table, which is referred to as a third correspondence table, as shown in Table 3.
  • the third correspondence corresponds to at least the correspondence between the identifier of the optimized connection and the identifier of the client device. If the third correspondence exists, the third correspondence is updated according to the identifier of the optimized connection and the identifier of the client device, that is, if the identifier of the optimized connection and the identifier of the client device are If the relationship is not in the third correspondence, it is added to the third correspondence.
  • the proxy device receives response data sent by the server through an established optimized connection, where the optimized connection is established by the proxy device and the server using an embedded protocol supported by the client device, and the response is The data is based on the response data of the embedded protocol.
  • the proxy device receives the response data sent by the server.
  • the response data is generated by the server based on the identification of the program included in the data request, and a response data is generated for each program.
  • the server After the server generates the response data, the optimized connection of each program is obtained by querying the first correspondence, and the response data of the different programs is sent to the proxy device through the corresponding optimized connection.
  • the optimized connection is established by the proxy device and the server using an embedded protocol supported by the client device.
  • the response data is based on response data of the embedded protocol, i.e., response data using the embedded protocol.
  • the proxy device performs outer layer encapsulation on the response data by using a hypertext transfer protocol, and sends the response data to the client device.
  • the proxy device After receiving the response data sent by the server through the optimized connection, the proxy device needs to use the HTTP protocol to encapsulate the response data before sending the encapsulated response data to the client device through the HTTP connection. Specifically, after receiving the response data sent by the server through the optimized connection, the proxy device may query the client device corresponding to the optimized connection from the saved third correspondence, and send the response data of the outer package by using HTTP. Queryed client device.
  • the data received by the client device will be double-encapsulated with the embedded protocol as the inner layer encapsulation protocol and the HTTP protocol as the outer encapsulation protocol.
  • the inner embedding protocol is an embedded protocol supported by the client. Thus, the client device can parse the received data and watch the program normally.
  • the data transmission method provided by the example of the present invention establishes an optimized connection between the server and the proxy device by using an embedded protocol supported by the client, and transmits the data request sent by the client device through the proxy device and the server returns through the optimized connection.
  • the response data can transmit data with respect to the HTTP connection in the prior art, and can have better transmission efficiency, thereby reducing the pressure on the server, especially the concurrent user requesting pressure on the server in the live broadcast scenario.
  • the proxy device has an aggregation function, by aggregating multiple data requests into one, the traffic bandwidth between the proxy device and the server can be further reduced, resources are saved, and the burden on the server is reduced.
  • the device involved includes three client devices 301, 302, and 303, a proxy device 304 without tunnel function, and a proxy device 305 having a tunnel encapsulation function.
  • Client devices 301, 302, and 303 support the same embedding protocol, such as RTP, and may be three IE (Internet Explorer) client devices that each have an embedded protocol plug-in installed.
  • the proxy device 304 has no tunnel encapsulation function and only provides a forwarding function as a general proxy.
  • the proxy device 305 has a tunnel encapsulation function and also has the function of aggregating data requests sent by the client device, and can aggregate data requests sent by multiple client devices into one.
  • Server 306 can be a web server.
  • the client devices 301 and 302 both initiate a tunnel negotiation request to the server 306, and the tunnel negotiation request sent by each client device carries the identifier of the embedded protocol supported by the client device and the identifier of the program requested by the client device. It can also include the identity of the client device.
  • the tunnel negotiation request passes through the proxy device 304 and is forwarded to the server 306.
  • the server 306 identifies the embedded protocol supported by the client device. If the server 306 does not recognize the embedded protocol supported by the client devices 301 and 302, an error response is sent to the client devices 301 and 302 indicating that the client device tunnel negotiation was unsuccessful. If the server 306 is capable of supporting the identified embedding protocol, an embedding protocol is selected therefrom to establish an optimized connection with the designated proxy device using the selected embedding protocol.
  • the proxy device 305 having the tunnel function is specified according to the predetermined policy, and the tunnel designation message is sent to the proxy device 305.
  • the tunnel designation message includes an identifier of the selected protocol, an identifier of the program requested to be viewed, and may also include an identifier of the client device.
  • the proxy device 305 After receiving the tunnel designation message, the proxy device 305 first determines whether the embedded protocol selected by the server is supported. If not, the proxy device 305 sends an error response to the server 306, and after receiving the error response, the server 306 also sends the error to the client device 301.
  • the 302 issues an error response indicating that the tunnel negotiation was unsuccessful; if the proxy device 305 supports the embedded protocol selected by the server, the proxy device 305 and the server 306 employ the embedded protocol to establish an optimized connection. Then, the server and the proxy device respectively establish and save the corresponding relationship between the optimized connection and the program requested by the client devices 301 and 302.
  • the corresponding relationship established by the server is referred to as a first correspondence, and the corresponding relationship established by the proxy device is called The second correspondence.
  • the proxy device 305 sends a tunnel designation success response to the server 306 indicating that the tunnel negotiation and establishment between the proxy device 305 and the server 306 was successful.
  • the server 306 After receiving the tunnel designation success response sent by the proxy device 305, the server 306 sends the identifier of the proxy device 305 to the client devices 301 and 302 to notify the client devices 301 and 302 to send the data request to the proxy device 305. Wherein, the server may carry the identifier of the proxy device 305 in the tunnel association The quotient success response is sent to client devices 301 and 302. At this point, the tunnel negotiation is successful.
  • Client devices 301 and 302 concurrently send data requests, such as data transfer requests, to proxy device 305.
  • the proxy device 305 aggregates the received multiple data requests into one, such as a bulk data req, forwarded to the server.
  • the proxy device 305 also establishes a third correspondence, which includes the correspondence between the client device and the optimized connection.
  • the server 106 responds to the data request sent by the proxy device, generates response data for each program, and connects the response data for each program to the proxy device 305 through the optimization of each program.
  • the client device corresponding to the optimized connection is 301 and 302 from the third correspondence, and then the encapsulated response data is copied into two copies and sent to the client respectively.
  • the server 306 After receiving the tunnel negotiation request, the server 306 also selects the same embedded protocol, specifies the proxy device 305, and then sends a tunnel designation message to the proxy device 305. After receiving the tunnel designation message, the proxy device 305 detects that the optimized connection corresponding to the program requested by the client device 303 has been established from the second corresponding relationship, and does not need to establish a new multicast connection, and responds to the server 306 with the connection channel update message. After receiving the connection channel update message, the server 306 sends a tunnel negotiation success response to the client device 303. After receiving the tunnel negotiation success response, the client device 303 sends a data request to the proxy device 305 to obtain the data of the program requested to be viewed. The proxy device updates the third correspondence and adds the identity of the client device 303.
  • a disconnection req is sent to the proxy device 305, which carries information such as the identifier of the program and the identifier of the client device; of course, the client device 301 stops watching the program.
  • the proxy device 305 may also be not notified.
  • the proxy device 305 senses whether the client device 301 has stopped watching the program through a preset mechanism (such as timeout or the like). After the proxy device 305 knows that the client device 301 has stopped watching the program, it updates its saved third correspondence, and can send a connection channel update message to the server 306, notifying the server that the client device is offline, so that the server wants the client.
  • the end device does some other services, such as statistics.
  • server 306 Upon receipt of the connection channel update message, server 306 responds to proxy device 305 with a connection channel update response. If the client device 301 issues a disconnect request, the proxy device 305 issues a disconnection ack to the client device 301 after updating its saved third correspondence.
  • the client device corresponding to an optimized connection is all When the department stops watching the corresponding program, the optimized connection needs to be dismantled to release resources. This teardown operation may be initiated by proxy device 305 or may be initiated by server 306.
  • an embodiment of the present invention provides a server, including:
  • the obtaining module 410 is configured to obtain an embedded protocol supported by the client device.
  • connection establishing module 420 configured to specify a proxy device, and establish an optimized connection connected to the proxy device by using an embedded protocol supported by the client device;
  • the receiving module 430 is configured to receive, by the proxy device, a data request from the client device.
  • the response module 440 is configured to generate response data based on the embedded protocol, and send the response data to the proxy device by using the optimized connection, so that the proxy device performs the response data by using a hypertext transfer protocol.
  • the layer is encapsulated and sent to the client device.
  • the acquiring module 410 is specifically configured to receive a tunnel negotiation request sent by the client device, where the tunnel negotiation request includes an identifier of an embedded protocol supported by the client device and a program requested by the client device.
  • the embedded protocol includes a WebSocket protocol and/or a multicast protocol.
  • the server may further include: a relationship establishing module, configured to establish and save a first correspondence after the connection establishing module successfully establishes an optimized connection connected to the proxy device, where the first correspondence is
  • the method at least includes: a correspondence between the program requested by the client device and the optimized connection.
  • the response module 440 may be configured to generate response data of the program according to the identifier of the program included in the data request, and obtain an optimized connection corresponding to the program according to the first correspondence relationship, The response data of the program is sent to the proxy device via an optimized connection corresponding to the program.
  • the server may further include: a querying module, configured to query whether an optimized connection of the program already exists in the first correspondence; if not, instructing the connection establishing module 420 to establish a connection to the proxy An optimized connection of the device; if it already exists, it is determined to adopt the established optimized connection.
  • a querying module configured to query whether an optimized connection of the program already exists in the first correspondence; if not, instructing the connection establishing module 420 to establish a connection to the proxy An optimized connection of the device; if it already exists, it is determined to adopt the established optimized connection.
  • connection establishing module 420 is specifically configured to send a tunnel designation message to the proxy device, where the tunnel designation message carries an embedded protocol supported by the client device, so as to Establishing an optimized connection connected to the proxy device by using the embedded protocol, after the optimized connection is successfully established, the server sends the identifier of the proxy device to the client device to indicate that the client device is to be used A data request for requesting program data is sent to the proxy device.
  • the server may specifically be a computer, and includes: a central processing unit (CPU), a memory, an external connection device, and the like.
  • the server provided by the embodiment of the present invention, on the one hand, when the designated proxy device fails, the server may change the designated proxy device, establish an optimized connection with the changed proxy device, and perform data interaction with the client, thereby securing the client and the client.
  • the data transmission between the servers is not interrupted; on the other hand, an optimized connection can be established with the proxy device using the embedded protocol supported by the client, and the data request sent by the client device through the proxy device and the response returned by the server are transmitted through the optimized connection.
  • the data can have better transmission efficiency, thereby reducing the pressure on the server, especially the concurrent user requesting pressure on the server in the live broadcast scenario.
  • an embodiment of the present invention provides a proxy device, where the proxy device can be a server, including:
  • the request forwarding module 510 is configured to forward the data request sent by the received client device to the server;
  • a data receiving module 520 configured to receive response data sent by the server through an established optimized connection, where the optimized connection is established by the proxy device and the server using an embedded protocol supported by the client device, The response data is based on response data of the embedded protocol;
  • the data sending module 530 is configured to send the response data to the client device by using a hypertext transfer protocol.
  • proxy device may further include:
  • connection establishing module configured to receive a tunnel designation message sent by the server, where the tunnel designation message carries an identifier of an embedded protocol supported by the client device and an identifier of a program requested by the client device, An embedded protocol supported by the client device establishes an optimized connection with the server.
  • a relationship establishing module configured to: after the optimized connection is successfully established, update a second correspondence according to the optimized connection and the tunnel designation message, where the second correspondence includes: the client device requests to view The correspondence between the program and the optimized connection.
  • the proxy device may further include:
  • a querying module configured to query whether the optimized connection corresponding to the program already exists in the second corresponding relationship; if not, instructing the connection establishing module to establish with the server by using an embedded protocol supported by the client device Optimize the connection; if it already exists, then determine to use the existing optimized connection.
  • the relationship establishing module may be further configured to: before the request forwarding module 610 forwards the received data request sent by the client device to the server, establishing and saving a third correspondence, the third correspondence
  • the relationship includes at least: the correspondence between the client device and the optimized connection.
  • the data sending module 530 may be specifically configured to query, from the third correspondence, the client device corresponding to the optimized connection; and the response data that is encapsulated by using a hypertext transfer protocol. Sended to the client device that the query is sent to.
  • the proxy device may specifically be a computer, and includes: a central processing unit (CPU), a memory, an external connection device, and the like.
  • CPU central processing unit
  • memory volatile and non-volatile memory
  • external connection device external connection device
  • the proxy device provided by the embodiment of the present invention may establish an optimized connection with the server using an embedded protocol supported by the client, and transmit the data request sent by the client device through the proxy device and the response data returned by the server through the optimized connection, relative to the existing
  • the HTTP connection in the technology transmits data, which can have better transmission efficiency, and thus can alleviate the pressure on the server, especially the pressure that the concurrent users request to the server in the live broadcast scenario.
  • the storage medium may include: a read only memory, a random read memory, a magnetic disk or an optical disk, and the like.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

Dans ses modes de réalisation, la présente invention se rapporte à un procédé pour la transmission de données. Le procédé selon l'invention comprend les étapes suivantes : un serveur obtient le protocole embarqué pris en charge par un dispositif client ; le serveur désigne un dispositif proxy et établit, au moyen du protocole embarqué pris en charge par le dispositif client, une connexion optimisée en liaison avec le dispositif proxy ; le serveur reçoit une demande de transmission de données qui est envoyée depuis le dispositif client et qui est transférée par le dispositif proxy, il génère des données de réponse sur la base du protocole embarqué, et il transmet les données de réponse au dispositif proxy via la connexion optimisée. De cette manière, le dispositif proxy peut transmettre, au dispositif client, les données de réponse, après qu'une encapsulation extérieure a été réalisée, au moyen du protocole de transfert hypertexte (HTTP, HyperText Transfer Protocol). Dans ses modes de réalisation, la présente invention se rapporte d'autre part à un serveur et à un dispositif proxy correspondants. Dans la solution technique de la présente invention, quand le dispositif proxy désigné tombe en panne, le serveur peut remplacer le dispositif proxy désigné ; la connexion optimisée, qui a une plus grande efficacité de transmission qu'une connexion HTTP, est établie entre le serveur et le dispositif proxy. De cette manière, la pression sur le serveur peut être réduite, en particulier, la pression exercée sur le serveur par des demandes d'utilisateur concurrentes dans la scène en direct.
PCT/CN2011/076176 2011-06-23 2011-06-23 Procédé et dispositif pour la transmission de données WO2012159287A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201180000950.9A CN102439946B (zh) 2011-06-23 2011-06-23 数据传输方法和设备
PCT/CN2011/076176 WO2012159287A1 (fr) 2011-06-23 2011-06-23 Procédé et dispositif pour la transmission de données

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/076176 WO2012159287A1 (fr) 2011-06-23 2011-06-23 Procédé et dispositif pour la transmission de données

Publications (1)

Publication Number Publication Date
WO2012159287A1 true WO2012159287A1 (fr) 2012-11-29

Family

ID=45986277

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2011/076176 WO2012159287A1 (fr) 2011-06-23 2011-06-23 Procédé et dispositif pour la transmission de données

Country Status (2)

Country Link
CN (1) CN102439946B (fr)
WO (1) WO2012159287A1 (fr)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103841086B (zh) * 2012-11-23 2018-03-27 中兴通讯股份有限公司 一种数据传输方法、装置及终端
CN103001800B (zh) * 2012-11-28 2016-03-30 华为技术有限公司 软件实体自动发现方法、服务节点及设备
CN109525627B (zh) * 2017-09-20 2022-02-25 腾讯科技(上海)有限公司 数据传输方法、装置、存储介质及电子装置
CN110247926B (zh) * 2019-06-28 2022-04-22 北京奇艺世纪科技有限公司 一种交互方法和系统
CN113946141B (zh) * 2020-07-16 2022-09-06 卡奥斯工业智能研究院(青岛)有限公司 一种生产示范线的网络系统及控制方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1408089A (zh) * 1999-09-24 2003-04-02 阿坎巴公司 用于管理客户与服务器之间的连接的系统和方法
US20050076126A1 (en) * 2003-10-06 2005-04-07 International Business Machines Corporation Tunneling non-HTTP traffic through a reverse proxy
CN101155053A (zh) * 2006-09-25 2008-04-02 华为技术有限公司 一种组播/广播业务实现方法和系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1408089A (zh) * 1999-09-24 2003-04-02 阿坎巴公司 用于管理客户与服务器之间的连接的系统和方法
US20050076126A1 (en) * 2003-10-06 2005-04-07 International Business Machines Corporation Tunneling non-HTTP traffic through a reverse proxy
CN101155053A (zh) * 2006-09-25 2008-04-02 华为技术有限公司 一种组播/广播业务实现方法和系统

Also Published As

Publication number Publication date
CN102439946A (zh) 2012-05-02
CN102439946B (zh) 2014-05-21

Similar Documents

Publication Publication Date Title
JP2015172954A (ja) プル・モード及びプッシュ・モードを組み合わせるシステム及び方法
KR102132266B1 (ko) 데이터 스트리밍에 대한 보조의 노드 타입 기반 제어
US11051078B2 (en) Video distribution method and device
WO2010124550A1 (fr) Procédé et dispositif de distribution de contenu et système de réseau de distribution de contenu
WO2008101444A1 (fr) Système multimédia en flux, dispositif de transmission de signalisation et procédé d'envoi de multimédia en flux
WO2009039745A1 (fr) Procédé, appareil et système de traitement de données
WO2012159287A1 (fr) Procédé et dispositif pour la transmission de données
WO2009021460A1 (fr) Procédé de rapport d'un résultat de mise en œuvre de politique, système de communication par réseau et équipement
WO2015027429A1 (fr) Système, dispositif et procédé de transmission d'agrégation, serveur réseau et équipement utilisateur
KR102070149B1 (ko) 통신 네트워크에서 컨텐츠 전달 방법 및 이를 위한 장치
JP2020536459A (ja) 上りリンクストリーミング向けのネットワーク支援
WO2012083841A1 (fr) Procédé, terminal et système pour changer de canal
WO2011144173A1 (fr) Procédé, appareil et système de traitement de contenus multimédias
JP7237117B2 (ja) 端末装置、データ処理装置および方法
WO2019100912A1 (fr) Procédé de distribution de données et serveur de distribution
WO2014206263A1 (fr) Procédé, système et station de transmission de paquets
WO2009015539A1 (fr) Procédé de commande multidiffusion pour service de demande de contenu multimédia et son système
WO2024093284A1 (fr) Procédé et appareil de transmission de données, et dispositif
KR101469310B1 (ko) 서비스 오버레이 네트워크에서 종단간 QoS 보장형 콘텐츠 전달 방법 및 그 시스템
WO2012163016A1 (fr) Procédé, serveur multimédia et dispositif formant terminal pour identifier le type d'une demande de service
US8095651B2 (en) Delayable events in home network
WO2011020380A1 (fr) SYSTÈME DE SERVEUR DE MÉDIA EN TRANSMISSION CONTINUE ET PROCÉDÉ DE MISE EN œUVRE APPARENTÉ, DISPOSITIF ET SYSTÈME DE TÉLÉVISION SOUS PROTOCOLE INTERNET (IPTV)
US20140161125A1 (en) Method, duplication point device, and system for data flow reuse transmission
WO2010025635A1 (fr) Procédé de commutation de lecture, serveur multimédia, terminal utilisateur et leur système
WO2015149351A1 (fr) Serveur de surveillance, serveur d'analyse, dispositif de requête et procédé de sélection de nœud

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201180000950.9

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11866318

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11866318

Country of ref document: EP

Kind code of ref document: A1