Data transmission method, device, storage medium and electronic device
By comparing the bandwidth of the first transmission link and the second transmission link, and using the number of tokens overflowed by the token bucket to determine the data transmission path, a mixed flow-drift and packet-by-packet traffic scheduling is realized, and the bandwidth utilization rate and overall network service quality of the high-priority link are improved.
Patent Information
- Application Number
- CN202211582476.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-12-09
- Publication Date
- 2025-03-21
- Estimated Expiration
- 2042-12-09
AI Technical Summary
The low utilization of high priority link bandwidth leads to low data transmission efficiency, and no effective solution has been proposed in the prior art.
By obtaining the bandwidth of the first transmission link and the remaining bandwidth of the second transmission link, comparing and determining the number of token buckets, the number of tokens overflowed by the token bucket is used to determine which link the data is transmitted through, and a mixed flow-drift and packet-by-packet traffic scheduling is realized.
The bandwidth utilization rate of high-quality links is improved, and the remaining bandwidth of high-quality links is used to improve the overall network service quality, solving the problem of low data transmission efficiency caused by low bandwidth utilization of high-priority links.
Smart Images

Figure CN116016357B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of IP networks, and in particular to a method, device, storage medium and electronic device for data transmission. Background Art
[0002] Related technologies In multi-channel transmission application scenarios, operation and maintenance personnel schedule services based on link SLAs. For example, in SD-WAN scenarios, key services such as video conferencing that guarantee QoS are scheduled on MPLS dedicated links, and general services are scheduled on internet / 4G / 5G networks. However, in actual applications, high-priority links have low bandwidth utilization, which can easily lead to a waste of bandwidth resources and thus low data transmission efficiency.
[0003] To address the above-mentioned problems, no effective solution has been proposed yet. Summary of the invention
[0004] The embodiments of the present application provide a method, apparatus, storage medium, and electronic device for data transmission, so as to at least solve the technical problem of low data transmission efficiency caused by low bandwidth utilization of high-priority links.
[0005] According to one aspect of an embodiment of the present application, a method for data transmission is provided, including: obtaining a first bandwidth occupied by a first business flow to be transmitted from a first transmission link; determining a remaining bandwidth of a second transmission link, and comparing the first bandwidth with the remaining bandwidth to obtain a comparison result, wherein the contracted bandwidth of the first transmission link is less than the contracted bandwidth of the second transmission link; when the comparison result indicates that the first bandwidth is less than the remaining bandwidth, determining a first token bucket corresponding to the first transmission link and a second token bucket corresponding to the second transmission link; obtaining a first token number overflowing from the second token bucket to the first token bucket, and a first message length corresponding to the first business flow; when the first token number is greater than the first message length, sending a first message corresponding to the first business flow from a sending end to a receiving end via the second transmission link.
[0006] Optionally, when the first token number is less than the first message length, the first message corresponding to the first business flow is sent from the sending end to the receiving end in a stream-by-stream manner through the first transmission link, and other services in the first transmission link except the first business flow are sent from the sending end to the receiving end in a packet-by-packet manner through the second transmission link.
[0007] Optionally, sending the first message corresponding to the first business traffic from the sending end to the receiving end via the second transmission link includes: obtaining the difference between the remaining bandwidth and the first bandwidth; when the difference is greater than a first preset value, determining to send the first message corresponding to the first business traffic from the sending end to the receiving end via the second transmission link; when the difference is less than the first preset value, determining to send the first message corresponding to the first network business traffic from the sending end to the receiving end via the first transmission link.
[0008] Optionally, determining the remaining bandwidth of the second transmission link includes: determining the real-time bandwidth of the second transmission link and the second bandwidth required for the second service flow to be transmitted; and determining the difference between the real-time bandwidth and the second bandwidth as the remaining bandwidth.
[0009] Optionally, comparing the first bandwidth with the remaining bandwidth to obtain a comparison result includes: when the remaining bandwidth is greater than a second preset value, determining to compare the first bandwidth with the remaining bandwidth to obtain a comparison result; when the remaining bandwidth is less than the second preset value, determining that the first message is sent from the sending end to the receiving end through the first transmission link.
[0010] Optionally, before obtaining the first bandwidth occupied by the first business traffic to be transmitted from the first transmission link, the method also includes: determining each business traffic to be transmitted on the first transmission link, obtaining the business priority corresponding to each business traffic; and determining the business traffic with the highest business priority as the first business traffic.
[0011] Optionally, the method also includes: obtaining the second token number of the second token bucket, determining the second business traffic to be transmitted on the second transmission link; and sending the second message corresponding to the second business traffic to the receiving end through the second transmission link in a stream-by-stream manner according to the second message length corresponding to the second business traffic.
[0012] Optionally, after receiving the message, the method further includes: at the receiving end, re-arranging the message data transmitted by the first transmission link according to the order in which the messages arrive at the receiving end.
[0013] According to another aspect of an embodiment of the present application, a data transmission device is also provided, including: a first acquisition module, used to acquire a first bandwidth occupied by a first business flow to be transmitted from a first transmission link; a comparison module, used to determine the remaining bandwidth of the second transmission link, and compare the first bandwidth with the remaining bandwidth to obtain a comparison result, wherein the contracted bandwidth of the first transmission link is less than the contracted bandwidth of the second transmission link; a determination module, used to determine a first token bucket corresponding to the first transmission link and a second token bucket corresponding to the second transmission link when the comparison result indicates that the first bandwidth is less than the remaining bandwidth; a second acquisition module, used to acquire the number of first tokens overflowing from the second token bucket to the first token bucket, and a first message length corresponding to the first business flow; a sending module, used to send the first message corresponding to the first business flow from the sending end to the receiving end through the second transmission link when the first token number is greater than the first message length.
[0014] According to another aspect of an embodiment of the present application, a non-volatile storage medium is also provided, including: the storage medium includes a stored program, wherein when the program is running, a device where the storage medium is located is controlled to execute any data transmission method.
[0015] According to another aspect of an embodiment of the present application, there is also provided an electronic device, comprising: a processor; and a memory for storing processor-executable instructions; wherein the processor is configured to execute the instructions to implement any one of the data transmission methods.
[0016] In an embodiment of the present application, a method for traffic scheduling is adopted for non-critical services by hybrid flow-by-flow and packet-by-packet methods, by obtaining the first bandwidth occupied by the first service traffic to be transmitted from the first transmission link; determining the remaining bandwidth of the second transmission link, and comparing the first bandwidth with the remaining bandwidth to obtain a comparison result; when the comparison result indicates that the first bandwidth is less than the remaining bandwidth, determining the first token bucket corresponding to the first transmission link and the second token bucket corresponding to the second transmission link; obtaining the number of first tokens overflowing from the second token bucket to the first token bucket, and the first message length corresponding to the first service traffic; when the number of first tokens is greater than the first message length, sending the first message corresponding to the first service traffic from the sending end to the receiving end through the second transmission link, thereby achieving the purpose of improving the bandwidth utilization of high-quality links, thereby realizing the technical effect of improving the overall network service quality by utilizing the remaining bandwidth of high-quality links, and further solving the technical problem of low data transmission efficiency caused by low bandwidth utilization of high-priority links. BRIEF DESCRIPTION OF THE DRAWINGS
[0017] The drawings described herein are used to provide a further understanding of the present application and constitute a part of the present application. The illustrative embodiments of the present application and their descriptions are used to explain the present application and do not constitute an improper limitation on the present application. In the drawings:
[0018] Figure 1 is a flow chart of a data transmission method according to an embodiment of the present application;
[0019] Figure 2 is a flowchart of an optional data transmission method according to an embodiment of the present application;
[0020] Figure 3 is a schematic diagram of a service classification according to an embodiment of the present application;
[0021] Figure 4 is a schematic diagram of data transmission according to an embodiment of the present application;
[0022] Figure 5 is a schematic diagram of a random reordering according to an embodiment of the present application;
[0023] Figure 6 is a schematic diagram of a data transmission device structure according to an embodiment of the present application;
[0024] Figure 7 is a schematic block diagram of an exemplary electronic device 700 according to an embodiment of the present application. DETAILED DESCRIPTION
[0025] In order to enable those skilled in the art to better understand the solution of the present application, the technical solution in the embodiments of the present application will be clearly and completely described below in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by non-key technical personnel in the field without creative work should fall within the scope of protection of the present application.
[0026] It should be noted that the terms "first", "second", etc. in the specification and claims of the present application and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence. It should be understood that the data used in this way can be interchangeable where appropriate, so that the embodiments of the present application described herein can be implemented in an order other than those illustrated or described herein. In addition, the terms "including" and "having" and any of their variations are intended to cover non-exclusive inclusions, for example, a process, method, system, product or device comprising a series of steps or units is not necessarily limited to those steps or units clearly listed, but may include other steps or units that are not clearly listed or inherent to these processes, methods, products or devices.
[0027] In order to facilitate those skilled in the art to better understand the embodiments of the present application, the technical terms or some nouns that may be involved in the present application are now explained:
[0028] Flow-based load balancing means that packets are divided into different flows according to certain rules, and packets of the same flow are sent on the same link.
[0029] Packet-by-packet load balancing means that during forwarding, packets are evenly distributed to each link participating in the load sharing according to the order in which the packets arrive.
[0030] According to an embodiment of the present application, a method embodiment of data transmission is provided. It should be noted that the steps shown in the flowchart of the accompanying drawings can be executed in a computer system such as a set of computer executable instructions, and although a logical order is shown in the flowchart, in some cases, the steps shown or described can be executed in an order different from that shown here.
[0031] Figure 1 is a method for data transmission according to an embodiment of the present application, such as Figure 1 As shown, the method comprises the following steps:
[0032] Step S102, obtaining a first bandwidth occupied by a first service flow to be transmitted from a first transmission link;
[0033] Step S104, determining the remaining bandwidth of the second transmission link, and comparing the first bandwidth with the remaining bandwidth to obtain a comparison result, wherein the contracted bandwidth of the first transmission link is smaller than the contracted bandwidth of the second transmission link;
[0034] Step S106, when the comparison result indicates that the first bandwidth is less than the remaining bandwidth, determining a first token bucket corresponding to the first transmission link and a second token bucket corresponding to the second transmission link;
[0035] Step S108, obtaining the number of first tokens overflowing from the second token bucket to the first token bucket, and the first message length corresponding to the first service flow;
[0036] Step S110: When the number of first tokens is greater than the length of the first message, a first message corresponding to the first service flow is sent from the sending end to the receiving end through the second transmission link.
[0037] In an embodiment of the present application, a method for traffic scheduling is adopted for non-critical services by hybrid flow-by-flow and packet-by-packet methods, by obtaining the first bandwidth occupied by the first service traffic to be transmitted from the first transmission link; determining the remaining bandwidth of the second transmission link, and comparing the first bandwidth with the remaining bandwidth to obtain a comparison result; when the comparison result indicates that the first bandwidth is less than the remaining bandwidth, determining the first token bucket corresponding to the first transmission link and the second token bucket corresponding to the second transmission link; obtaining the number of first tokens overflowing from the second token bucket to the first token bucket, and the first message length corresponding to the first service traffic; when the number of first tokens is greater than the first message length, sending the first message corresponding to the first service traffic from the sending end to the receiving end through the second transmission link, thereby achieving the purpose of improving the bandwidth utilization of high-quality links, thereby realizing the technical effect of improving the overall network service quality by utilizing the remaining bandwidth of high-quality links, and further solving the technical problem of low data transmission efficiency caused by low bandwidth utilization of high-priority links.
[0038] In an exemplary embodiment of the present application, when the number of first tokens is less than the length of the first message, the first message corresponding to the first business flow is sent from the sending end to the receiving end in a stream-by-stream manner through the first transmission link, and other services in the first transmission link except the first business flow are sent from the sending end to the receiving end in a packet-by-packet manner through the second transmission link.
[0039] It can be understood that when the number of first tokens is greater than the length of the first message, the first message corresponding to the first service flow is sent from the sending end to the receiving end in a packet-by-packet manner through the first transmission link.
[0040] In some optional embodiments of the present application, a first message corresponding to a first business flow is sent from a sending end to a receiving end via a second transmission link, including: obtaining a difference between a remaining bandwidth and a first bandwidth; when the difference is greater than a first preset value, determining to send the first message corresponding to the first business flow from the sending end to the receiving end via the second transmission link; when the difference is less than the first preset value, determining to send the first message corresponding to the first network business flow from the sending end to the receiving end via the first transmission link.
[0041] For example, assuming that the first preset value is 5Mbps and the difference is 8Mbps, the first message corresponding to the first business flow is sent from the sending end to the receiving end through the second transmission link; assuming that the first preset value is 5Mbps and the difference is 2Mbps, the first message corresponding to the first network business flow is sent from the sending end to the receiving end through the first transmission link.
[0042] As an optional implementation, determining the remaining bandwidth of the second transmission link includes: determining the real-time bandwidth of the second transmission link and the second bandwidth required for the second service flow to be transmitted; and determining the difference between the real-time bandwidth and the second bandwidth as the remaining bandwidth.
[0043] In an exemplary embodiment of the present application, comparing the first bandwidth with the remaining bandwidth to obtain a comparison result includes: when the remaining bandwidth is greater than a second preset value, determining to compare the first bandwidth with the remaining bandwidth to obtain a comparison result; when the remaining bandwidth is less than the second preset value, determining that the first message is sent from the sending end to the receiving end through the first transmission link.
[0044] For example, assuming that the second preset value is 10Mbps and the remaining bandwidth is 15Mbps, a comparison result of the first bandwidth and the remaining bandwidth is obtained. Under the indication of the comparison result, the first message corresponding to the first service flow is sent from the sending end to the receiving end through the second transmission link.
[0045] For example, assuming that the second preset value is 10 Mbps, when the remaining bandwidth is 10 Mbps, the remaining bandwidth is less than the second preset value, then part of the first message corresponding to the first service flow is sent from the sending end to the receiving end through the first transmission link.
[0046] As an optional implementation, before obtaining the first bandwidth occupied by the first business traffic to be transmitted from the first transmission link, the method also includes: determining each business traffic to be transmitted on the first transmission link, obtaining the business priority corresponding to each business traffic; and determining the business traffic with the highest business priority as the first business traffic.
[0047] It should be noted that the first service flow is not limited to the service flow with the highest service priority, and a plurality of service flows with service priorities from high to low are selected according to the remaining bandwidth.
[0048] In some optional embodiments of the present application, the method also includes: obtaining the second token number of the second token bucket, determining the second business traffic to be transmitted on the second transmission link; and sending the second message corresponding to the second business traffic to the receiving end through the second transmission link in a stream-by-stream manner according to the second message length corresponding to the second business traffic.
[0049] In an exemplary embodiment of the present application, after receiving the message, the method further includes: at the receiving end, reordering the message data transmitted by the first transmission link according to the order in which the messages arrive at the receiving end.
[0050] It is understandable that the data packets sent from the sender to the receiver may arrive out of order due to the different transmission paths of different packets. The receiver reorders the out-of-order data packets sent from the sender, which can reduce unnecessary downlink retransmissions to a certain extent, improve transmission efficiency, reduce latency and increase transmission rate.
[0051] In order to facilitate those skilled in the art to better understand the technical solution of the present application, a specific embodiment is now described.
[0052] Figure 2 is a flow chart of an optional data transmission method according to an embodiment of the present application, such as Figure 2 As shown, the process mainly includes the following steps:
[0053] (1) The key service (i.e., the second service) is scheduled flow by flow to the high priority link (i.e., the second transmission link);
[0054] (2) Non-critical services (i.e., the first services mentioned above) are scheduled in a mixed flow-by-flow and packet-by-packet manner. Part of the traffic is scheduled to a low-priority link (i.e., the first transmission link mentioned above) in a flow-by-flow manner, and part of the traffic is scheduled to a high-priority link based on the remaining bandwidth capacity.
[0055] It is easy to notice that the present application adopts a method of performing traffic scheduling for non-critical services by mixing flow-by-flow and packet-by-packet methods, which fully utilizes the high-priority link bandwidth and improves the overall network service quality without affecting critical business communications.
[0056] Figure 3 is a schematic diagram of a service classification according to an embodiment of the present application, such as Figure 3 As shown, the business is divided into key business and non-key business.
[0057] Figure 4 is a schematic diagram of data transmission according to an embodiment of the present application, such as Figure 4 As shown, the process mainly includes the following steps:
[0058] (1) Calculate the remaining bandwidth of the high-priority link and the bandwidth of the low-priority link based on the local traffic information;
[0059] (2) Select what you want The first bandwidth occupied by the first service flow is, where F is the remaining bandwidth of the high priority link, f i Bandwidth for low-priority service traffic;
[0060] (3) Scheduling the selected portion of the first service traffic to the high priority link in a packet-by-packet manner, wherein the first message corresponding to the selected portion of the first service traffic satisfies F represents the remaining bandwidth of the high priority link (i.e., the remaining message capacity per unit time), p i Indicates the packet size.
[0061] Figure 5 is a schematic diagram of a random rearrangement according to an embodiment of the present application, such as Figure 5 As shown, the process mainly includes: the messages of the low priority link are encapsulated with global sequence numbers according to the arrival order (that is, the receiving end reorders the messages according to the sequence numbers).
[0062] Figure 6 is a schematic diagram of a data transmission device structure according to an embodiment of the present application, such as Figure 6 As shown, the device comprises:
[0063] A first acquisition module 60 is used to acquire a first bandwidth occupied by a first service flow to be transmitted from a first transmission link;
[0064] A comparison module 62 is used to determine the remaining bandwidth of the second transmission link, and compare the first bandwidth with the remaining bandwidth to obtain a comparison result, wherein the contracted bandwidth of the first transmission link is less than the contracted bandwidth of the second transmission link;
[0065] A determination module 64, configured to determine a first token bucket corresponding to the first transmission link and a second token bucket corresponding to the second transmission link when the comparison result indicates that the first bandwidth is less than the remaining bandwidth;
[0066] A second acquisition module 66, used to obtain the number of first tokens overflowed from the second token bucket to the first token bucket, and a first message length corresponding to the first service flow;
[0067] The sending module 68 is used to send the first message corresponding to the first service flow from the sending end to the receiving end through the second transmission link when the first token number is greater than the first message length.
[0068] In the device, a first acquisition module 60 is used to acquire a first bandwidth occupied by a first business flow to be transmitted from a first transmission link; a comparison module 62 is used to determine a remaining bandwidth of a second transmission link, and compare the first bandwidth with the remaining bandwidth to obtain a comparison result, wherein the contracted bandwidth of the first transmission link is less than the contracted bandwidth of the second transmission link; a determination module 64 is used to determine a first token bucket corresponding to the first transmission link and a second token bucket corresponding to the second transmission link when the comparison result indicates that the first bandwidth is less than the remaining bandwidth; a second acquisition module 66 is used to acquire the number of first tokens overflowing from the second token bucket to the first token bucket, and a first message length corresponding to the first business flow; a sending module 68 is used to send a first message corresponding to the first business flow from a sending end to a receiving end through the second transmission link when the number of first tokens is greater than the first message length, thereby achieving the purpose of improving the bandwidth utilization of high-quality links, thereby realizing the technical effect of improving the overall network service quality by using the remaining bandwidth of high-quality links, and further solving the technical problem of low data transmission efficiency caused by low bandwidth utilization of high-priority links.
[0069] According to another aspect of an embodiment of the present application, a non-volatile storage medium is provided, the non-volatile storage medium including a stored program, wherein when the program is running, a device where the non-volatile storage medium is located is controlled to execute any data transmission method.
[0070] Specifically, the above storage medium is used to store program instructions for the following functions to implement the following functions:
[0071] Obtain a first bandwidth occupied by a first business flow to be transmitted from a first transmission link; determine a remaining bandwidth of a second transmission link, and compare the first bandwidth with the remaining bandwidth to obtain a comparison result; when the comparison result indicates that the first bandwidth is less than the remaining bandwidth, determine a first token bucket corresponding to the first transmission link and a second token bucket corresponding to the second transmission link; obtain the number of first tokens overflowing from the second token bucket to the first token bucket, and a first message length corresponding to the first business flow; when the number of first tokens is greater than the first message length, send a first message corresponding to the first business flow from a sending end to a receiving end via the second transmission link.
[0072] Optionally, in this embodiment, the above-mentioned storage medium may include, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, devices or equipment, or any suitable combination of the above-mentioned contents. More specific examples of the above-mentioned storage medium may include electrical connections based on one or more lines, portable computer disks, hard disks, random access memories (RAM), read-only memories (ROM), erasable programmable read-only memories (EPROM or flash memory), optical fibers, portable compact disk read-only memories (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the above-mentioned contents.
[0073] In an exemplary embodiment of the present application, a computer program product is further provided, including a computer program, and when the computer program is executed by a processor, any of the above-mentioned data transmission methods is implemented.
[0074] Optionally, the computer program may implement the following steps when executed by a processor:
[0075] Obtain a first bandwidth occupied by a first business flow to be transmitted from a first transmission link; determine a remaining bandwidth of a second transmission link, and compare the first bandwidth with the remaining bandwidth to obtain a comparison result; when the comparison result indicates that the first bandwidth is less than the remaining bandwidth, determine a first token bucket corresponding to the first transmission link and a second token bucket corresponding to the second transmission link; obtain the number of first tokens overflowing from the second token bucket to the first token bucket, and a first message length corresponding to the first business flow; when the number of first tokens is greater than the first message length, send a first message corresponding to the first business flow from a sending end to a receiving end via the second transmission link.
[0076] According to an embodiment of the present application, an electronic device is provided, which includes: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor so that the at least one processor can execute any one of the above-mentioned data transmission methods.
[0077] Optionally, the electronic device may further include a transmission device and an input / output device, wherein the transmission device is connected to the processor, and the input / output device is connected to the processor.
[0078] Figure 7700 is a schematic block diagram of an example electronic device 700 according to an embodiment of the present application. The electronic device is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device may also represent various forms of mobile devices, such as personal digital processing, cellular phones, smart phones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely examples and are not intended to limit the implementation of the present application described and / or required herein.
[0079] like Figure 7 As shown, the device 700 includes a computing unit 701, which can perform various appropriate actions and processes according to a computer program stored in a read-only memory (ROM) 702 or a computer program loaded from a storage unit 708 into a random access memory (RAM) 703. In the RAM 703, various programs and data required for the operation of the device 700 can also be stored. The computing unit 701, the ROM 702, and the RAM 703 are connected to each other via a bus 704. An input / output (I / O) interface 705 is also connected to the bus 704.
[0080] A number of components in the device 700 are connected to the I / O interface 705, including: an input unit 706, such as a keyboard, a mouse, etc.; an output unit 707, such as various types of displays, speakers, etc.; a storage unit 708, such as a disk, an optical disk, etc.; and a communication unit 709, such as a network card, a modem, a wireless communication transceiver, etc. The communication unit 709 allows the device 700 to exchange information / data with other devices through a computer network such as the Internet and / or various telecommunication networks.
[0081] The computing unit 701 may be a variety of general and / or special processing components with processing and computing capabilities. Some examples of the computing unit 701 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various dedicated artificial intelligence (AI) computing chips, various computing units running machine learning model algorithms, digital signal processors (DSPs), and any appropriate processors, controllers, microcontrollers, etc. The computing unit 701 performs the various methods and processes described above, such as a method for data transmission. For example, in some embodiments, the method for data transmission may be implemented as a computer software program, which is tangibly contained in a machine-readable medium, such as a storage unit 708. In some embodiments, part or all of the computer program may be loaded and / or installed on the device 700 via ROM 702 and / or communication unit 709. When the computer program is loaded into RAM 703 and executed by the computing unit 701, one or more steps of the method for data transmission described above may be performed. Alternatively, in other embodiments, the computing unit 701 may be configured to perform a method for data transmission in any other appropriate manner (e.g., by means of firmware).
[0082] Various implementations of the systems and techniques described above herein can be implemented in digital electronic circuit systems, integrated circuit systems, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on chips (SOCs), load programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various implementations can include: being implemented in one or more computer programs that can be executed and / or interpreted on a programmable system including at least one programmable processor, which can be a special purpose or general purpose programmable processor that can receive data and instructions from a storage system, at least one input device, and at least one output device, and transmit data and instructions to the storage system, the at least one input device, and the at least one output device.
[0083] The program code for implementing the method of the present application can be written in any combination of one or more programming languages. These program codes can be provided to a processor or controller of a general-purpose computer, a special-purpose computer, or other programmable data processing device, so that the program code, when executed by the processor or controller, implements the functions / operations specified in the flow chart and / or block diagram. The program code can be executed entirely on the machine, partially on the machine, partially on the machine and partially on a remote machine as a stand-alone software package, or entirely on a remote machine or server.
[0084] In the context of the present application, a machine-readable medium may be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, device, or equipment. A machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or equipment, or any suitable combination of the foregoing. A more specific example of a machine-readable storage medium may include an electrical connection based on one or more lines, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
[0085] To provide interaction with a user, the systems and techniques described herein can be implemented on a computer having: a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user; and a keyboard and pointing device (e.g., a mouse or trackball) through which the user can provide input to the computer. Other types of devices can also be used to provide interaction with the user; for example, the feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including acoustic input, voice input, or tactile input).
[0086] The systems and techniques described herein may be implemented in a computing system that includes back-end components (e.g., as a data server), or a computing system that includes middleware components (e.g., an application server), or a computing system that includes front-end components (e.g., a user computer with a graphical user interface or a web browser through which a user can interact with implementations of the systems and techniques described herein), or a computing system that includes any combination of such back-end components, middleware components, or front-end components. The components of the system may be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include: a local area network (LAN), a wide area network (WAN), and the Internet.
[0087] A computer system may include a client and a server. The client and the server are generally remote from each other and usually interact through a communication network. The relationship of client and server is generated by computer programs running on respective computers and having a client-server relationship with each other. The server may be a cloud server, a server of a distributed system, or a server combined with a blockchain.
[0088] The serial numbers of the above-mentioned embodiments of the present application are for description only and do not represent the advantages or disadvantages of the embodiments.
[0089] In the above embodiments of the present application, the description of each embodiment has its own emphasis. For parts that are not described in detail in a certain embodiment, please refer to the relevant description of other embodiments.
[0090] In the several embodiments provided in this application, it should be understood that the disclosed technical content can be implemented in other ways. Among them, the device embodiments described above are only schematic. For example, the division of the units can be a logical function division. There may be other division methods in actual implementation. For example, multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of units or modules, which can be electrical or other forms.
[0091] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple units. Some or all of the units may be selected according to actual needs to achieve the purpose of the present embodiment.
[0092] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit. The above-mentioned integrated unit may be implemented in the form of hardware or in the form of software functional units.
[0093] If the integrated unit is implemented in the form of a software functional unit 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, in essence, or the part that contributes to the prior art 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 a number of instructions to enable a computer device (which can be a personal computer, a server or a network device, etc.) to perform all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes: U disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), mobile hard disk, disk or optical disk and other media that can store program codes.
[0094] The above is only a preferred implementation of the present application. It should be pointed out that for non-critical technical personnel in this technical field, several improvements and modifications can be made without departing from the principles of the present application. These improvements and modifications should also be regarded as the scope of protection of the present application.
Claims
1. A method for data transmission, characterized in that: include: Acquire a first bandwidth occupied by a first service flow to be transmitted from a first transmission link; determining a remaining bandwidth of a second transmission link, and comparing the first bandwidth with the remaining bandwidth to obtain a comparison result, wherein the contracted bandwidth of the first transmission link is less than the contracted bandwidth of the second transmission link; When the comparison result indicates that the first bandwidth is less than the remaining bandwidth, determining a first token bucket corresponding to the first transmission link and a second token bucket corresponding to the second transmission link; Obtaining the number of first tokens overflowing from the second token bucket to the first token bucket, and a first message length corresponding to the first service flow; When the first token number is greater than the first message length, the first message corresponding to the first service flow is sent from the sending end to the receiving end through the second transmission link.
2. The method according to claim 1, characterized in that: When the first token number is less than the first message length, the first message corresponding to the first service flow is sent from the sending end to the receiving end in a stream-by-stream manner through the first transmission link, and other services in the first transmission link except the first service flow are sent from the sending end to the receiving end in a packet-by-packet manner through the second transmission link.
3. The method according to claim 1, characterized in that Determining the remaining bandwidth of the second transmission link includes: Determine the real-time bandwidth of the second transmission link and the required second bandwidth of the second service flow to be transmitted; A difference between the real-time bandwidth and the second bandwidth is determined as the remaining bandwidth.
4. The method according to claim 3, characterized in that Comparing the first bandwidth with the remaining bandwidth to obtain a comparison result includes: When the remaining bandwidth is greater than a second preset value, determining to compare the first bandwidth with the remaining bandwidth to obtain a comparison result; When the remaining bandwidth is less than a second preset value, it is determined that the first message is sent from the sending end to the receiving end through the first transmission link.
5. The method according to claim 1, characterized in that Before acquiring the first bandwidth occupied by the first service flow to be transmitted from the first transmission link, the method further includes: Determine each service flow to be transmitted on the first transmission link, and obtain the service priority corresponding to each service flow; Determine that the service flow with the highest service priority is the first service flow.
6. The method according to claim 1, characterized in that The method further comprises: Obtaining the second token number of the second token bucket, and determining the second service flow to be transmitted on the second transmission link; When the second token number is smaller than the second message length corresponding to the second service flow, the second message corresponding to the second service flow is sent to the receiving end through the second transmission link in a stream-by-stream manner.
7. The method according to any one of claims 1 to 6, characterized in that: include: At the receiving end, the message data transmitted by the first transmission link are reordered according to the order in which the messages arrive at the receiving end.
8. A data transmission device, characterized in that: include: A first acquisition module, used to acquire a first bandwidth occupied by a first service flow to be transmitted from a first transmission link; a comparison module, configured to determine a remaining bandwidth of a second transmission link, and compare the first bandwidth with the remaining bandwidth to obtain a comparison result, wherein the contracted bandwidth of the first transmission link is less than the contracted bandwidth of the second transmission link; a determination module, configured to determine a first token bucket corresponding to the first transmission link and a second token bucket corresponding to the second transmission link when the comparison result indicates that the first bandwidth is less than the remaining bandwidth; A second acquisition module, used to obtain the number of first tokens overflowed from the second token bucket to the first token bucket, and a first message length corresponding to the first service flow; A sending module is used to send the first message corresponding to the first service flow from the sending end to the receiving end through the second transmission link when the first token number is greater than the first message length.
9. A non-volatile storage medium, characterized in that: The storage medium includes a stored program, wherein when the program is executed, the device where the storage medium is located is controlled to execute the method for data transmission described in any one of claims 1 to 7.
10. An electronic device, characterized in that: include: processor; a memory for storing instructions executable by the processor; The processor is configured to execute the instructions to implement the data transmission method as claimed in any one of claims 1 to 7.
Citation Information
Patent Citations
Method and system for shaping traffic in a parallel queuing hierarchy
CN101151846A
Message transmitting method and system
CN102238068A