WO2024032189A1 - Data transmission method and apparatus - Google Patents

Data transmission method and apparatus Download PDF

Info

Publication number
WO2024032189A1
WO2024032189A1 PCT/CN2023/103113 CN2023103113W WO2024032189A1 WO 2024032189 A1 WO2024032189 A1 WO 2024032189A1 CN 2023103113 W CN2023103113 W CN 2023103113W WO 2024032189 A1 WO2024032189 A1 WO 2024032189A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
source station
list
proxy device
terminals
Prior art date
Application number
PCT/CN2023/103113
Other languages
French (fr)
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 华为技术有限公司
Publication of WO2024032189A1 publication Critical patent/WO2024032189A1/en

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/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/566Grouping or aggregating service requests, e.g. for unified processing

Definitions

  • This application relates to the field of communication technology, and in particular to data transmission methods and devices.
  • Real-time communication can not only realize the transmission of real-time data between one terminal and another terminal, but also realize the transmission of real-time data between one terminal and multiple terminals in scenarios such as live broadcast business, online education business and online conference business.
  • the real-time data collected by the live broadcast terminal is sent to the data source station, and then the data source station transmits the received real-time data to multiple audience terminals.
  • the data source station refers to the data center that provides large-scale, high-quality, safe and reliable Internet services for enterprises, media and websites, such as Internet data center (IDC).
  • IDC Internet data center
  • the data source station when the data source station needs to send real-time data to multiple audience terminals, the data source station sends real-time data to each audience terminal one by one based on the transmission control protocol (TCP), and transmits the same real-time data multiple times. , complete the transmission of real-time data from the live broadcast terminal to multiple audience terminals.
  • TCP transmission control protocol
  • a data transmission method includes: a proxy device receiving encoded first data sent by a data source station, where the first data carries a first identifier; the proxy device A piece of data is copied to obtain N pieces of first data, wherein the proxy device is connected to multiple terminals, and N terminals among the plurality of terminals request the first data based on the first identification, and the N is an integer greater than or equal to 2; the proxy device sends the first data to each of the N terminals respectively.
  • the data transmission method provided by this application copies the first data through a proxy device. Even if there are multiple terminals requesting to obtain the first data, there is no need for the data source station to send the first data multiple times.
  • the terminal sends the copied first data, which reduces the number of times the data source station transmits the first data, alleviates the consumption of transmission bandwidth of the data source station, and thereby reduces delays and freezes caused by services corresponding to the first data.
  • the proxy device before the proxy device copies the first data, it further includes: receiving data acquisition requests sent by at least two terminals among the plurality of terminals, the data acquisition request carrying The first identifier; the N is obtained according to the number of data acquisition requests. Through the data acquisition request, the number of terminals that need to acquire the first data is determined, and the numerical size of N is obtained to avoid copying the first data that exceeds the demand and wasting unnecessary resources.
  • the proxy device before the proxy device copies the first data, it further includes: obtaining a data list, where the data list includes second identifiers of multiple groups of data, and one group of data is the same Collect the number uploaded by the terminal According to the data, one of the plurality of sets of data includes the first data; receiving a list acquisition request sent by at least two terminals among the plurality of terminals, and sending the request to at least two terminals among the plurality of terminals. The data list is sent, and the second identifier in the data list is used by the N terminals to determine the first identifier.
  • the obtaining the data list includes: receiving the data list sent by the data source station, where the data list is obtained by the data source station based on the first data, and the The first time when the data source station sends the data list is earlier than the second time when the data source station sends the first data.
  • the method further includes: initiating a data transmission service for the data list based on the data list, and obtaining a first startup result of the data transmission service corresponding to the data list. , wherein the first startup result indicates successful startup; sending a data request to the data source station, where the data request is used to request the data source station to send the first data to the proxy device.
  • the first startup result indicates that the startup is successful, it indicates that the proxy device supports the data transmission service of the data list.
  • proxy devices that fail to start the data transmission service are filtered out to ensure the reliability of the data transmission service in the data list.
  • the obtaining the data list includes: generating the data list according to the received unencoded second data, where the second data is used to encode the first data.
  • the data list can be sent by the source station that receives the data, or can be generated by the proxy device based on the unencoded second data.
  • the method of obtaining the data list is not limited, and the flexibility is high.
  • the proxy device After receiving the unencoded second data, the proxy device transmits the unencoded second data to the data source station, and the data source station encodes the second data to obtain the first data.
  • the method further includes: the proxy device fails to copy the first data and sends a copy failure instruction to the data source station, The copy failure instruction is used to prompt the data source station to sequentially send the first data to the terminal requesting the first data.
  • a copy failure instruction is promptly fed back to the data source station to prompt the data source station to send the first data to the terminal requesting the first data, regardless of whether the proxy device successfully copies the first data. It is guaranteed that the terminal requesting the first data obtains the first data, which improves the reliability of data transmission and provides a high interactive experience.
  • the method before receiving the encoded first data sent by the data source station, the method further includes: receiving a data transmission request sent by the data source station, and the data transmission request is used to send the data to the data source station.
  • the proxy device calls the data transmission service; determines the calling result of the data transmission service corresponding to the data source station based on the data transmission request, and the calling result indicates that the data source station calls successfully; sends the data transmission service to the data source station.
  • the calling result is used to instruct the data source station to perform the operation of sending the first data.
  • the data transmission service of the proxy device is called through the data transmission request, so that the proxy device determines that the operations that need to be performed for the received first data are copying and forwarding, thereby ensuring reliable transmission of the data transmission.
  • the proxy device includes an application programming interface API, and the API is used by the data source station to call the data transmission service through the data transmission request.
  • the data source station can call the data transmission service through API, making the calling process more convenient.
  • the proxy device is an edge device.
  • the proxy device is an edge device configured close to the terminal and has a faster response to the terminal.
  • Edge devices include but are not limited to routers, routing switches, integrated access devices (IAD) or multiplexers.
  • proxy devices are ONT, OLT, etc.
  • the first data is data of a live broadcast service, data of an online education service, or data of an online conference service.
  • the method provided by this application does not limit the service type of the first data and is highly versatile.
  • the first identifier is an encoded identifier, or the first identifier is an unencoded identifier. logo.
  • a data transmission device is provided.
  • the device is applied to a proxy device.
  • the device includes: a receiving module configured to receive the encoded first data sent by the data source station.
  • the first data carries the first An identification;
  • a copy module used to copy the first data to obtain N pieces of first data, wherein the proxy device is connected to multiple terminals, and the N terminals among the multiple terminals are based on the first An identifier requests the first data, and N is an integer greater than or equal to 2;
  • a sending module is configured to send the first data to each of the N terminals respectively.
  • the receiving module is further configured to receive data acquisition requests sent by at least two terminals among the plurality of terminals, where the data acquisition requests carry the first identifier; according to the Number of data fetch requests to get the N.
  • the device further includes: an acquisition module, configured to acquire a data list, where the data list includes second identifiers of multiple groups of data, and one group of data is data uploaded by the same collection terminal, One of the multiple sets of data includes the first data; the receiving module is also configured to receive a list acquisition request sent by at least two terminals among the plurality of terminals; the sending module is also Used to send the data list to at least two terminals among the plurality of terminals, where the second identifier in the data list is used by the N terminals to determine the first identifier.
  • an acquisition module configured to acquire a data list, where the data list includes second identifiers of multiple groups of data, and one group of data is data uploaded by the same collection terminal, One of the multiple sets of data includes the first data
  • the receiving module is also configured to receive a list acquisition request sent by at least two terminals among the plurality of terminals
  • the sending module is also Used to send the data list to at least two terminals among the plurality of terminals, where the second identifier in
  • the acquisition module is configured to receive the data list sent by the data source station.
  • the data list is obtained by the data source station based on the first data.
  • the data The first time when the source station sends the data list is earlier than the second time when the data source station sends the first data.
  • the device further includes: a startup module, configured to start a data transmission service for the data list based on the data list, and obtain the first startup of the data transmission service corresponding to the data list.
  • a startup module configured to start a data transmission service for the data list based on the data list, and obtain the first startup of the data transmission service corresponding to the data list.
  • the first startup result indicates successful startup;
  • the sending module is also used to send a data request to the data source station, and the data request is used to request the data source station to send the data to the proxy device. the first data.
  • the acquisition module is configured to generate the data list according to the received unencoded second data, and the second data is used to encode the first data.
  • the sending module is also configured to send a copy failure instruction to the data source station if the proxy device fails to copy the first data, and the copy failure instruction is used to prompt all
  • the data source station sequentially sends the first data to the terminal requesting the first data.
  • the receiving module is also configured to receive a data transmission request sent by the data source station, where the data transmission request is used to call the data transmission service to the proxy device; based on the data The transmission request determines the calling result of the data transmission service corresponding to the data source station, and the calling result indicates that the data source station is successfully called; the sending module is also used to send the calling result to the data source station, The calling result is used to instruct the data source station to perform the operation of sending the first data.
  • the proxy device includes an application programming interface API, and the API is used by the data source station to call the data transmission service through the data transmission request.
  • the proxy device is an edge device.
  • the first data is data of a live broadcast service, data of an online education service, or data of an online conference service.
  • the first identifier is an encoded identifier, or the first identifier is an unencoded identifier.
  • a data transmission device in a third aspect, includes a memory and a processor; the memory stores At least one instruction is stored, and the at least one instruction is loaded and executed by the processor so that the data transmission device implements the data transmission method described in the first aspect.
  • a computer-readable storage medium is provided. At least one instruction is stored in the computer-readable storage medium, and the instruction is loaded and executed by a processor to implement the data transmission method described in the first aspect.
  • a computer program product includes a computer program/instruction, and the computer program/instruction is executed by a processor, so that the computer implements the data transmission method described in the first aspect.
  • a communication device which includes a transceiver, a memory, and a processor.
  • the transceiver, the memory and the processor communicate with each other through an internal connection path
  • the memory is used to store instructions
  • the processor is used to execute the instructions stored in the memory to control the transceiver to receive signals and control the transceiver to send signals.
  • the processor executes the instructions stored in the memory, the processor is caused to execute the method in the first aspect or any possible implementation of the first aspect.
  • processors there are one or more processors and one or more memories.
  • the memory may be integrated with the processor, or the memory may be provided separately from the processor.
  • the memory can be a non-transitory memory, such as a read-only memory (ROM), which can be integrated on the same chip as the processor, or can be set in different On the chip, this application does not limit the type of memory and the arrangement of the memory and the processor.
  • ROM read-only memory
  • a chip including a processor configured to call from a memory and run instructions stored in the memory, so that a communication device equipped with the chip executes the methods in the above aspects.
  • another chip including: an input interface, an output interface, a processor, and a memory.
  • the input interface, the output interface, the processor, and the memory are connected through an internal connection path.
  • the processing The processor is used to execute the code in the memory, and when the code is executed, the processor is used to execute the methods in the above aspects.
  • Figure 1 is a schematic diagram of an implementation environment provided by an embodiment of the present application.
  • Figure 2 is a schematic diagram of another implementation environment provided by the embodiment of the present application.
  • Figure 3 is a flow chart of a data transmission method provided by an embodiment of the present application.
  • Figure 4 is a schematic flow chart of data transmission provided by an embodiment of the present application.
  • Figure 5 is a flow chart of another data transmission method provided by an embodiment of the present application.
  • Figure 6 is a schematic structural diagram of a data transmission device provided by an embodiment of the present application.
  • Figure 7 is a schematic structural diagram of a network device provided by an embodiment of the present application.
  • Figure 8 is a schematic structural diagram of another network device provided by an embodiment of the present application.
  • the embodiment provides a data transmission method, which is applied in the data transmission process between the data source station and the terminal in real-time communication.
  • the implementation environment of the method can be seen in Figure 1, including the data source station 101, the proxy device 102 and the At least one terminal 103.
  • the proxy device 102 obtains the encoded first data from the data source station 101, copies the encoded first data, and sends the copied first data to the terminal 103 requesting the first data.
  • the data source station 101 is a network service platform.
  • the data source station 101 can receive the second data uploaded from the collection terminal or access the storage space to obtain the second data, and after obtaining the second data, encode the unencoded second data to obtain the first data.
  • the proxy device 102 is an edge device, and the edge device includes but is not limited to: router, routing switch, integrated access device (integrated access device, IAD) or multiplexer, etc.
  • the terminal 103 can be any electronic product capable of human-computer interaction, including but not limited to mobile phones, personal computers (personal computers, PCs), tablets, etc.
  • the proxy device 102 can establish communication connections with the data source station 101 and the terminal 103 respectively through wired or wireless networks.
  • FIG. 2 is a schematic diagram of another implementation environment provided by the embodiment of the present application, which shows multiple connection modes between the data source station 101, the proxy device 102, and the terminal 103.
  • the proxy device 102 may be other edge devices or optical network terminals (ONT) directly connected to the terminal 103.
  • the proxy device 102 may also be an optical line terminal (optical line terminal, OLT) indirectly connected to the terminal 103 through an ONT.
  • ONT optical line terminal
  • the embodiment of the present application provides a data transmission method.
  • the data transmission method can be based on the implementation environment shown in Figure 1.
  • the method can be executed by a proxy device.
  • the flow chart of the method is shown in Figure 3, including S301-S303.
  • the proxy device receives the encoded first data sent by the data source station, and the first data carries the first identifier.
  • the data source station is used to encode the unencoded second data to obtain a digital code suitable for storage and transmission, that is, the first data.
  • the data source station encodes and compresses the second data so that the data volume of the first data is smaller than the data volume of the second data, thereby improving subsequent transmission efficiency of the first data.
  • the above-mentioned encoding of the second data by the data source station is an example of a processing operation of the second data by the data source station.
  • the data source station can also perform other operations on the second data, such as recording, transcoding, etc.
  • the transmission process of the data obtained after the processing is similar to the transmission process of the first data, which will not be described in detail one by one.
  • the following is an example of the transmission process of the first data.
  • the first data encoded by the data source station is data of real-time services.
  • the first data includes but is not limited to data of live broadcast services, data of online education services, data of online conference services, etc. Since the data transmission processes of different real-time services are similar, the following uses the data of the live broadcast service as an example to illustrate the transmission process of the first data.
  • the data source station before sending the first data to the proxy device, the data source station also needs to obtain the unencoded second data. As for the way for the data source station to obtain the second data, it may be to receive the second data sent from the collection terminal.
  • the collection terminal is configured with a data collection device.
  • the data collection device is, for example, a video collection device used to collect video data or image data, such as a camera, a camera, etc.
  • an audio collection device such as a microphone, used to collect audio data.
  • the first object that initiates real-time communication can collect the second data through the data collection device configured on the collection terminal, and send the collected second data to the data source station in real time.
  • the first object to initiate real-time communication is the anchor who creates the live broadcast room.
  • the camera on the collection terminal records the video and sends the video stream to the data source station.
  • the data source station receives the video stream uploaded by the collection terminal. Get the second data.
  • the collection terminal can choose to send the collected data to the data source station as the second data.
  • the collection terminal can also choose to upload data obtained through other channels to the data source station as the second data.
  • the anchor records the performance video in advance and stores it in the storage space of the collection terminal.
  • the anchor triggers the video playback control provided in the live broadcast application installed and running on the collection terminal, and Select to play the performance video.
  • the collection terminal accesses the storage space and uploads the performance video as the second data to the data source station, and the data source station receives the performance video.
  • the data source station can also access the storage space and use the data stored in the storage space as uncoded second data.
  • the data source station receives the data scheduling instruction, accesses the storage space, obtains the data corresponding to the data scheduling instruction, and obtains unencoded second data.
  • the embodiment of the present application does not limit the sender of the data scheduling instruction. It may be a collection terminal or each terminal requesting the first data. In order to make the description clearer, the terminal connected to the agent device and requesting the first data will be referred to below. for the receiving terminal.
  • the process of obtaining the second data based on the data scheduling instruction will be explained.
  • the anchor needs to turn on the background music.
  • the collection terminal displays the music playlist based on the received music playback instructions.
  • the anchor selects the target music to be played in the music playlist, and the collection terminal sends the data scheduling instructions corresponding to the target music to the data source station based on the anchor's operation.
  • the data source station accesses the storage space to obtain the data to be played based on the received data scheduling instructions. target music, get the second data.
  • the above example illustrates the process of sending data scheduling instructions by the collection terminal.
  • the process of sending data scheduling instructions by the receiving terminal is as follows.
  • the receiving terminal corresponding to the collection terminal refers to the terminal used to watch the live broadcast room created by the collection terminal. Audiences who operate the receiving terminal to watch the live broadcast room and want to interact with the anchor will trigger the cake provided on the receiving terminal. Complimentary special effects controls.
  • the receiving terminal sends data scheduling instructions for the cake gifting special effects to the data source station based on the triggering of the cake gifting special effects control.
  • the data source station accesses the special effects display data stored in the storage space to obtain the cake based on the received data scheduling instructions for the cake gifting special effects.
  • the special effects display data corresponding to the special effects are given as a second data.
  • the storage space accessed by the data source station may be the storage space of the data source station or the storage space of other network devices that are communicatively connected to the data source station.
  • the storage space accessed by the data source station belongs to the storage space of the file source station.
  • the first data/second data can be data of any data type, including but not limited to video data, image data, voice data, game data, etc.
  • the embodiments of this application do not limit the encoding method of the second data by the data source station, including but not limited to transform coding, entropy coding or motion estimation. and motion compensation and other encoding methods.
  • the data source station can select any encoding method to encode the second data to obtain the encoded first data.
  • the first data obtained by encoding the second data by the data source station carries a first identifier, and the first identifier can distinguish the first data from other data.
  • the first identifier is used to indicate the source of the first data, which can be determined based on the source information of the second data.
  • the second data received by the data source station carries the source information of the second data.
  • the source information is, for example, the Internet protocol (internet protocol address, IP) address and media access control (media access control) of the collection terminal corresponding to the second data. , MAC) address.
  • IP Internet protocol
  • media access control media access control
  • the source information may also be the information of the live broadcast room where the terminal is located.
  • the embodiments of the present application do not limit the way in which the second data carries the source information of the second data.
  • the second data can carry the source information of the second data in the extension field of the second data, or it can also carry the source information of the second data through other fields of the second data. carried in the field. No matter how the second data carries the source information of the second data, since the first data is encoded based on the second data, the sources of the first data and the second data are consistent and can be determined based on the source information of the second data.
  • the first identifier of the first data is identifier of the first data.
  • the data source station when encoding the second data, can add additional source information as the first identifier on the basis of the second data, that is, the first identifier is an unencoded identifier, and the proxy device can directly extract it.
  • the first identifier in the first data For example, in the process of reading the first data, the proxy device can obtain the source of the first data indicated by the first identifier of the first data.
  • the data source station encodes the second data, it does not add additional source information on the basis of the second data, but the second data itself includes the source information of the second data.
  • the first identifier It is obtained by encoding the source information of the second data, that is, the first identifier is an encoded identifier. then the agent device receives the encoded After obtaining the first data, the first data needs to be decoded to obtain the second data carrying the source information through decoding, so as to obtain the source of the first data based on the second data.
  • the data source station can send the first data to the proxy device.
  • the proxy device since the data source station forwards the first data to the proxy device through unicast during the process of sending the first data to the receiving terminal through the proxy device. In the unicast forwarding scenario, the proxy device only forwards the received first data to the corresponding receiving terminal.
  • the embodiment of the present application also requires a proxy device to copy the first data.
  • the data source station when multiple receiving terminals obtain the same first data, there is no need for the data source station to send it repeatedly. The proxy device will copy the multiple third data.
  • One data is sent to the receiving terminal in sequence. Therefore, before sending the first data to the proxy device, the data source station also needs to schedule the data transmission service provided by the proxy device so that the proxy device uses the data transmission method provided by the embodiment of the present application to copy and forward the first data. operate.
  • the scheduling process includes: receiving a data transmission request sent by the data source station, the data transmission request is used to call the data transmission service to the proxy device; determining the calling result of the data transmission service corresponding to the data source station based on the data transmission request, and the calling result Indicates that the data source station is successfully called; sends the call result to the data source station, and the call result is used to instruct the data source station to perform the operation of sending the first data.
  • the data transmission request sent by the data source station is encapsulated with at least one piece of information to be matched, and the proxy device determines the matching result of each piece of information to be matched based on the information to be matched encapsulated in the data transmission request. Based on the matching results of each of the to-be-matched information in at least one of the to-be-matched information being matched successfully, it is determined that the calling result indicates that the calling is successful.
  • the proxy device determines whether it supports data transmission based on the data transmission protocol requested by the data source station. If the proxy device supports data transmission based on the data transmission protocol, it is determined that the matching result of the data transmission protocol is a successful match.
  • the data transmission protocol used by the data source station and the proxy device in the process of transmitting the first data is unified, the establishment of a transmission channel between the data source station and the proxy device is realized, and the subsequent transmission of the first data is performed based on the established transmission channel. operation.
  • the embodiments of this application do not limit the data transmission protocol involved in the process of transmitting the first data by the transmission device, including but not limited to hypertext transfer protocol over secure socket layer/hypertext transfer protocol, HTTPs/HTTP), transmission control protocol (transmission control protocol, TCP), etc.
  • the proxy device includes an application programming interface (API), which is used by the data source station to call the data transmission service through a data transmission request.
  • API application programming interface
  • the proxy device provides a subscription service framework, and the data source station can subscribe to the data transmission service provided by the proxy device by calling the API, so that the calling process of the data source station is more convenient and efficient.
  • the data source station can choose to start sending the data transfer request to the proxy device after receiving the unencoded second data.
  • the data source station can also choose to start sending the data transfer request to the proxy device after receiving the second data.
  • a data transfer request was sent to the proxy device. Take the live broadcast business as an example, since the peak period of live broadcast is 7:00-12:00 pm. Therefore, the data source station sends a data transmission request to the proxy device at 6:50 pm to realize the invocation of the data transmission service in advance.
  • the first data can be sent to the proxy device, thereby saving the time between receiving the second data and sending the first data, slowing down Solve the problem of video delay during live broadcast.
  • the data source station can send the first data to the proxy device.
  • the data source station sends the first data to the cloud center, from the cloud center to the edge domain, and then from the edge domain to the edge device located at the edge node, that is, the proxy device, so that the proxy device receives the first data.
  • cloud center, edge domain and edge node are edge computing
  • the cloud center is the management and control end of edge computing
  • the edge domain is used for data aggregation, storage and processing
  • the edge nodes are used for data collection and front-end intelligent processing.
  • the edge nodes where the proxy devices are located are different, the transmission paths through which the proxy devices receive the first data are also different.
  • the proxy device receives the first data sent from the edge domain.
  • the proxy device receives the first data sent from the edge node.
  • Figure 4 shows the transmission path of the ONT proxy device.
  • the ONT proxy device is connected to the OLT edge node.
  • the OLT edge node After the edge domain sends the first data to the OLT edge node, the OLT edge node forwards the first data to the ONT proxy device. , so that the ONT proxy device obtains the first data sent by the data source station, and performs operations related to the proxy device in S302-S303 based on the first data.
  • the data source station adopts a unicast transmission method when sending the first data to the proxy device.
  • the proxy device copies the first data to obtain N pieces of first data, where the proxy device is connected to multiple terminals, and N terminals among the multiple terminals request the first data based on the first identification, and N is greater than or equal to 2. integer.
  • the proxy device since the proxy device is connected to multiple terminals, and at least two of the multiple terminals request the same first data, that is, the data source station needs to send the same first data to at least two terminals through the same proxy device.
  • One data If the proxy device does not copy the first data, the data source station needs to send multiple first data to the proxy device, and end-to-end bandwidth redundancy occurs between the data source station and the proxy device.
  • the proxy device By triggering the proxy device to copy the first data, even if multiple terminals request to obtain the first data, the data source station only needs to send the first data to the proxy device once, reducing the number of times the data source station transmits the first data.
  • the data source station can transmit the first data once to ensure that the first data is transmitted through the proxy device.
  • the terminal that requested the first data receives the first data.
  • the proxy device can flexibly trigger the copy operation of the first data, which not only reduces the bandwidth consumption of the data source station, but also avoids waste of resources.
  • the proxy device needs to copy according to the number of terminals requesting the first data. Therefore, before copying the first data, the proxy device also needs to determine the number of terminals requesting the first data.
  • the determination process includes: receiving data acquisition requests sent by at least two terminals among the multiple terminals, and the data acquisition requests carry the first identifier. ;According to the number of data acquisition requests, N is obtained.
  • the embodiment of the present application does not limit the process of receiving the data acquisition request, which can be implemented based on the data list.
  • the operations that need to be performed also include: obtaining the data list. Includes second identifiers of multiple sets of data, one set of data is data uploaded by the same collection terminal, one set of data in the multiple sets of data includes the first data; receives a list acquisition request sent by at least two terminals among the multiple terminals , sending a data list to at least two terminals among the plurality of terminals, and the second identifier in the data list is used by the N terminals to determine the first identifier.
  • the data list is used to distinguish each group of data in multiple groups of data. Any group of data in multiple groups of data refers to a collection of data uploaded by the same collection terminal. Multiple sets of data that can be obtained are displayed to the terminal requesting the data list through the data list to assist the user in selecting the data to be obtained from the multiple sets of data.
  • the data list is also the live video program list.
  • the live video program list includes the second identifiers of multiple live broadcast rooms. The user can select the live broadcast room to watch from the multiple live broadcast rooms through the live video program list.
  • the proxy device can obtain the data list through two methods including but not limited to the following.
  • Obtaining method 1 Generate a data list based on the received unencoded second data.
  • one set of the multiple sets of data includes uncoded second data.
  • the proxy device can extract a set of data in the process of forwarding the set of data.
  • identification information can distinguish different groups of data.
  • the identification information of a group of data can be the IP address, MAC address, etc. of the collection terminal of the group of data. Therefore, the identification information of a group of data can be used as the second identification of the group of data, and the second identification can be used to identify each data included in the group of data.
  • the proxy device obtains the second identifier of each group of data in the multiple groups of data by performing the above-mentioned operation of extracting identification information on the forwarded multiple groups of data, thereby generating a data list.
  • the generated data list may include the second identification of each group of data. Since the first data is data encoded by the second data, for a group of data including the second data among the above-mentioned groups of data, the second identifier of the group of data may also refer to the group of data including the first data. A second identifier for a set of data.
  • the second identifier of a group of data can be used to identify a group of unencoded data uploaded by the same collection terminal, or can also be used to identify the encoded data corresponding to a group of unencoded data uploaded by the same collection terminal. data.
  • the proxy device forwards the received uncoded video data, that is, the second data, to the data source station, it will extract the information of the collection terminal carried by the second data.
  • the IP address obtains a second identification of a set of data including the second data.
  • the agent device sequentially performs the above operations on the video data uploaded by different collection terminals to obtain a live video program list including the IP addresses of the collection terminals corresponding to different live broadcast rooms, that is, a data list.
  • the data list may also include other information of each group of data. Taking each group of data as the data of a live broadcast room as an example, the other information may be, for example, the cover image of each live broadcast room. Display the cover image of each live broadcast room to assist users in selecting the live broadcast room they want to watch.
  • the proxy device can also generate a data list for other transmission nodes involved in the transmission path, and send the generated data list to the agent. equipment.
  • other transmission nodes can be OLT edge nodes. Since the collection terminal needs to upload video data to the quasi-live broadcast platform, and push the stream to the data source station based on the quasi-live broadcast platform, the uploaded video The data will be sent by the ONT proxy device to the OLT edge node.
  • the OLT edge node can generate a corresponding data list based on the received video data, and send the generated data list to the proxy device when the subsequent proxy device needs to obtain the data list.
  • the second acquisition method is to receive a data list sent by the data source station.
  • the data list is obtained by the data source station based on the first data.
  • the first time the data source station sends the data list is earlier than the second time the data source station sends the first data.
  • the data source station receives multiple sets of data uploaded from multiple collection terminals, and then generates a data list corresponding to the multiple sets of data during the encoding process of the received multiple sets of data.
  • One set of data in the multiple sets of data includes the first data.
  • the process of the data source station generating the data list is similar to the process of the proxy device generating the data list in the acquisition method 1.
  • the data source station performs a process on each set of data in the multiple sets of data.
  • the identification information of each group of data is extracted as the second identification of each group of data, and a data list is generated based on the second identification of each group of data.
  • the proxy device may choose any of the above methods to obtain the data list, and after obtaining the data list, send the data list to the terminal that requested the data list.
  • the terminal connected to the proxy device needs to perform user authentication before requesting the proxy device to obtain the data list, that is, checking the validity of the data services used by the terminal. After passing the authentication, you can request the proxy device to obtain the data list.
  • the terminal requesting the data list can send authentication information to the data source station, and the authentication information can carry member information for user authentication. For example, the data source station obtains the information of members participating in the online education business.
  • the terminal After receiving the authentication information sent by the terminal, it compares the member information carried in the authentication information with the information of members participating in the online education business. If participating If the member information of the online education business includes the member information carried in the certification information, it is determined that the terminal has passed the certification.
  • user authentication and authentication can also be performed on a proxy device or other network devices located between the data source station and the terminal. Therefore, The terminal can also send authentication information to the proxy device, or send authentication information to other network devices located between the data source station and the terminal.
  • the authentication process is similar to the authentication process of the data source station, and will not be described in detail in the embodiment of this application. .
  • the proxy device can send the data list to the terminal requesting the data list.
  • the proxy device starts a data transmission service for the data list.
  • the data transmission service of the data list means that since there are multiple terminals requesting to obtain the data list, the data source station needs to implement sending the data list to multiple terminals requesting the data list, which is similar to the transmission principle of the first data.
  • the proxy device will copy the received data list and send the data list to the terminal requesting the data list respectively, thereby reducing the number of times the data source station sends the data list to the terminal requesting the data list.
  • the above process is also a data transmission service for the data list, and starting the data transmission service for the data list means that the agent device is preparing to perform the operation of copying the data list.
  • the preparation process is, for example, calling a function for copying the data list, or it can be other preparations. process.
  • the agent device After receiving the data list, the agent device starts to start the data transmission service for the data list and obtains the first startup result. For the first startup result, there are two situations: successful startup and startup failure.
  • the data source station and the agent device execute There are also differences in operations.
  • the first startup result indicates startup failure.
  • the first startup result indicating startup failure means that the agent device did not successfully copy the data list.
  • the agent device sends the first startup result to the data source station.
  • the data source station fails to start the data transmission service based on the data list. It copies multiple data lists and sends the multiple data lists to the agent device so that the agent The device forwards it to the corresponding terminal requesting the data list respectively.
  • the data source station when the data source station sends the first data to the proxy device, it chooses to copy N pieces of first data and sends N pieces of first data to the proxy device, so that The proxy device does not need to perform a copy operation and forwards the received N first data to N terminals respectively. Since the data transmission service corresponding to the data list failed to start, it may be caused by a problem with the data transmission service provided by the proxy device. Based on this, the data source station chose not to call the data transmission service of the proxy device when transmitting the first data, thus avoiding The data transmission service of the first data also fails to start, thus affecting the transmission efficiency of the first data.
  • Case 2 The first startup result indicates that the startup is successful.
  • the proxy device calls the data transmission service corresponding to the data list to copy multiple data lists and sends them to the terminal requesting the data list respectively.
  • the process of the data source station sending the first data is also related to the first startup result.
  • the proxy device sends a data request to the data source station, and the data request is used to request the data source station to send the first data to the proxy device.
  • the proxy device may send a data request on the basis of returning the first startup result to the data source station.
  • the proxy device sends the first startup result indicating successful startup to the data source station.
  • the data source station sends the first data to the proxy device according to the successful startup of the data transmission service corresponding to the data list.
  • the data source station may choose to send multiple sets of data to the proxy device, so that the proxy device acquires multiple sets of data including the first data.
  • the proxy device After obtaining the first data, the proxy device obtains the data list and sends the data list to the terminal requesting the data list, so that after the terminal obtains the first data through the data list request, it can quickly send the first data to the terminal requesting the first data. terminal. That is, the execution sequence in which the proxy device first obtains the first data and then obtains the data list can also be implemented.
  • the proxy device or data source station can obtain the data corresponding to the terminal and the data list. corresponding relationship. Take the live broadcast business scenario where the data source station performs user authentication as an example.
  • the data is also the data of each live broadcast.
  • the corresponding relationship between the terminal and the data may be the corresponding relationship between the terminal and the live broadcast room that generated the data.
  • the data source station obtains the authentication information of the terminal, and uses the correspondence between the authentication information of the terminal and the information of each live broadcast room as the correspondence between the terminal and the live broadcast room.
  • the terminal subsequently requests to obtain data in any live broadcast room, it can be determined based on the correspondence between the terminal's authentication information and the information in the live broadcast room whether the terminal has the authority to obtain the data in any live broadcast room.
  • the terminal sends the requested data.
  • the authentication information of the terminal may be the identification of the terminal, such as IP address, MAC address, etc.
  • the information of the live broadcast room is used to identify the live broadcast room.
  • the embodiment of the present application does not limit the information of the live broadcast room, as long as it can distinguish different live broadcast rooms, including but not limited to the identification and number of the live broadcast room.
  • the terminal determines the data that needs to be obtained through the data list.
  • the terminal can send a data acquisition request to the proxy device.
  • the data acquisition request carries a first identifier, which is the identifier of the first data.
  • the first identifier can be the same as the second identifier of a group of data in which the first data is located, that is, the acquisition of the first identifier
  • the method may be to directly carry the second identifier of a set of data including the first data in the data list as the first identifier in the data acquisition request.
  • the first identification may be different from the second identification of a group of data in which the first data is located, but may be an identification determined based on the second identification.
  • the second identifier of the set of data is the number of the target live broadcast room, and the number of the live broadcast room and the IP address of the collection terminal are searched through the number of the target live broadcast room. determine the corresponding relationship between the target live broadcast room and the IP address of the collection terminal corresponding to the target live broadcast room, and use the IP address of the collection terminal corresponding to the target live broadcast room as the first identifier.
  • the proxy device can determine the number of terminals requesting the first data based on the number of received data acquisition requests for acquiring the first data.
  • the data list is also the live video program list.
  • the second identifier includes the number of the live broadcast room.
  • the first data corresponds to When the target live broadcast room is selected, the terminal uses the number of the target live broadcast room in the live video program list as the first identifier of the first data, and sends a data acquisition request carrying the number of the target live broadcast room to the agent device. The terminal is also requesting to obtain the target live broadcast room. Terminal of the first data.
  • the terminals that request to obtain the first data can be all terminals that have obtained the data list. For example, all users who obtain the live video program list choose to enter the target live broadcast room to watch the live broadcast, and the terminals that request to obtain the first data
  • the terminals are all terminals that have obtained the live video program list.
  • the terminals that request to obtain the first data can also be some of the terminals that have obtained the data list. For example, some of the users who obtain the live video program list choose to enter the target live broadcast room to watch the live broadcast.
  • the terminal that requests to obtain the first data is Obtained some terminals of live video program list.
  • the proxy device When a terminal requests the proxy device to obtain the first data, the proxy device also needs to confirm whether the terminal has the authority to obtain the first data to determine whether the first data needs to be sent to the terminal. Optionally, based on the corresponding relationship between the terminal and the data corresponding to the data list, it is determined whether the terminal has the authority to obtain the first data.
  • the terminal For a terminal that requests to obtain the first data, it is determined based on the correspondence between the terminal's authentication information and the information in the live broadcast room.
  • the terminal has the authority to obtain the data of the target live broadcast room, and the terminal has the authority to obtain the data of the target live broadcast room. It is determined that the first data generated by the target live broadcast room needs to be sent to the terminal.
  • the proxy device Since the data received by the proxy device may include multiple different data, the proxy device also needs to determine the first data requested by the terminal from the multiple data received. For example, since the data acquisition request when the terminal requests the first data carries the first identifier of the requested first data, the proxy device identifies the first identifier of each received data, based on the first identifier of each received data. The first identifier determines the data matching the first identifier carried in the data acquisition request from the plurality of data, thereby realizing the determination of the first data. Among them, the first of each data received by the proxy device The process of obtaining the identifier is similar to the process of obtaining the first identifier of the first data. Please refer to the description of obtaining the first identifier of the first data in S301, which will not be described again here.
  • the above example illustrates the situation when the first identifier carried in the data acquisition request is consistent with the first identifier type of the first data.
  • the first identifier carried in the data acquisition request and the first identifier of the first data are both the live broadcast room number or the collection number.
  • the first identifier carried by the data acquisition request sent by the terminal is different from the first identifier of the first data.
  • the first identifier carried by the data acquisition request is the live broadcast room number.
  • the first identifier of the first data is the IP address of the collection terminal
  • Type conversion is performed, and after the type conversion is consistent, the first data that matches the first identification carried in the data acquisition request sent by the terminal is determined from the plurality of data based on the first identification of each received data, thereby realizing the first 1. Determination of data.
  • the first identifier of the data received by the proxy device only includes the IP address or MAC address of the collection terminal, and the first identifier carried in the data acquisition request sent by the terminal when requesting the first data belongs to the live broadcast room. information. Therefore, in the process of determining the first data, the proxy device also needs to first determine the information of the live broadcast room corresponding to each data based on the correspondence between the IP address or MAC address of the collection terminal and the information of the live broadcast room, and then jointly send the data to the terminal.
  • the information of the live broadcast room carried in the data acquisition request is used to determine the first data requested by the terminal from multiple data.
  • the correspondence between the IP address or MAC address of the collection terminal and the information in the live broadcast room may be obtained by the data source station based on the received second data, or may be obtained through other methods.
  • the proxy device may copy the first data according to the numerical size of N.
  • the proxy device may choose to complete the copying of N pieces of first data first, and then send the copied first data to the receiving terminal requesting the first data.
  • M is a positive integer less than N.
  • the proxy device can select randomly, or based on the priority of the receiving terminal, select the receiving terminal with a higher priority to send the first One data.
  • the priority of the receiving terminal can be determined based on the traffic subscription package of the receiving terminal, or the membership level of the receiving terminal in the live broadcast application, etc.
  • the proxy device after the proxy device starts the data transmission service to copy the first data, it also sends a second startup result to the data source station.
  • the second startup result is used to instruct the proxy device to copy the first data. for success or failure.
  • the proxy device fails to successfully copy the first data and sends a copy failure instruction to the data source station.
  • the copy failure instruction is used to prompt the data source station to sequentially send the first data to the terminal requesting the first data. Failure to copy the first data, that is, the second startup result indicates startup failure.
  • the process of the proxy device sending a copy failure instruction to the data source station is similar to the process of the proxy device sending a data request to the data source station shown in the above embodiment. This will not be described in detail for now.
  • the proxy device sends the first data to each of the N terminals respectively.
  • the proxy device can directly send the first data to the receiving terminal that requests the first data.
  • other proxy devices shown in Figure 4 directly send the first data to the receiving terminal
  • the ONT proxy device shown in Figure 4 directly sends the first data to the receiving terminal.
  • the receiving terminal sends the first data.
  • the proxy device can also forward the first data through other edge devices, and the other edge devices forward the first data to the receiving terminal, so that the proxy device sends the first data to the receiving terminal, such as the OLT proxy shown in Figure 4
  • the device forwards the first data to the receiving terminal through the ONT.
  • the proxy device adopts a stream pulling method when sending the first data to the receiving device.
  • the proxy device after sending the copied first data to each receiving device, the proxy device also caches the received first data. By caching the first data, other receiving terminals can obtain the first data. When needed, the first data can be quickly sent to other receiving terminals, thereby improving response response time.
  • the proxy device can be any edge device, such as a broadband remote access server (broadband remote access server). remote access server, BRAS) or access point (access point, AP), etc.
  • the proxy device can also be other network devices besides the data source station and the terminal.
  • the network structure between the data source station, the proxy device and the terminal can also be any network structure, which is not limited in the embodiments of this application. .
  • the embodiments of this application are used to illustrate real-time services such as live broadcast services, online conference services, and online classroom services, and are intended to introduce that the data transmission method provided by this application is suitable for communication scenarios between one terminal and multiple terminals. There are no restrictions on the name of the above-mentioned real-time service and whether the first data spread in the above-mentioned real-time service is collected in real-time.
  • the data transmission method provided by the embodiment of the present application copies the first data through the proxy device. Even if there are multiple terminals that need to obtain the first data, there is no need for the data source station to send the data multiple times and the request is made through the proxy device.
  • the terminal of the first data sends the copied first data, which reduces the number of times the data source station transmits the first data and alleviates the consumption of transmission bandwidth of the data source station.
  • the data transmission service provided by the proxy device can also copy and forward the data list, which also reduces the number of transmissions of the data source station, relieves the bandwidth pressure of the data source station, and fills the "double" "Gigabit” broadband network content, after the network is generated, will not be dropped or interrupted, increasing the user's interactive experience in real-time business scenarios.
  • the agent device provides a new data transmission service. For broadband business applications such as live streaming, online meetings, and online education, the packages corresponding to the data transmission service are of high value and can increase the operator's revenue.
  • Figure 5 is a flow chart of another data transmission method provided by the embodiment of the present application.
  • the data transmission method is interactively executed by the data source station, the proxy device and the terminal.
  • the method includes the following steps 501 -511.
  • Step 501 The data source station sends a data transmission request to the proxy device.
  • the process of the data source station sending a data transmission request to the proxy device is similar to the process of the data source station sending a data transmission request to the proxy device in S301 of the embodiment shown in FIG. 3 , and will not be described again here.
  • Step 502 The proxy device determines the call result according to the data transmission request and returns the call result to the data source station.
  • the process by which the data source station invokes the data transmission service of the proxy device through the data transmission request is similar to the process by which the data source station invokes the data transmission service by the proxy device through the data transmission request in S301 of the embodiment shown in Figure 3. No further details will be given here.
  • Step 503 Based on the call result indicating that the call is successful, the data source station sends the data list to the proxy device.
  • the process of the data source station sending the data list to the proxy device is similar to the process of the data source station sending the data list to the proxy device in S302 of the embodiment shown in FIG. 3 , and will not be described again here.
  • Step 504 The proxy device starts a data transmission service for the data list based on the received data list.
  • the process of the proxy device initiating the data transmission service for the data list is similar to the process of the proxy device initiating the data transmission service for the data list in S302 of the embodiment shown in FIG. 3 , and will not be described again here.
  • a first startup result is obtained.
  • the first startup result indicates that the startup is successful.
  • the agent device performs the operation of step 505.
  • the first startup result indicates that the startup fails.
  • the agent device performs steps. 510 operation.
  • Step 505 The proxy device returns the first startup result.
  • the process of the proxy device returning the first startup result is similar to the process of the proxy device returning the first startup result in S302 of the embodiment shown in FIG. 3 , and will not be described again here.
  • Step 506 Based on the first startup result indicating successful startup, the data source station sends the first data to the proxy device.
  • the process of the data source station sending the first data to the proxy device is similar to the process of the data source station sending the first data to the proxy device in S302 of the embodiment shown in FIG. 3 , and will not be described again here.
  • Step 507 The proxy device starts the data transmission service of the first data.
  • the proxy device starts the data transmission service of the first data based on the received first data, and obtains the second starting result.
  • the process of the proxy device initiating the data transmission service of the first data is similar to the process of the proxy device initiating the data transmission service of the first data in S302 of the embodiment shown in FIG. 3 , and will not be described again here.
  • the proxy device performs the operation of step 509 after receiving the data acquisition request. If the second startup result indicates startup failure, the proxy device performs the operation of step 510 after receiving the data acquisition request.
  • Step 508 Based on the second startup result indicating successful startup, at least two terminals among the plurality of terminals send data acquisition requests for the first data to the proxy device.
  • the process in which the terminal sends a data acquisition request for the first data to the proxy device is similar to the process in which the terminal sends a data acquisition request for the first data to the proxy device in S302 in the embodiment shown in FIG. 3 , and will not be discussed here for now. Elaborate.
  • Step 509 According to the data acquisition request, the proxy device sends the first data to the terminal.
  • the process of the proxy device sending the first data to the terminal is similar to the process of the proxy device sending the first data to the terminal in S303 of the embodiment shown in FIG. 3, and will not be described again here.
  • Step 510 Based on the first startup result or the second startup result indicating startup failure, the terminal sends a data acquisition request for the first data to the data source station.
  • the proxy device uploads the data acquisition request for the first data sent by the terminal to the data source station based on the first startup result or the second startup result indicating failure, thereby enabling the terminal to send the data acquisition request to the data source station.
  • the data acquisition request for the first data is used as a copy failure request, prompting the data source station to copy N pieces of first data, and sends them to the terminal requesting the first data in sequence.
  • Step 511 According to the data acquisition request, the data source station sends the first data to the terminal.
  • the process of the data source station sending the first data to the terminal is similar to the process of the data source station sending the first data to the terminal in S302 of the embodiment shown in FIG. 3 , and will not be described again here.
  • Figure 6 is a schematic structural diagram of a data transmission device provided by an embodiment of the present application. Based on the following modules shown in Figure 6, the data transmission device shown in Figure 6 can perform all or part of the operations shown in Figure 3 above. It should be understood that the device may include more additional modules than the modules shown or omit some of the modules shown therein, and the embodiments of the present application are not limited to this. As shown in Figure 6, this device is applied to proxy equipment and includes:
  • the receiving module 601 is used to receive the encoded first data sent by the data source station, where the first data carries the first identifier;
  • the copy module 602 is used to copy the first data to obtain N pieces of first data, wherein the proxy device is connected to multiple terminals, and N terminals among the multiple terminals request the first data based on the first identification, and N is greater than an integer equal to 2;
  • the sending module 603 is configured to send the first data to each of the N terminals.
  • the receiving module 601 is also configured to receive data acquisition requests sent by at least two terminals among the plurality of terminals, where the data acquisition requests carry the first identifier; N is obtained according to the number of data acquisition requests.
  • the device further includes: an acquisition module, used to obtain a data list.
  • the data list includes second identifiers of multiple sets of data.
  • One set of data is data uploaded by the same collection terminal. Among the multiple sets of data, One set of data includes the first data;
  • the receiving module 601 is also used to receive a list acquisition request sent by at least two terminals among the plurality of terminals;
  • the sending module 603 is also used to send a request to at least two terminals among the plurality of terminals.
  • a data list is sent, and the second identifier in the data list is used by N terminals to determine the first identifier.
  • the acquisition module is configured to receive a data list sent by the data source station.
  • the data list is obtained by the data source station based on the first data.
  • the first time the data source station sends the data list is earlier than the data source station.
  • the device further includes: a startup module, configured to start a data transmission service for the data list based on the data list, and obtain a first startup result of the data transmission service corresponding to the data list, where the first startup result Indicates that the startup is successful; the sending module 603 is also used to send a data request to the data source station, and the data request is used to request the data source station to send the first data to the proxy device.
  • a startup module configured to start a data transmission service for the data list based on the data list, and obtain a first startup result of the data transmission service corresponding to the data list, where the first startup result Indicates that the startup is successful
  • the sending module 603 is also used to send a data request to the data source station, and the data request is used to request the data source station to send the first data to the proxy device.
  • the acquisition module is configured to generate a data list based on the received unencoded second data, and the second data is used to encode the first data.
  • the sending module 603 is also used to send a copy failure instruction to the data source station if the agent device fails to successfully copy the first data.
  • the copy failure instruction is used to prompt the data source station to request the terminal for the first data.
  • the first data is sent in sequence.
  • the receiving module 601 is also used to receive a data transmission request sent by the data source station.
  • the data transmission request is used to call the data transmission service to the proxy device; determine the data corresponding to the data source station based on the data transmission request.
  • the calling result of the transmission service indicates that the data source station has successfully called;
  • the sending module 603 is also used to send the calling result to the data source station, and the calling result is used to instruct the data source station to perform the operation of sending the first data.
  • the proxy device includes an application programming interface API, and the API is used by the data source station to call the data transmission service through the data transmission request.
  • the proxy device is an edge device.
  • the first data is data of a live broadcast service, data of an online education service, or data of an online conference service.
  • the first identifier is an encoded identifier, or the first identifier is an unencoded identifier.
  • the above device copies the first data through the proxy device. Even if there are multiple terminals requesting to obtain the first data, there is no need for the data source station to send the first data multiple times.
  • the proxy device sends the copied third data to the terminal requesting the first data through the proxy device.
  • One data which reduces the number of times the data source station transmits the first data, alleviates the consumption of transmission bandwidth of the data source station, and thereby reduces the delay and lag caused by the business corresponding to the first data.
  • Figure 7 shows a schematic structural diagram of a network device 700 provided by an exemplary embodiment of the present application.
  • the network device 700 shown in FIG. 7 is used to perform operations related to the above-mentioned data transmission method shown in FIG. 3 .
  • the network device 700 is, for example, a switch, a router, etc., and the network device 700 can be implemented by a general bus architecture.
  • the network device 700 includes at least one processor 701, a memory 703, and at least one communication interface 704.
  • the processor 701 is, for example, a general central processing unit (CPU), a digital signal processor (DSP), a network processor (NP), a graphics processing unit (GPU), Neural network processors (neural-network processing units, NPU), data processing units (Data Processing Unit, DPU), microprocessors, or one or more integrated circuits used to implement the solution of the present application.
  • the processor 701 includes an application-specific integrated circuit (ASIC), a programmable logic (programmable logic device, PLD) or other programmable logic devices, transistor logic devices, hardware components or any combination thereof.
  • a PLD is, for example, a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a general array logic (GAL), or any combination thereof. It may implement or execute various logical blocks, modules and circuits described in connection with the disclosure of the embodiments of this application.
  • the processor can also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, and so on.
  • the network device 700 also includes a bus.
  • the bus is used to transfer information between the various components of the network device 700 .
  • the bus can be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus, etc.
  • PCI peripheral component interconnect
  • EISA extended industry standard architecture
  • the bus can be divided into address bus, data bus, control bus, etc. For ease of presentation, only one thick line is used in Figure 7, but it does not mean that there is only one bus or one type of bus.
  • the memory 703 is, for example, a read-only memory (ROM) or other type of static storage device that can store static information and instructions, or a random access memory (random access memory, RAM) or a device that can store information and instructions.
  • ROM read-only memory
  • RAM random access memory
  • Other types of dynamic storage devices such as electrically erasable programmable read-only memory (EEPROM), compact disc read-only memory (CD-ROM) or other optical disk storage, optical discs Storage (including compressed optical discs, laser discs, optical discs, digital versatile discs, Blu-ray discs, etc.), magnetic disk storage media or other magnetic storage devices, or can be used to carry or store desired program code in the form of instructions or data structures and can Any other media accessed by a computer, without limitation.
  • the memory 703 exists independently, for example, and is connected to the processor 701 through a bus. Memory 703 may also be integrated with processor 701.
  • the communication interface 704 uses any device such as a transceiver to communicate with other devices or a communication network.
  • the communication network can be Ethernet, a radio access network (RAN) or a wireless local area network (WLAN), etc.
  • the communication interface 704 may include a wired communication interface and may also include a wireless communication interface.
  • the communication interface 704 can be an Ethernet (Ethernet) interface, a Fast Ethernet (FE) interface, a Gigabit Ethernet (GE) interface, an asynchronous transfer mode (Asynchronous Transfer Mode, ATM) interface, a wireless LAN ( wireless local area networks, WLAN) interface, cellular network communication interface or a combination thereof.
  • the Ethernet interface can be an optical interface, an electrical interface, or a combination thereof.
  • the communication interface 704 can be used for the network device 700 to communicate with other devices.
  • the processor 701 may include one or more CPUs, such as CPU0 and CPU1 as shown in FIG. 7 .
  • Each of these processors may be a single-CPU processor or a multi-CPU processor.
  • a processor here may refer to one or more devices, circuits, and/or processing cores for processing data (eg, computer program instructions).
  • the network device 700 may include multiple processors, such as the processor 701 and the processor 705 shown in FIG. 7 .
  • processors can be a single-core processor (single-CPU) or a multi-core processor (multi-CPU).
  • a processor here may refer to one or more devices, circuits, and/or processing cores for processing data (such as computer program instructions).
  • the network device 700 may also include an output device and an input device.
  • Output devices communicate with processor 701 and can display information in a variety of ways.
  • the output device may be a liquid crystal display (LCD), a light emitting diode (LED) display device, a cathode ray tube (CRT) display device, a projector, etc.
  • Input devices communicate with processor 701 and can receive user input in a variety of ways.
  • the input device may be a mouse, a keyboard, a touch screen device or a sensing device, etc.
  • the memory 703 is used to store the program code 710 for executing the solution of the present application, and the processor 701 can execute the program code 710 stored in the memory 703. That is, the network device 700 can implement the data transmission method provided by the method embodiment through the processor 701 and the program code 710 in the memory 703 .
  • Program code 710 may include one or more software modules.
  • the processor 701 itself can also store program codes or instructions for executing the solution of the present application.
  • the network device 700 in the embodiment of the present application may correspond to the data transmission device in each of the above method embodiments.
  • Each step of the data transmission method shown in FIG. 3 is completed through an integrated logic circuit of hardware or instructions in the form of software in the processor of the network device 700 .
  • the steps of the methods disclosed in conjunction with the embodiments of the present application can be directly implemented by a hardware processor for execution, or can be executed by a combination of hardware and software modules in the processor.
  • the software module can be located in random access memory, flash memory, read-only memory, programmable read-only memory or electrically erasable programmable memory, registers and other mature storage media in this field.
  • the storage medium is located in the memory, and the processor reads the information in the memory and completes the steps of the above method in combination with its hardware. To avoid repetition, the details will not be described here.
  • FIG 8 is a schematic structural diagram of another network device provided by an embodiment of the present application.
  • the network device is, for example, a server.
  • the server may vary greatly due to different configurations or performance, and may include one or more processors 801 and a or multiple memories 802, wherein at least one computer program is stored in the one or more memories 802, and the at least one computer program is loaded and executed by the one or more processors 801 to enable the server to implement each of the above methods.
  • the processor 801 is, for example, a central processing unit (CPU).
  • the network device can also have components such as wired or wireless network interfaces, keyboards, and input and output interfaces to facilitate input and output.
  • the network device can also include other components for realizing device functions, which will not be described again here.
  • An embodiment of the present application also provides a communication device, which includes: a transceiver, a memory, and a processor.
  • the transceiver, the memory and the processor communicate with each other through an internal connection path, the memory is used to store instructions, and the processor is used to execute the instructions stored in the memory to control the transceiver to receive signals and control the transceiver to send signals.
  • the processor executes the instructions stored in the memory, the processor is caused to execute the data transmission method.
  • processor can be a central processing unit (CPU), or other general-purpose processor, digital signal processor (digital signal processing, DSP), application specific integrated circuit (application specific integrated circuit), ASIC), field-programmable gate array (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
  • a general-purpose processor can be a microprocessor or any conventional processor, etc. It is worth noting that the processor may be a processor that supports advanced RISC machines (ARM) architecture.
  • ARM advanced RISC machines
  • the above-mentioned memory may include a read-only memory and a random access memory, and provide instructions and data to the processor.
  • Memory may also include non-volatile random access memory.
  • the memory may also store device type information.
  • the memory may be volatile memory or non-volatile memory, or may include both volatile and non-volatile memory.
  • the non-volatile memory can be read-only memory (ROM), programmable ROM (PROM), erasable programmable read-only memory (erasable PROM, EPROM), electrically removable memory. Erase programmable read-only memory (electrically EPROM, EEPROM) or flash memory.
  • Volatile memory may be random access memory (RAM), which is used as an external cache. By way of illustration, but not limitation, many forms of RAM are available.
  • static random access memory static random access memory
  • DRAM Dynamic random access memory
  • DRAM synchronous dynamic random access memory
  • SDRAM double data rate synchronous dynamic random access memory
  • ESDRAM enhanced synchronization Dynamic random access memory
  • SCRAM synchronous link dynamic random access memory
  • direct memory bus random access memory direct rambus RAM, DR RAM
  • Embodiments of the present application also provide a computer-readable storage medium, in which at least one instruction is stored, and the instruction is loaded and executed by the processor, so that the computer implements any of the above-mentioned data transmission methods.
  • Embodiments of the present application also provide a computer program (product).
  • the computer program When the computer program is executed by a computer, it can cause the processor or computer to execute corresponding steps and/or processes in the above method embodiments.
  • Embodiments of the present application also provide a chip, including a processor, configured to call and run instructions stored in the memory, so that the communication device installed with the chip executes any of the above-described data transmission methods. .
  • An embodiment of the present application also provides another chip, including: an input interface, an output interface, a processor, and a memory.
  • the input interface, the output interface, the processor, and the memory are connected through an internal connection path, and the The processor is configured to execute the code in the memory.
  • the processor is configured to execute any of the above data transmission methods.
  • the computer program product includes one or more computer instructions.
  • the computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device.
  • the computer instructions may be stored in or transmitted from one computer-readable storage medium to another, e.g., the computer instructions may be transferred from a website, computer, server, or data center Transmission to another website, computer, server or data center through wired (such as coaxial cable, optical fiber, digital subscriber line) or wireless (such as infrared, wireless, microwave, etc.) means.
  • the computer-readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server, data center, etc. that contains one or more available media integrated.
  • the available media may be magnetic media (eg, floppy disk, hard disk, magnetic tape), optical media (eg, DVD), or semiconductor media (eg, Solid State Disk), etc.
  • the program can be stored in a computer-readable storage medium.
  • the storage medium can be read-only memory, magnetic disk or optical disk, etc.
  • the computer program product includes one or more computer program instructions.
  • methods of embodiments of the present application may be described in the context of machine-executable instructions, such as included in a program module executing in a device on a target's real or virtual processor.
  • program modules include routines, programs, libraries, objects, classes, components, data structures, etc., which perform specific tasks or implement specific abstract data structures.
  • the functionality of the program modules may be Merge or split between the described program modules.
  • Machine-executable instructions for program modules can execute locally or on a distributed device. In a distributed device, program modules can be located in both local and remote storage media.
  • Computer program codes for implementing the methods of embodiments of the present application may be written in one or more programming languages. These computer program codes may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data transmission device, so that when executed by the computer or other programmable data transmission device, the program code causes the flowchart and/or block diagram to be displayed. The functions/operations specified in are implemented.
  • the program code may execute entirely on the computer, partly on the computer, as a stand-alone software package, partly on the computer and partly on a remote computer or entirely on the remote computer or server.
  • the computer program code or related data may be carried by any appropriate carrier, so that the device, device or processor can perform the various processes and operations described above.
  • Examples of carriers include signals, computer-readable media, and the like.
  • Examples of signals may include electrical, optical, radio, acoustic, or other forms of propagated signals, such as carrier waves, infrared signals, and the like.
  • a machine-readable medium may be any tangible medium that contains or stores a program for or in connection with an instruction execution system, apparatus, or device.
  • the machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium.
  • Machine-readable media may include, but are not limited to, electronic, magnetic, optical, electromagnetic, infrared or semiconductor systems, devices or devices, or any suitable combination thereof. More detailed examples of machine-readable storage media include an electrical connection with one or more wires, laptop computer disk, hard drive, random memory accessor (RAM), read-only memory (ROM), erasable programmable read-only memory Memory (EPROM or flash memory), optical storage device, magnetic storage device, or any suitable combination thereof.
  • the disclosed systems, devices and methods can be implemented in other ways.
  • the device embodiments described above are only illustrative.
  • the division of the modules is only a logical function division. In actual implementation, there may be other division methods.
  • multiple modules or components may be combined or may be Integrated into another system, or some features can be ignored, or not implemented.
  • the coupling or direct coupling or communication connection between each other shown or discussed may be indirect coupling or communication connection through some interfaces, devices or modules, or may be electrical, mechanical or other forms of connection.
  • the modules described as separate components may or may not be physically separated.
  • the components shown as modules may or may not be physical modules, that is, they may be located in one place, or they may be distributed to multiple network modules. Some or all of the modules can be selected according to actual needs to achieve the purpose of the embodiments of the present application.
  • each functional module in each embodiment of the present application can be integrated into one processing module, or each module can exist physically alone, or two or more modules can be integrated into one module.
  • the above integrated modules can be implemented in the form of hardware or software function modules.
  • the integrated module is implemented in the form of a software function module and sold or used as an independent product, it can be stored in a computer-readable storage medium.
  • the technical solution of the present application is essentially or contributes to the existing technology, or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium , including several instructions to cause a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the methods in various embodiments of the present application.
  • the aforementioned storage media include: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), magnetic disk or optical disk and other media that can store program code. .
  • first, second and other words are used to distinguish the same or similar items with basically the same functions and functions. It should be understood that the terms “first”, “second” and “nth” There is no logical or temporal dependence, nor There are no restrictions on the quantity and order of execution. It should also be understood that, although the following description uses the terms first, second, etc. to describe various elements, these elements should not be limited by the terms. These terms are only used to distinguish one element from another. For example, a first image may be referred to as a second image, and similarly, a second image may be referred to as a first image, without departing from the scope of various described examples. Both the first image and the second image may be images, and in some cases, may be separate and different images.
  • the size of the sequence number of each process does not mean the order of execution.
  • the execution order of each process should be determined by its function and internal logic, and should not be determined by the execution order of the embodiments of the present application.
  • the implementation process constitutes no limitation.
  • determining B based on A does not mean determining B only based on A, and B can also be determined based on A and/or other information.
  • references throughout this specification to "one embodiment,””anembodiment,” and “a possible implementation” mean that specific features, structures, or characteristics related to the embodiment or implementation are included herein. In at least one embodiment of the application. Therefore, “in one embodiment” or “in an embodiment” or “a possible implementation” appearing in various places throughout this specification do not necessarily refer to the same embodiment. Furthermore, the particular features, structures or characteristics may be combined in any suitable manner in one or more embodiments.

