CN111245733A - Data transmission method and device - Google Patents

Data transmission method and device Download PDF

Info

Publication number
CN111245733A
CN111245733A CN201911405859.XA CN201911405859A CN111245733A CN 111245733 A CN111245733 A CN 111245733A CN 201911405859 A CN201911405859 A CN 201911405859A CN 111245733 A CN111245733 A CN 111245733A
Authority
CN
China
Prior art keywords
data
speed
server
packet
communication links
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201911405859.XA
Other languages
Chinese (zh)
Inventor
吕亚亚
李云鹏
谢文龙
王艳辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Visionvera Information Technology Co Ltd
Original Assignee
Visionvera Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Visionvera Information Technology Co Ltd filed Critical Visionvera Information Technology Co Ltd
Priority to CN201911405859.XA priority Critical patent/CN111245733A/en
Publication of CN111245733A publication Critical patent/CN111245733A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • H04L45/245Link aggregation, e.g. trunking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions

Abstract

The embodiment of the invention provides a method and a device for data transmission, wherein the method comprises the following steps: aggregating the plurality of network adapters, and establishing a plurality of communication links with a server by adopting the plurality of network adapters; when receiving link information aiming at the plurality of communication links sent by the server, updating target data sending speeds aiming at the plurality of communication links by adopting the link information; when a data packet which is sent by the first device and aims at the second device is obtained, the data packet is sent to the server side by adopting the plurality of communication links according to the target data sending speed, so that the data packet is sent to the second device through the server side, the data transmission rate of each link is adjusted in real time according to the network condition of the link, the bandwidth utilization rate is improved, the data transmission efficiency is improved, and the smoothness of network transmission is enhanced.

Description

Data transmission method and device
Technical Field
The present invention relates to the field of network technologies, and in particular, to a method and an apparatus for data transmission.
Background
With the development of the times, the demand of people on high-definition videos is increasing day by day, and the video is more urgent particularly in outdoor mobile command occasions such as emergency disaster relief and the like.
In the prior art, because the outdoor environment lacks a special data transmission line, when high definition video transmission is required, video transmission is often required by means of a plurality of mobile network cards.
However, the mobile network card is easily affected by various factors, such as the external environment, the distance from the base station, or the network operator providing the mobile network card, which all cause the mobile network card to have strong or weak signals, and the data transmission bandwidths are different in size, but the data transmission amount of different mobile network cards cannot be adjusted according to the transmission bandwidth of each mobile network card in the data transmission process, which wastes the idle transmission bandwidth and reduces the data transmission efficiency.
Disclosure of Invention
In view of the above, the present invention has been made to provide a method and apparatus for data transmission that overcomes or at least partially solves the above problems, comprising:
a method for data transmission, applied to a client, the client being deployed on a first device, the first device having a plurality of network adapters, the method comprising:
aggregating the plurality of network adapters, and establishing a plurality of communication links with a server by adopting the plurality of network adapters;
when receiving link information aiming at the plurality of communication links sent by the server, updating target data sending speeds aiming at the plurality of communication links by adopting the link information;
when a data packet which is sent by the first equipment and aims at the second equipment is obtained, the data packet is sent to the server side by adopting the plurality of communication links according to the target data sending speed, so that the data packet is sent to the second equipment through the server side.
Optionally, each communication link corresponds to a data controller, the data controller corresponds to a data container, the target data sending speed includes a production speed for the data container and a consumption speed for the data container, and the step of updating the target data sending speeds for the plurality of communication links using the link information includes:
determining a production speed for the data container using the link information; wherein the production speed is used to control the speed at which data is filled into the data container;
determining a consumption speed for the data container in combination with the production speed and a preset speed; wherein the consumption rate is used to control the rate at which data is requested from the data container.
Optionally, the step of sending the data packet to the server side by using the plurality of communication links according to the target data sending speed includes:
filling the data packet into the data container according to the production speed;
and according to the consumption speed, applying for the data packet from the data container, and sending the data packet to the server by adopting a communication link corresponding to the data container.
Optionally, the step of applying for the data packet from the data container according to the consumption speed comprises:
determining a target byte number aiming at executing single service logic according to the consumption speed;
and before executing the single service logic, applying for the data packet from the data container according to the target byte number.
Optionally, before the step of applying for the data packet from the data container according to the target number of bytes, the method further includes:
judging whether the byte data in the data container is greater than or equal to the target byte number;
and if the byte data in the data container is greater than or equal to the target byte number, executing a step of applying for the data packet from the data container according to the target byte number.
Optionally, the production speed is positively correlated with a container size of the data container.
Optionally, the link information is actual data sending speeds of the plurality of communication links counted by the server.
An apparatus for data transmission, the apparatus being applied to a client, the client being deployed on a first device, the first device having a plurality of network adapters, the apparatus comprising:
the communication link establishing module is used for aggregating the plurality of network adapters and establishing a plurality of communication links with the server side by adopting the plurality of network adapters;
a data sending speed updating module, configured to update target data sending speeds for the plurality of communication links by using the link information when receiving the link information for the plurality of communication links sent by the server;
and the data packet sending module is used for sending the data packet to the server by adopting the plurality of communication links according to the target data sending speed when the data packet which is sent by the first equipment and aims at the second equipment is obtained, so that the data packet is sent to the second equipment through the server.
An electronic device comprising a processor, a memory and a computer program stored on the memory and being executable on the processor, the computer program, when being executed by the processor, realizing the steps of the method of data transmission as described above.
A computer-readable storage medium, on which a computer program is stored which, when being executed by a processor, carries out the steps of the method of data transmission as described above.
The embodiment of the invention has the following advantages:
in the embodiment of the invention, a plurality of network adapters are aggregated, a plurality of communication links with a server are established by adopting the plurality of network adapters, when link information aiming at the plurality of communication links sent by the server is received, the target data sending speed aiming at the plurality of communication links is updated by adopting the link information, and when a data packet aiming at a second device sent by a first device is obtained, the data packet can be sent to the server by adopting the plurality of communication links according to the target data sending speed, so that the data packet is sent to the second device through the server, the data transmission rate of each link is adjusted in real time according to the network condition of the link, the bandwidth utilization rate is improved, the data transmission efficiency is improved, and the smoothness of network transmission is enhanced.
Drawings
In order to more clearly illustrate the technical solution of the present invention, the drawings needed to be used in the description of the present invention will be briefly introduced below, and it is obvious that the drawings in the following description are only some embodiments of the present invention, and it is obvious for those skilled in the art to obtain other drawings based on these drawings without inventive exercise.
Fig. 1 is a schematic networking diagram of a video network according to an embodiment of the present invention;
fig. 2 is a schematic hardware structure diagram of a node server according to an embodiment of the present invention;
fig. 3 is a schematic hardware structure diagram of an access switch according to an embodiment of the present invention;
fig. 4 is a schematic hardware structure diagram of an ethernet protocol conversion gateway according to an embodiment of the present invention;
FIG. 5 is a flowchart illustrating steps of a method for data transmission according to an embodiment of the present invention;
FIG. 6 is a schematic diagram of a speed adjustment prompt according to an embodiment of the present invention;
FIG. 7 is a flow chart illustrating steps of another method for data transmission according to an embodiment of the present invention;
FIG. 8 is a diagram illustrating adjustment of target data transmission speed according to an embodiment of the present invention;
fig. 9 is a block diagram of a data transmission apparatus according to an embodiment of the present invention.
Detailed Description
In order to make the aforementioned objects, features and advantages of the present invention comprehensible, embodiments accompanied with figures are described in further detail below. It is to be understood that the embodiments described are only a few embodiments of the present invention, and not all embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
The video networking is an important milestone for network development, is a real-time network, can realize high-definition video real-time transmission, and pushes a plurality of internet applications to high-definition video, and high-definition faces each other.
The video networking adopts a real-time high-definition video exchange technology, can integrate required services such as dozens of services of video, voice, pictures, characters, communication, data and the like on a system platform on a network platform, such as high-definition video conference, video monitoring, intelligent monitoring analysis, emergency command, digital broadcast television, delayed television, network teaching, live broadcast, VOD on demand, television mail, Personal Video Recorder (PVR), intranet (self-office) channels, intelligent video broadcast control, information distribution and the like, and realizes high-definition quality video broadcast through a television or a computer.
To better understand the embodiments of the present invention, the following description refers to the internet of view:
some of the technologies applied in the video networking are as follows:
network Technology (Network Technology)
Network technology innovation in video networking has improved over traditional Ethernet (Ethernet) to face the potentially enormous video traffic on the network. Unlike pure network Packet Switching (Packet Switching) or network circuit Switching (circuit Switching), the Packet Switching is adopted by the technology of the video networking to meet the Streaming requirement. The video networking technology has the advantages of flexibility, simplicity and low price of packet switching, and simultaneously has the quality and safety guarantee of circuit switching, thereby realizing the seamless connection of the whole network switching type virtual circuit and the data format.
Switching Technology (Switching Technology)
The video network adopts two advantages of asynchronism and packet switching of the Ethernet, eliminates the defects of the Ethernet on the premise of full compatibility, has end-to-end seamless connection of the whole network, is directly communicated with a user terminal, and directly bears an IP data packet. The user data does not require any format conversion across the entire network. The video networking is a higher-level form of the Ethernet, is a real-time exchange platform, can realize the real-time transmission of the whole-network large-scale high-definition video which cannot be realized by the existing Internet, and pushes a plurality of network video applications to high-definition and unification.
Server Technology (Server Technology)
The server technology on the video networking and unified video platform is different from the traditional server, the streaming media transmission of the video networking and unified video platform is established on the basis of connection orientation, the data processing capacity of the video networking and unified video platform is independent of flow and communication time, and a single network layer can contain signaling and data transmission. For voice and video services, the complexity of video networking and unified video platform streaming media processing is much simpler than that of data processing, and the efficiency is greatly improved by more than one hundred times compared with that of a traditional server.
Storage Technology (Storage Technology)
The super-high speed storage technology of the unified video platform adopts the most advanced real-time operating system in order to adapt to the media content with super-large capacity and super-large flow, the program information in the server instruction is mapped to the specific hard disk space, the media content is not passed through the server any more, and is directly sent to the user terminal instantly, and the general waiting time of the user is less than 0.2 second. The optimized sector distribution greatly reduces the mechanical motion of the magnetic head track seeking of the hard disk, the resource consumption only accounts for 20% of that of the IP internet of the same grade, but concurrent flow which is 3 times larger than that of the traditional hard disk array is generated, and the comprehensive efficiency is improved by more than 10 times.
Network Security Technology (Network Security Technology)
The structural design of the video network completely eliminates the network security problem troubling the internet structurally by the modes of independent service permission control each time, complete isolation of equipment and user data and the like, generally does not need antivirus programs and firewalls, avoids the attack of hackers and viruses, and provides a structural carefree security network for users.
Service Innovation Technology (Service Innovation Technology)
The unified video platform integrates services and transmission, and is not only automatically connected once whether a single user, a private network user or a network aggregate. The user terminal, the set-top box or the PC are directly connected to the unified video platform to obtain various multimedia video services in various forms. The unified video platform adopts a menu type configuration table mode to replace the traditional complex application programming, can realize complex application by using very few codes, and realizes infinite new service innovation.
Networking of the video network is as follows:
the video network is a centralized control network structure, and the network can be a tree network, a star network, a ring network and the like, but on the basis of the centralized control node, the whole network is controlled by the centralized control node in the network.
As shown in fig. 1, the video network is divided into an access network and a metropolitan network.
The devices of the access network part can be mainly classified into 3 types: node server, access switch, terminal (including various set-top boxes, coding boards, memories, etc.). The node server is connected to an access switch, which may be connected to a plurality of terminals and may be connected to an ethernet network.
The node server is a node which plays a centralized control function in the access network and can control the access switch and the terminal. The node server can be directly connected with the access switch or directly connected with the terminal.
Similarly, devices of the metropolitan network portion may also be classified into 3 types: a metropolitan area server, a node switch and a node server. The metro server is connected to a node switch, which may be connected to a plurality of node servers.
The node server is a node server of the access network part, namely the node server belongs to both the access network part and the metropolitan area network part.
The metropolitan area server is a node which plays a centralized control function in the metropolitan area network and can control a node switch and a node server. The metropolitan area server can be directly connected with the node switch or directly connected with the node server.
Therefore, the whole video network is a network structure with layered centralized control, and the network controlled by the node server and the metropolitan area server can be in various structures such as tree, star and ring.
The access network part can form a unified video platform (the part in the dotted circle), and a plurality of unified video platforms can form a video network; each unified video platform may be interconnected via metropolitan area and wide area video networking.
1. Video networking device classification
1.1 devices in the video network of the embodiment of the present invention can be mainly classified into 3 types: server, exchanger (including Ethernet protocol conversion gateway), terminal (including various set-top boxes, code board, memory, etc.). The video network as a whole can be divided into a metropolitan area network (or national network, global network, etc.) and an access network.
1.2 wherein the devices of the access network part can be mainly classified into 3 types: node server, access exchanger (including Ethernet protocol conversion gateway), terminal (including various set-top boxes, coding board, memory, etc.).
The specific hardware structure of each access network device is as follows:
a node server:
as shown in fig. 2, the system mainly includes a network interface module 201, a switching engine module 202, a CPU module 203, and a disk array module 204;
the network interface module 201, the CPU module 203, and the disk array module 204 all enter the switching engine module 202; the switching engine module 202 performs an operation of looking up the address table 205 on the incoming packet, thereby obtaining the direction information of the packet; and stores the packet in a queue of the corresponding packet buffer 206 based on the packet's steering information; if the queue of the packet buffer 206 is nearly full, it is discarded; the switching engine module 202 polls all packet buffer queues for forwarding if the following conditions are met: 1) the port send buffer is not full; 2) the queue packet counter is greater than zero. The disk array module 204 mainly implements control over the hard disk, including initialization, read-write, and other operations on the hard disk; the CPU module 203 is mainly responsible for protocol processing with an access switch and a terminal (not shown in the figure), configuring an address table 205 (including a downlink protocol packet address table, an uplink protocol packet address table, and a data packet address table), and configuring the disk array module 204.
The access switch:
as shown in fig. 3, the network interface module mainly includes a network interface module (a downlink network interface module 301 and an uplink network interface module 302), a switching engine module 303 and a CPU module 304;
wherein, the packet (uplink data) coming from the downlink network interface module 301 enters the packet detection module 305; the packet detection module 305 detects whether the Destination Address (DA), the Source Address (SA), the packet type, and the packet length of the packet meet the requirements, and if so, allocates a corresponding stream identifier (stream-id) and enters the switching engine module 303, otherwise, discards the stream identifier; the packet (downstream data) coming from the upstream network interface module 302 enters the switching engine module 303; the incoming data packet of the CPU module 304 enters the switching engine module 303; the switching engine module 303 performs an operation of looking up the address table 306 on the incoming packet, thereby obtaining the direction information of the packet; if the packet entering the switching engine module 303 is from the downstream network interface to the upstream network interface, the packet is stored in the queue of the corresponding packet buffer 307 in association with the stream-id; if the queue of the packet buffer 307 is nearly full, it is discarded; if the packet entering the switching engine module 303 is not from the downlink network interface to the uplink network interface, the data packet is stored in the queue of the corresponding packet buffer 307 according to the guiding information of the packet; if the queue of the packet buffer 307 is nearly full, it is discarded.
The switching engine module 303 polls all packet buffer queues, which in this embodiment of the present invention is divided into two cases:
if the queue is from the downlink network interface to the uplink network interface, the following conditions are met for forwarding: 1) the port send buffer is not full; 2) the queued packet counter is greater than zero; 3) obtaining a token generated by a code rate control module;
if the queue is not from the downlink network interface to the uplink network interface, the following conditions are met for forwarding: 1) the port send buffer is not full; 2) the queue packet counter is greater than zero.
The rate control module 308 is configured by the CPU module 304, and generates tokens for packet buffer queues from all downstream network interfaces to upstream network interfaces at programmable intervals to control the rate of upstream forwarding.
The CPU module 304 is mainly responsible for protocol processing with the node server, configuration of the address table 306, and configuration of the code rate control module 308.
Ethernet protocol conversion gateway
As shown in fig. 4, the apparatus mainly includes a network interface module (a downlink network interface module 401 and an uplink network interface module 402), a switching engine module 403, a CPU module 404, a packet detection module 405, a rate control module 408, an address table 406, a packet buffer 407, a MAC adding module 409, and a MAC deleting module 410.
Wherein, the data packet coming from the downlink network interface module 401 enters the packet detection module 405; the packet detection module 405 detects whether the ethernet MAC DA, the ethernet MAC SA, the ethernet length or frame type, the video network destination address DA, the video network source address SA, the video network packet type, and the packet length of the packet meet the requirements, and if so, allocates a corresponding stream identifier (stream-id); then, the MAC deletion module 410 subtracts MAC DA, MAC SA, length or frame type (2byte) and enters the corresponding receiving buffer, otherwise, discards it;
the downlink network interface module 401 detects the sending buffer of the port, and if there is a packet, obtains the ethernet MAC DA of the corresponding terminal according to the destination address DA of the packet, adds the ethernet MAC DA of the terminal, the MACSA of the ethernet coordination gateway, and the ethernet length or frame type, and sends the packet.
The other modules in the ethernet protocol gateway function similarly to the access switch.
A terminal:
the system mainly comprises a network interface module, a service processing module and a CPU module; for example, the set-top box mainly comprises a network interface module, a video and audio coding and decoding engine module and a CPU module; the coding board mainly comprises a network interface module, a video and audio coding engine module and a CPU module; the memory mainly comprises a network interface module, a CPU module and a disk array module.
1.3 devices of the metropolitan area network part can be mainly classified into 2 types: node server, node exchanger, metropolitan area server. The node switch mainly comprises a network interface module, a switching engine module and a CPU module; the metropolitan area server mainly comprises a network interface module, a switching engine module and a CPU module.
2. Video networking packet definition
2.1 Access network packet definition
The data packet of the access network mainly comprises the following parts: destination Address (DA), Source Address (SA), reserved bytes, payload (pdu), CRC.
As shown in the following table, the data packet of the access network mainly includes the following parts:
DA SA Reserved Payload CRC
wherein:
the Destination Address (DA) is composed of 8 bytes (byte), the first byte represents the type of the data packet (such as various protocol packets, multicast data packets, unicast data packets, etc.), there are 256 possibilities at most, the second byte to the sixth byte are metropolitan area network addresses, and the seventh byte and the eighth byte are access network addresses;
the Source Address (SA) is also composed of 8 bytes (byte), defined as the same as the Destination Address (DA);
the reserved byte consists of 2 bytes;
the payload part has different lengths according to different types of datagrams, and is 64 bytes if the datagram is various types of protocol packets, and is 32+1024 or 1056 bytes if the datagram is a unicast packet, of course, the length is not limited to the above 2 types;
the CRC consists of 4 bytes and is calculated in accordance with the standard ethernet CRC algorithm.
2.2 metropolitan area network packet definition
The topology of a metropolitan area network is a graph and there may be 2, or even more than 2, connections between two devices, i.e., there may be more than 2 connections between a node switch and a node server, a node switch and a node switch, and a node switch and a node server. However, the metro network address of the metro network device is unique, and in order to accurately describe the connection relationship between the metro network devices, parameters are introduced in the embodiment of the present invention: a label to uniquely describe a metropolitan area network device.
In this specification, the definition of the Label is similar to that of the Label of MPLS (Multi-Protocol Label Switch), and assuming that there are two connections between the device a and the device B, there are 2 labels for the packet from the device a to the device B, and 2 labels for the packet from the device B to the device a. The label is classified into an incoming label and an outgoing label, and assuming that the label (incoming label) of the packet entering the device a is 0x0000, the label (outgoing label) of the packet leaving the device a may become 0x 0001. The network access process of the metro network is a network access process under centralized control, that is, address allocation and label allocation of the metro network are both dominated by the metro server, and the node switch and the node server are both passively executed, which is different from label allocation of MPLS, and label allocation of MPLS is a result of mutual negotiation between the switch and the server.
As shown in the following table, the data packet of the metro network mainly includes the following parts:
DA SA Reserved label (R) Payload CRC
Namely Destination Address (DA), Source Address (SA), Reserved byte (Reserved), tag, payload (pdu), CRC. The format of the tag may be defined by reference to the following: the tag is 32 bits with the upper 16 bits reserved and only the lower 16 bits used, and its position is between the reserved bytes and payload of the packet.
Referring to fig. 5, a flowchart illustrating steps of a method for data transmission according to an embodiment of the present invention is shown, where the method may be applied to a client, and the client may be deployed in a first device, and the first device may have multiple network adapters.
The first device may be a device in the video network, such as a node server in the video network, and may also be a device in the internet, where the first device may communicate with a second device, and the second device may be a device in the internet or a device in the video network.
Specifically, the method can comprise the following steps:
step 501, aggregating the plurality of network adapters, and establishing a plurality of communication links with a server by using the plurality of network adapters;
as an example, the plurality of network adapters may be a plurality of mutually independent network cards.
In a specific implementation, the client may aggregate a plurality of network adapters installed in the first device, and then may establish a plurality of communication links with the server using the plurality of network adapters, so that the first device may be connected to the same server using a plurality of mutually independent network cards at the same time.
Step 502, when receiving link information for the plurality of communication links sent by the server, updating target data sending speeds for the plurality of communication links by using the link information;
in practical application, the server side can respectively acquire link information for each communication link established with the client side and send the link information to the client side, and after receiving the link information, the client side can update the target data sending speed of a plurality of communication links by using the link information.
As an example, the link information may be an actual data transmission speed (rec _ speed) of a plurality of communication links counted by the server, and the actual data transmission speed may characterize an actual receiving speed of the server for acquiring data from the client.
Specifically, after receiving data sent by the client using multiple communication links, the server may perform statistics on each communication link to determine an actual data sending speed in the communication link. After the actual data sending speed is determined, the server side can send the actual data sending speed to the client side, and when the actual data sending speed of each communication link is received, the client side can update the target data sending speed of the communication link by combining the actual data sending speed.
In an example, a timer may be set in the server, as shown in fig. 6, when the client sends video stream data to the server by using multiple communication links, the server may determine whether the current time interval satisfies a preset time interval, for example, 500ms, and if not, the server may enter a wait state until the current time interval satisfies the preset time interval.
If the actual data transmission speed is met, the server side can count the actual data transmission speed (the transmission speed in fig. 6) of each communication link, compare the actual data transmission speed counted this time with the data transmission speed counted last time, judge whether the data transmission speed changes, and if the data transmission speed changes, the server side can transmit the actual data transmission speed counted this time to the client side and inform the client side of adjusting the target data transmission speed; if the speed is not changed, the server can enter a waiting state.
In a specific implementation, when the client and the server perform data Transmission, UDP (User datagram Protocol) or TCP (Transmission Control Protocol) may be used to perform data Transmission.
UDP is a connectionless transport layer protocol in an OSI (Open System Interconnection) reference model, can provide a transaction-oriented simple unreliable information transfer service, and is defined by IETF (internet Engineering Task Force ) RFC (Request for comments) 768 files, where the protocol number of UDP in an IP packet is 17.
TCP is a connection-oriented, reliable, byte-stream based transport-layer communication protocol, defined by IETF RFC 793. In the simplified OSI model of computer networks, which performs the functions specified by the transport layer four, the user datagram protocol is another important transport protocol within the same layer. In the Internet protocol suite (Internet protocol), the TCP layer is an intermediate layer located above the IP layer and below the application layer. Reliable, pipe-like connections are often required between the application layers of different hosts, but the IP layer does not provide such a flow mechanism, but rather provides unreliable packet switching.
In an embodiment of the present invention, forward error correction techniques may also be incorporated during data transmission.
Forward Error Correction, also called Forward Error Correction (FEC) is a method for increasing the reliability of data communication. In a one-way communication channel, once an error is found, its receiver will not be entitled to a transmission again. FEC is a method of transmitting redundant information using data that will allow a receiver to reconstruct the data when an error occurs in the transmission.
Step 503, when acquiring a data packet for a second device sent by the first device, sending the data packet to the server by using the plurality of communication links according to the target data sending speed, so as to send the data packet to the second device through the server.
After the update, when the data packet sent by the first device for the second device is obtained, the client may send the data packet to the server by using multiple communication links according to the updated target data sending speed. After receiving the data packet sent by the client, the server may send the data packet to the second device.
In the embodiment of the invention, a plurality of network adapters are aggregated, a plurality of communication links with a server are established by adopting the plurality of network adapters, when link information aiming at the plurality of communication links sent by the server is received, the target data sending speed aiming at the plurality of communication links is updated by adopting the link information, and when a data packet aiming at a second device sent by a first device is obtained, the data packet can be sent to the server by adopting the plurality of communication links according to the target data sending speed, so that the data packet is sent to the second device through the server, the data transmission rate of each link is adjusted in real time according to the network condition of the link, the bandwidth utilization rate is improved, the data transmission efficiency is improved, and the smoothness of network transmission is enhanced.
Referring to fig. 7, a flowchart illustrating steps of another method for data transmission according to an embodiment of the present invention is shown, which may be applied to a client, where the client may be deployed in a first device, and the first device may have multiple network adapters.
Specifically, the method can comprise the following steps:
step 701, aggregating the plurality of network adapters, and establishing a plurality of communication links with a server by using the plurality of network adapters;
in a particular implementation, a client may aggregate a plurality of network adapters installed in a first device, and then may establish a plurality of communication links with a server using the plurality of network adapters.
Step 702, when receiving link information for the plurality of communication links sent by the server, determining a production speed for the data container by using the link information; wherein the production speed is used to control the speed at which data is filled into the data container;
in an embodiment of the present invention, a data controller may be corresponding to each communication link, and the data controller may dynamically control the data transmission speed of each communication link. The data controller corresponds to a data container, wherein when the client sends data, the target data sending speed of the client may include a production speed of the data container and a consumption speed of the data container.
In a specific implementation, when receiving link information for a plurality of communication links sent by a server, a client may determine a production speed of a data container by using the link information, and may control a speed of filling data into the data container by controlling the production speed.
When the link information is the actual data transmission speed, the client may set the actual data transmission speed as the production speed.
As an example, the production speed may be positively correlated with the container size of the data container, for example, when the production speed is set to speed _ d KB/s, the size of the data container may be speed _ d × 1024 bytes, and the data container may be filled within 1 s; for another example, when the production speed is 3KB/s, the size of the data container may be 3KB (i.e. 3 × 1024 bytes), and the data container with the size of 3KB may be filled within 1 s.
Step 703, determining a consumption speed for the data container in combination with the production speed and a preset speed; wherein the consumption rate is used to control the rate at which data is requested from the data container;
in practical application, a user can preset a preset speed, after the production speed of the data container is determined, the client can determine the consumption speed of the data container by combining the production speed and the preset speed, and the client can control the speed of applying for data from the data container according to the consumption speed.
For example, when determining the consumption speed, the preset speed may be divided by the production speed to obtain a quotient, and then the quotient may be rounded up to obtain an integer result, i.e., the consumption speed.
Step 704, when a data packet for a second device sent by the first device is obtained, filling the data packet into the data container according to the production speed;
when the client acquires the data packet sent by the first device for the second device, the client can fill the data packet into the data container according to the production speed.
In a specific implementation, since the size of the data container may be positively correlated with the production speed, when the data packet is filled into the data container, if the data container is completely filled but data is not applied from the data container, when the data container is continuously filled, an excess portion may overflow to keep the size of the data container positively correlated with the production speed all the time.
Step 705, according to the consumption speed, applying for the data packet from the data container, and sending the data packet to the server by using a communication link corresponding to the data container, so as to send the data packet to the second device through the server.
When the data container is filled, a data packet can be applied from the data container according to the consumption speed, the data packet is sent to the server side by adopting a communication link corresponding to the data container, and after the data packet sent by the client side is received, the server side can send the data packet to the second equipment.
In the embodiment of the invention, when the data packet is applied, the data packet is applied from the data container with the determined size, the size of the data container is positively correlated with the production speed, and the production speed is correlated with the actual data sending speed returned by the server, so that the size of the data container can be limited by the actual data sending speed, the consumption speed is enabled not to exceed the actual data sending speed, and the sending speed of the communication link is dynamically adjusted according to the actual data sending speed returned by the server.
When a network wave crest occurs, the server side cannot receive all data sent by the client side in a short time, so that the actual data sending speed is reduced, the size and the consumption speed of a data container are reduced, the data sending speed of the client side is reduced, the flow impact caused by the network wave crest is reduced, and the network fluency is improved.
In an embodiment of the present invention, the step of applying for the data packet from the data container according to the consumption speed may include the following sub-steps:
substep 11, determining the target byte number aiming at executing single service logic according to the consumption speed;
in practical application, the consumption speed of the data container can be characterized by the target byte number applied from the data container, and after the consumption speed is determined, the target byte number in the execution of the single service logic can be determined according to the consumption speed. For example, if n bytes are taken from the data container for a service logic at a time, the consumption speed is n.
Substep 12, before executing single service logic, judging whether the byte data in the data container is greater than or equal to the target byte number;
before each execution of the business logic, the client may determine whether the byte data in the data container is greater than or equal to the target byte number. By this judgment step, it can be determined whether or not data corresponding to the target number of bytes can be acquired from the data container.
And substep 13, if the byte data in the data container is greater than or equal to the target byte number, applying for the data packet from the data container according to the target byte number.
When the number of bytes in the data container is greater than or equal to the target number of bytes, the data packet can be requested from the data container according to the target number of bytes.
In order to enable those skilled in the art to better understand the above steps, the following is an example to illustrate the embodiments of the present invention, but it should be understood that the embodiments of the present invention are not limited thereto.
As shown in fig. 8, the data controller ("speed controller" in fig. 8) in the client may receive the actual data transmission speed ("reception speed" in fig. 8) returned by the server and set the actual data transmission speed as the production speed.
After setting the production speed, the client may fill the data container and obtain the preset speed ("user set speed" in fig. 8), and then may divide the preset speed by the production speed and round up to obtain the target number of bytes n.
After the target byte number n is determined, n bytes can be applied from the data container, when the n bytes are applied, whether n bytes exist in the data container can be further judged, if not, the client can continue to wait, and if so, the client can send data to the server by adopting a communication link corresponding to the data container.
In the embodiment of the invention, the link information is adopted to determine the production speed of the data container, the production speed and the preset speed are combined to determine the consumption speed of the data container, when the data packet which is sent by the first device and aims at the second device is obtained, the data packet is filled into the data container according to the production speed, and the data packet is applied from the data container according to the consumption speed, so that the data sending speed of the communication link is dynamically adjusted according to the speed of the data received by the server, the speed of the communication link can be adjusted in time, a better flow control effect is obtained, and the flow impact caused by network wave peaks can be reduced.
It should be noted that, for simplicity of description, the method embodiments are described as a series of acts or combination of acts, but those skilled in the art will recognize that the present invention is not limited by the illustrated order of acts, as some steps may occur in other orders or concurrently in accordance with the embodiments of the present invention. Further, those skilled in the art will appreciate that the embodiments described in the specification are presently preferred and that no particular act is required to implement the invention.
Referring to fig. 9, a block diagram of an apparatus for data transmission according to an embodiment of the present invention is shown, which may be applied to a client, where the client may be deployed in a first device, and the first device may have multiple network adapters. The method specifically comprises the following modules:
a communication link establishing module 901, configured to aggregate the multiple network adapters, and establish multiple communication links with a server by using the multiple network adapters;
a data sending speed updating module 902, configured to update the target data sending speeds for the multiple communication links by using the link information when receiving the link information for the multiple communication links sent by the server;
a data packet sending module 903, configured to send, when a data packet sent by the first device and addressed to the second device is obtained, the data packet to the server by using the multiple communication links according to the target data sending speed, so that the data packet is sent to the second device through the server.
In an embodiment of the present invention, each communication link corresponds to a data controller, the data controller corresponds to a data container, the target data sending speed includes a production speed for the data container and a consumption speed for the data container, and the data sending speed updating module 902 includes:
a production speed determination submodule for determining a production speed for the data container using the link information; wherein the production speed is used to control the speed at which data is filled into the data container;
the consumption speed determining submodule is used for determining the consumption speed of the data container by combining the production speed and a preset speed; wherein the consumption rate is used to control the rate at which data is requested from the data container.
In an embodiment of the present invention, the data packet sending module 903 includes:
the data packet filling submodule is used for filling the data packet into the data container according to the production speed;
and the data packet application submodule is used for applying for the data packet from the data container according to the consumption speed and sending the data packet to the server side by adopting a communication link corresponding to the data container.
In an embodiment of the present invention, the data packet application sub-module includes:
a target byte number determination unit, configured to determine a target byte number for executing a single service logic according to the consumption speed;
and the target byte number application unit is used for applying for the data packet from the data container according to the target byte number before executing the single service logic.
In an embodiment of the present invention, the data packet application sub-module further includes:
the judging unit is used for judging whether the byte data in the data container is larger than or equal to the target byte number;
and the target byte number data unit is used for calling the target byte number application unit if the byte data in the data container is greater than or equal to the target byte number.
In an embodiment of the invention, the production speed is positively correlated to the container size of the data container.
In an embodiment of the present invention, the link information is an actual data sending speed of the plurality of communication links counted by the server.
In the embodiment of the invention, a plurality of network adapters are aggregated, a plurality of communication links with a server are established by adopting the plurality of network adapters, when link information aiming at the plurality of communication links sent by the server is received, the target data sending speed aiming at the plurality of communication links is updated by adopting the link information, and when a data packet aiming at a second device sent by a first device is obtained, the data packet can be sent to the server by adopting the plurality of communication links according to the target data sending speed, so that the data packet is sent to the second device through the server, the data transmission rate of each link is adjusted in real time according to the network condition of the link, the bandwidth utilization rate is improved, the data transmission efficiency is improved, and the smoothness of network transmission is enhanced.
For the device embodiment, since it is basically similar to the method embodiment, the description is simple, and for the relevant points, refer to the partial description of the method embodiment.
An embodiment of the present invention also provides an electronic device, which may include a processor, a memory, and a computer program stored on the memory and capable of running on the processor, wherein the computer program, when executed by the processor, implements the steps of the method for data transmission as above.
An embodiment of the present invention further provides a computer-readable storage medium, on which a computer program is stored, which, when being executed by a processor, implements the steps of the method for data transmission as above.
The embodiments in the present specification are described in a progressive manner, each embodiment focuses on differences from other embodiments, and the same and similar parts among the embodiments are referred to each other.
As will be appreciated by one skilled in the art, embodiments of the present invention may be provided as a method, apparatus, or computer program product. Accordingly, embodiments of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, embodiments of the present invention may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein.
Embodiments of the present invention are described with reference to flowchart illustrations and/or block diagrams of methods, terminal devices (systems), and computer program products according to embodiments of the invention. It will be understood that each flow and/or block of the flow diagrams and/or block diagrams, and combinations of flows and/or blocks in the flow diagrams and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing terminal to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing terminal, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing terminal to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processing terminal to cause a series of operational steps to be performed on the computer or other programmable terminal to produce a computer implemented process such that the instructions which execute on the computer or other programmable terminal provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
While preferred embodiments of the present invention have been described, additional variations and modifications of these embodiments may occur to those skilled in the art once they learn of the basic inventive concepts. Therefore, it is intended that the appended claims be interpreted as including preferred embodiments and all such alterations and modifications as fall within the scope of the embodiments of the invention.
Finally, it should also be noted that, herein, relational terms such as first and second, and the like may be used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. Also, the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or terminal that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or terminal. Without further limitation, an element defined by the phrase "comprising an … …" does not exclude the presence of other like elements in a process, method, article, or terminal that comprises the element.
The method and apparatus for data transmission provided by the present invention are described in detail above, and a specific example is applied in the text to explain the principle and the implementation of the present invention, and the description of the above embodiment is only used to help understand the method and the core idea of the present invention; meanwhile, for a person skilled in the art, according to the idea of the present invention, there may be variations in the specific embodiments and the application scope, and in summary, the content of the present specification should not be construed as a limitation to the present invention.