Abstract

The present application belongs to the technical field of communications. Disclosed are a data transmission method and apparatus. The method comprises: a proxy device receiving coded first data sent by a data source station, wherein the first data carries a first identifier; the proxy device duplicating the first data, so as to obtain N pieces of first data, wherein the proxy device is connected to a plurality of terminals, and N terminals among the plurality of terminals request the first data on the basis of the first identifier, N being an integer greater than or equal to 2; and the proxy device sending the first data to each of the N terminals. In the present application, first data is duplicated and forwarded by means of a proxy device, and therefore even if there are a plurality of terminals requesting the acquisition of the first data, a data source station does not need to send the first data for multiple times, thereby reducing the number of times of transmitting the first data by the data source station, reducing the consumption of transmission bandwidths of the data source station, and then reducing the delay and lagging occurring in a service corresponding to the first data.

Description

数据传输方法和装置Data transmission method and device
本申请要求于2022年8月11日提交中国国家知识产权局、申请号为202210962834.5、申请名称为“数据传输方法和装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application claims priority to the Chinese patent application filed with the State Intellectual Property Office of China on August 11, 2022, with application number 202210962834.5 and the application title "Data transmission method and device", the entire content of which is incorporated into this application by reference. .
技术领域Technical field
本申请涉及通信技术领域,特别涉及数据传输方法和装置。This application relates to the field of communication technology, and in particular to data transmission methods and devices.
背景技术Background technique
随着通信技术的发展,实时通信的涉及范围越来越广。实时通信不仅能够实现一个终端与另一个终端之间进行实时数据的传输,在直播业务、在线教育业务和线上会议业务等场景,还能够实现一个终端与多个终端之间进行实时数据的传输。以直播业务的场景为例,将直播终端采集的实时数据发送至数据源站,再由数据源站将接收到的实时数据传输给多个观众终端。其中,数据源站是指为企业、媒体和网站等提供大规模、高质量以及安全可靠的互联网服务的数据中心,例如互联网数据中心(internet data center,IDC)。With the development of communication technology, the scope of real-time communication is getting wider and wider. Real-time communication can not only realize the transmission of real-time data between one terminal and another terminal, but also realize the transmission of real-time data between one terminal and multiple terminals in scenarios such as live broadcast business, online education business and online conference business. . Taking the live broadcast business scenario as an example, the real-time data collected by the live broadcast terminal is sent to the data source station, and then the data source station transmits the received real-time data to multiple audience terminals. Among them, the data source station refers to the data center that provides large-scale, high-quality, safe and reliable Internet services for enterprises, media and websites, such as Internet data center (IDC).
相关技术中,当数据源站需要发送实时数据到多个观众终端时,数据源站基于传输控制协议(transmission control protocol,TCP)逐一向各个观众终端发送实时数据,通过多次传输相同的实时数据,完成实时数据由直播终端到多个观众终端之间的传输。In related technologies, when the data source station needs to send real-time data to multiple audience terminals, the data source station sends real-time data to each audience terminal one by one based on the transmission control protocol (TCP), and transmits the same real-time data multiple times. , complete the transmission of real-time data from the live broadcast terminal to multiple audience terminals.
然而,由于数据源站在数据传输过程中,需要多次传输相同的实时数据,带宽资源消耗大,导致实时数据对应的业务产生延迟和卡顿。However, since the data source station needs to transmit the same real-time data multiple times during the data transmission process, bandwidth resources are consumed, resulting in delays and freezes in the services corresponding to the real-time data.
发明内容Contents of the invention
本申请提供了一种数据传输方法和装置,以解决相关技术提供的问题,技术方案如下:This application provides a data transmission method and device to solve the problems provided by related technologies. The technical solution is as follows:
第一方面,提供了一种数据传输方法,所述方法包括:代理设备接收数据源站发送的已编码的第一数据,所述第一数据携带第一标识;所述代理设备对所述第一数据进行复制,得到N个第一数据,其中,所述代理设备连接多个终端,且所述多个终端中的N个终端基于所述第一标识请求所述第一数据,所述N为大于等于2的整数;所述代理设备向所述N个终端中的各个终端分别发送所述第一数据。In a first aspect, a data transmission method is provided. The method includes: a proxy device receiving encoded first data sent by a data source station, where the first data carries a first identifier; the proxy device A piece of data is copied to obtain N pieces of first data, wherein the proxy device is connected to multiple terminals, and N terminals among the plurality of terminals request the first data based on the first identification, and the N is an integer greater than or equal to 2; the proxy device sends the first data to each of the N terminals respectively.
本申请提供的数据传输方法,通过代理设备对第一数据进行复制,即使存在多个终端请求获取第一数据,也无需数据源站多次发送第一数据,通过代理设备向请求第一数据的终端发送复制得到的第一数据,减少了数据源站传输第一数据的次数,缓解了数据源站的传输带宽的消耗,进而降低了第一数据对应的业务产生的延迟和卡顿。The data transmission method provided by this application copies the first data through a proxy device. Even if there are multiple terminals requesting to obtain the first data, there is no need for the data source station to send the first data multiple times. The terminal sends the copied first data, which reduces the number of times the data source station transmits the first data, alleviates the consumption of transmission bandwidth of the data source station, and thereby reduces delays and freezes caused by services corresponding to the first data.
在一种可能的实现方式中,所述代理设备对所述第一数据进行复制之前,还包括:接收所述多个终端中的至少两个终端发送的数据获取请求,所述数据获取请求携带所述第一标识;根据所述数据获取请求的数量,得到所述N。通过数据获取请求,确定需要获取第一数据的终端的数量,得到N的数值大小,避免复制超过需求的第一数据,浪费不必要的资源。In a possible implementation, before the proxy device copies the first data, it further includes: receiving data acquisition requests sent by at least two terminals among the plurality of terminals, the data acquisition request carrying The first identifier; the N is obtained according to the number of data acquisition requests. Through the data acquisition request, the number of terminals that need to acquire the first data is determined, and the numerical size of N is obtained to avoid copying the first data that exceeds the demand and wasting unnecessary resources.
在一种可能的实现方式中,所述代理设备对所述第一数据进行复制之前,还包括:获取数据列表,所述数据列表中包括多组数据的第二标识,一组数据为同一个采集终端上传的数 据,所述多组数据中的其中一组数据包括所述第一数据;接收所述多个终端中的至少两个终端发送的列表获取请求,向所述多个终端中的至少两个终端发送所述数据列表,所述数据列表中的第二标识用于所述N个终端确定所述第一标识。通过向至少两个终端提供数据列表,用户可以通过终端显示的数据列表上的多组数据的第二标识,快速且准确地选择需要的数据,提高了数据获取效率,保证了用户的交互体验感。In a possible implementation, before the proxy device copies the first data, it further includes: obtaining a data list, where the data list includes second identifiers of multiple groups of data, and one group of data is the same Collect the number uploaded by the terminal According to the data, one of the plurality of sets of data includes the first data; receiving a list acquisition request sent by at least two terminals among the plurality of terminals, and sending the request to at least two terminals among the plurality of terminals. The data list is sent, and the second identifier in the data list is used by the N terminals to determine the first identifier. By providing data lists to at least two terminals, users can quickly and accurately select the required data through the second identifiers of multiple sets of data on the data lists displayed by the terminals, which improves data acquisition efficiency and ensures the user's interactive experience. .
在一种可能的实现方式中,所述获取数据列表,包括:接收所述数据源站发送的所述数据列表,所述数据列表由所述数据源站基于所述第一数据得到,所述数据源站发送所述数据列表的第一时间早于所述数据源站发送所述第一数据的第二时间。In a possible implementation, the obtaining the data list includes: receiving the data list sent by the data source station, where the data list is obtained by the data source station based on the first data, and the The first time when the data source station sends the data list is earlier than the second time when the data source station sends the first data.
在一种可能的实现方式中,所述获取数据列表之后,还包括:基于所述数据列表启动针对所述数据列表的数据传输服务,得到所述数据列表对应的数据传输服务的第一启动结果,其中,所述第一启动结果指示启动成功;向所述数据源站发送数据请求,所述数据请求用于请求所述数据源站向所述代理设备发送所述第一数据。当第一启动结果指示启动成功,说明代理设备支持数据列表的数据传输服务。基于第一启动结果筛选掉数据传输服务启动失败的代理设备,以保证数据列表的数据传输服务的可靠性。In a possible implementation, after obtaining the data list, the method further includes: initiating a data transmission service for the data list based on the data list, and obtaining a first startup result of the data transmission service corresponding to the data list. , wherein the first startup result indicates successful startup; sending a data request to the data source station, where the data request is used to request the data source station to send the first data to the proxy device. When the first startup result indicates that the startup is successful, it indicates that the proxy device supports the data transmission service of the data list. Based on the first startup result, proxy devices that fail to start the data transmission service are filtered out to ensure the reliability of the data transmission service in the data list.
在一种可能的实现方式中,所述获取数据列表,包括:根据接收到的未编码的第二数据生成所述数据列表,所述第二数据用于编码得到所述第一数据。数据列表可以是接收数据源站发送的,也可以是代理设备根据未编码的第二数据生成的,不限定数据列表的获取方式,灵活度高。其中,代理设备接收到未编码的第二数据后,将未编码的第二数据传输至数据源站,由数据源站对第二数据进行编码,得到第一数据。In a possible implementation, the obtaining the data list includes: generating the data list according to the received unencoded second data, where the second data is used to encode the first data. The data list can be sent by the source station that receives the data, or can be generated by the proxy device based on the unencoded second data. The method of obtaining the data list is not limited, and the flexibility is high. After receiving the unencoded second data, the proxy device transmits the unencoded second data to the data source station, and the data source station encodes the second data to obtain the first data.
在一种可能的实现方式中,所述代理设备对所述第一数据进行复制之后,还包括:所述代理设备未成功复制所述第一数据,向所述数据源站发送复制失败指令,所述复制失败指令用于提示所述数据源站向所述请求所述第一数据的终端依次发送所述第一数据。在未成功复制第一数据的情况下,及时向数据源站反馈复制失败指令,以提示数据源站向请求第一数据的终端发送第一数据,无论代理设备是否成功复制第一数据,均可保证请求第一数据的终端获取第一数据,提高了数据传输的可靠性,交互体验感高。In a possible implementation, after the proxy device copies the first data, the method further includes: the proxy device fails to copy the first data and sends a copy failure instruction to the data source station, The copy failure instruction is used to prompt the data source station to sequentially send the first data to the terminal requesting the first data. In the case where the first data is not copied successfully, a copy failure instruction is promptly fed back to the data source station to prompt the data source station to send the first data to the terminal requesting the first data, regardless of whether the proxy device successfully copies the first data. It is guaranteed that the terminal requesting the first data obtains the first data, which improves the reliability of data transmission and provides a high interactive experience.
在一种可能的实现方式中,所述接收数据源站发送的已编码的第一数据之前,还包括:接收所述数据源站发送的数据传输请求,所述数据传输请求用于向所述代理设备调用数据传输服务;基于所述数据传输请求确定所述数据源站对应的数据传输服务的调用结果,所述调用结果指示所述数据源站调用成功;向所述数据源站发送所述调用结果,所述调用结果用于指示所述数据源站执行发送所述第一数据的操作。通过数据传输请求调用代理设备的数据传输服务,以使代理设备确定对于接收到的第一数据所需要执行的操作为复制和转发,进而保证数据传输的可靠传输。In a possible implementation, before receiving the encoded first data sent by the data source station, the method further includes: receiving a data transmission request sent by the data source station, and the data transmission request is used to send the data to the data source station. The proxy device calls the data transmission service; determines the calling result of the data transmission service corresponding to the data source station based on the data transmission request, and the calling result indicates that the data source station calls successfully; sends the data transmission service to the data source station. The calling result is used to instruct the data source station to perform the operation of sending the first data. The data transmission service of the proxy device is called through the data transmission request, so that the proxy device determines that the operations that need to be performed for the received first data are copying and forwarding, thereby ensuring reliable transmission of the data transmission.
在一种可能的实现方式中,所述代理设备包括应用程序设计接口API,所述API用于所述数据源站通过所述数据传输请求调用所述数据传输服务。数据源站可通过API调用数据传输服务,调用过程更便捷。In a possible implementation manner, the proxy device includes an application programming interface API, and the API is used by the data source station to call the data transmission service through the data transmission request. The data source station can call the data transmission service through API, making the calling process more convenient.
在一种可能的实现方式中,所述代理设备为边缘设备。代理设备为配置在靠近终端侧的边缘设备,对于终端的响应更快。边缘设备包括但不限于路由器、路由交换机、集成接入设备(integrated access device,IAD)或多路复用器等。例如,代理设备为ONT、OLT等。In a possible implementation, the proxy device is an edge device. The proxy device is an edge device configured close to the terminal and has a faster response to the terminal. Edge devices include but are not limited to routers, routing switches, integrated access devices (IAD) or multiplexers. For example, proxy devices are ONT, OLT, etc.
在一种可能的实现方式中,所述第一数据为直播业务的数据、在线教育业务的数据或线上会议业务的数据。本申请提供的方法不限定第一数据的业务类型,通用性强。In a possible implementation, the first data is data of a live broadcast service, data of an online education service, or data of an online conference service. The method provided by this application does not limit the service type of the first data and is highly versatile.
在一种可能的实现方式中,所述第一标识为已编码的标识,或者所述第一标识为未编码 的标识。In a possible implementation, the first identifier is an encoded identifier, or the first identifier is an unencoded identifier. logo.
第二方面,提供了一种数据传输装置,所述装置应用于代理设备,所述装置包括:接收模块,用于接收数据源站发送的已编码的第一数据,所述第一数据携带第一标识;复制模块,用于对所述第一数据进行复制,得到N个第一数据,其中,所述代理设备连接多个终端,且所述多个终端中的N个终端基于所述第一标识请求所述第一数据,所述N为大于等于2的整数;发送模块,用于向所述N个终端中的各个终端分别发送所述第一数据。In a second aspect, a data transmission device is provided. The device is applied to a proxy device. The device includes: a receiving module configured to receive the encoded first data sent by the data source station. The first data carries the first An identification; a copy module, used to copy the first data to obtain N pieces of first data, wherein the proxy device is connected to multiple terminals, and the N terminals among the multiple terminals are based on the first An identifier requests the first data, and N is an integer greater than or equal to 2; a sending module is configured to send the first data to each of the N terminals respectively.
在一种可能的实现方式中,所述接收模块,还用于接收所述多个终端中的至少两个终端发送的数据获取请求,所述数据获取请求携带所述第一标识;根据所述数据获取请求的数量,得到所述N。In a possible implementation, the receiving module is further configured to receive data acquisition requests sent by at least two terminals among the plurality of terminals, where the data acquisition requests carry the first identifier; according to the Number of data fetch requests to get the N.
在一种可能的实现方式中,所述装置还包括:获取模块,用于获取数据列表,所述数据列表中包括多组数据的第二标识,一组数据为同一个采集终端上传的数据,所述多组数据中的其中一组数据包括所述第一数据;所述接收模块,还用于接收所述多个终端中的至少两个终端发送的列表获取请求;所述发送模块,还用于向所述多个终端中的至少两个终端发送所述数据列表,所述数据列表中的第二标识用于所述N个终端确定所述第一标识。In a possible implementation, the device further includes: an acquisition module, configured to acquire a data list, where the data list includes second identifiers of multiple groups of data, and one group of data is data uploaded by the same collection terminal, One of the multiple sets of data includes the first data; the receiving module is also configured to receive a list acquisition request sent by at least two terminals among the plurality of terminals; the sending module is also Used to send the data list to at least two terminals among the plurality of terminals, where the second identifier in the data list is used by the N terminals to determine the first identifier.
在一种可能的实现方式中,所述获取模块,用于接收所述数据源站发送的所述数据列表,所述数据列表由所述数据源站基于所述第一数据得到,所述数据源站发送所述数据列表的第一时间早于所述数据源站发送所述第一数据的第二时间。In a possible implementation, the acquisition module is configured to receive the data list sent by the data source station. The data list is obtained by the data source station based on the first data. The data The first time when the source station sends the data list is earlier than the second time when the data source station sends the first data.
在一种可能的实现方式中,所述装置还包括:启动模块,用于基于所述数据列表启动针对所述数据列表的数据传输服务,得到所述数据列表对应的数据传输服务的第一启动结果,其中,所述第一启动结果指示启动成功;所述发送模块,还用于向所述数据源站发送数据请求,所述数据请求用于请求所述数据源站向所述代理设备发送所述第一数据。In a possible implementation, the device further includes: a startup module, configured to start a data transmission service for the data list based on the data list, and obtain the first startup of the data transmission service corresponding to the data list. As a result, the first startup result indicates successful startup; the sending module is also used to send a data request to the data source station, and the data request is used to request the data source station to send the data to the proxy device. the first data.
在一种可能的实现方式中,所述获取模块,用于根据接收到的未编码的第二数据生成所述数据列表,所述第二数据用于编码得到所述第一数据。In a possible implementation, the acquisition module is configured to generate the data list according to the received unencoded second data, and the second data is used to encode the first data.
在一种可能的实现方式中,所述发送模块,还用于所述代理设备未成功复制所述第一数据,向所述数据源站发送复制失败指令,所述复制失败指令用于提示所述数据源站向所述请求所述第一数据的终端依次发送所述第一数据。In a possible implementation, the sending module is also configured to send a copy failure instruction to the data source station if the proxy device fails to copy the first data, and the copy failure instruction is used to prompt all The data source station sequentially sends the first data to the terminal requesting the first data.
在一种可能的实现方式中,所述接收模块,还用于接收所述数据源站发送的数据传输请求,所述数据传输请求用于向所述代理设备调用数据传输服务;基于所述数据传输请求确定所述数据源站对应的数据传输服务的调用结果,所述调用结果指示所述数据源站调用成功;所述发送模块,还用于向所述数据源站发送所述调用结果,所述调用结果用于指示所述数据源站执行发送所述第一数据的操作。In a possible implementation, the receiving module is also configured to receive a data transmission request sent by the data source station, where the data transmission request is used to call the data transmission service to the proxy device; based on the data The transmission request determines the calling result of the data transmission service corresponding to the data source station, and the calling result indicates that the data source station is successfully called; the sending module is also used to send the calling result to the data source station, The calling result is used to instruct the data source station to perform the operation of sending the first data.
在一种可能的实现方式中,所述代理设备包括应用程序设计接口API,所述API用于所述数据源站通过所述数据传输请求调用所述数据传输服务。In a possible implementation manner, the proxy device includes an application programming interface API, and the API is used by the data source station to call the data transmission service through the data transmission request.
在一种可能的实现方式中,所述代理设备为边缘设备。In a possible implementation, the proxy device is an edge device.
在一种可能的实现方式中,所述第一数据为直播业务的数据、在线教育业务的数据或线上会议业务的数据。In a possible implementation, the first data is data of a live broadcast service, data of an online education service, or data of an online conference service.
在一种可能的实现方式中,所述第一标识为已编码的标识,或者所述第一标识为未编码的标识。In a possible implementation, the first identifier is an encoded identifier, or the first identifier is an unencoded identifier.
第三方面,提供了一种数据传输设备,所述设备包括存储器及处理器;所述存储器中存 储有至少一条指令,所述至少一条指令由所述处理器加载并执行,以使所述数据传输设备实现上述第一方面所述的数据传输方法。In a third aspect, a data transmission device is provided. The device includes a memory and a processor; the memory stores At least one instruction is stored, and the at least one instruction is loaded and executed by the processor so that the data transmission device implements the data transmission method described in the first aspect.
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现第一方面所述的数据传输方法。In a fourth aspect, a computer-readable storage medium is provided. At least one instruction is stored in the computer-readable storage medium, and the instruction is loaded and executed by a processor to implement the data transmission method described in the first aspect.
第五方面,提供了一种计算机程序产品,所述计算机程序产品包括计算机程序/指令,所述计算机程序/指令被处理器执行,以使计算机实现第一方面所述的数据传输方法。In a fifth aspect, a computer program product is provided. The computer program product includes a computer program/instruction, and the computer program/instruction is executed by a processor, so that the computer implements the data transmission method described in the first aspect.
第六方面,提供了一种通信装置,该装置包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收信号,并控制收发器发送信号,并且当该处理器执行该存储器存储的指令时,使得该处理器执行第一方面或第一方面的任一种可能的实施方式中的方法。In a sixth aspect, a communication device is provided, which includes a transceiver, a memory, and a processor. Wherein, the transceiver, the memory and the processor communicate with each other through an internal connection path, the memory is used to store instructions, and the processor is used to execute the instructions stored in the memory to control the transceiver to receive signals and control the transceiver to send signals. , and when the processor executes the instructions stored in the memory, the processor is caused to execute the method in the first aspect or any possible implementation of the first aspect.
可选地,所述处理器为一个或多个,所述存储器为一个或多个。Optionally, there are one or more processors and one or more memories.
可选地,所述存储器可以与所述处理器集成在一起,或者所述存储器与处理器分离设置。Alternatively, the memory may be integrated with the processor, or the memory may be provided separately from the processor.
在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(read only memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请对存储器的类型以及存储器与处理器的设置方式不做限定。In the specific implementation process, the memory can be a non-transitory memory, such as a read-only memory (ROM), which can be integrated on the same chip as the processor, or can be set in different On the chip, this application does not limit the type of memory and the arrangement of the memory and the processor.
第七方面,提供了一种芯片,包括处理器,用于从存储器中调用并运行所述存储器中存储的指令,使得安装有所述芯片的通信设备执行上述各方面中的方法。In a seventh aspect, a chip is provided, including a processor configured to call from a memory and run instructions stored in the memory, so that a communication device equipped with the chip executes the methods in the above aspects.
第八方面,提供另一种芯片,包括:输入接口、输出接口、处理器和存储器,所述输入接口、输出接口、所述处理器以及所述存储器之间通过内部连接通路相连,所述处理器用于执行所述存储器中的代码,当所述代码被执行时,所述处理器用于执行上述各方面中的方法。In an eighth aspect, another chip is provided, including: an input interface, an output interface, a processor, and a memory. The input interface, the output interface, the processor, and the memory are connected through an internal connection path. The processing The processor is used to execute the code in the memory, and when the code is executed, the processor is used to execute the methods in the above aspects.
应当理解的是,本申请实施例的第二方面至第八方面的技术方案及对应的可能的实现方式所取得的有益效果可以参见上述对第一方面及其对应的可能的实现方式的技术效果,此处不再赘述。It should be understood that the beneficial effects achieved by the technical solutions and corresponding possible implementations of the second to eighth aspects of the embodiments of the present application can be referred to the above technical effects of the first aspect and its corresponding possible implementations. , which will not be described again here.
附图说明Description of drawings
图1为本申请实施例提供的一种实施环境的示意图;Figure 1 is a schematic diagram of an implementation environment provided by an embodiment of the present application;
图2为本申请实施例提供的另一种实施环境的示意图;Figure 2 is a schematic diagram of another implementation environment provided by the embodiment of the present application;
图3为本申请实施例提供的一种数据传输方法的流程图;Figure 3 is a flow chart of a data transmission method provided by an embodiment of the present application;
图4为本申请实施例提供的一种数据传输的流程示意图;Figure 4 is a schematic flow chart of data transmission provided by an embodiment of the present application;
图5为本申请实施例提供的另一种数据传输方法的流程图;Figure 5 is a flow chart of another data transmission method provided by an embodiment of the present application;
图6为本申请实施例提供的一种数据传输装置的结构示意图;Figure 6 is a schematic structural diagram of a data transmission device provided by an embodiment of the present application;
图7为本申请实施例提供的一种网络设备的结构示意图;Figure 7 is a schematic structural diagram of a network device provided by an embodiment of the present application;
图8为本申请实施例提供的另一种网络设备的结构示意图。Figure 8 is a schematic structural diagram of another network device provided by an embodiment of the present application.
具体实施方式Detailed ways
本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。The terms used in the embodiments of the present application are only used to explain specific embodiments of the present application and are not intended to limit the present application. In order to make the purpose, technical solutions and advantages of the present application clearer, the embodiments of the present application will be further described in detail below with reference to the accompanying drawings.
随着通信技术的发展,实时通信的涉及范围越来越广,例如,在直播业务、在线教育业务和线上会议业务等场景下,可以实现一个终端与多个终端之间进行实时数据的传输。本申 请实施例提供了一种数据传输方法,应用于实时通信中的数据源站与终端之间的数据传输过程中,该方法的实施环境可参见图1,包括数据源站101、代理设备102和至少一个终端103。With the development of communication technology, the scope of real-time communication is getting wider and wider. For example, in scenarios such as live broadcast business, online education business, and online conference business, real-time data transmission between one terminal and multiple terminals can be realized. . This application The embodiment provides a data transmission method, which is applied in the data transmission process between the data source station and the terminal in real-time communication. The implementation environment of the method can be seen in Figure 1, including the data source station 101, the proxy device 102 and the At least one terminal 103.
可选地,代理设备102从数据源站101获取已编码的第一数据,对已编码的第一数据进行复制,并将复制得到的第一数据向请求第一数据的终端103发送。可选地,数据源站101为一种网络服务平台。数据源站101可接收来自采集终端上传的第二数据或者访问存储空间获取第二数据,并在获取到第二数据后,对未编码的第二数据进行编码处理,以得到第一数据。代理设备102为边缘设备,边缘设备包括但不限于:路由器、路由交换机、集成接入设备(integrated access device,IAD)或多路复用器等。终端103可以是任意一种可进行人机交互的电子产品,包括但不限于手机、个人计算机(personal computer,PC)和平板等。代理设备102可以分别与数据源站101和终端103之间通过有线或无线网络的方式建立通信连接。Optionally, the proxy device 102 obtains the encoded first data from the data source station 101, copies the encoded first data, and sends the copied first data to the terminal 103 requesting the first data. Optionally, the data source station 101 is a network service platform. The data source station 101 can receive the second data uploaded from the collection terminal or access the storage space to obtain the second data, and after obtaining the second data, encode the unencoded second data to obtain the first data. The proxy device 102 is an edge device, and the edge device includes but is not limited to: router, routing switch, integrated access device (integrated access device, IAD) or multiplexer, etc. The terminal 103 can be any electronic product capable of human-computer interaction, including but not limited to mobile phones, personal computers (personal computers, PCs), tablets, etc. The proxy device 102 can establish communication connections with the data source station 101 and the terminal 103 respectively through wired or wireless networks.
需要说明的是,代理设备102可以与终端103直接相连,也可以通过其他边缘设备与终端103间接相连。图2为本申请实施例提供的另一种实施环境的示意图,其示出了数据源站101、代理设备102和终端103之间的多种连接方式。示例性地,代理设备102可以是与终端103直接相连的其他边缘设备或光网络终端(optical network terminal,ONT)。代理设备102还可以是通过ONT与终端103间接相连的光线路终端(optical line terminal,OLT)。It should be noted that the proxy device 102 may be directly connected to the terminal 103, or may be indirectly connected to the terminal 103 through other edge devices. FIG. 2 is a schematic diagram of another implementation environment provided by the embodiment of the present application, which shows multiple connection modes between the data source station 101, the proxy device 102, and the terminal 103. For example, the proxy device 102 may be other edge devices or optical network terminals (ONT) directly connected to the terminal 103. The proxy device 102 may also be an optical line terminal (optical line terminal, OLT) indirectly connected to the terminal 103 through an ONT.
本申请实施例提供一种数据传输方法,该数据传输方法可基于上述图1所示的实施环境,该方法可由代理设备执行,该方法的流程图如图3所示,包括S301-S303。The embodiment of the present application provides a data transmission method. The data transmission method can be based on the implementation environment shown in Figure 1. The method can be executed by a proxy device. The flow chart of the method is shown in Figure 3, including S301-S303.
S301,代理设备接收数据源站发送的已编码的第一数据,第一数据携带第一标识。S301. The proxy device receives the encoded first data sent by the data source station, and the first data carries the first identifier.
在一种可能的实现方式中,数据源站用于对未编码的第二数据进行编码处理,得到适合存储和传输的数字编码,也即第一数据。例如,数据源站通过对第二数据进行编码压缩,使得第一数据的数据量小于第二数据的数据量,进而提高后续第一数据的传输效率。In a possible implementation, the data source station is used to encode the unencoded second data to obtain a digital code suitable for storage and transmission, that is, the first data. For example, the data source station encodes and compresses the second data so that the data volume of the first data is smaller than the data volume of the second data, thereby improving subsequent transmission efficiency of the first data.
此外,上述数据源站对第二数据进行编码是数据源站对第二数据的一个处理操作的举例。除了对第二数据进行编码,数据源站还可以对第二数据执行其他操作,例如录制、转码等。无论是对第二数据进行何种处理,处理之后得到的数据的传输过程与第一数据的传输过程类似,不再一一赘述,下文以对第一数据的传输过程进行举例说明。In addition, the above-mentioned encoding of the second data by the data source station is an example of a processing operation of the second data by the data source station. In addition to encoding the second data, the data source station can also perform other operations on the second data, such as recording, transcoding, etc. No matter what kind of processing is performed on the second data, the transmission process of the data obtained after the processing is similar to the transmission process of the first data, which will not be described in detail one by one. The following is an example of the transmission process of the first data.
可选地,数据源站编码得到的第一数据为实时业务的数据,第一数据包括但不限于直播业务的数据、在线教育业务的数据和线上会议业务的数据等。由于不同的实时业务的数据的传输过程类似,下文以直播业务的数据为例,对第一数据的传输过程进行举例说明。Optionally, the first data encoded by the data source station is data of real-time services. The first data includes but is not limited to data of live broadcast services, data of online education services, data of online conference services, etc. Since the data transmission processes of different real-time services are similar, the following uses the data of the live broadcast service as an example to illustrate the transmission process of the first data.
示例性地,数据源站在向代理设备发送第一数据前,还需要获取未编码的第二数据。关于数据源站获取第二数据的方式,可以是接收来自采集终端发送的第二数据。可选地,采集终端配置有数据采集装置,该数据采集装置例如是用于采集视频数据或图像数据的视频采集装置,如摄像头、照相机等。又或是用于采集音频数据的音频采集装置,如麦克风。发起实时通信的第一对象可以通过采集终端上配置的数据采集装置采集第二数据,并将采集的第二数据实时发送至数据源站。例如,直播业务中,发起实时通信的第一对象也即创建直播间的主播,通过采集终端上的摄像头录制视频并将视频流向数据源站发送,数据源站接收到采集终端上传的视频流,得到第二数据。For example, before sending the first data to the proxy device, the data source station also needs to obtain the unencoded second data. As for the way for the data source station to obtain the second data, it may be to receive the second data sent from the collection terminal. Optionally, the collection terminal is configured with a data collection device. The data collection device is, for example, a video collection device used to collect video data or image data, such as a camera, a camera, etc. Or an audio collection device, such as a microphone, used to collect audio data. The first object that initiates real-time communication can collect the second data through the data collection device configured on the collection terminal, and send the collected second data to the data source station in real time. For example, in the live broadcast business, the first object to initiate real-time communication is the anchor who creates the live broadcast room. The camera on the collection terminal records the video and sends the video stream to the data source station. The data source station receives the video stream uploaded by the collection terminal. Get the second data.
当然,采集终端可以选择将采集得到的数据发送至数据源站,作为第二数据,采集终端还可以选择上传其他渠道获取的数据至数据源站,作为第二数据。以实时业务为直播业务为例,主播提前录制了演出视频并存储在采集终端的存储空间内,在直播过程中,主播触发采集终端上安装和运行的直播应用程序中提供的视频播放控件,并选择播放演出视频。采集终端访问存储空间,将演出视频作为第二数据上传至数据源站,数据源站接收演出视频。 Of course, the collection terminal can choose to send the collected data to the data source station as the second data. The collection terminal can also choose to upload data obtained through other channels to the data source station as the second data. Taking the live broadcast service as an example, the anchor records the performance video in advance and stores it in the storage space of the collection terminal. During the live broadcast, the anchor triggers the video playback control provided in the live broadcast application installed and running on the collection terminal, and Select to play the performance video. The collection terminal accesses the storage space and uploads the performance video as the second data to the data source station, and the data source station receives the performance video.
此外,数据源站获取第二数据的方式除了基于采集终端上传,数据源站还可以访问存储空间,将存储空间内存储的数据作为未编码的第二数据。示例性地,数据源站接收到数据调度指令,访问存储空间,获取数据调度指令对应的数据,得到未编码的第二数据。本申请实施例不限定数据调度指令的发送方,可以是采集终端,也可以是请求第一数据的各个终端,为使描述更清晰,下文将与代理设备连接且请求获取第一数据的终端称为接收终端。In addition, in addition to uploading the second data through the collection terminal, the data source station can also access the storage space and use the data stored in the storage space as uncoded second data. For example, the data source station receives the data scheduling instruction, accesses the storage space, obtains the data corresponding to the data scheduling instruction, and obtains unencoded second data. The embodiment of the present application does not limit the sender of the data scheduling instruction. It may be a collection terminal or each terminal requesting the first data. In order to make the description clearer, the terminal connected to the agent device and requesting the first data will be referred to below. for the receiving terminal.
继续以直播业务为例,对基于数据调度指令获取第二数据的过程进行说明。在直播过程中,主播需要开启背景音乐,操作采集终端上提供的音乐播放控件后,采集终端基于接收到的音乐播放指令显示音乐播放列表。主播在音乐播放列表中选中待播放的目标音乐,采集终端基于主播的操作将目标音乐对应的数据调度指令发送至数据源站,数据源站根据接收到的数据调度指令,访问存储空间获取待播放的目标音乐,得到第二数据。Continuing to take the live broadcast service as an example, the process of obtaining the second data based on the data scheduling instruction will be explained. During the live broadcast, the anchor needs to turn on the background music. After operating the music playback control provided on the collection terminal, the collection terminal displays the music playlist based on the received music playback instructions. The anchor selects the target music to be played in the music playlist, and the collection terminal sends the data scheduling instructions corresponding to the target music to the data source station based on the anchor's operation. The data source station accesses the storage space to obtain the data to be played based on the received data scheduling instructions. target music, get the second data.
上述举例说明了由采集终端发送数据调度指令的过程,关于接收终端发送数据调度指令的过程如下。例如,在直播场景下,采集终端对应的接收终端是指用于观看采集终端创建的直播间的终端,操作接收终端观看直播间的观众,希望与主播进行互动,便触发接收终端上提供的蛋糕赠送的特效控件。接收终端基于蛋糕赠送的特效控件的触发向数据源站发送蛋糕赠送特效的数据调度指令,数据源站根据接收到的蛋糕赠送特效的数据调度指令,访问存储空间内存储的特效显示数据,获取蛋糕赠送特效对应的特效显示数据,将特效显示数据作为第二数据。The above example illustrates the process of sending data scheduling instructions by the collection terminal. The process of sending data scheduling instructions by the receiving terminal is as follows. For example, in a live broadcast scenario, the receiving terminal corresponding to the collection terminal refers to the terminal used to watch the live broadcast room created by the collection terminal. Audiences who operate the receiving terminal to watch the live broadcast room and want to interact with the anchor will trigger the cake provided on the receiving terminal. Complimentary special effects controls. The receiving terminal sends data scheduling instructions for the cake gifting special effects to the data source station based on the triggering of the cake gifting special effects control. The data source station accesses the special effects display data stored in the storage space to obtain the cake based on the received data scheduling instructions for the cake gifting special effects. The special effects display data corresponding to the special effects are given as a second data.
需要说明的是,对于上述数据源站访问的存储空间,可以是数据源站的存储空间,也可以是其他与数据源站通信连接的网络设备的存储空间。例如,存在文件源站用于存储直播业务里涉及到的特效数据,则数据源站访问的存储空间属于文件源站的存储空间。基于上述举例可以理解,第一数据/第二数据可以是任意数据类型的数据,包括但不限于视频数据、图像数据、语音数据和游戏数据等。可选地,无论数据源站基于何种方式获取未编码的第二数据,本申请实施例均不限定数据源站对第二数据的编码方式,包括但不限于变换编码、熵编码或运动估计和运动补偿等编码方式,数据源站可选择任一种编码方式对第二数据进行编码,以得到已编码的第一数据。It should be noted that the storage space accessed by the data source station may be the storage space of the data source station or the storage space of other network devices that are communicatively connected to the data source station. For example, if there is a file source station used to store special effects data involved in the live broadcast service, the storage space accessed by the data source station belongs to the storage space of the file source station. Based on the above examples, it can be understood that the first data/second data can be data of any data type, including but not limited to video data, image data, voice data, game data, etc. Optionally, no matter how the data source station obtains the unencoded second data, the embodiments of this application do not limit the encoding method of the second data by the data source station, including but not limited to transform coding, entropy coding or motion estimation. and motion compensation and other encoding methods. The data source station can select any encoding method to encode the second data to obtain the encoded first data.
此外,数据源站编码第二数据得到的第一数据中携带第一标识,该第一标识可以区分第一数据与其他数据。在一种可能的实现方式中,第一标识用于指示第一数据的来源,可基于第二数据的来源信息确定。数据源站接收到的第二数据中携带有第二数据的来源信息,该来源信息例如为第二数据对应的采集终端的互联网协议(internet protocol address,IP)地址、媒体访问控制(media access control,MAC)地址。以直播业务为例,该来源信息还可以是采集终端所在的直播间的信息。本申请实施例不对第二数据携带第二数据的来源信息的方式进行限定,例如,第二数据可以在第二数据的扩展字段中携带第二数据的来源信息,也可以通过第二数据的其他字段中携带。无论第二数据以何种方式携带第二数据的来源信息,由于第一数据是基于第二数据编码得到,因此,第一数据与第二数据的来源一致,可基于第二数据的来源信息确定第一数据的第一标识。In addition, the first data obtained by encoding the second data by the data source station carries a first identifier, and the first identifier can distinguish the first data from other data. In a possible implementation, the first identifier is used to indicate the source of the first data, which can be determined based on the source information of the second data. The second data received by the data source station carries the source information of the second data. The source information is, for example, the Internet protocol (internet protocol address, IP) address and media access control (media access control) of the collection terminal corresponding to the second data. , MAC) address. Taking the live broadcast service as an example, the source information may also be the information of the live broadcast room where the terminal is located. The embodiments of the present application do not limit the way in which the second data carries the source information of the second data. For example, the second data can carry the source information of the second data in the extension field of the second data, or it can also carry the source information of the second data through other fields of the second data. carried in the field. No matter how the second data carries the source information of the second data, since the first data is encoded based on the second data, the sources of the first data and the second data are consistent and can be determined based on the source information of the second data. The first identifier of the first data.
示例性地,数据源站在对第二数据进行编码时,可在第二数据的基础上额外添加来源信息,作为第一标识,也即第一标识为未编码的标识,代理设备可以直接提取第一数据中的第一标识。例如,代理设备在读取第一数据的过程中,即可获得第一数据的第一标识所指示的第一数据的来源。又或者,数据源站在对第二数据进行编码时,未在第二数据的基础上额外添加来源信息,而是第二数据本身包括第二数据的来源信息,该种情况下,第一标识通过对第二数据的来源信息进行编码得到,也即第一标识为已编码的标识。则代理设备收到已编码 的第一数据后,需要对第一数据进行解码操作,通过解码得到携带有来源信息的第二数据,以根据第二数据获取第一数据的来源。For example, when encoding the second data, the data source station can add additional source information as the first identifier on the basis of the second data, that is, the first identifier is an unencoded identifier, and the proxy device can directly extract it. The first identifier in the first data. For example, in the process of reading the first data, the proxy device can obtain the source of the first data indicated by the first identifier of the first data. Or, when the data source station encodes the second data, it does not add additional source information on the basis of the second data, but the second data itself includes the source information of the second data. In this case, the first identifier It is obtained by encoding the source information of the second data, that is, the first identifier is an encoded identifier. then the agent device receives the encoded After obtaining the first data, the first data needs to be decoded to obtain the second data carrying the source information through decoding, so as to obtain the source of the first data based on the second data.
无论第一数据携带的第一标识为何种情况,数据源站均可向代理设备发送第一数据。此外,由于数据源站在通过代理设备向接收终端发送第一数据的过程中,是通过单播将第一数据转发至代理设备。而在单播的转发场景下,代理设备对于接收到的第一数据仅执行转发到对应的接收终端的操作。但本申请实施例还需要代理设备对第一数据进行复制,进而在有多个接收终端获取同一个第一数据的情况下,无需数据源站重复发送,通过代理设备将复制得到的多个第一数据依次发送给接收终端即可。因此,数据源站在向代理设备发送第一数据之前,还需要调度代理设备提供的数据传输服务,以使代理设备采用本申请实施例提供的数据传输方法,对第一数据执行复制并转发的操作。Regardless of the first identifier carried by the first data, the data source station can send the first data to the proxy device. In addition, since the data source station forwards the first data to the proxy device through unicast during the process of sending the first data to the receiving terminal through the proxy device. In the unicast forwarding scenario, the proxy device only forwards the received first data to the corresponding receiving terminal. However, the embodiment of the present application also requires a proxy device to copy the first data. Furthermore, when multiple receiving terminals obtain the same first data, there is no need for the data source station to send it repeatedly. The proxy device will copy the multiple third data. One data is sent to the receiving terminal in sequence. Therefore, before sending the first data to the proxy device, the data source station also needs to schedule the data transmission service provided by the proxy device so that the proxy device uses the data transmission method provided by the embodiment of the present application to copy and forward the first data. operate.
可选地,调度过程包括:接收数据源站发送的数据传输请求,数据传输请求用于向代理设备调用数据传输服务;基于数据传输请求确定数据源站对应的数据传输服务的调用结果,调用结果指示数据源站调用成功;向数据源站发送调用结果,调用结果用于指示数据源站执行发送第一数据的操作。Optionally, the scheduling process includes: receiving a data transmission request sent by the data source station, the data transmission request is used to call the data transmission service to the proxy device; determining the calling result of the data transmission service corresponding to the data source station based on the data transmission request, and the calling result Indicates that the data source station is successfully called; sends the call result to the data source station, and the call result is used to instruct the data source station to perform the operation of sending the first data.
在一种可能的实现方式中,数据源站发送的数据传输请求封装有至少一个待匹配信息,代理设备根据数据传输请求中封装的待匹配信息,确定各个待匹配信息的匹配结果。基于至少一个待匹配信息中的各个待匹配信息的匹配结果均匹配成功,确定调用结果指示调用成功。以待匹配信息为数据传输协议为例,代理设备根据数据源站请求的数据传输协议,判断是否支持基于该数据传输协议进行数据传输。若代理设备支持基于该数据传输协议进行数据传输,则确定数据传输协议的匹配结果为匹配成功。通过上述操作统一数据源站与代理设备在传输第一数据过程中使用的数据传输协议,实现数据源站与代理设备之间的传输通道的建立,并基于建立的传输通道执行后续发送第一数据的操作。本申请实施例不限定传输设备在传输第一数据过程中涉及到的数据传输协议,包括但不限于超文本传输协议在安全加密字层/超文本传输协议(hypertext transfer protocol over secure socket layer/hypertext transfer protocol,HTTPs/HTTP)、传输控制协议(transmission control protocol,TCP)等。In a possible implementation, the data transmission request sent by the data source station is encapsulated with at least one piece of information to be matched, and the proxy device determines the matching result of each piece of information to be matched based on the information to be matched encapsulated in the data transmission request. Based on the matching results of each of the to-be-matched information in at least one of the to-be-matched information being matched successfully, it is determined that the calling result indicates that the calling is successful. Taking the information to be matched as a data transmission protocol as an example, the proxy device determines whether it supports data transmission based on the data transmission protocol requested by the data source station. If the proxy device supports data transmission based on the data transmission protocol, it is determined that the matching result of the data transmission protocol is a successful match. Through the above operations, the data transmission protocol used by the data source station and the proxy device in the process of transmitting the first data is unified, the establishment of a transmission channel between the data source station and the proxy device is realized, and the subsequent transmission of the first data is performed based on the established transmission channel. operation. The embodiments of this application do not limit the data transmission protocol involved in the process of transmitting the first data by the transmission device, including but not limited to hypertext transfer protocol over secure socket layer/hypertext transfer protocol, HTTPs/HTTP), transmission control protocol (transmission control protocol, TCP), etc.
可选地,代理设备包括应用程序设计接口(application programming interface,API),API用于数据源站通过数据传输请求调用数据传输服务。也即,代理设备提供一个订阅服务框架,数据源站可以通过调用API,订阅代理设备提供的数据传输服务,以使得数据源站的调用过程更便捷,效率更高。Optionally, the proxy device includes an application programming interface (API), which is used by the data source station to call the data transmission service through a data transmission request. That is, the proxy device provides a subscription service framework, and the data source station can subscribe to the data transmission service provided by the proxy device by calling the API, so that the calling process of the data source station is more convenient and efficient.
需要说明的是,上述举例旨在说明数据源站在向代理设备发送第一数据之前,还需要向代理设备发送数据传输请求。而非限定数据传输请求的发送时机,数据源站可以选择在接收到未编码的第二数据后,开始执行向代理设备发送数据传输请求的操作,数据源站还可以选择在接收到第二数据之前,向代理设备发送数据传输请求。以直播业务为例,由于直播高峰期为晚上7:00-12:00。因此,数据源站在晚上6:50时向代理设备发送数据传输请求,提前实现数据传输服务的调用。在接收到第二数据,对第二数据进行编码得到第一数据后,即可将第一数据向代理设备发送,进而节省了从接收第二数据到发送第一数据之间的所用时间,减缓了直播过程中的视频延迟问题。It should be noted that the above examples are intended to illustrate that the data source station also needs to send a data transmission request to the proxy device before sending the first data to the proxy device. Instead of limiting the timing of sending the data transfer request, the data source station can choose to start sending the data transfer request to the proxy device after receiving the unencoded second data. The data source station can also choose to start sending the data transfer request to the proxy device after receiving the second data. Previously, a data transfer request was sent to the proxy device. Take the live broadcast business as an example, since the peak period of live broadcast is 7:00-12:00 pm. Therefore, the data source station sends a data transmission request to the proxy device at 6:50 pm to realize the invocation of the data transmission service in advance. After receiving the second data and encoding the second data to obtain the first data, the first data can be sent to the proxy device, thereby saving the time between receiving the second data and sending the first data, slowing down Solve the problem of video delay during live broadcast.
可选地,无论数据源站基于何种时机向代理设备发送数据传输请求,基于数据源站调用代理设备的数据传输服务成功后,数据源站即可向代理设备发送第一数据。数据源站将第一数据发送至云中心,由云中心向边缘域发送,再由边缘域向位于边缘节点的边缘设备,也即代理设备发送,以使代理设备接收第一数据。其中,云中心、边缘域和边缘节点是边缘计算 的三种层级结构,云中心是边缘计算的管控端,边缘域用于数据汇聚、存储和处理等,边缘节点用于数据采集和前端智能处理等。Optionally, no matter when the data source station sends a data transmission request to the proxy device, after the data source station successfully calls the data transmission service of the proxy device, the data source station can send the first data to the proxy device. The data source station sends the first data to the cloud center, from the cloud center to the edge domain, and then from the edge domain to the edge device located at the edge node, that is, the proxy device, so that the proxy device receives the first data. Among them, cloud center, edge domain and edge node are edge computing The cloud center is the management and control end of edge computing, the edge domain is used for data aggregation, storage and processing, and the edge nodes are used for data collection and front-end intelligent processing.
需要注意的是,由于代理设备位于的边缘节点存在区别,代理设备接收第一数据的传输路径也存在不同。以图4示出的数据传输的过程示意图为例,对传输路径的不同进行说明。针对代理设备与边缘域,也即图4中的区域直接连接的情况,代理设备接收来自边缘域发送的第一数据。例如图4示出的OLT代理设备和其他代理设备的传输路径。针对代理设备与边缘域通过边缘节点间接连接的情况,代理设备接收来自边缘节点发送的第一数据。例如图4示出的ONT代理设备的传输路径,ONT代理设备与OLT边缘节点连接,边缘域在将第一数据发送至OLT边缘节点后,再由OLT边缘节点将第一数据转发至ONT代理设备,以使ONT代理设备获取数据源站发送的第一数据,并基于第一数据执行S302-S303中代理设备涉及的操作。可选地,数据源站在向代理设备发送第一数据的过程中,采用的是单播传输方式。It should be noted that because the edge nodes where the proxy devices are located are different, the transmission paths through which the proxy devices receive the first data are also different. Taking the schematic diagram of the data transmission process shown in FIG. 4 as an example, the differences in transmission paths will be explained. For the situation where the proxy device is directly connected to the edge domain, that is, the area in Figure 4, the proxy device receives the first data sent from the edge domain. For example, the transmission path of the OLT proxy device and other proxy devices shown in Figure 4. For the situation where the proxy device and the edge domain are indirectly connected through the edge node, the proxy device receives the first data sent from the edge node. For example, Figure 4 shows the transmission path of the ONT proxy device. The ONT proxy device is connected to the OLT edge node. After the edge domain sends the first data to the OLT edge node, the OLT edge node forwards the first data to the ONT proxy device. , so that the ONT proxy device obtains the first data sent by the data source station, and performs operations related to the proxy device in S302-S303 based on the first data. Optionally, the data source station adopts a unicast transmission method when sending the first data to the proxy device.
S302,代理设备对第一数据进行复制,得到N个第一数据,其中,代理设备连接多个终端,且多个终端中的N个终端基于第一标识请求第一数据,N为大于等于2的整数。S302: The proxy device copies the first data to obtain N pieces of first data, where the proxy device is connected to multiple terminals, and N terminals among the multiple terminals request the first data based on the first identification, and N is greater than or equal to 2. integer.
可选地,由于代理设备连接多个终端,并且多个终端中有至少两个终端请求相同的第一数据,也即是数据源站需要通过同一个代理设备向至少两个终端发送相同的第一数据。若代理设备未对第一数据进行复制,则数据源站需要向代理设备发送多个第一数据,数据源站与代理设备之间出现了端到端的带宽冗余。通过触发代理设备对第一数据的复制操作,即使有多个终端请求获取第一数据,数据源站也仅需要发送一次第一数据至代理设备,减少了数据源站传输第一数据的次数。而当与代理设备连接的终端不满足上述条件,例如仅有一个终端请求第一数据时,即使代理设备不对第一数据进行复制,数据源站也可以通过传输一次第一数据,保证通过代理设备请求获取第一数据的终端接收到第一数据。基于代理设备连接的终端的情况,灵活触发代理设备对第一数据的复制操作,在减轻数据源站的带宽消耗的基础上,也避免了资源浪费。Optionally, since the proxy device is connected to multiple terminals, and at least two of the multiple terminals request the same first data, that is, the data source station needs to send the same first data to at least two terminals through the same proxy device. One data. If the proxy device does not copy the first data, the data source station needs to send multiple first data to the proxy device, and end-to-end bandwidth redundancy occurs between the data source station and the proxy device. By triggering the proxy device to copy the first data, even if multiple terminals request to obtain the first data, the data source station only needs to send the first data to the proxy device once, reducing the number of times the data source station transmits the first data. When the terminal connected to the proxy device does not meet the above conditions, for example, when only one terminal requests the first data, even if the proxy device does not copy the first data, the data source station can transmit the first data once to ensure that the first data is transmitted through the proxy device. The terminal that requested the first data receives the first data. Based on the situation of the terminal connected to the proxy device, the proxy device can flexibly trigger the copy operation of the first data, which not only reduces the bandwidth consumption of the data source station, but also avoids waste of resources.
示例性地,由于代理设备需要根据请求第一数据的终端的数量进行复制。因此,代理设备在复制第一数据前,还需要确定请求第一数据的终端的数量,确定过程包括:接收多个终端中的至少两个终端发送的数据获取请求,数据获取请求携带第一标识;根据数据获取请求的数量,得到N。For example, because the proxy device needs to copy according to the number of terminals requesting the first data. Therefore, before copying the first data, the proxy device also needs to determine the number of terminals requesting the first data. The determination process includes: receiving data acquisition requests sent by at least two terminals among the multiple terminals, and the data acquisition requests carry the first identifier. ;According to the number of data acquisition requests, N is obtained.
本申请实施例不限定接收数据获取请求的过程,可以是基于数据列表实现,此种情况下,代理设备在对第一数据进行复制之前,需要执行的操作还包括:获取数据列表,数据列表中包括多组数据的第二标识,一组数据为同一个采集终端上传的数据,多组数据中的其中一组数据包括第一数据;接收多个终端中的至少两个终端发送的列表获取请求,向多个终端中的至少两个终端发送数据列表,数据列表中的第二标识用于N个终端确定第一标识。The embodiment of the present application does not limit the process of receiving the data acquisition request, which can be implemented based on the data list. In this case, before the proxy device copies the first data, the operations that need to be performed also include: obtaining the data list. Includes second identifiers of multiple sets of data, one set of data is data uploaded by the same collection terminal, one set of data in the multiple sets of data includes the first data; receives a list acquisition request sent by at least two terminals among the multiple terminals , sending a data list to at least two terminals among the plurality of terminals, and the second identifier in the data list is used by the N terminals to determine the first identifier.
示例性地,数据列表用于区分多组数据中的各组数据,多组数据中的任一组数据是指由同一个采集终端上传的数据的集合。通过数据列表向请求获取数据列表的终端展示可以获取的多组数据,以辅助用户从多组数据中选择需要获取的数据。在直播业务场景中,数据列表也即是直播视频节目单,直播视频节目单上包括多个直播间的第二标识,用户可以通过直播视频节目单从多个直播间中选择需要观看的直播间。可选地,代理设备可通过包括但不限于如下两种方式获取数据列表。For example, the data list is used to distinguish each group of data in multiple groups of data. Any group of data in multiple groups of data refers to a collection of data uploaded by the same collection terminal. Multiple sets of data that can be obtained are displayed to the terminal requesting the data list through the data list to assist the user in selecting the data to be obtained from the multiple sets of data. In the live broadcast business scenario, the data list is also the live video program list. The live video program list includes the second identifiers of multiple live broadcast rooms. The user can select the live broadcast room to watch from the multiple live broadcast rooms through the live video program list. . Optionally, the proxy device can obtain the data list through two methods including but not limited to the following.
获取方式一、根据接收到的未编码的第二数据生成数据列表。Obtaining method 1: Generate a data list based on the received unencoded second data.
可选地,由于代理设备还用于转发采集终端上传至数据源站的多组数据,该多组数据中的一组数据包括未编码的第二数据。代理设备可在转发一组数据的过程中,提取该组数据中 的标识信息。其中,提取的不同标识信息可以区分不同组的数据,例如,一组数据的标识信息可以为该组数据的采集终端的IP地址、MAC地址等。因此,可将一组数据的标识信息作为该组数据的第二标识,该第二标识可用于标识该组数据所包括的各个数据。代理设备通过对转发的多组数据均执行上述提取标识信息的操作,得到了多组数据中的各组数据的第二标识,从而生成数据列表。示例性地,生成的数据列表中可以包括各组数据的第二标识。又由于第一数据为第二数据编码得到的数据,因此,对于上述提及的多组数据中包括第二数据的一组数据,该组数据的第二标识也可以是指包括第一数据的一组数据的第二标识。也就是说,一组数据的第二标识既可以用于标识同一个采集终端上传的一组未编码的数据,也可以标识同一个采集终端上传的一组未编码的数据所对应的已编码的数据。Optionally, since the proxy device is also used to forward multiple sets of data uploaded by the collection terminal to the data source station, one set of the multiple sets of data includes uncoded second data. The proxy device can extract a set of data in the process of forwarding the set of data. identification information. Different extracted identification information can distinguish different groups of data. For example, the identification information of a group of data can be the IP address, MAC address, etc. of the collection terminal of the group of data. Therefore, the identification information of a group of data can be used as the second identification of the group of data, and the second identification can be used to identify each data included in the group of data. The proxy device obtains the second identifier of each group of data in the multiple groups of data by performing the above-mentioned operation of extracting identification information on the forwarded multiple groups of data, thereby generating a data list. For example, the generated data list may include the second identification of each group of data. Since the first data is data encoded by the second data, for a group of data including the second data among the above-mentioned groups of data, the second identifier of the group of data may also refer to the group of data including the first data. A second identifier for a set of data. That is to say, the second identifier of a group of data can be used to identify a group of unencoded data uploaded by the same collection terminal, or can also be used to identify the encoded data corresponding to a group of unencoded data uploaded by the same collection terminal. data.
以直播业务为例,对生成数据列表的过程进行举例说明,代理设备在向数据源站转发接收到的未编码的视频数据,也即第二数据时,会提取第二数据携带的采集终端的IP地址,得到包括第二数据的一组数据的第二标识。代理设备对不同的采集终端上传的视频数据依次执行上述操作,得到包括不同直播间对应的采集终端的IP地址的直播视频节目单,也即数据列表。此外,数据列表除了包括各组数据的第二标识,还可以包括各组数据的其他信息,仍以各组数据为直播间的数据为例,其他信息例如可以是各个直播间的封面图像,通过显示各个直播间的封面图像,辅助用户选择需要观看的直播间。Take the live broadcast service as an example to illustrate the process of generating a data list. When the proxy device forwards the received uncoded video data, that is, the second data, to the data source station, it will extract the information of the collection terminal carried by the second data. The IP address obtains a second identification of a set of data including the second data. The agent device sequentially performs the above operations on the video data uploaded by different collection terminals to obtain a live video program list including the IP addresses of the collection terminals corresponding to different live broadcast rooms, that is, a data list. In addition, in addition to the second identification of each group of data, the data list may also include other information of each group of data. Taking each group of data as the data of a live broadcast room as an example, the other information may be, for example, the cover image of each live broadcast room. Display the cover image of each live broadcast room to assist users in selecting the live broadcast room they want to watch.
当然,代理设备除了在转发第二数据的过程中,基于转发的第二数据生成对应的数据列表,还可以是传输路径涉及到的其他传输节点生成数据列表,并将生成的数据列表发送给代理设备。以图4所示的ONT代理设备为例,其他传输节点可以是OLT边缘节点,由于采集终端需要将视频数据上传至准直播平台,并基于准直播平台推流发往数据源站,上传的视频数据会由ONT代理设备向OLT边缘节点发送,OLT边缘节点可以基于接收到的视频数据生成对应的数据列表,并在后续代理设备有获取数据列表的需求时,向代理设备发送生成的数据列表。Of course, in addition to generating a corresponding data list based on the forwarded second data during the process of forwarding the second data, the proxy device can also generate a data list for other transmission nodes involved in the transmission path, and send the generated data list to the agent. equipment. Taking the ONT proxy device shown in Figure 4 as an example, other transmission nodes can be OLT edge nodes. Since the collection terminal needs to upload video data to the quasi-live broadcast platform, and push the stream to the data source station based on the quasi-live broadcast platform, the uploaded video The data will be sent by the ONT proxy device to the OLT edge node. The OLT edge node can generate a corresponding data list based on the received video data, and send the generated data list to the proxy device when the subsequent proxy device needs to obtain the data list.
获取方式二、接收数据源站发送的数据列表,数据列表由数据源站基于第一数据得到,数据源站发送数据列表的第一时间早于数据源站发送第一数据的第二时间。The second acquisition method is to receive a data list sent by the data source station. The data list is obtained by the data source station based on the first data. The first time the data source station sends the data list is earlier than the second time the data source station sends the first data.
在一种可能的实现方式中,数据源站接收来自多个采集终端上传的多组数据,再对接收到的多组数据进行编码过程中,生成多组数据对应的数据列表。多组数据中的一组数据包括第一数据,关于数据源站生成数据列表的过程与获取方式一中代理设备生成数据列表的过程类似,数据源站在对多组数据中的各组数据进行编码过程中,提取各组数据的标识信息,作为各组数据的第二标识,基于各组数据的第二标识生成数据列表。In one possible implementation, the data source station receives multiple sets of data uploaded from multiple collection terminals, and then generates a data list corresponding to the multiple sets of data during the encoding process of the received multiple sets of data. One set of data in the multiple sets of data includes the first data. The process of the data source station generating the data list is similar to the process of the proxy device generating the data list in the acquisition method 1. The data source station performs a process on each set of data in the multiple sets of data. During the encoding process, the identification information of each group of data is extracted as the second identification of each group of data, and a data list is generated based on the second identification of each group of data.
可选地,代理设备可以选择上述任一种方式获取数据列表,并在获取数据列表后,向请求获取数据列表的终端发送数据列表。在一种可能的实现方式中,与代理设备连接的终端在向代理设备请求获取数据列表之前,还需要进行用户鉴权认证,也即对该终端使用的数据业务的有效性进行检查,终端在认证通过后,才可以向代理设备请求获取数据列表。以数据列表为在线教育业务场景中的数据列表为例,只有报名参与该在线教育业务的会员才能有权限获取该数据列表。请求获取数据列表的终端可以向数据源站发送认证信息,该认证信息中可以携带会员信息,以进行用户鉴权认证。例如,数据源站获取了参与该在线教育业务的会员的信息,接收到终端发送的认证信息后,将认证信息中携带的会员信息与参与该在线教育业务的会员的信息进行比对,如果参与该在线教育业务的会员的信息中包括该认证信息中携带的会员信息,则确定该终端认证通过。可选地,除了在数据源站侧进行用户鉴权认证外,也可以在代理设备或者其他位于数据源站与终端之间的网络设备上进行用户鉴权认证。因此, 终端还可以向代理设备发送认证信息,或是向其他位于数据源站与终端之间的网络设备发送认证信息,认证过程与数据源站的认证过程类似,本申请实施例对此不再进行赘述。Optionally, the proxy device may choose any of the above methods to obtain the data list, and after obtaining the data list, send the data list to the terminal that requested the data list. In a possible implementation, the terminal connected to the proxy device needs to perform user authentication before requesting the proxy device to obtain the data list, that is, checking the validity of the data services used by the terminal. After passing the authentication, you can request the proxy device to obtain the data list. Take the data list in the online education business scenario as an example. Only members who have signed up to participate in the online education business have permission to obtain the data list. The terminal requesting the data list can send authentication information to the data source station, and the authentication information can carry member information for user authentication. For example, the data source station obtains the information of members participating in the online education business. After receiving the authentication information sent by the terminal, it compares the member information carried in the authentication information with the information of members participating in the online education business. If participating If the member information of the online education business includes the member information carried in the certification information, it is determined that the terminal has passed the certification. Optionally, in addition to performing user authentication and authentication on the data source station side, user authentication and authentication can also be performed on a proxy device or other network devices located between the data source station and the terminal. therefore, The terminal can also send authentication information to the proxy device, or send authentication information to other network devices located between the data source station and the terminal. The authentication process is similar to the authentication process of the data source station, and will not be described in detail in the embodiment of this application. .
在完成上述用户鉴权认证后,代理设备可向请求数据列表的终端发送数据列表。在一种可能的实现方式中,代理设备在发送数据列表过程中,启动了针对数据列表的数据传输服务。其中,数据列表的数据传输服务是指由于请求获取数据列表的终端存在多个,因此,数据源站需要实现向多个请求获取数据列表的终端发送数据列表,与第一数据的传输原理类似,代理设备会对接收到的数据列表进行复制,并分别向请求获取数据列表的终端发送数据列表,从而减少数据源站向请求获取数据列表的终端发送数据列表的次数。上述过程也即是针对数据列表的数据传输服务,而启动针对数据列表的数据传输服务是指代理设备准备执行复制数据列表的操作,准备过程例如是调用复制数据列表的函数,也可以是其他准备过程。After completing the above user authentication and authentication, the proxy device can send the data list to the terminal requesting the data list. In a possible implementation manner, during the process of sending the data list, the proxy device starts a data transmission service for the data list. Among them, the data transmission service of the data list means that since there are multiple terminals requesting to obtain the data list, the data source station needs to implement sending the data list to multiple terminals requesting the data list, which is similar to the transmission principle of the first data. The proxy device will copy the received data list and send the data list to the terminal requesting the data list respectively, thereby reducing the number of times the data source station sends the data list to the terminal requesting the data list. The above process is also a data transmission service for the data list, and starting the data transmission service for the data list means that the agent device is preparing to perform the operation of copying the data list. The preparation process is, for example, calling a function for copying the data list, or it can be other preparations. process.
代理设备在接收到数据列表后,开始启动针对数据列表的数据传输服务,并获得第一启动结果,针对第一启动结果存在指示启动成功和启动失败这两种情况,数据源站与代理设备执行的操作也存在区别。After receiving the data list, the agent device starts to start the data transmission service for the data list and obtains the first startup result. For the first startup result, there are two situations: successful startup and startup failure. The data source station and the agent device execute There are also differences in operations.
情况一、第一启动结果指示启动失败。第一启动结果指示启动失败是指代理设备未成功复制数据列表。此种情况下,代理设备将第一启动结果向数据源站发送,数据源站基于数据列表的数据传输服务启动失败,复制多个数据列表并将多个数据列表发送给代理设备,以使代理设备分别转发给对应的请求数据列表的终端。Case 1: The first startup result indicates startup failure. The first startup result indicating startup failure means that the agent device did not successfully copy the data list. In this case, the agent device sends the first startup result to the data source station. The data source station fails to start the data transmission service based on the data list. It copies multiple data lists and sends the multiple data lists to the agent device so that the agent The device forwards it to the corresponding terminal requesting the data list respectively.
可选地,针对第一启动结果指示启动失败的情况一,数据源站在向代理设备发送第一数据时,选择复制N个第一数据,并向代理设备发送N个第一数据,以使代理设备无需执行复制的操作,将接收到的N个第一数据分别转发给N个终端。由于数据列表对应的数据传输服务启动失败,可能是代理设备提供的数据传输服务存在问题的所导致,数据源站基于此,选择在传输第一数据的时候不调用代理设备的数据传输服务,避免第一数据的数据传输服务也启动失败,进而影响第一数据的传输效率。Optionally, for the first case where the first startup result indicates startup failure, when the data source station sends the first data to the proxy device, it chooses to copy N pieces of first data and sends N pieces of first data to the proxy device, so that The proxy device does not need to perform a copy operation and forwards the received N first data to N terminals respectively. Since the data transmission service corresponding to the data list failed to start, it may be caused by a problem with the data transmission service provided by the proxy device. Based on this, the data source station chose not to call the data transmission service of the proxy device when transmitting the first data, thus avoiding The data transmission service of the first data also fails to start, thus affecting the transmission efficiency of the first data.
情况二、第一启动结果指示启动成功,代理设备调用数据列表对应的数据传输服务复制多份数据列表,分别发送给请求数据列表的终端。Case 2: The first startup result indicates that the startup is successful. The proxy device calls the data transmission service corresponding to the data list to copy multiple data lists and sends them to the terminal requesting the data list respectively.
在一种可能的实现方式中,针对代理设备先获取数据列表,后接收第一数据的情况,数据源站发送第一数据的过程也与第一启动结果相关。In a possible implementation manner, in the case where the proxy device first obtains the data list and then receives the first data, the process of the data source station sending the first data is also related to the first startup result.
可选地,针对第一启动结果指示启动成功的情况二,代理设备向数据源站发送数据请求,数据请求用于请求数据源站向代理设备发送第一数据。在一种可能的实现方式中,代理设备可以是在向数据源站返回第一启动结果的基础上,发送数据请求。又或者,代理设备将用于指示启动成功的第一启动结果发送给数据源站,作为数据请求,数据源站根据数据列表对应的数据传输服务启动成功,向代理设备发送第一数据。Optionally, for the second case where the first startup result indicates successful startup, the proxy device sends a data request to the data source station, and the data request is used to request the data source station to send the first data to the proxy device. In a possible implementation manner, the proxy device may send a data request on the basis of returning the first startup result to the data source station. Alternatively, the proxy device sends the first startup result indicating successful startup to the data source station. As a data request, the data source station sends the first data to the proxy device according to the successful startup of the data transmission service corresponding to the data list.
需要说明的是,上述举例旨在说明数据列表与第一数据在先后传输的过程中,可以基于前一个传输的数据的启动结果,调整后续操作。而非限定第一数据与数据列表的获取顺序,数据源站可以选择将多组数据均发送给代理设备,代理设备从而获取包括第一数据在内的多组数据。代理设备在获取第一数据后,获取数据列表,并将数据列表发送给请求数据列表的终端,从而在终端通过数据列表请求获取第一数据后,可以快速将第一数据发送给请求第一数据的终端。也即代理设备先获取第一数据,再获取数据列表的执行顺序也是可以实现。It should be noted that the above examples are intended to illustrate that during the process of sequential transmission of the data list and the first data, subsequent operations can be adjusted based on the startup result of the previously transmitted data. Instead of limiting the order in which the first data and the data list are obtained, the data source station may choose to send multiple sets of data to the proxy device, so that the proxy device acquires multiple sets of data including the first data. After obtaining the first data, the proxy device obtains the data list and sends the data list to the terminal requesting the data list, so that after the terminal obtains the first data through the data list request, it can quickly send the first data to the terminal requesting the first data. terminal. That is, the execution sequence in which the proxy device first obtains the first data and then obtains the data list can also be implemented.
此外,无论是无需进行鉴权认证即可获取数据列表的终端,还是需要鉴权认证并通过认证之后获取数据列表的终端,代理设备或数据源站均可以获取该终端与数据列表所对应的数据的对应关系。以直播业务场景下,数据源站进行用户鉴权认证为例,数据也即是各个直播 间产生的数据,终端与数据的对应关系可以是终端与产生该数据的直播间之间的对应关系。例如,数据源站获取终端的认证信息,将终端的认证信息与各个直播间的信息之间的对应关系作为终端与直播间的对应关系。在终端后续请求获取任一直播间的数据时,可基于终端的认证信息与直播间的信息之间的对应关系来确定该终端是否具有获取该任一直播间的数据的权限,向具有获取权限的终端发送所请求的数据。In addition, whether it is a terminal that can obtain the data list without authentication or authentication, or a terminal that requires authentication and passes the authentication to obtain the data list, the proxy device or data source station can obtain the data corresponding to the terminal and the data list. corresponding relationship. Take the live broadcast business scenario where the data source station performs user authentication as an example. The data is also the data of each live broadcast. The corresponding relationship between the terminal and the data may be the corresponding relationship between the terminal and the live broadcast room that generated the data. For example, the data source station obtains the authentication information of the terminal, and uses the correspondence between the authentication information of the terminal and the information of each live broadcast room as the correspondence between the terminal and the live broadcast room. When the terminal subsequently requests to obtain data in any live broadcast room, it can be determined based on the correspondence between the terminal's authentication information and the information in the live broadcast room whether the terminal has the authority to obtain the data in any live broadcast room. The terminal sends the requested data.
其中,终端的认证信息可以是终端的标识,如IP地址、MAC地址等。直播间的信息用于标识直播间,本申请实施例不对直播间的信息进行限定,能够区分不同的直播间即可,包括但不限于直播间的标识、编号等。The authentication information of the terminal may be the identification of the terminal, such as IP address, MAC address, etc. The information of the live broadcast room is used to identify the live broadcast room. The embodiment of the present application does not limit the information of the live broadcast room, as long as it can distinguish different live broadcast rooms, including but not limited to the identification and number of the live broadcast room.
在本申请实施例提供的方法中,终端通过数据列表确定需要获取的数据,当终端获取到数据列表,并确定需要获取的数据为第一数据时,该终端可向代理设备发送数据获取请求。其中,数据获取请求中携带第一标识,该第一标识为第一数据的标识,该第一标识可以与第一数据所在的一组数据的第二标识相同,也即是第一标识的获取方式可以是将数据列表中包括第一数据的一组数据的第二标识直接作为第一标识携带在数据获取请求中。除此之外,第一标识也可以与第一数据所在的一组数据的第二标识不同,而是基于该第二标识确定出来的一个标识。以包括第一数据的一组数据为目标直播间的数据为例,该组数据的第二标识为目标直播间的编号,通过目标直播间的编号查找直播间的编号与采集终端的IP地址之间的对应关系,确定目标直播间对应的采集终端的IP地址,将目标直播间对应的采集终端的IP地址作为第一标识。In the method provided by the embodiment of the present application, the terminal determines the data that needs to be obtained through the data list. When the terminal obtains the data list and determines that the data that needs to be obtained is the first data, the terminal can send a data acquisition request to the proxy device. The data acquisition request carries a first identifier, which is the identifier of the first data. The first identifier can be the same as the second identifier of a group of data in which the first data is located, that is, the acquisition of the first identifier The method may be to directly carry the second identifier of a set of data including the first data in the data list as the first identifier in the data acquisition request. In addition, the first identification may be different from the second identification of a group of data in which the first data is located, but may be an identification determined based on the second identification. Taking a set of data including the first data as the data of the target live broadcast room as an example, the second identifier of the set of data is the number of the target live broadcast room, and the number of the live broadcast room and the IP address of the collection terminal are searched through the number of the target live broadcast room. determine the corresponding relationship between the target live broadcast room and the IP address of the collection terminal corresponding to the target live broadcast room, and use the IP address of the collection terminal corresponding to the target live broadcast room as the first identifier.
无论数据获取请求中携带的第一标识是上述哪种情况,通过数据获取请求,代理设备可基于接收到的获取第一数据的数据获取请求的数量,确定请求第一数据的终端的数量。以直播业务为例,数据列表也即直播视频节目单,第二标识包括直播间的编号,当用户操作终端从直播视频节目单中根据直播间的编号选择需要观看的直播间为第一数据对应的目标直播间时,终端将直播视频节目单中目标直播间的编号作为第一数据的第一标识,并向代理设备发送携带目标直播间的编号的数据获取请求,该终端也即是请求获取第一数据的终端。No matter which of the above-mentioned first identifiers is carried in the data acquisition request, through the data acquisition request, the proxy device can determine the number of terminals requesting the first data based on the number of received data acquisition requests for acquiring the first data. Taking the live broadcast service as an example, the data list is also the live video program list. The second identifier includes the number of the live broadcast room. When the user operates the terminal to select the live broadcast room to be viewed according to the number of the live broadcast room from the live video program list, the first data corresponds to When the target live broadcast room is selected, the terminal uses the number of the target live broadcast room in the live video program list as the first identifier of the first data, and sends a data acquisition request carrying the number of the target live broadcast room to the agent device. The terminal is also requesting to obtain the target live broadcast room. Terminal of the first data.
基于上述举例可以理解,请求获取第一数据的终端可以为获取了数据列表的终端中的全部终端,例如所有获取直播视频节目单的用户都选择进入目标直播间观看直播,请求获取第一数据的终端为获取了直播视频节目单的全部终端。请求获取第一数据的终端也可以为获取了数据列表的终端中的部分终端,例如,获取直播视频节目单的用户中的部分用户选择进入目标直播间观看直播,请求获取第一数据的终端为获取了直播视频节目单的部分终端。Based on the above examples, it can be understood that the terminals that request to obtain the first data can be all terminals that have obtained the data list. For example, all users who obtain the live video program list choose to enter the target live broadcast room to watch the live broadcast, and the terminals that request to obtain the first data The terminals are all terminals that have obtained the live video program list. The terminals that request to obtain the first data can also be some of the terminals that have obtained the data list. For example, some of the users who obtain the live video program list choose to enter the target live broadcast room to watch the live broadcast. The terminal that requests to obtain the first data is Obtained some terminals of live video program list.
当有终端向代理设备请求获取第一数据时,代理设备还需要确认该终端是否具有获取该第一数据的权限,以确定是否需要向该终端发送第一数据。可选地,基于终端与数据列表所对应的数据的对应关系,确定该终端是否有获取第一数据的权限。继续以上述实施例中的用户鉴权认证过程中的直播业务场景为例,对于请求获取第一数据的终端,基于该终端的认证信息与直播间的信息之间的对应关系来确定该终端是否具有获取目标直播间的数据的权限,针对该终端具有获取目标直播间的数据的权限,确定需要向该终端发送目标直播间产生的第一数据。When a terminal requests the proxy device to obtain the first data, the proxy device also needs to confirm whether the terminal has the authority to obtain the first data to determine whether the first data needs to be sent to the terminal. Optionally, based on the corresponding relationship between the terminal and the data corresponding to the data list, it is determined whether the terminal has the authority to obtain the first data. Continuing to take the live broadcast service scenario in the user authentication process in the above embodiment as an example, for a terminal that requests to obtain the first data, it is determined based on the correspondence between the terminal's authentication information and the information in the live broadcast room. The terminal has the authority to obtain the data of the target live broadcast room, and the terminal has the authority to obtain the data of the target live broadcast room. It is determined that the first data generated by the target live broadcast room needs to be sent to the terminal.
由于代理设备接收到的数据可能存在多个不同的数据的情况,因此,代理设备还需要从接收到的多个数据中确定终端所请求的第一数据。示例性地,由于终端请求第一数据时的数据获取请求中携带所请求的第一数据的第一标识,则代理设备通过识别接收到的各个数据的第一标识,基于接收到的各个数据的第一标识从多个数据中确定出与数据获取请求中携带的第一标识匹配的数据,从而实现第一数据的确定。其中,代理设备接收到的各个数据的第一 标识的获取过程与第一数据的第一标识的获取过程类似,可参见S301中关于获取第一数据的第一标识的描述,在此暂不进行赘述。Since the data received by the proxy device may include multiple different data, the proxy device also needs to determine the first data requested by the terminal from the multiple data received. For example, since the data acquisition request when the terminal requests the first data carries the first identifier of the requested first data, the proxy device identifies the first identifier of each received data, based on the first identifier of each received data. The first identifier determines the data matching the first identifier carried in the data acquisition request from the plurality of data, thereby realizing the determination of the first data. Among them, the first of each data received by the proxy device The process of obtaining the identifier is similar to the process of obtaining the first identifier of the first data. Please refer to the description of obtaining the first identifier of the first data in S301, which will not be described again here.
上述举例说明了当数据获取请求携带的第一标识与第一数据的第一标识类型一致的情况,例如数据获取请求携带的第一标识与第一数据的第一标识均为直播间编号或者采集终端的IP地址或MAC地址等。在本申请实施例中,还存在一种终端发送的数据获取请求携带的第一标识与第一数据的第一标识的类型不同的情况,例如,数据获取请求携带的第一标识为直播间编号,而第一数据的第一标识为采集终端的IP地址,则需要基于终端与数据的对应关系,将代理设备收到的数据的第一标识与数据获取请求中携带的第一标识中的一个进行类型转换,将类型转换一致之后,再基于接收到的各个数据的第一标识从多个数据中确定出与终端发送的数据获取请求中携带的第一标识匹配的第一数据,从而实现第一数据的确定。The above example illustrates the situation when the first identifier carried in the data acquisition request is consistent with the first identifier type of the first data. For example, the first identifier carried in the data acquisition request and the first identifier of the first data are both the live broadcast room number or the collection number. The IP address or MAC address of the terminal, etc. In the embodiment of the present application, there is also a situation where the first identifier carried by the data acquisition request sent by the terminal is different from the first identifier of the first data. For example, the first identifier carried by the data acquisition request is the live broadcast room number. , and the first identifier of the first data is the IP address of the collection terminal, it is necessary to combine the first identifier of the data received by the proxy device with one of the first identifiers carried in the data acquisition request based on the corresponding relationship between the terminal and the data. Type conversion is performed, and after the type conversion is consistent, the first data that matches the first identification carried in the data acquisition request sent by the terminal is determined from the plurality of data based on the first identification of each received data, thereby realizing the first 1. Determination of data.
以直播业务场景为例,代理设备收到的数据的第一标识仅包括采集终端的IP地址或MAC地址,而终端请求第一数据时发送的数据获取请求中携带的第一标识是直播间的信息。因此,代理设备在确定第一数据的过程中,还需要先根据采集终端的IP地址或MAC地址与直播间的信息之间的对应关系,确定各个数据对应的直播间的信息,再联合终端发送的数据获取请求中携带的直播间的信息,从多个数据中确定终端所请求的第一数据。其中,采集终端的IP地址或MAC地址与直播间的信息之间的对应关系可以是数据源站基于接收到的第二数据中获取的,也可以通过其他方式获取。Taking the live broadcast business scenario as an example, the first identifier of the data received by the proxy device only includes the IP address or MAC address of the collection terminal, and the first identifier carried in the data acquisition request sent by the terminal when requesting the first data belongs to the live broadcast room. information. Therefore, in the process of determining the first data, the proxy device also needs to first determine the information of the live broadcast room corresponding to each data based on the correspondence between the IP address or MAC address of the collection terminal and the information of the live broadcast room, and then jointly send the data to the terminal. The information of the live broadcast room carried in the data acquisition request is used to determine the first data requested by the terminal from multiple data. The correspondence between the IP address or MAC address of the collection terminal and the information in the live broadcast room may be obtained by the data source station based on the received second data, or may be obtained through other methods.
可选地,代理设备确定N的数值大小与第一数据后,可根据N的数值大小对第一数据进行复制。在对第一数据进行复制时,代理设备可以选择先完成N个第一数据的复制,再将复制得到的第一数据分别发送给请求第一数据的接收终端。还可以选择先完成M个第一数据的复制,从N个接收终端中选择M个接收终端发送第一数据,再在发送后继续复制还需要的第一数据。其中,M为小于N的正整数,通过复制部分第一数据,缩短复制时间,提高了部分接收终端接收第一数据的效率。示例性地,M可基于经验设置,在从N个接收终端中选择M个接收终端过程中,代理设备可以随机选择,也可以基于接收终端的优先级,选择优先级高的接收终端先发送第一数据。关于接收终端的优先级可根据接收终端的流量订阅套餐,或是接收终端在直播应用程序的会员等级等确定。Optionally, after the proxy device determines the numerical size of N and the first data, it may copy the first data according to the numerical size of N. When copying the first data, the proxy device may choose to complete the copying of N pieces of first data first, and then send the copied first data to the receiving terminal requesting the first data. You can also choose to complete the copying of M first data first, select M receiving terminals from the N receiving terminals to send the first data, and then continue to copy the required first data after sending. Wherein, M is a positive integer less than N. By copying part of the first data, the copying time is shortened and the efficiency of receiving the first data by some receiving terminals is improved. For example, M can be set based on experience. In the process of selecting M receiving terminals from N receiving terminals, the proxy device can select randomly, or based on the priority of the receiving terminal, select the receiving terminal with a higher priority to send the first One data. The priority of the receiving terminal can be determined based on the traffic subscription package of the receiving terminal, or the membership level of the receiving terminal in the live broadcast application, etc.
在一种可能的实现方式中,代理设备启动数据传输服务对第一数据进行复制后,还会向数据源站发送第二启动结果,第二启动结果用于指示代理设备对第一数据的复制为成功或失败。可选地,代理设备未成功复制第一数据,向数据源站发送复制失败指令,复制失败指令用于提示数据源站向请求第一数据的终端依次发送第一数据。未成功复制第一数据也即是第二启动结果指示启动失败,关于代理设备向数据源站发送复制失败指令的过程与上述实施例示出的代理设备向数据源站发送数据请求的过程类似,在此暂不进行赘述。In a possible implementation, after the proxy device starts the data transmission service to copy the first data, it also sends a second startup result to the data source station. The second startup result is used to instruct the proxy device to copy the first data. for success or failure. Optionally, the proxy device fails to successfully copy the first data and sends a copy failure instruction to the data source station. The copy failure instruction is used to prompt the data source station to sequentially send the first data to the terminal requesting the first data. Failure to copy the first data, that is, the second startup result indicates startup failure. The process of the proxy device sending a copy failure instruction to the data source station is similar to the process of the proxy device sending a data request to the data source station shown in the above embodiment. This will not be described in detail for now.
S303,代理设备向N个终端中的各个终端分别发送第一数据。S303: The proxy device sends the first data to each of the N terminals respectively.
可选地,代理设备可以直接向请求第一数据的接收终端发送第一数据,例如图4所示的其他代理设备直接向接收终端发送第一数据,和图4所示的ONT代理设备直接向接收终端发送第一数据。可选地,代理设备还可以通过其他边缘设备转发第一数据,由其他边缘设备将第一数据转发给接收终端,实现由代理设备向接收终端发送第一数据,例如图4所示的OLT代理设备通过ONT向接收终端转发第一数据。在一种可能的实现方式中,代理设备在向接收设备发送第一数据时采用拉流的方式实现。可选地,代理设备在向各个接收设备发送复制得到的第一数据的基础上,还会对接收的第一数据进行缓存,通过缓存第一数据,以实现在其他接收终端有获取第一数据的需求时,可以快速向其他接收终端发送第一数据,进而提高响 应时间。Optionally, the proxy device can directly send the first data to the receiving terminal that requests the first data. For example, other proxy devices shown in Figure 4 directly send the first data to the receiving terminal, and the ONT proxy device shown in Figure 4 directly sends the first data to the receiving terminal. The receiving terminal sends the first data. Optionally, the proxy device can also forward the first data through other edge devices, and the other edge devices forward the first data to the receiving terminal, so that the proxy device sends the first data to the receiving terminal, such as the OLT proxy shown in Figure 4 The device forwards the first data to the receiving terminal through the ONT. In a possible implementation manner, the proxy device adopts a stream pulling method when sending the first data to the receiving device. Optionally, after sending the copied first data to each receiving device, the proxy device also caches the received first data. By caching the first data, other receiving terminals can obtain the first data. When needed, the first data can be quickly sent to other receiving terminals, thereby improving response response time.
需要说明的是,上述举例的OLT与ONT旨在用于说明代理设备所配置的网络节点位置,而非对代理设备进行设定,代理设备可以是任意边缘设备,例如宽带远程接入服务器(broadband remote access server,BRAS)或接入点(access point,AP)等。当然,代理设备也可以是除数据源站与终端之外的其他网络设备,数据源站、代理设备与终端之间的网络结构也可以是任意网络结构,本申请实施例对此均不进行限定。此外,本申请实施例用于举例说明的直播业务、线上会议业务和网络课堂业务等实时业务,旨在介绍本申请提供的数据传输方法适用于一个终端与多个终端之间的通信场景,对于上述实时业务的名称,以及上述实时业务中传播的第一数据是否为实时采集的均不进行限定。It should be noted that the above examples of OLT and ONT are intended to illustrate the network node location configured by the proxy device, rather than setting the proxy device. The proxy device can be any edge device, such as a broadband remote access server (broadband remote access server). remote access server, BRAS) or access point (access point, AP), etc. Of course, the proxy device can also be other network devices besides the data source station and the terminal. The network structure between the data source station, the proxy device and the terminal can also be any network structure, which is not limited in the embodiments of this application. . In addition, the embodiments of this application are used to illustrate real-time services such as live broadcast services, online conference services, and online classroom services, and are intended to introduce that the data transmission method provided by this application is suitable for communication scenarios between one terminal and multiple terminals. There are no restrictions on the name of the above-mentioned real-time service and whether the first data spread in the above-mentioned real-time service is collected in real-time.
综上所述,本申请实施例提供的数据传输方法,通过代理设备对第一数据进行复制,即使存在多个终端需要获取第一数据,也无需数据源站发送多次,通过代理设备向请求第一数据的终端发送复制得到的第一数据,减少了数据源站传输第一数据的次数,缓解了数据源站的传输带宽的消耗。并且,代理设备提供的数据传输服务除了可以用来传输第一数据,对于数据列表也可以进行复制并转发,同样减少了数据源站的传输次数,缓解了数据源站的带宽压力,填充“双千兆”宽带网络内容,生成好网络后,不掉线、不卡断,增加了实时业务场景下的用户的交互体验感。除此之外,代理设备提供了一种新的数据传输服务,针对直播带货、线上会议和在线教育等宽带业务应用,数据传输服务对应的套餐价值高,可增加运营商收益。To sum up, the data transmission method provided by the embodiment of the present application copies the first data through the proxy device. Even if there are multiple terminals that need to obtain the first data, there is no need for the data source station to send the data multiple times and the request is made through the proxy device. The terminal of the first data sends the copied first data, which reduces the number of times the data source station transmits the first data and alleviates the consumption of transmission bandwidth of the data source station. Moreover, in addition to transmitting the first data, the data transmission service provided by the proxy device can also copy and forward the data list, which also reduces the number of transmissions of the data source station, relieves the bandwidth pressure of the data source station, and fills the "double" "Gigabit" broadband network content, after the network is generated, will not be dropped or interrupted, increasing the user's interactive experience in real-time business scenarios. In addition, the agent device provides a new data transmission service. For broadband business applications such as live streaming, online meetings, and online education, the packages corresponding to the data transmission service are of high value and can increase the operator's revenue.
在一种可能的实现方式中,图5为本申请实施例提供的另一种数据传输方法的流程图,该数据传输方法由数据源站、代理设备和终端交互执行,该方法包括如下步骤501-511。In a possible implementation, Figure 5 is a flow chart of another data transmission method provided by the embodiment of the present application. The data transmission method is interactively executed by the data source station, the proxy device and the terminal. The method includes the following steps 501 -511.
步骤501,数据源站向代理设备发送数据传输请求。Step 501: The data source station sends a data transmission request to the proxy device.
可选地,数据源站向代理设备发送数据传输请求的过程与图3示出的实施例的S301中数据源站向代理设备发送数据传输请求的过程类似,在此暂不进行赘述。Optionally, the process of the data source station sending a data transmission request to the proxy device is similar to the process of the data source station sending a data transmission request to the proxy device in S301 of the embodiment shown in FIG. 3 , and will not be described again here.
步骤502,代理设备根据数据传输请求确定调用结果,向数据源站返回调用结果。Step 502: The proxy device determines the call result according to the data transmission request and returns the call result to the data source station.
可选地,数据源站通过数据传输请求调用代理设备的数据传输服务的过程与图3示出的实施例的S301中的数据源站通过数据传输请求调用代理设备的数据传输服务的过程类似,在此暂不进行赘述。Optionally, the process by which the data source station invokes the data transmission service of the proxy device through the data transmission request is similar to the process by which the data source station invokes the data transmission service by the proxy device through the data transmission request in S301 of the embodiment shown in Figure 3. No further details will be given here.
步骤503,基于调用结果指示调用成功,数据源站向代理设备发送数据列表。Step 503: Based on the call result indicating that the call is successful, the data source station sends the data list to the proxy device.
可选地,数据源站向代理设备发送数据列表的过程与图3示出的实施例的S302中的数据源站向代理设备发送数据列表的过程类似,在此暂不进行赘述。Optionally, the process of the data source station sending the data list to the proxy device is similar to the process of the data source station sending the data list to the proxy device in S302 of the embodiment shown in FIG. 3 , and will not be described again here.
步骤504,代理设备基于接收到的数据列表,启动针对数据列表的数据传输服务。Step 504: The proxy device starts a data transmission service for the data list based on the received data list.
可选地,代理设备启动针对数据列表的数据传输服务的过程与上述图3示出的实施例的S302中代理设备启动针对数据列表的数据传输服务的过程类似,在此暂不进行赘述。示例性地,通过启动针对数据列表的数据传输服务,得到第一启动结果,针对第一启动结果指示启动成功,代理设备执行步骤505的操作,针对第一启动结果指示启动失败,代理设备执行步骤510的操作。Optionally, the process of the proxy device initiating the data transmission service for the data list is similar to the process of the proxy device initiating the data transmission service for the data list in S302 of the embodiment shown in FIG. 3 , and will not be described again here. Exemplarily, by starting the data transmission service for the data list, a first startup result is obtained. The first startup result indicates that the startup is successful. The agent device performs the operation of step 505. The first startup result indicates that the startup fails. The agent device performs steps. 510 operation.
步骤505,代理设备返回第一启动结果。Step 505: The proxy device returns the first startup result.
可选地,代理设备返回第一启动结果的过程与上述图3示出的实施例的S302中代理设备返回第一启动结果的过程类似,在此暂不进行赘述。Optionally, the process of the proxy device returning the first startup result is similar to the process of the proxy device returning the first startup result in S302 of the embodiment shown in FIG. 3 , and will not be described again here.
步骤506,基于第一启动结果指示启动成功,数据源站向代理设备发送第一数据。 Step 506: Based on the first startup result indicating successful startup, the data source station sends the first data to the proxy device.
可选地,数据源站向代理设备发送第一数据的过程与图3示出的实施例的S302中的数据源站向代理设备发送第一数据的过程类似,在此暂不进行赘述。Optionally, the process of the data source station sending the first data to the proxy device is similar to the process of the data source station sending the first data to the proxy device in S302 of the embodiment shown in FIG. 3 , and will not be described again here.
步骤507,代理设备启动第一数据的数据传输服务。Step 507: The proxy device starts the data transmission service of the first data.
示例性地,代理设备基于接收到的第一数据启动第一数据的数据传输服务,得到第二启动结果。可选地,代理设备启动第一数据的数据传输服务的过程与图3示出的实施例的S302中的代理设备启动第一数据的数据传输服务的过程类似,在此暂不进行赘述。此外,针对第二启动结果指示启动成功,代理设备在接收到数据获取请求后执行步骤509的操作,针对第二启动结果指示启动失败,代理设备在接收到数据获取请求后执行步骤510的操作。Exemplarily, the proxy device starts the data transmission service of the first data based on the received first data, and obtains the second starting result. Optionally, the process of the proxy device initiating the data transmission service of the first data is similar to the process of the proxy device initiating the data transmission service of the first data in S302 of the embodiment shown in FIG. 3 , and will not be described again here. In addition, if the second startup result indicates startup success, the proxy device performs the operation of step 509 after receiving the data acquisition request. If the second startup result indicates startup failure, the proxy device performs the operation of step 510 after receiving the data acquisition request.
步骤508,基于第二启动结果指示启动成功,多个终端中的至少两个终端向代理设备发送第一数据的数据获取请求。Step 508: Based on the second startup result indicating successful startup, at least two terminals among the plurality of terminals send data acquisition requests for the first data to the proxy device.
可选地,终端向代理设备发送第一数据的数据获取请求的过程与图3示出的实施例中的S302中终端向代理设备发送第一数据的数据获取请求的过程类似,在此暂不进行赘述。Optionally, the process in which the terminal sends a data acquisition request for the first data to the proxy device is similar to the process in which the terminal sends a data acquisition request for the first data to the proxy device in S302 in the embodiment shown in FIG. 3 , and will not be discussed here for now. Elaborate.
步骤509,根据数据获取请求,代理设备向终端发送第一数据。Step 509: According to the data acquisition request, the proxy device sends the first data to the terminal.
可选地,代理设备向终端发送第一数据的过程与图3示出的实施例的S303中的代理设备向终端发送第一数据的过程类似,在此暂不进行赘述。Optionally, the process of the proxy device sending the first data to the terminal is similar to the process of the proxy device sending the first data to the terminal in S303 of the embodiment shown in FIG. 3, and will not be described again here.
步骤510,基于第一启动结果或第二启动结果指示启动失败,终端向数据源站发送第一数据的数据获取请求。Step 510: Based on the first startup result or the second startup result indicating startup failure, the terminal sends a data acquisition request for the first data to the data source station.
可选地,代理设备基于第一启动结果或第二启动结果指示失败,将终端发送的第一数据的数据获取请求上传至数据源站,从而实现终端将数据获取请求向数据源站的发送。第一数据的数据获取请求作为复制失败请求,提示数据源站复制N个第一数据,依次发送给请求第一数据的终端。Optionally, the proxy device uploads the data acquisition request for the first data sent by the terminal to the data source station based on the first startup result or the second startup result indicating failure, thereby enabling the terminal to send the data acquisition request to the data source station. The data acquisition request for the first data is used as a copy failure request, prompting the data source station to copy N pieces of first data, and sends them to the terminal requesting the first data in sequence.
步骤511,根据数据获取请求,数据源站向终端发送第一数据。Step 511: According to the data acquisition request, the data source station sends the first data to the terminal.
可选地,数据源站向终端发送第一数据的过程与图3示出的实施例的S302中的数据源站向终端发送第一数据的过程类似,在此暂不进行赘述。Optionally, the process of the data source station sending the first data to the terminal is similar to the process of the data source station sending the first data to the terminal in S302 of the embodiment shown in FIG. 3 , and will not be described again here.
以上介绍了本申请实施例的数据传输方法,与上述方法对应,本申请实施例还提供了数据传输装置。图6是本申请实施例提供的一种数据传输装置的结构示意图。基于图6所示的如下多个模块,该图6所示的数据传输装置能够执行上述图3所示的全部或部分操作。应理解到,该装置可以包括比所示模块更多的附加模块或者省略其中所示的一部分模块,本申请实施例对此并不进行限制。如图6所示,该装置应用于代理设备,装置包括:The above describes the data transmission method of the embodiment of the present application. Corresponding to the above method, the embodiment of the present application also provides a data transmission device. Figure 6 is a schematic structural diagram of a data transmission device provided by an embodiment of the present application. Based on the following modules shown in Figure 6, the data transmission device shown in Figure 6 can perform all or part of the operations shown in Figure 3 above. It should be understood that the device may include more additional modules than the modules shown or omit some of the modules shown therein, and the embodiments of the present application are not limited to this. As shown in Figure 6, this device is applied to proxy equipment and includes:
接收模块601,用于接收数据源站发送的已编码的第一数据,第一数据携带第一标识;The receiving module 601 is used to receive the encoded first data sent by the data source station, where the first data carries the first identifier;
复制模块602,用于对第一数据进行复制,得到N个第一数据,其中,代理设备连接多个终端,且多个终端中的N个终端基于第一标识请求第一数据,N为大于等于2的整数;The copy module 602 is used to copy the first data to obtain N pieces of first data, wherein the proxy device is connected to multiple terminals, and N terminals among the multiple terminals request the first data based on the first identification, and N is greater than an integer equal to 2;
发送模块603,用于向N个终端中的各个终端分别发送第一数据。The sending module 603 is configured to send the first data to each of the N terminals.
在一种可能的实现方式中,接收模块601,还用于接收多个终端中的至少两个终端发送的数据获取请求,数据获取请求携带第一标识;根据数据获取请求的数量,得到N。In a possible implementation, the receiving module 601 is also configured to receive data acquisition requests sent by at least two terminals among the plurality of terminals, where the data acquisition requests carry the first identifier; N is obtained according to the number of data acquisition requests.
在一种可能的实现方式中,装置还包括:获取模块,用于获取数据列表,数据列表中包括多组数据的第二标识,一组数据为同一个采集终端上传的数据,多组数据中的其中一组数据包括第一数据;接收模块601,还用于接收多个终端中的至少两个终端发送的列表获取请求;发送模块603,还用于向多个终端中的至少两个终端发送数据列表,数据列表中的第二标识用于N个终端确定第一标识。 In a possible implementation, the device further includes: an acquisition module, used to obtain a data list. The data list includes second identifiers of multiple sets of data. One set of data is data uploaded by the same collection terminal. Among the multiple sets of data, One set of data includes the first data; the receiving module 601 is also used to receive a list acquisition request sent by at least two terminals among the plurality of terminals; the sending module 603 is also used to send a request to at least two terminals among the plurality of terminals. A data list is sent, and the second identifier in the data list is used by N terminals to determine the first identifier.
在一种可能的实现方式中,获取模块,用于接收数据源站发送的数据列表,数据列表由数据源站基于第一数据得到,数据源站发送数据列表的第一时间早于数据源站发送第一数据的第二时间。In a possible implementation, the acquisition module is configured to receive a data list sent by the data source station. The data list is obtained by the data source station based on the first data. The first time the data source station sends the data list is earlier than the data source station. The second time the first data is sent.
在一种可能的实现方式中,装置还包括:启动模块,用于基于数据列表启动针对数据列表的数据传输服务,得到数据列表对应的数据传输服务的第一启动结果,其中,第一启动结果指示启动成功;发送模块603,还用于向数据源站发送数据请求,数据请求用于请求数据源站向代理设备发送第一数据。In a possible implementation, the device further includes: a startup module, configured to start a data transmission service for the data list based on the data list, and obtain a first startup result of the data transmission service corresponding to the data list, where the first startup result Indicates that the startup is successful; the sending module 603 is also used to send a data request to the data source station, and the data request is used to request the data source station to send the first data to the proxy device.
在一种可能的实现方式中,获取模块,用于根据接收到的未编码的第二数据生成数据列表,第二数据用于编码得到第一数据。In a possible implementation, the acquisition module is configured to generate a data list based on the received unencoded second data, and the second data is used to encode the first data.
在一种可能的实现方式中,发送模块603,还用于代理设备未成功复制第一数据,向数据源站发送复制失败指令,复制失败指令用于提示数据源站向请求第一数据的终端依次发送第一数据。In a possible implementation, the sending module 603 is also used to send a copy failure instruction to the data source station if the agent device fails to successfully copy the first data. The copy failure instruction is used to prompt the data source station to request the terminal for the first data. The first data is sent in sequence.
在一种可能的实现方式中,接收模块601,还用于接收数据源站发送的数据传输请求,数据传输请求用于向代理设备调用数据传输服务;基于数据传输请求确定数据源站对应的数据传输服务的调用结果,调用结果指示数据源站调用成功;发送模块603,还用于向数据源站发送调用结果,调用结果用于指示数据源站执行发送第一数据的操作。In a possible implementation, the receiving module 601 is also used to receive a data transmission request sent by the data source station. The data transmission request is used to call the data transmission service to the proxy device; determine the data corresponding to the data source station based on the data transmission request. The calling result of the transmission service indicates that the data source station has successfully called; the sending module 603 is also used to send the calling result to the data source station, and the calling result is used to instruct the data source station to perform the operation of sending the first data.
在一种可能的实现方式中,代理设备包括应用程序设计接口API,API用于数据源站通过数据传输请求调用数据传输服务。In a possible implementation manner, the proxy device includes an application programming interface API, and the API is used by the data source station to call the data transmission service through the data transmission request.
在一种可能的实现方式中,代理设备为边缘设备。In a possible implementation, the proxy device is an edge device.
在一种可能的实现方式中,第一数据为直播业务的数据、在线教育业务的数据或线上会议业务的数据。In a possible implementation manner, the first data is data of a live broadcast service, data of an online education service, or data of an online conference service.
在一种可能的实现方式中,第一标识为已编码的标识,或者第一标识为未编码的标识。In a possible implementation, the first identifier is an encoded identifier, or the first identifier is an unencoded identifier.
上述装置通过代理设备对第一数据进行复制,即使存在多个终端请求获取第一数据,也无需数据源站多次发送第一数据,通过代理设备向请求第一数据的终端发送复制得到的第一数据,减少了数据源站传输第一数据的次数,缓解了数据源站的传输带宽的消耗,进而降低了第一数据对应的业务产生的延迟和卡顿。The above device copies the first data through the proxy device. Even if there are multiple terminals requesting to obtain the first data, there is no need for the data source station to send the first data multiple times. The proxy device sends the copied third data to the terminal requesting the first data through the proxy device. One data, which reduces the number of times the data source station transmits the first data, alleviates the consumption of transmission bandwidth of the data source station, and thereby reduces the delay and lag caused by the business corresponding to the first data.
应理解的是,上述图6提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。It should be understood that when the device provided in FIG. 6 realizes its functions, the division of the above functional modules is only used as an example. In practical applications, the above functions can be allocated to different functional modules as needed, that is, the equipment The internal structure is divided into different functional modules to complete all or part of the functions described above. In addition, the apparatus and method embodiments provided in the above embodiments belong to the same concept, and the specific implementation process can be found in the method embodiments, which will not be described again here.
参见图7,图7示出了本申请一个示例性实施例提供的网络设备700的结构示意图。图7所示的网络设备700用于执行上述图3所示的数据传输方法所涉及的操作。该网络设备700例如是交换机、路由器等,该网络设备700可以由一般性的总线体系结构来实现。Referring to Figure 7, Figure 7 shows a schematic structural diagram of a network device 700 provided by an exemplary embodiment of the present application. The network device 700 shown in FIG. 7 is used to perform operations related to the above-mentioned data transmission method shown in FIG. 3 . The network device 700 is, for example, a switch, a router, etc., and the network device 700 can be implemented by a general bus architecture.
如图7所示,网络设备700包括至少一个处理器701、存储器703以及至少一个通信接口704。As shown in Figure 7, the network device 700 includes at least one processor 701, a memory 703, and at least one communication interface 704.
处理器701例如是通用中央处理器(central processing unit,CPU)、数字信号处理器(digital signal processor,DSP)、网络处理器(network processer,NP)、图形处理器(Graphics Processing Unit,GPU)、神经网络处理器(neural-network processing units,NPU)、数据处理单元(Data Processing Unit,DPU)、微处理器或者一个或多个用于实现本申请方案的集成电路。例如,处理器701包括专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器 件(programmable logic device,PLD)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。PLD例如是复杂可编程逻辑器件(complex programmable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。其可以实现或执行结合本申请实施例公开内容所描述的各种逻辑方框、模块和电路。处理器也可以是实现计算功能的组合,例如包括一个或多个微处理器组合,DSP和微处理器的组合等等。The processor 701 is, for example, a general central processing unit (CPU), a digital signal processor (DSP), a network processor (NP), a graphics processing unit (GPU), Neural network processors (neural-network processing units, NPU), data processing units (Data Processing Unit, DPU), microprocessors, or one or more integrated circuits used to implement the solution of the present application. For example, the processor 701 includes an application-specific integrated circuit (ASIC), a programmable logic (programmable logic device, PLD) or other programmable logic devices, transistor logic devices, hardware components or any combination thereof. A PLD is, for example, a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a general array logic (GAL), or any combination thereof. It may implement or execute various logical blocks, modules and circuits described in connection with the disclosure of the embodiments of this application. The processor can also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, and so on.
可选的,网络设备700还包括总线。总线用于在网络设备700的各组件之间传送信息。总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。Optionally, the network device 700 also includes a bus. The bus is used to transfer information between the various components of the network device 700 . The bus can be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus, etc. The bus can be divided into address bus, data bus, control bus, etc. For ease of presentation, only one thick line is used in Figure 7, but it does not mean that there is only one bus or one type of bus.
存储器703例如是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,又如是随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,又如是电可擦可编程只读存储器(electrically erasable programmable read-only Memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器703例如是独立存在,并通过总线与处理器701相连接。存储器703也可以和处理器701集成在一起。The memory 703 is, for example, a read-only memory (ROM) or other type of static storage device that can store static information and instructions, or a random access memory (random access memory, RAM) or a device that can store information and instructions. Other types of dynamic storage devices, such as electrically erasable programmable read-only memory (EEPROM), compact disc read-only memory (CD-ROM) or other optical disk storage, optical discs Storage (including compressed optical discs, laser discs, optical discs, digital versatile discs, Blu-ray discs, etc.), magnetic disk storage media or other magnetic storage devices, or can be used to carry or store desired program code in the form of instructions or data structures and can Any other media accessed by a computer, without limitation. The memory 703 exists independently, for example, and is connected to the processor 701 through a bus. Memory 703 may also be integrated with processor 701.
通信接口704使用任何收发器一类的装置,用于与其它设备或通信网络通信,通信网络可以为以太网、无线接入网(RAN)或无线局域网(wireless local area networks,WLAN)等。通信接口704可以包括有线通信接口,还可以包括无线通信接口。具体的,通信接口704可以为以太(Ethernet)接口、快速以太(Fast Ethernet,FE)接口、千兆以太(Gigabit Ethernet,GE)接口,异步传输模式(Asynchronous Transfer Mode,ATM)接口,无线局域网(wireless local area networks,WLAN)接口,蜂窝网络通信接口或其组合。以太网接口可以是光接口,电接口或其组合。在本申请实施例中,通信接口704可以用于网络设备700与其他设备进行通信。The communication interface 704 uses any device such as a transceiver to communicate with other devices or a communication network. The communication network can be Ethernet, a radio access network (RAN) or a wireless local area network (WLAN), etc. The communication interface 704 may include a wired communication interface and may also include a wireless communication interface. Specifically, the communication interface 704 can be an Ethernet (Ethernet) interface, a Fast Ethernet (FE) interface, a Gigabit Ethernet (GE) interface, an asynchronous transfer mode (Asynchronous Transfer Mode, ATM) interface, a wireless LAN ( wireless local area networks, WLAN) interface, cellular network communication interface or a combination thereof. The Ethernet interface can be an optical interface, an electrical interface, or a combination thereof. In this embodiment of the present application, the communication interface 704 can be used for the network device 700 to communicate with other devices.
在具体实现中,作为一种实施例,处理器701可以包括一个或多个CPU,如图7中所示的CPU0和CPU1。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。In specific implementation, as an embodiment, the processor 701 may include one or more CPUs, such as CPU0 and CPU1 as shown in FIG. 7 . Each of these processors may be a single-CPU processor or a multi-CPU processor. A processor here may refer to one or more devices, circuits, and/or processing cores for processing data (eg, computer program instructions).
在具体实现中,作为一种实施例,网络设备700可以包括多个处理器,如图7中所示的处理器701和处理器705。这些处理器中的每一个可以是一个单核处理器(single-CPU),也可以是一个多核处理器(multi-CPU)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。In specific implementation, as an embodiment, the network device 700 may include multiple processors, such as the processor 701 and the processor 705 shown in FIG. 7 . Each of these processors can be a single-core processor (single-CPU) or a multi-core processor (multi-CPU). A processor here may refer to one or more devices, circuits, and/or processing cores for processing data (such as computer program instructions).
在具体实现中,作为一种实施例,网络设备700还可以包括输出设备和输入设备。输出设备和处理器701通信,可以以多种方式来显示信息。例如,输出设备可以是液晶显示器(liquid crystal display,LCD)、发光二级管(light emitting diode,LED)显示设备、阴极射线管(cathode ray tube,CRT)显示设备或投影仪(projector)等。输入设备和处理器701通信,可以以多种方式接收用户的输入。例如,输入设备可以是鼠标、键盘、触摸屏设备或传感设备等。 In specific implementation, as an embodiment, the network device 700 may also include an output device and an input device. Output devices communicate with processor 701 and can display information in a variety of ways. For example, the output device may be a liquid crystal display (LCD), a light emitting diode (LED) display device, a cathode ray tube (CRT) display device, a projector, etc. Input devices communicate with processor 701 and can receive user input in a variety of ways. For example, the input device may be a mouse, a keyboard, a touch screen device or a sensing device, etc.
在一些实施例中,存储器703用于存储执行本申请方案的程序代码710,处理器701可以执行存储器703中存储的程序代码710。也即是,网络设备700可以通过处理器701以及存储器703中的程序代码710,来实现方法实施例提供的数据传输方法。程序代码710中可以包括一个或多个软件模块。可选地,处理器701自身也可以存储执行本申请方案的程序代码或指令。In some embodiments, the memory 703 is used to store the program code 710 for executing the solution of the present application, and the processor 701 can execute the program code 710 stored in the memory 703. That is, the network device 700 can implement the data transmission method provided by the method embodiment through the processor 701 and the program code 710 in the memory 703 . Program code 710 may include one or more software modules. Optionally, the processor 701 itself can also store program codes or instructions for executing the solution of the present application.
在具体实施例中,本申请实施例的网络设备700可对应于上述各个方法实施例中的数据传输设备。In a specific embodiment, the network device 700 in the embodiment of the present application may correspond to the data transmission device in each of the above method embodiments.
其中,图3所示的数据传输方法的各步骤通过网络设备700的处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤,为避免重复,这里不再详细描述。Each step of the data transmission method shown in FIG. 3 is completed through an integrated logic circuit of hardware or instructions in the form of software in the processor of the network device 700 . The steps of the methods disclosed in conjunction with the embodiments of the present application can be directly implemented by a hardware processor for execution, or can be executed by a combination of hardware and software modules in the processor. The software module can be located in random access memory, flash memory, read-only memory, programmable read-only memory or electrically erasable programmable memory, registers and other mature storage media in this field. The storage medium is located in the memory, and the processor reads the information in the memory and completes the steps of the above method in combination with its hardware. To avoid repetition, the details will not be described here.
图8是本申请实施例提供的另一种网络设备的结构示意图,该网络设备例如是服务器,服务器可因配置或性能不同而产生比较大的差异,可以包括一个或多个处理器801和一个或多个存储器802,其中,该一个或多个存储器802中存储有至少一条计算机程序,该至少一条计算机程序由该一个或多个处理器801加载并执行,以使该服务器实现上述各个方法实施例提供的数据传输方法。该处理器801例如是中央处理器(central processing units,CPU)。当然,该网络设备还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该网络设备还可以包括其他用于实现设备功能的部件,在此不做赘述。Figure 8 is a schematic structural diagram of another network device provided by an embodiment of the present application. The network device is, for example, a server. The server may vary greatly due to different configurations or performance, and may include one or more processors 801 and a or multiple memories 802, wherein at least one computer program is stored in the one or more memories 802, and the at least one computer program is loaded and executed by the one or more processors 801 to enable the server to implement each of the above methods. The data transfer method provided by the example. The processor 801 is, for example, a central processing unit (CPU). Of course, the network device can also have components such as wired or wireless network interfaces, keyboards, and input and output interfaces to facilitate input and output. The network device can also include other components for realizing device functions, which will not be described again here.
本申请实施例还提供了一种通信装置,该装置包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收信号,并控制收发器发送信号,并且当该处理器执行该存储器存储的指令时,使得该处理器执行数据传输方法。An embodiment of the present application also provides a communication device, which includes: a transceiver, a memory, and a processor. Wherein, the transceiver, the memory and the processor communicate with each other through an internal connection path, the memory is used to store instructions, and the processor is used to execute the instructions stored in the memory to control the transceiver to receive signals and control the transceiver to send signals. , and when the processor executes the instructions stored in the memory, the processor is caused to execute the data transmission method.
应理解的是,上述处理器可以是中央处理器(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(advanced RISC machines,ARM)架构的处理器。It should be understood that the above-mentioned processor can be a central processing unit (CPU), or other general-purpose processor, digital signal processor (digital signal processing, DSP), application specific integrated circuit (application specific integrated circuit), ASIC), field-programmable gate array (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. A general-purpose processor can be a microprocessor or any conventional processor, etc. It is worth noting that the processor may be a processor that supports advanced RISC machines (ARM) architecture.
进一步地,在一种可选的实施例中,上述存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。Further, in an optional embodiment, the above-mentioned memory may include a read-only memory and a random access memory, and provide instructions and data to the processor. Memory may also include non-volatile random access memory. For example, the memory may also store device type information.
该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用。例如,静态随机存取存储器(static RAM,SRAM)、 动态随机存取存储器(dynamic random access memory,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。The memory may be volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. Among them, the non-volatile memory can be read-only memory (ROM), programmable ROM (PROM), erasable programmable read-only memory (erasable PROM, EPROM), electrically removable memory. Erase programmable read-only memory (electrically EPROM, EEPROM) or flash memory. Volatile memory may be random access memory (RAM), which is used as an external cache. By way of illustration, but not limitation, many forms of RAM are available. For example, static random access memory (static RAM, SRAM), Dynamic random access memory (DRAM), synchronous dynamic random access memory (synchronous DRAM, SDRAM), double data rate synchronous dynamic random access memory (double data date SDRAM, DDR SDRAM), enhanced synchronization Dynamic random access memory (enhanced SDRAM, ESDRAM), synchronous link dynamic random access memory (synchlink DRAM, SLDRAM) and direct memory bus random access memory (direct rambus RAM, DR RAM).
本申请实施例还提供了一种计算机可读存储介质,存储介质中存储有至少一条指令,指令由处理器加载并执行,以使计算机实现如上任一所述的数据传输方法。Embodiments of the present application also provide a computer-readable storage medium, in which at least one instruction is stored, and the instruction is loaded and executed by the processor, so that the computer implements any of the above-mentioned data transmission methods.
本申请实施例还提供了一种计算机程序(产品),当计算机程序被计算机执行时,可以使得处理器或计算机执行上述方法实施例中对应的各个步骤和/或流程。Embodiments of the present application also provide a computer program (product). When the computer program is executed by a computer, it can cause the processor or computer to execute corresponding steps and/or processes in the above method embodiments.
本申请实施例还提供了一种芯片,包括处理器,用于从存储器中调用并运行所述存储器中存储的指令,使得安装有所述芯片的通信设备执行如上任一所述的数据传输方法。Embodiments of the present application also provide a chip, including a processor, configured to call and run instructions stored in the memory, so that the communication device installed with the chip executes any of the above-described data transmission methods. .
本申请实施例还提供另一种芯片,包括:输入接口、输出接口、处理器和存储器,所述输入接口、输出接口、所述处理器以及所述存储器之间通过内部连接通路相连,所述处理器用于执行所述存储器中的代码,当所述代码被执行时,所述处理器用于执行如上任一所述的数据传输方法。An embodiment of the present application also provides another chip, including: an input interface, an output interface, a processor, and a memory. The input interface, the output interface, the processor, and the memory are connected through an internal connection path, and the The processor is configured to execute the code in the memory. When the code is executed, the processor is configured to execute any of the above data transmission methods.
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk)等。In the above embodiments, it may be implemented in whole or in part by software, hardware, firmware, or any combination thereof. When implemented using software, it may be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the processes or functions described in this application are generated in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions may be stored in or transmitted from one computer-readable storage medium to another, e.g., the computer instructions may be transferred from a website, computer, server, or data center Transmission to another website, computer, server or data center through wired (such as coaxial cable, optical fiber, digital subscriber line) or wireless (such as infrared, wireless, microwave, etc.) means. The computer-readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server, data center, etc. that contains one or more available media integrated. The available media may be magnetic media (eg, floppy disk, hard disk, magnetic tape), optical media (eg, DVD), or semiconductor media (eg, Solid State Disk), etc.
本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和模块,能够以软件、硬件、固件或者其任意组合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。Those of ordinary skill in the art will appreciate that the method steps and modules described in conjunction with the embodiments disclosed herein can be implemented in software, hardware, firmware, or any combination thereof. In order to clearly illustrate the interoperability of hardware and software, Alternatively, the steps and compositions of each embodiment have been generally described in terms of functions in the above description. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. One of ordinary skill in the art may implement the described functionality using different methods for each specific application, but such implementations should not be considered beyond the scope of this application.
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。Those of ordinary skill in the art can understand that all or part of the steps to implement the above embodiments can be completed by hardware, or can be completed by instructing the relevant hardware through a program. The program can be stored in a computer-readable storage medium. As mentioned above, The storage medium can be read-only memory, magnetic disk or optical disk, etc.
当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机程序指令。作为示例,本申请实施例的方法可以在机器可执行指令的上下文中被描述,机器可执行指令诸如包括在目标的真实或者虚拟处理器上的器件中执行的程序模块中。一般而言,程序模块包括例程、程序、库、对象、类、组件、数据结构等,其执行特定的任务或者实现特定的抽象数据结构。在各实施例中,程序模块的功能可以在所 描述的程序模块之间合并或者分割。用于程序模块的机器可执行指令可以在本地或者分布式设备内执行。在分布式设备中,程序模块可以位于本地和远程存储介质二者中。When implemented using software, it may be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer program instructions. By way of example, methods of embodiments of the present application may be described in the context of machine-executable instructions, such as included in a program module executing in a device on a target's real or virtual processor. Generally speaking, program modules include routines, programs, libraries, objects, classes, components, data structures, etc., which perform specific tasks or implement specific abstract data structures. In various embodiments, the functionality of the program modules may be Merge or split between the described program modules. Machine-executable instructions for program modules can execute locally or on a distributed device. In a distributed device, program modules can be located in both local and remote storage media.
用于实现本申请实施例的方法的计算机程序代码可以用一种或多种编程语言编写。这些计算机程序代码可以提供给通用计算机、专用计算机或其他可编程的数据传输装置的处理器,使得程序代码在被计算机或其他可编程的数据传输装置执行的时候,引起在流程图和/或框图中规定的功能/操作被实施。程序代码可以完全在计算机上、部分在计算机上、作为独立的软件包、部分在计算机上且部分在远程计算机上或完全在远程计算机或服务器上执行。Computer program codes for implementing the methods of embodiments of the present application may be written in one or more programming languages. These computer program codes may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data transmission device, so that when executed by the computer or other programmable data transmission device, the program code causes the flowchart and/or block diagram to be displayed. The functions/operations specified in are implemented. The program code may execute entirely on the computer, partly on the computer, as a stand-alone software package, partly on the computer and partly on a remote computer or entirely on the remote computer or server.
在本申请实施例的上下文中,计算机程序代码或者相关数据可以由任意适当载体承载,以使得设备、装置或者处理器能够执行上文描述的各种处理和操作。载体的示例包括信号、计算机可读介质等等。In the context of the embodiments of the present application, the computer program code or related data may be carried by any appropriate carrier, so that the device, device or processor can perform the various processes and operations described above. Examples of carriers include signals, computer-readable media, and the like.
信号的示例可以包括电、光、无线电、声音或其它形式的传播信号,诸如载波、红外信号等。Examples of signals may include electrical, optical, radio, acoustic, or other forms of propagated signals, such as carrier waves, infrared signals, and the like.
机器可读介质可以是包含或存储用于或有关于指令执行系统、装置或设备的程序的任何有形介质。机器可读介质可以是机器可读信号介质或机器可读存储介质。机器可读介质可以包括但不限于电子的、磁的、光学的、电磁的、红外的或半导体系统、装置或设备,或其任意合适的组合。机器可读存储介质的更详细示例包括带有一根或多根导线的电气连接、便携式计算机磁盘、硬盘、随机存储存取器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光存储设备、磁存储设备,或其任意合适的组合。A machine-readable medium may be any tangible medium that contains or stores a program for or in connection with an instruction execution system, apparatus, or device. The machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. Machine-readable media may include, but are not limited to, electronic, magnetic, optical, electromagnetic, infrared or semiconductor systems, devices or devices, or any suitable combination thereof. More detailed examples of machine-readable storage media include an electrical connection with one or more wires, laptop computer disk, hard drive, random memory accessor (RAM), read-only memory (ROM), erasable programmable read-only memory Memory (EPROM or flash memory), optical storage device, magnetic storage device, or any suitable combination thereof.
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、设备和模块的具体工作过程,可以参见前述方法实施例中的对应过程,在此不再赘述。Those skilled in the art can clearly understand that for the convenience and simplicity of description, the specific working processes of the systems, devices and modules described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be described again here.
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、设备或模块的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。In the several embodiments provided in this application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are only illustrative. For example, the division of the modules is only a logical function division. In actual implementation, there may be other division methods. For example, multiple modules or components may be combined or may be Integrated into another system, or some features can be ignored, or not implemented. In addition, the coupling or direct coupling or communication connection between each other shown or discussed may be indirect coupling or communication connection through some interfaces, devices or modules, or may be electrical, mechanical or other forms of connection.
该作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请实施例方案的目的。The modules described as separate components may or may not be physically separated. The components shown as modules may or may not be physical modules, that is, they may be located in one place, or they may be distributed to multiple network modules. Some or all of the modules can be selected according to actual needs to achieve the purpose of the embodiments of the present application.
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以是两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。In addition, each functional module in each embodiment of the present application can be integrated into one processing module, or each module can exist physically alone, or two or more modules can be integrated into one module. The above integrated modules can be implemented in the form of hardware or software function modules.
该集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例中方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。If the integrated module is implemented in the form of a software function module and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application is essentially or contributes to the existing technology, or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium , including several instructions to cause a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the methods in various embodiments of the present application. The aforementioned storage media include: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), magnetic disk or optical disk and other media that can store program code. .
本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也 不对数量和执行顺序进行限定。还应理解,尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。这些术语只是用于将一元素与另一元素区别分开。例如,在不脱离各种所述示例的范围的情况下,第一图像可以被称为第二图像,并且类似地,第二图像可以被称为第一图像。第一图像和第二图像都可以是图像,并且在某些情况下,可以是单独且不同的图像。In this application, the terms "first", "second" and other words are used to distinguish the same or similar items with basically the same functions and functions. It should be understood that the terms "first", "second" and "nth" There is no logical or temporal dependence, nor There are no restrictions on the quantity and order of execution. It should also be understood that, although the following description uses the terms first, second, etc. to describe various elements, these elements should not be limited by the terms. These terms are only used to distinguish one element from another. For example, a first image may be referred to as a second image, and similarly, a second image may be referred to as a first image, without departing from the scope of various described examples. Both the first image and the second image may be images, and in some cases, may be separate and different images.
还应理解,在本申请的各个实施例中,各个过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。It should also be understood that in each embodiment of the present application, the size of the sequence number of each process does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not be determined by the execution order of the embodiments of the present application. The implementation process constitutes no limitation.
本申请中术语“至少一个”的含义是指一个或多个,本申请中术语“多个”的含义是指两个或两个以上,例如,多个第二报文是指两个或两个以上的第二报文。本文中术语“系统”和“网络”经常可互换使用。The term "at least one" in this application means one or more, and the term "multiple" in this application means two or more. For example, multiple second messages means two or more more than one second message. The terms "system" and "network" are often used interchangeably in this article.
应理解,在本文中对各种所述示例的描述中所使用的术语只是为了描述特定示例,而并非旨在进行限制。如在对各种所述示例的描述和所附权利要求书中所使用的那样,单数形式“一个(“a”,“an”)”和“该”旨在也包括复数形式,除非上下文另外明确地指示。It is to be understood that the terminology used in the description of the various examples herein is for the purpose of describing the particular example only and is not intended to be limiting. As used in the description of various described examples and the appended claims, the singular forms "a," "an" and "the" are intended to include the plural forms as well, unless the context dictates otherwise. Instruct clearly.
还应理解,本文中所使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多个项目的任何和全部可能的组合。术语“和/或”,是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本申请中的字符“/”,一般表示前后关联对象是一种“或”的关系。It will also be understood that the term "and/or" as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. The term "and/or" is an association relationship that describes related objects, indicating that there can be three relationships. For example, A and/or B can mean: A alone exists, A and B exist simultaneously, and B alone exists. situation. In addition, the character "/" in this application generally indicates that the related objects are an "or" relationship.
还应理解,术语“包括”(也称“includes”、“including”、“comprises”和/或“comprising”)当在本说明书中使用时指定存在所陈述的特征、整数、步骤、操作、元素、和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元素、部件、和/或其分组。It will also be understood that the term "includes" (also "includes," "including," "comprises," and/or "comprising") when used in this specification specifies the presence of stated features, integers, steps, operations, elements , and/or components, but does not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groupings thereof.
还应理解,术语“若”和“如果”可被解释为意指“当...时”(“when”或“upon”)或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“若确定...”或“若检测到[所陈述的条件或事件]”可被解释为意指“在确定...时”或“响应于确定...”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。It should also be understood that the terms "if" and "if" may be interpreted to mean "when" or "upon" or "in response to determining" or "in response to detecting." Similarly, depending on the context, the phrase "if it is determined..." or "if [stated condition or event] is detected" may be interpreted to mean "when it is determined..." or "in response to the determination... ” or “on detection of [stated condition or event]” or “in response to detection of [stated condition or event].”
应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。It should be understood that determining B based on A does not mean determining B only based on A, and B can also be determined based on A and/or other information.
还应理解,说明书通篇中提到的“一个实施例”、“一实施例”、“一种可能的实现方式”意味着与实施例或实现方式有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”、“一种可能的实现方式”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。 It should also be understood that references throughout this specification to "one embodiment,""anembodiment," and "a possible implementation" mean that specific features, structures, or characteristics related to the embodiment or implementation are included herein. In at least one embodiment of the application. Therefore, “in one embodiment” or “in an embodiment” or “a possible implementation” appearing in various places throughout this specification do not necessarily refer to the same embodiment. Furthermore, the particular features, structures or characteristics may be combined in any suitable manner in one or more embodiments.

Claims (20)

  1. 一种数据传输方法,其特征在于,所述方法包括:A data transmission method, characterized in that the method includes:
    代理设备接收数据源站发送的已编码的第一数据,所述第一数据携带第一标识;The proxy device receives the encoded first data sent by the data source station, where the first data carries a first identifier;
    所述代理设备对所述第一数据进行复制,得到N个第一数据,其中,所述代理设备连接多个终端,且所述多个终端中的N个终端基于所述第一标识请求所述第一数据,所述N为大于等于2的整数;The proxy device copies the first data to obtain N pieces of first data, wherein the proxy device is connected to multiple terminals, and the N terminals among the multiple terminals request all the data based on the first identification. The first data, the N is an integer greater than or equal to 2;
    所述代理设备向所述N个终端中的各个终端分别发送所述第一数据。The proxy device sends the first data to each of the N terminals respectively.
  2. 根据权利要求1所述的方法,其特征在于,所述代理设备对所述第一数据进行复制之前,还包括:The method according to claim 1, characterized in that before the proxy device copies the first data, it further includes:
    接收所述多个终端中的至少两个终端发送的数据获取请求,所述数据获取请求携带所述第一标识;Receive data acquisition requests sent by at least two terminals among the plurality of terminals, where the data acquisition requests carry the first identifier;
    根据所述数据获取请求的数量,得到所述N。The N is obtained according to the number of data acquisition requests.
  3. 根据权利要求1或2所述的方法,其特征在于,所述代理设备对所述第一数据进行复制之前,还包括:The method according to claim 1 or 2, characterized in that before the proxy device copies the first data, it further includes:
    获取数据列表,所述数据列表中包括多组数据的第二标识,一组数据为同一个采集终端上传的数据,所述多组数据中的其中一组数据包括所述第一数据;Obtain a data list, the data list includes second identifiers of multiple groups of data, one group of data is data uploaded by the same collection terminal, and one group of data in the multiple groups of data includes the first data;
    接收所述多个终端中的至少两个终端发送的列表获取请求,向所述多个终端中的至少两个终端发送所述数据列表,所述数据列表中的第二标识用于所述N个终端确定所述第一标识。Receive a list acquisition request sent by at least two terminals among the plurality of terminals, and send the data list to at least two terminals among the plurality of terminals, where the second identifier in the data list is used for the N A terminal determines the first identifier.
  4. 根据权利要求3所述的方法,其特征在于,所述获取数据列表,包括:The method according to claim 3, characterized in that said obtaining the data list includes:
    接收所述数据源站发送的所述数据列表,所述数据列表由所述数据源站基于所述第一数据得到,所述数据源站发送所述数据列表的第一时间早于所述数据源站发送所述第一数据的第二时间。Receive the data list sent by the data source station, the data list is obtained by the data source station based on the first data, and the first time when the data source station sends the data list is earlier than the data The source station sends the first data at a second time.
  5. 根据权利要求3或4所述的方法,其特征在于,所述获取数据列表之后,还包括:The method according to claim 3 or 4, characterized in that after obtaining the data list, it further includes:
    基于所述数据列表启动针对所述数据列表的数据传输服务,得到所述数据列表对应的数据传输服务的第一启动结果,其中,所述第一启动结果指示启动成功;Start the data transmission service for the data list based on the data list, and obtain the first startup result of the data transmission service corresponding to the data list, wherein the first startup result indicates that the startup is successful;
    向所述数据源站发送数据请求,所述数据请求用于请求所述数据源站向所述代理设备发送所述第一数据。Send a data request to the data source station, where the data request is used to request the data source station to send the first data to the proxy device.
  6. 根据权利要求3所述的方法,其特征在于,所述获取数据列表,包括:The method according to claim 3, characterized in that said obtaining the data list includes:
    根据接收到的未编码的第二数据生成所述数据列表,所述第二数据用于编码得到所述第一数据。The data list is generated according to the received unencoded second data, and the second data is used to encode the first data.
  7. 根据权利要求1-6任一所述的方法,其特征在于,所述代理设备对所述第一数据进行复制之后,还包括:The method according to any one of claims 1 to 6, characterized in that, after the proxy device copies the first data, it further includes:
    所述代理设备未成功复制所述第一数据,向所述数据源站发送复制失败指令,所述复制失败指令用于提示所述数据源站向所述请求所述第一数据的终端依次发送所述第一数据。The proxy device fails to successfully copy the first data and sends a copy failure instruction to the data source station. The copy failure instruction is used to prompt the data source station to send sequential messages to the terminal requesting the first data. the first data.
  8. 根据权利要求1-7任一所述的方法,其特征在于,所述接收数据源站发送的已编码的第一数据之前,还包括:The method according to any one of claims 1 to 7, characterized in that before receiving the encoded first data sent by the data source station, it further includes:
    接收所述数据源站发送的数据传输请求,所述数据传输请求用于向所述代理设备调用数据传输服务; Receive a data transmission request sent by the data source station, where the data transmission request is used to call the data transmission service to the proxy device;
    基于所述数据传输请求确定所述数据源站对应的数据传输服务的调用结果,所述调用结果指示所述数据源站调用成功;Determine the calling result of the data transmission service corresponding to the data source station based on the data transmission request, and the calling result indicates that the data source station is successfully called;
    向所述数据源站发送所述调用结果,所述调用结果用于指示所述数据源站执行发送所述第一数据的操作。The calling result is sent to the data source station, and the calling result is used to instruct the data source station to perform the operation of sending the first data.
  9. 根据权利要求8所述的方法,其特征在于,所述代理设备包括应用程序设计接口API,所述API用于所述数据源站通过所述数据传输请求调用所述数据传输服务。The method according to claim 8, characterized in that the proxy device includes an application programming interface API, and the API is used by the data source station to call the data transmission service through the data transmission request.
  10. 根据权利要求1-9任一所述的方法,其特征在于,所述第一数据为直播业务的数据、在线教育业务的数据或线上会议业务的数据。The method according to any one of claims 1 to 9, characterized in that the first data is data of a live broadcast service, data of an online education service or data of an online conference service.
  11. 根据权利要求1-10任一所述的方法,其特征在于,所述第一标识为已编码的标识,或者所述第一标识为未编码的标识。The method according to any one of claims 1 to 10, characterized in that the first identifier is an encoded identifier, or the first identifier is an unencoded identifier.
  12. 一种数据传输装置,其特征在于,所述装置应用于代理设备,所述装置包括:A data transmission device, characterized in that the device is applied to a proxy device, and the device includes:
    接收模块,用于接收数据源站发送的已编码的第一数据,所述第一数据携带第一标识;A receiving module, configured to receive the encoded first data sent by the data source station, where the first data carries a first identifier;
    复制模块,用于对所述第一数据进行复制,得到N个第一数据,其中,所述代理设备连接多个终端,且所述多个终端中的N个终端基于所述第一标识请求所述第一数据,所述N为大于等于2的整数;A copy module, configured to copy the first data to obtain N pieces of first data, wherein the proxy device is connected to multiple terminals, and the N terminals among the multiple terminals request based on the first identification For the first data, the N is an integer greater than or equal to 2;
    发送模块,用于向所述N个终端中的各个终端分别发送所述第一数据。A sending module, configured to send the first data to each of the N terminals respectively.
  13. 根据权利要求12所述的装置,其特征在于,所述装置还包括:获取模块,用于获取数据列表,所述数据列表中包括多组数据的第二标识,一组数据为同一个采集终端上传的数据,所述多组数据中的其中一组数据包括所述第一数据;所述接收模块,还用于接收所述多个终端中的至少两个终端发送的列表获取请求;所述发送模块,还用于向所述多个终端中的至少两个终端发送所述数据列表,所述数据列表中的第二标识用于所述N个终端确定所述第一标识。The device according to claim 12, characterized in that the device further includes: an acquisition module for acquiring a data list, the data list includes second identifiers of multiple groups of data, and one group of data is for the same collection terminal. Uploaded data, one of the multiple sets of data includes the first data; the receiving module is also configured to receive a list acquisition request sent by at least two terminals among the plurality of terminals; The sending module is further configured to send the data list to at least two terminals among the plurality of terminals, where the second identifier in the data list is used by the N terminals to determine the first identifier.
  14. 根据权利要求13所述的装置,其特征在于,所述获取模块,用于接收所述数据源站发送的所述数据列表,所述数据列表由所述数据源站基于所述第一数据得到,所述数据源站发送所述数据列表的第一时间早于所述数据源站发送所述第一数据的第二时间。The device according to claim 13, characterized in that the acquisition module is configured to receive the data list sent by the data source station, and the data list is obtained by the data source station based on the first data. , the first time when the data source station sends the data list is earlier than the second time when the data source station sends the first data.
  15. 根据权利要求13或14所述的装置,其特征在于,所述装置还包括:启动模块,用于基于所述数据列表启动针对所述数据列表的数据传输服务,得到所述数据列表对应的数据传输服务的第一启动结果,其中,所述第一启动结果指示启动成功;所述发送模块,还用于向所述数据源站发送数据请求,所述数据请求用于请求所述数据源站向所述代理设备发送所述第一数据。The device according to claim 13 or 14, characterized in that the device further includes: a startup module, configured to start a data transmission service for the data list based on the data list, and obtain the data corresponding to the data list. The first startup result of the transmission service, wherein the first startup result indicates successful startup; the sending module is also used to send a data request to the data source station, the data request is used to request the data source station Send the first data to the proxy device.
  16. 根据权利要求13所述的装置,其特征在于,所述获取模块,用于根据接收到的未编码的第二数据生成所述数据列表,所述第二数据用于编码得到所述第一数据。The device according to claim 13, characterized in that the acquisition module is used to generate the data list according to the received unencoded second data, and the second data is used to encode the first data. .
  17. 根据权利要求12-16任一所述的装置,其特征在于,所述发送模块,还用于所述代理设备未成功复制所述第一数据,向所述数据源站发送复制失败指令,所述复制失败指令用于提示所述数据源站向所述请求所述第一数据的终端依次发送所述第一数据。The device according to any one of claims 12 to 16, characterized in that the sending module is also used to send a copy failure instruction to the data source station if the agent device fails to copy the first data. The copy failure instruction is used to prompt the data source station to sequentially send the first data to the terminal requesting the first data.
  18. 根据权利要求12-17任一所述的装置,其特征在于,所述接收模块,还用于接收所述数据源站发送的数据传输请求,所述数据传输请求用于向所述代理设备调用数据传输服务;基于所述数据传输请求确定所述数据源站对应的数据传输服务的调用结果,所述调用结果指示所述数据源站调用成功;所述发送模块,还用于向所述数据源站发送所述调用结果,所述调用结果用于指示所述数据源站执行发送所述第一数据的操作。 The device according to any one of claims 12 to 17, characterized in that the receiving module is also used to receive a data transmission request sent by the data source station, and the data transmission request is used to call the proxy device Data transmission service; determine the calling result of the data transmission service corresponding to the data source station based on the data transmission request, and the calling result indicates that the data source station is successfully called; the sending module is also used to send the data to the data source station. The source station sends the calling result, and the calling result is used to instruct the data source station to perform the operation of sending the first data.
  19. 一种数据传输设备,其特征在于,所述设备包括存储器及处理器;所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行,以使所述数据传输设备实现权利要求1-11中任一所述的数据传输方法。A data transmission device, characterized in that the device includes a memory and a processor; at least one instruction is stored in the memory, and the at least one instruction is loaded and executed by the processor, so that the data transmission device Implement the data transmission method described in any one of claims 1-11.
  20. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如权利要求1-11中任一所述的数据传输方法。 A computer-readable storage medium, characterized in that at least one instruction is stored in the computer-readable storage medium, and the instruction is loaded and executed by a processor to implement the data as described in any one of claims 1-11 Transmission method.
PCT/CN2023/103113 2022-08-11 2023-06-28 Data transmission method and apparatus WO2024032189A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210962834.5A CN117640753A (en) 2022-08-11 2022-08-11 Data transmission method and device
CN202210962834.5 2022-08-11

Publications (1)

Publication Number Publication Date
WO2024032189A1 true WO2024032189A1 (en) 2024-02-15

Family

ID=89850625

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/103113 WO2024032189A1 (en) 2022-08-11 2023-06-28 Data transmission method and apparatus

Country Status (2)

Country Link
CN (1) CN117640753A (en)
WO (1) WO2024032189A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1852570A (en) * 2005-09-05 2006-10-25 华为技术有限公司 IP multi-cast system and method based on mobile network
WO2006122509A1 (en) * 2005-05-20 2006-11-23 Huawei Technologies Co., Ltd. A method for multicasting traffic data based on the mobile network
CN110502649A (en) * 2019-07-02 2019-11-26 中国联合网络通信集团有限公司 A kind of classification method and device of multimedia service
US20200067818A1 (en) * 2018-08-21 2020-02-27 Cisco Technology, Inc. Service traffic replication and dynamic policy enforcement in a multi-cloud service mesh
CN114598644A (en) * 2020-12-02 2022-06-07 华为技术有限公司 BIER message forwarding method, equipment and system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006122509A1 (en) * 2005-05-20 2006-11-23 Huawei Technologies Co., Ltd. A method for multicasting traffic data based on the mobile network
CN1852570A (en) * 2005-09-05 2006-10-25 华为技术有限公司 IP multi-cast system and method based on mobile network
US20200067818A1 (en) * 2018-08-21 2020-02-27 Cisco Technology, Inc. Service traffic replication and dynamic policy enforcement in a multi-cloud service mesh
CN110502649A (en) * 2019-07-02 2019-11-26 中国联合网络通信集团有限公司 A kind of classification method and device of multimedia service
CN114598644A (en) * 2020-12-02 2022-06-07 华为技术有限公司 BIER message forwarding method, equipment and system

Also Published As

Publication number Publication date
CN117640753A (en) 2024-03-01

Similar Documents

Publication Publication Date Title
WO2023024834A9 (en) Game data processing method and apparatus, and storage medium
WO2022095795A1 (en) Communication method and apparatus, computer readable medium, and electronic device
US9674252B2 (en) System and method for efficient delivery of repetitive multimedia content
WO2016049987A1 (en) Data processing method and apparatus, and related servers
US10277865B2 (en) Data transmission method and system, and related devices
CN108347622B (en) Multimedia data pushing method and device, storage medium and equipment
US20220210485A1 (en) Method for managing network live streaming data and related apparatus, and device and storage medium
WO2017124860A1 (en) Distributed wireless multi-screen virtual machine service system
WO2018019262A1 (en) Cloud desktop system, cloud desktop, cloud terminal, and multicast method
WO2020248649A1 (en) Audio and video data synchronous playback method, apparatus and system, electronic device and medium
US9270937B2 (en) Real time stream provisioning infrastructure
US20150188928A1 (en) Private-public chat functionality
JP2016508357A (en) Wireless real-time media communication using multiple media streams
CN113114688B (en) Multimedia conference management method and device, storage medium and electronic equipment
CN105144673A (en) Reduced latency server-mediated audio-video communication
CN105072507B (en) A kind of transmission method and system of multi-medium data
KR102149445B1 (en) Method and apparatus for flexible broadcast service based on multimedia broadcast multicast service
WO2023115906A1 (en) Video playing method and related device
WO2020199929A1 (en) Data distribution method and network device
US9264662B2 (en) Chat preauthorization
CN110113558B (en) Data processing method, device, system and computer readable storage medium
EP3399725B1 (en) Multimedia stream multicasting method and device
JP2014131143A (en) Transmitter, transmitting method and program
WO2024032189A1 (en) Data transmission method and apparatus
CN110519331B (en) Method and device for processing resources of video network

Legal Events

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

Ref document number: 23851416

Country of ref document: EP

Kind code of ref document: A1