Claims (10)

1. A method for data transmission, applied to a client, the client being deployed on a first device, the first device having a plurality of network adapters, the method comprising:
aggregating the plurality of network adapters, and establishing a plurality of communication links with a server by adopting the plurality of network adapters;
when receiving link information aiming at the plurality of communication links sent by the server, updating target data sending speeds aiming at the plurality of communication links by adopting the link information;
when a data packet which is sent by the first equipment and aims at the second equipment is obtained, the data packet is sent to the server side by adopting the plurality of communication links according to the target data sending speed, so that the data packet is sent to the second equipment through the server side.
2. The method of claim 1, wherein each communication link corresponds to a data controller, wherein the data controller corresponds to a data container, wherein the target data transmission speed comprises a production speed for the data container and a consumption speed for the data container, and wherein updating the target data transmission speeds for the plurality of communication links using the link information comprises:
determining a production speed for the data container using the link information; wherein the production speed is used to control the speed at which data is filled into the data container;
determining a consumption speed for the data container in combination with the production speed and a preset speed; wherein the consumption rate is used to control the rate at which data is requested from the data container.
3. The method of claim 2, wherein said step of transmitting said data packets to said server using said plurality of communication links according to said target data transmission speed comprises:
filling the data packet into the data container according to the production speed;
and according to the consumption speed, applying for the data packet from the data container, and sending the data packet to the server by adopting a communication link corresponding to the data container.
4. The method of claim 3, wherein said step of applying for said data packet from said data container in accordance with said consumption rate comprises:
determining a target byte number aiming at executing single service logic according to the consumption speed;
and before executing the single service logic, applying for the data packet from the data container according to the target byte number.
5. The method of claim 4, further comprising, prior to the step of applying for the packet from the data container in accordance with the target number of bytes:
judging whether the byte data in the data container is greater than or equal to the target byte number;
and if the byte data in the data container is greater than or equal to the target byte number, executing a step of applying for the data packet from the data container according to the target byte number.
6. The method of claim 2 or 3 or 4 or 5, wherein the production rate is positively correlated to the container size of the data container.
7. The method of claim 1, wherein the link information is actual data transmission speeds of the plurality of communication links counted by the server.
8. An apparatus for data transmission, the apparatus being applied to a client, the client being deployed on a first device, the first device having a plurality of network adapters, the apparatus comprising:
the communication link establishing module is used for aggregating the plurality of network adapters and establishing a plurality of communication links with the server side by adopting the plurality of network adapters;
a data sending speed updating module, configured to update target data sending speeds for the plurality of communication links by using the link information when receiving the link information for the plurality of communication links sent by the server;
and the data packet sending module is used for sending the data packet to the server by adopting the plurality of communication links according to the target data sending speed when the data packet which is sent by the first equipment and aims at the second equipment is obtained, so that the data packet is sent to the second equipment through the server.
9. An electronic device, comprising a processor, a memory and a computer program stored on the memory and capable of running on the processor, the computer program, when executed by the processor, implementing the steps of the method of data transmission according to any one of claims 1 to 7.
10. A computer-readable storage medium, on which a computer program is stored which, when being executed by a processor, carries out the steps of the method of data transmission according to any one of claims 1 to 7.
CN201911405859.XA 2019-12-30 2019-12-30 Data transmission method and device Pending CN111245733A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911405859.XA CN111245733A (en) 2019-12-30 2019-12-30 Data transmission method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911405859.XA CN111245733A (en) 2019-12-30 2019-12-30 Data transmission method and device

Publications (1)

Publication Number Publication Date
CN111245733A true CN111245733A (en) 2020-06-05

Family

ID=70877628

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911405859.XA Pending CN111245733A (en) 2019-12-30 2019-12-30 Data transmission method and device

Country Status (1)

Country Link
CN (1) CN111245733A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113347040A (en) * 2021-06-17 2021-09-03 北京天融信网络安全技术有限公司 Configuration change method and device and electronic equipment
CN114513247A (en) * 2022-04-18 2022-05-17 北京开运联合信息技术集团股份有限公司 Method for distributing multi-satellite control data information

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060271629A1 (en) * 2005-05-26 2006-11-30 Macdowell Alexander D Distributed Challenge and Response Recognition System
CN102665220A (en) * 2012-05-21 2012-09-12 北京大学 Multi-carrier aggregation method and system used for mobile terminal scheduling of heterogeneous network
US20130208592A1 (en) * 2010-08-06 2013-08-15 Bejing Qiantang Network Technology Company, Ltd. Traffic-control-based data transmission method and communication system
CN106557521A (en) * 2015-09-29 2017-04-05 佳能株式会社 Object indexing method, object search method and object indexing system
CN109151058A (en) * 2018-09-27 2019-01-04 视联动力信息技术股份有限公司 A kind of data transmission method and device
CN109587073A (en) * 2019-01-07 2019-04-05 北京三体云联科技有限公司 Method for controlling network congestion, device and terminal device
CN109617824A (en) * 2018-11-08 2019-04-12 中国联合网络通信集团有限公司 Collecting method, device and server

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060271629A1 (en) * 2005-05-26 2006-11-30 Macdowell Alexander D Distributed Challenge and Response Recognition System
US20130208592A1 (en) * 2010-08-06 2013-08-15 Bejing Qiantang Network Technology Company, Ltd. Traffic-control-based data transmission method and communication system
CN102665220A (en) * 2012-05-21 2012-09-12 北京大学 Multi-carrier aggregation method and system used for mobile terminal scheduling of heterogeneous network
CN106557521A (en) * 2015-09-29 2017-04-05 佳能株式会社 Object indexing method, object search method and object indexing system
CN109151058A (en) * 2018-09-27 2019-01-04 视联动力信息技术股份有限公司 A kind of data transmission method and device
CN109617824A (en) * 2018-11-08 2019-04-12 中国联合网络通信集团有限公司 Collecting method, device and server
CN109587073A (en) * 2019-01-07 2019-04-05 北京三体云联科技有限公司 Method for controlling network congestion, device and terminal device

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113347040A (en) * 2021-06-17 2021-09-03 北京天融信网络安全技术有限公司 Configuration change method and device and electronic equipment
CN113347040B (en) * 2021-06-17 2024-02-02 北京天融信网络安全技术有限公司 Configuration changing method and device and electronic equipment
CN114513247A (en) * 2022-04-18 2022-05-17 北京开运联合信息技术集团股份有限公司 Method for distributing multi-satellite control data information

Similar Documents

Publication Publication Date Title
CN108810581B (en) Software menu updating method and device
CN110138632B (en) Data transmission method and device
CN109547163B (en) Method and device for controlling data transmission rate
CN109246486B (en) Method and device for framing
CN111224889A (en) Data transmission method and device
CN110768910A (en) Data transmission method and device
CN110138513B (en) Data transmission method and video networking system
CN109347844B (en) Method and device for accessing equipment to Internet
CN111245733A (en) Data transmission method and device
CN111208866B (en) System time adjusting method and device
CN110266577B (en) Tunnel establishment method and video networking system
CN110446058B (en) Video acquisition method, system, device and computer readable storage medium
CN110336710B (en) Terminal testing method, system and device and storage medium
CN109889516B (en) Method and device for establishing session channel
CN109769012B (en) Web server access method and device
CN109586851B (en) Data transmission method and device based on video network
CN110677315A (en) Method and system for monitoring state
CN110650169A (en) Terminal equipment upgrading method and device
CN111245592B (en) Signaling transmission method and device and computer readable storage medium
CN110808896B (en) Data transmission method and device, electronic equipment and storage medium
CN110740087B (en) Message transmission method, terminal, gateway device, electronic device and storage medium
CN110086772B (en) Method and system for acquiring monitoring video
CN110493311B (en) Service processing method and device
CN110233872B (en) Data transmission method based on video network and video network terminal
CN109474848B (en) Video processing method and device based on video network, electronic equipment and medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination