Data transmission method and apparatus, and computer-readable medium and electronic device

By grouping data transmission paths by source port number in the data center network, the reliability problem caused by single point failure in multi-path transmission schemes is solved, and more efficient and reliable data transmission is achieved.

WO2025185453A1PCT designated stage Publication Date: 2025-09-11TENCENT TECHNOLOGY (SHENZHEN) CO LTD

Patent Information

Application Number
PCT/CN2025/078237
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-03-08
Filing Date
2025-02-20
Publication Date
2025-09-11

AI Technical Summary

Technical Problem

In existing data center networks, multi-path transmission solutions lack optimized control over paths, resulting in reduced data transmission reliability in the event of a single point of failure.

Method used

By grouping the data transmission paths by source port numbers, the source port numbers of different paths are ensured to belong to different groups and thus configured to different physical paths, reducing the risk of logical paths sharing the same physical path.

Benefits of technology

It improves the reliability and stability of data transmission, reduces the impact of single point failures on data transmission, and ensures the continuity and efficiency of data transmission.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025078237_12092025_PF_FP_ABST
    Figure CN2025078237_12092025_PF_FP_ABST
Patent Text Reader

Abstract

A data transmission method, which is executed by a first device. The method comprises: acquiring sender source port number groups of a first device, wherein the sender source port number groups are obtained by grouping source port numbers of the first device (510); on the basis of the sender source port number groups, performing source port number configuration on a plurality of forward data transmission paths used by the first device, wherein the forward data transmission paths are physical paths on which the first device sends data to a second device, source port numbers configured to different forward data transmission paths belong to different sender source port number groups, and source ports in the same sender source port number group are configured to the same forward data transmission path (520); and on the basis of at least one of the plurality of forward data transmission paths after the configuration of the source port numbers, sending a connection request packet to the second device, so as to establish a data transmission connection with the second device (530).
Need to check novelty before this filing date? Find Prior Art

Description

Data transmission method, device, computer-readable medium, and electronic device

[0001] Related applications

[0002] This application claims priority to Chinese patent application number 2024102675467, entitled “Data transmission method, device, computer-readable medium and electronic device”, filed on March 8, 2024, the entire text of which is hereby incorporated by reference. Technical Field

[0003] The present application belongs to the field of data processing technology, and specifically relates to a data transmission method, device, computer-readable medium and electronic device. Background Art

[0004] Currently, much of the data on the internet relies on data center networks for storage, computing, and exchange. The data processing capabilities of data center networks impact the quality of internet service. To improve data processing capabilities, data transmission within data center networks often utilizes an equal-cost multipath approach. This approach involves multiple physical paths between any pair of server nodes in the data center network, often of equal length. Data transmission then proceeds by selecting one or more of these paths and assigning them random port numbers. However, because this approach lacks specific path control, different port numbers can correspond to the same path. A path failure can severely impact overall data transmission, reducing data reliability. Summary of the Invention

[0005] The present application provides a data transmission method, device, computer-readable medium, and electronic device.

[0006] According to one aspect of an embodiment of the present application, a data transmission method is provided, which is performed by a first device and includes:

[0007] Acquire a sender source port number group of the first device, where the sender source port number group is obtained by grouping the source port number of the first device;

[0008] configuring source port numbers for multiple forward data transmission paths used by the first device according to the sender source port number grouping, wherein the forward data transmission path is a physical path for the first device to send data to the second device, source port numbers configured for different forward data transmission paths belong to different sender source port number groups, and source ports in the same sender source port number group are configured to the same forward data transmission path; and

[0009] According to at least one forward data transmission path among the plurality of forward data transmission paths after the source port number is configured, a connection request packet is sent to the second device to establish a data transmission connection with the second device.

[0010] According to one aspect of an embodiment of the present application, a data transmission method is provided, which is performed by a second device and includes:

[0011] Obtaining a connection request packet sent by the first device and a receiver source port number group obtained by grouping the source port number of the second device;

[0012] configuring source port numbers for multiple reverse data transmission paths used by the second device according to the receiver source port number group, wherein the reverse data transmission path is a physical path for the second device to send data to the first device, source port numbers configured for different reverse data transmission paths belong to different receiver source port number groups, and source ports in the same receiver source port number group are configured to the same reverse data transmission path; and

[0013] According to at least one reverse data transmission path among the plurality of reverse data transmission paths after the source port number is configured, a request response packet is sent to the first device to establish a data transmission connection with the first device.

[0014] According to one aspect of an embodiment of the present application, a data transmission device is provided, including:

[0015] a port number group acquiring module, configured to acquire a sender source port number group of a first device, wherein the sender source port number group is obtained by grouping source port numbers of the first device;

[0016] a port number configuration module, configured to configure source port numbers for multiple forward data transmission paths used by the first device based on the sender source port number grouping, wherein the forward data transmission path is a physical path for the first device to send data to the second device, the source port numbers configured for different forward data transmission paths belong to different sender source port number groups, and the source ports in the same sender source port number group are configured to the same forward data transmission path; and

[0017] The request packet sending module is used to send a connection request packet to the second device according to at least one forward data transmission path among the multiple forward data transmission paths after the source port number is configured, so as to establish a data transmission connection with the second device.

[0018] According to one aspect of an embodiment of the present application, a data transmission device is provided, including:

[0019] a port number group acquisition module, configured to acquire a connection request packet sent by the first device and a receiver source port number group obtained by grouping the source port number of the second device;

[0020] a port number configuration module, configured to configure source port numbers for multiple reverse data transmission paths used by the second device according to the receiver source port number group, wherein the reverse data transmission path is a physical path for the second device to send data to the first device, the source port numbers configured for different reverse data transmission paths belong to different receiver source port number groups, and the source ports in the same receiver source port number group are configured to the same reverse data transmission path; and

[0021] The response packet sending module is used to send a request response packet to the first device according to at least one reverse data transmission path among the multiple reverse data transmission paths after the source port number is configured, so as to establish a data transmission connection with the first device.

[0022] According to one aspect of an embodiment of the present application, a computer-readable medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the data transmission method in the above technical solution is implemented.

[0023] According to one aspect of an embodiment of the present application, an electronic device is provided, comprising: a processor; and a memory for storing executable instructions of the processor; wherein the processor executes the executable instructions so that the electronic device executes the data transmission method in the above technical solution.

[0024] According to one aspect of an embodiment of the present application, a computer program product or computer program is provided, the computer program product or computer program including computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the computer device to perform the data transmission method described in the above technical solution.

[0025] The details of one or more embodiments of the present application are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the present application will become apparent from the description, drawings, and claims. BRIEF DESCRIPTION OF THE DRAWINGS

[0026] The accompanying drawings are incorporated into and constitute a part of the specification, illustrate embodiments consistent with the present application, and together with the specification, serve to explain the principles of the present application. Obviously, the drawings described below are merely some embodiments of the present application, and those skilled in the art can derive other drawings based on these drawings without inventive effort.

[0027] FIG1 schematically shows a block diagram of an exemplary system architecture applying the technical solution of the present application.

[0028] FIG2 schematically shows a topology diagram of a data center network to which the technical solution of the present application is applied.

[0029] FIG3 schematically shows a schematic diagram of data transmission using multiple logical paths provided by an embodiment of the present application.

[0030] 4A-4D schematically illustrate various single point failures.

[0031] FIG5 schematically shows a flow chart of a data transmission method provided by an embodiment of the present application.

[0032] FIG6 schematically shows a schematic diagram of a forward data transmission path provided by an embodiment of the present application.

[0033] FIG7 schematically shows a flow chart of a data transmission method provided by an embodiment of the present application.

[0034] 8A-8C schematically illustrate a schematic diagram of switch grouping provided by an embodiment of the present application.

[0035] FIG9 schematically shows a schematic diagram of a routing hash calculation in the present application.

[0036] FIG10 schematically shows a schematic diagram of the configuration of routing hash information of switches at each layer.

[0037] FIG11 schematically shows a flow chart of a data transmission method provided by an embodiment of the present application.

[0038] FIG12 schematically shows a diagram of a data packet format.

[0039] FIG13 schematically shows a diagram of physical transmission port configuration.

[0040] FIG14 schematically shows a flow chart of a data transmission method provided by an embodiment of the present application.

[0041] FIG15 schematically shows an exemplary system architecture block diagram applying the technical solution of the present application.

[0042] FIG16 schematically shows a schematic diagram of creating a connection using the technical solution of the present application.

[0043] FIG17 schematically shows an exemplary system diagram applying the technical solution of the present application.

[0044] FIG18 schematically shows an exemplary system diagram applying the technical solution of the present application.

[0045] 19A-19B schematically illustrate the effect of applying the technical solution of the present application.

[0046] FIG20 schematically shows a structural block diagram of a data transmission device provided in an embodiment of the present application.

[0047] FIG21 schematically shows a structural block diagram of a data transmission device provided in an embodiment of the present application.

[0048] FIG22 schematically shows a block diagram of a computer system structure of an electronic device suitable for implementing an embodiment of the present application. DETAILED DESCRIPTION

[0049] The following will be combined with the drawings in the embodiments of this application to clearly and completely describe the technical solutions in the embodiments of this application. Obviously, the embodiments described are only part of the embodiments of this application, not all of the embodiments. Based on the embodiments in this application, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of this application.

[0050] Example embodiments will now be described more fully with reference to the accompanying drawings. However, example embodiments can be implemented in many forms and should not be construed as limited to the examples set forth herein; rather, these embodiments are provided so that this application will be thorough and complete and will fully convey the concepts of the example embodiments to those skilled in the art.

[0051] In addition, described feature, structure or characteristic can be combined in one or more embodiments in any suitable manner.In the following description, many specific details are provided so as to provide a full understanding of the embodiments of the present application. However, it will be appreciated by those skilled in the art that the technical scheme of the present application can be put into practice without one or more of the specific details, or other methods, components, devices, steps etc. can be adopted. In other cases, known methods, devices, implementations or operations are not shown or described in detail to avoid blurring the various aspects of the application.

[0052] The block diagrams shown in the accompanying drawings are merely functional entities and do not necessarily correspond to physically separate entities. That is, these functional entities may be implemented in software, in one or more hardware modules or integrated circuits, or in different networks and / or processor devices and / or microcontroller devices.

[0053] The flowcharts shown in the accompanying drawings are for illustrative purposes only and do not necessarily include all contents and operations / steps, nor must they be executed in the order described. For example, some operations / steps may be decomposed, while others may be combined or partially combined. Therefore, the actual execution order may vary depending on the actual situation.

[0054] In the embodiments of the present application, the term "module" or "unit" refers to a computer program or a part of a computer program that has a predetermined function and works together with other related parts to achieve a predetermined goal, and can be implemented in whole or in part by using software, hardware (such as processing circuits or memories) or a combination thereof. Similarly, a processor (or multiple processors or memories) can be used to implement one or more modules or units. In addition, each module or unit can be part of an overall module or unit that includes the function of the module or unit.

[0055] It is understandable that in the specific implementation of this application, related data such as customer information (such as transaction information, reconciliation data) is involved. When the above embodiments of this application are applied to specific products or technologies, customer permission or consent is required, and the collection, use and processing of relevant data must comply with relevant laws, regulations and standards of relevant countries and regions.

[0056] FIG1 schematically shows a block diagram of an exemplary system architecture applying the technical solution of the present application.

[0057] As shown in Figure 1, system architecture 100 may include terminal device 110, network 120, and server 130. Terminal device 110 may include, but is not limited to, mobile phones, computers, intelligent voice interaction devices, smart home appliances, vehicle-mounted terminals, aircraft, etc. Server 130 may be an independent physical server, or a server cluster or distributed system consisting of multiple physical servers. It may also be a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, CDN, and big data and artificial intelligence platforms. Network 120 may be a communication medium of various connection types that can provide a communication link between terminal device 110 and server 130, such as a wired communication link or a wireless communication link.

[0058] Depending on implementation needs, the system architecture in the embodiments of the present application can have any number of terminal devices, networks, and servers. For example, server 130 can be a server group consisting of multiple server devices. In addition, the technical solutions provided in the embodiments of the present application can be applied to terminal device 110, server 130, or can be implemented by both terminal device 110 and server 130, and this application does not impose any special restrictions on this.

[0059] The embodiments of the present invention can be applied to various scenarios, including but not limited to cloud technology, artificial intelligence, smart transportation, assisted driving, etc. For example, the technical solution of the present application can be applied to cloud technology. Cloud technology refers to a hosting technology that unifies a series of resources such as hardware, software, and network in a wide area network or a local area network to realize the calculation, storage, processing and sharing of data. Cloud technology is a general term for network technology, information technology, integration technology, management platform technology, application technology, etc. based on the application of cloud computing business model. It can form a resource pool that can be used on demand and is flexible and convenient. Cloud computing technology will become an important support. The background services of technical network systems require a large amount of computing and storage resources, such as video websites, picture websites and more portal websites. With the rapid development and application of the Internet industry, in the future, each item may have its own identification mark, and all need to be transmitted to the background system for logical processing. Data of different levels will be processed separately. All kinds of industry data require strong system backend support, which can only be achieved through cloud computing.

[0060] The technical solution of the present application can be used in a data center network. For example, FIG2 schematically shows a topological diagram of a data center network to which the technical solution of the present application is applied. As shown in FIG2 , the data center network includes an access layer (Leaf), an aggregation layer (Spine) and a core layer (Core), and data transmission between servers (Host) is realized through the data center network. Each layer in the data center network includes multiple switches, for example, the access layer includes switches L0 to L15, the aggregation layer includes switches S0 to S15, and the core layer includes switches C0 to C7. This data center network architecture including the access layer and the aggregation layer is also called a leaf-spine network architecture, the access layer switches are called leaf switches, and the aggregation layer switches are called spine switches. Multiple core layer switches can belong to a control plane Plane, for example, the core layer switches C0 and C1 belong to the control plane Plane0. Multiple servers can belong to a cluster Pod, for example, servers H0 to H3 belong to the server cluster Pod 0. Data transmission in a data center network can also be regarded as the transmission of data between switches at various layers. The first device and the second device each correspond to an access layer and an aggregation layer. The data transmission process is as follows: the first device sends data to the access layer switch on the first device's side. The access layer switch forwards the data to the aggregation layer switch, which then sends the data to the core layer switch. The core layer switch then sends the data to the aggregation layer switch on the second device's side. The aggregation layer switch then forwards the data to the access layer switch, ultimately reaching the second device. For example, taking data transmission between server H0 and server H4, server H0 sends data to its connected access layer switch L0 (which could also be access layer switch L1). Access layer switch L0 then forwards the data to aggregation layer switch S0 (which could also be one of switches S1-S3). Aggregation layer switch S0 then sends the data to core layer switch C0 (which could also be core layer switch C1). Core layer switch C0 then sends the data to aggregation layer switch S4. Aggregation layer switch S4 sends the data to access layer switch L4 (which could also be access layer switch L5). Access layer switch L4 then sends the data to server H4.

[0061] During data transmission, the path formed by various physical devices is called a physical path. For example, the physical paths formed by the switches at each layer in Figure 2 are examples. A logical path is generally defined based on certain attributes. For example, from the perspective of the ports used for data transmission and reception, a logical path can be defined as the path from a port on the first device to a port on the second device. Generally speaking, a data stream can be considered a logical path. Data transmission along a logical path actually takes place along a specific physical path. During data transmission, the packets along the logical path are configured with information such as the source port, thereby connecting the packets to the physical path corresponding to the source port number. Data is then transmitted along the physical path. In multipath transport protocols, a single transport connection uses multiple logical paths for data transmission, as shown in Figure 3. During data transmission, the connection layer divides the transmitted data into packets and then distributes these packets across multiple logical paths in a certain manner (the specific distribution method depends on the path scheduling mechanism). Data transmission along multiple logical paths is often independent. That is, the response information generated by data on a logical path on the first device will only be transmitted back through the corresponding logical path on the second device. In practice, multiple physical paths used by a connection will overlap to varying degrees within the network (randomly). This overlap can, in some cases, severely weaken the connection's resilience to single points of failure. A single point of failure occurs when a critical node (such as a switch or link) in a data transmission path fails, disrupting the entire data transmission path and impacting service availability.

[0062] Path Scheduling Mechanism: In multipath transport protocols, the rules and methods used to divide transmitted data into packets and distribute them across multiple logical paths. This mechanism distributes packets across multiple logical paths to complete data transmission. However, in practice, this can affect the overlap of multiple physical paths used by a connection within the network.

[0063] Existing multipath transmission solutions all use random or sequential source port numbers and fail to optimize the physical paths of logical paths. Their drawback is that they are not completely immune to single-point failures, including forward single-point failures, reverse single-point failures, mixed single-point failures, and upper-layer switch failures. The following describes several types of these failures using an example of a connection using two physical paths.

[0064] A forward single point failure refers to a single point failure in the forward data transmission path from the first device to the second device. Figure 4A schematically shows a schematic diagram of a forward single point failure. In Figure 4A, LA represents the access layer switch, LC represents the aggregation layer switch, and CUF represents the core layer switch. As shown in Figure 4A, the connection established between the first device (Client) and the second device (Server) uses two forward data transmission paths, namely two forward physical paths. Forward physical path ① includes first device port 1-LA1-LC2-CUF2-LC6-LA3-second device port 1, and forward physical path ② includes first device port 2-LA2-LC4-CUF4-LC8-LA3-second device port 1. It can be seen that these two forward physical paths overlap at the access layer switch LA3 on the second device side, which makes LA3 a single point of failure. In other words, if LA3 fails, the connection will be completely interrupted, causing the services that rely on this connection to be unavailable.

[0065] A reverse single point failure refers to a single point failure in the reverse data transmission path where the second device sends data to the first device. Figure 4B schematically shows a schematic diagram of a reverse single point failure, and the meaning of each identifier in Figure 4B is the same as that in Figure 4A. As shown in Figure 4B, the connection established between the first device (Client) and the second device (Server) uses two reverse data transmission paths, namely two reverse physical paths. Reverse physical path ① includes the second device port 1-LA3-LC5-CUF1-LC1-LA1-first device port 1, and reverse physical path ② includes the second device port 2-LA4-LC7-CUF3-LC3-LA1-first device port 1. It can be seen that these two reverse physical paths overlap in the access layer switch LA1 on the first device side. If LA1 fails, the connection will be completely interrupted, resulting in unavailability of upper-layer services.

[0066] A hybrid single point failure refers to the overlap of the forward data transmission path and the reverse data transmission path. FIG4C schematically shows a hybrid single point failure on the second device side. The meanings of the symbols in FIG4C are the same as those in FIG4A. As shown in Figure 4C, the connection established between the first device (Client) and the second device (Server) uses two forward physical paths and two reverse physical paths. Forward physical path ① includes first device port 1-LA1-LC2-CUF2-LC6-LA3-second device port 1, forward physical path ② includes first device port 2-LA2-LC4-CUF4-LC8-LA4-second device port 2, reverse physical path ① includes second device port 2-LA4-LC5-CUF1-LC1-LA1-first device port 1, and reverse physical path ② includes second device port 1-LA3-LC7-CUF3-LC3-LA2-first device port 2. Among them, forward physical path ① corresponds to reverse physical path ① (that is, the response data of the data sent through forward physical path ① will be fed back through reverse physical path ①), and forward physical path ② corresponds to reverse physical path ②. As can be seen, the two forward physical paths and the two reverse physical paths overlap at LA3 and LA4 on the second device side, making both LA3 and LA4 on the receiving side single points of failure. In other words, a failure in either LA3 or LA4 will disrupt the entire connection, rendering upper-layer services unavailable. Figure 4D schematically illustrates a hybrid single-point failure on the first device side. The symbols in Figure 4D have the same meanings as in Figure 4A. As shown in Figure 4D, the connection established between the first device (Client) and the second device (Server) uses two forward physical paths and two reverse physical paths. Forward physical path ① includes the first device port 1-LA1-LC2-CUF2-LC6-LA3-second device port 1, forward physical path ② includes the first device port 2-LA2-LC4-CUF4-LC8-LA4-second device port 2, reverse physical path ① includes the second device port 1-LA3-LC8-CUF4-LC4-LA2-first device port 2, and reverse physical path ② includes the second device port 2-LA4-LC6-CUF2-LC2-LA1-first device port 1. It can be seen that the two forward physical paths and the two reverse physical paths overlap on LA1 and LA2 on the first device side, causing LA1 and LA2 on the receiving side to become single points of failure. In other words, as long as either LA1 or LA2 fails, the entire connection will be interrupted, causing upper-layer services to become unavailable.

[0067] An upper-layer switch failure means that the forward physical path used by a connection overlaps with the aggregation layer switch or the core layer switch, or the reverse physical path overlaps with these switches, which will lead to the risk of single point failure.

[0068] Based on the above problems, the present application proposes a data transmission method. By controlling the source port number grouping, the port number of each group can be matched to a different physical path, thereby reducing the situation where different logical paths use the same physical path and increasing the reliability of data transmission. The data transmission method provided by the present application is described in detail below in combination with the specific implementation method.

[0069] Figure 5 schematically shows a flow chart of a data transmission method provided by an embodiment of the present application, which is applied to a first device. As shown in Figure 5, the data transmission method provided by this embodiment includes steps 510 to 530, which are specifically as follows:

[0070] Step 510: Acquire a sender source port number group of the first device, where the sender source port number group is obtained by grouping the source port number of the first device.

[0071] Specifically, the source port refers to the logical port used by the first device for data transmission, generally a port in a data transmission connection protocol, such as a port in the TCP / IP (Transmission Control Protocol / Internet Protocol) protocol, and the port number can range from 0 to 65535. The source port number is used to identify which port is used to send data.

[0072] In a data center network architecture, a sending source port group (Sending Source Port Group) can refer to a set of port numbers generated from the source port number of the first device when initiating data transmission, based on a specific network topology and transmission optimization strategy. This set is obtained by cross-combining the hierarchical port number groups of each transport layer and extracting the intersection of the source port numbers. It is used to assign unique source ports to different forward data transmission paths, effectively reducing the risk of logical paths sharing the same physical path, improving the reliability and stability of data transmission, and ensuring the efficient and accurate transmission of data from the sender to the receiver.

[0073] Hierarchical Port Group may refer to a set of port numbers in a data center network that is obtained by targeted division of source port numbers according to the different network layers (such as access layer, aggregation layer, and core layer) through which the data transmission path passes. Taking a typical data center network comprising an access layer, an aggregation layer, and a core layer as an example, this grouping covers the source port number groups corresponding to the switches at each layer. The determination method is to combine the source port number of the first device with the preset four-tuple data to generate five-tuple data, and based on this, generate a probe data packet and send it to the second device to detect the transmission path of the probe data packet and record the switch information passing through each data transmission layer. The port number grouping of each layer is closely associated with the corresponding hierarchical switch, and is used to accurately identify the transmission path of the data packet at that layer, to achieve refined control of the data transmission path, and to ensure efficient transmission of data in a complex network hierarchical structure.

[0074] In the data center network architecture shown in Figure 2, when a first device sends data to a second device, access layer switches, aggregation layer switches, and core layer switches are involved. Therefore, the sender's source port number grouping includes the source port number groups of the aforementioned switches at each layer. The multiple source port numbers of the switches at each layer are grouped to obtain the source port number groups of the switches at each layer. The source port number groups of the switches at each layer are then fused (for example, by taking the intersection of the source port number groups of the switches at each layer) to obtain the sender's source port number grouping. It is understood that the source port numbers of switches at different layers can overlap. For example, the source port numbers of access layer switches include 0-3000, and the source port numbers of aggregation layer switches may also include 0-3000. For example, the source port numbers of access layer switches 0-3000 are grouped together, and the source port numbers of aggregation layer switches 1000-3000 are grouped together. Then, the intersection of the access layer switch and aggregation layer switch groups is taken as the fusion result, resulting in the sender's source port number grouping of 1000-3000. The sender source port number grouping can be pre-calculated and stored by a designated module (which can be a server, controller, etc.). During data transmission, the first device obtains the sender source port number grouping from the designated module. In a data transmission layer, the correspondence between a switch and a switch in the next data transmission layer defines a switch grouping for that data transmission layer. For example, when obtaining hierarchical port number grouping, the switch groupings of the switches in each data transmission layer are used as the source port numbers contained in the probe data packet relative to the hierarchical port number groupings for each data transmission layer. The number of switch groups is determined by the number of switches in the next data transmission layer directly connected to that data transmission layer.

[0075] Step 520: Configure the source port numbers for multiple forward data transmission paths used by the first device according to the sender source port number grouping, wherein the forward data transmission path is the physical path for the first device to send data to the second device, and the source port numbers configured for different forward data transmission paths belong to different sender source port number groups, and the source ports in the same sender source port number group are configured to the same forward data transmission path.

[0076] The fact that the first device uses multiple forward data transmission paths means that the first device has the conditions to send data through any one or more of the multiple forward data transmission paths, and does not necessarily have to be sending data at the moment.

[0077] Specifically, the forward data transmission path, i.e., the aforementioned physical path, is the physical path for the first device to send data to the second device, such as the forward physical path shown in FIG3A . Once the data center network architecture between the first device and the second device is determined, the forward data transmission path between the first device and the second device can be determined based on the network architecture. When the first device sends data to the second device, it is necessary to first configure the source port number for the forward data transmission path, i.e., assign a source port number to the forward data transmission path. In this embodiment, a source port number group may include multiple source port numbers. When configuring the source port number for the forward data transmission path, a source port number can be randomly extracted from a source port number group or a source port number with a higher number can be preferentially extracted and configured to a forward data transmission path. When a source port number in a source port number group has already been configured to a forward data transmission path, the source port number in the source port group is no longer used to configure other forward data transmission paths. This allows the source ports configured for different forward data transmission paths to belong to different sender source port number groups after the source ports are matched, and the source ports in the same sender source port number group are configured to the same forward data transmission path. For example, source port number 0 is extracted from the source port number group of 0-3000 and configured to forward data transmission path 1, and source port number 3001 is extracted from the source port number group of 3001-6000 and configured to forward data transmission path 2.

[0078] Step 530: Send a connection request packet to the second device according to at least one forward data transmission path among the multiple forward data transmission paths after the source port number is configured, so as to establish a data transmission connection with the second device.

[0079] Among them, in data transmission, after the first device completes the configuration of the source port numbers of multiple forward data transmission paths, it will send a connection request packet to the second device according to the established strategy. In some embodiments, the first device can use a polling strategy to send connection request packets from each path in sequence to ensure that each path can be effectively utilized, distribute the load, and avoid excessive use of a certain path and resulting in performance degradation. In some embodiments, the first device can use a parallel sending strategy to send the same connection request packet through multiple paths at the same time, which greatly increases the probability that the request packet successfully reaches the second device and significantly improves the speed and reliability of connection establishment. In some embodiments, when a path fails or performs poorly, it can quickly switch to other normal paths to continue sending to ensure the continuity of data transmission. These strategies give full play to the advantages of multiple forward data transmission paths, efficiently send connection request packets to the second device, and help quickly establish data transmission connections.

[0080] Specifically, after the forward data transmission path is configured with a source port number, the first device can use the forward data transmission path to send a connection request packet to the second device. The connection request packet will be sent out through the source port corresponding to the configured source port number. After receiving the connection request packet, the second device will respond to it, and a data transmission connection will be established between the first device and the second device. After the data transmission connection is established, the first device can send data to the second device based on the various forward data transmission paths used by the data transmission connection. Then, when sending different data streams (i.e., different logical paths), different forward data transmission paths can be selected, thus avoiding the situation where different logical paths use the same physical path. For example, for the forward single point failure shown in Figure 4A, after applying the technical solution of the present application, a schematic diagram of the forward data transmission path shown in Figure 6 can be obtained. When configuring the source port number, since the source port numbers in different sender source port number groups correspond to different forward data transmission paths, at LA3, the forward physical path ① and the forward physical path ② will not overlap. Even if LA3 fails, causing the forward physical path ① to be unavailable, the data transmission connection can still continue to transmit data through the forward physical path ②, and will not cause the data transmission connection to be completely interrupted and affect the business that depends on this connection, thereby improving the reliability of data transmission.

[0081] In the technical solution provided in the embodiment of the present application, when the source port number of the forward data transmission path is configured, the source port numbers configured for different forward data transmission paths belong to different sender source port number groups, and the source ports in the same sender source port number group are configured to the same forward data transmission path, and the sender source port number group is obtained by grouping multiple source port numbers of the first device. Then, after the first device establishes a data transmission connection with the second device based on the forward data transmission path after the source port number is configured, the data transmission performed by the first device based on the connection, each forward data transmission path corresponds to the source port number in different groups, thereby reducing the situation where different logical paths use the same physical path and increasing the reliability of data transmission.

[0082] FIG7 schematically shows a flow chart of a data transmission method provided by an embodiment of the present application, which is a further refinement of the above embodiment. As shown in FIG7 , the data transmission method provided by the embodiment of the present application includes the following steps:

[0083] Step 710: Obtain hierarchical port number groups of the source port number of the first device at each data transmission layer in the data center network.

[0084] Specifically, taking the data center network structure shown in Figure 1 as an example, the various data transmission layers in the data center network include the access layer, the aggregation layer, and the core layer. When a first device sends data to a second device, these three data transmission layers are also involved. Therefore, the hierarchical port number grouping includes the hierarchical port number grouping of the access layer, the hierarchical port number grouping of the aggregation layer, and the hierarchical port number grouping of the core layer. The above three data transmission layers each include multiple switches. Therefore, the hierarchical port number grouping of each layer is also the source port number grouping of the switches at each layer. During the data transmission process, data is sent to the switches at the next layer via the switches at the previous layer. The source port number affects which switch at the next layer the data is sent to. Therefore, the source port number grouping of the switches at each layer can be determined based on the next layer switch corresponding to the source port number. Source ports pointing to the same next layer switch can be divided into the same source port number grouping. In this way, the source port numbers in different hierarchical port number groups can correspond to different next layer switches, which in turn makes the source port numbers in different hierarchical port number groups correspond to different physical paths.

[0085] In one embodiment of the present application, hierarchical port number grouping can be obtained through a probe data packet, specifically including: combining the source port number of the first device with preset four-tuple data to generate five-tuple data, and generating a probe data packet based on the five-tuple data; sending a probe data packet to the second device to determine the switches of each data transmission layer in the data center network through which the probe data packet reaches the second device; grouping the switches of each data transmission layer as the source port number contained in the probe data packet relative to the hierarchical port number grouping of each data transmission layer; wherein the number of hierarchical port number groups corresponding to the data transmission layer is the number of switches contained in the next data transmission layer connected to the data transmission layer; one switch of the data transmission layer and one switch of the next data transmission layer represent a switch group of the data transmission layer. Specifically, when transmitting data, the switch at each layer needs to perform calculations based on the five-tuple data of the data packet to determine which switch on the next layer to send the data packet to. The five-tuple data of the data packet includes the source IP address, destination IP address, protocol number, source port number, and destination port number. The source IP address, destination IP address, and protocol number are obtained from the IP header of the data packet, and the source port number and destination port number are obtained from the UDP (User Datagram Protocol) header of the data packet. In order to reflect the mapping relationship between the source port number and the switch, during detection, the four-tuple data except the source port number in the five-tuple data of the data packet is fixed to form preset four-tuple data. Then, each source port number contained in the first device is combined with the preset four-tuple data to generate five-tuple data corresponding to each source port number, and based on the five-tuple data, a detection data packet corresponding to each source port number is generated. The probe packet is then sent to the second device. The switches at each data transmission layer that the probe packet passes through after reaching the second device constitute the forward data transmission path that the probe packet traverses. The switch groupings of the switches in this path are grouped by source port numbers relative to the hierarchical port numbers of each data transmission layer. If one switch is considered a switch group, the number of hierarchical port groups in each data transmission layer is equal to the number of switches in the next data transmission layer.

[0086] For example, the data transmission layers through which the data sent by the first device passes include the access layer and aggregation layer, the core layer on the side of the first device, and the aggregation layer and access layer on the side of the second device. Then, when obtaining the hierarchical port number grouping, it is necessary to obtain the hierarchical port number grouping from the access layer on the side of the first device to its aggregation layer, the hierarchical port number grouping from the aggregation layer on the side of the first device to the core layer (recorded as the core switch hierarchical port number grouping), and the hierarchical port number grouping from the aggregation layer on the side of the second device to its access layer (recorded as the leaf switch hierarchical port number grouping). As shown in Figure 8A, the access layer on the side of the first device to its aggregation layer is routed upward from the access layer switch (leaf switch) to the aggregation layer switch (spine switch). This hierarchical port number grouping can be recorded as the spine switch hierarchical port number grouping. The number of groups is actually the number of aggregation layer switches. The spine switch hierarchical port number grouping can be represented as SGi (Spine Group index), where i represents the group number, and the maximum value of i is the number of aggregation layer switches. As shown in Figure 8B, the aggregation layer on the side of the first device to the core layer is routed upward from the aggregation layer switch (spine switch) to the core layer switch. This hierarchical port number grouping can be recorded as the core switch hierarchical port number grouping. The number of groups is actually the number of core layer switches. The core switch hierarchical port number grouping can be represented as CGi (Core Group index), where i represents the group number, and the maximum value of i is the number of core layer switches. As shown in Figure 8C, the aggregation layer on the side of the second device to its access layer is routed downward from the aggregation layer switch (spine switch) to the access layer switch (leaf switch). This hierarchical port number grouping can be recorded as the leaf switch hierarchical port number grouping. The number of groups is actually the number of access layer switches. The leaf switch hierarchical port number grouping can be represented as SGi (Spine Group index), where i represents the group number, and the maximum value of i is the number of access layer switches.

[0087] In one embodiment of the present application, when determining the switches of each data transmission layer that a probe data packet passes through before reaching the second device, it is necessary to perform a routing hash calculation on the switches of each data transmission layer to determine the switch of the next data transmission layer. Specifically, the calculation includes: performing a routing hash calculation on the path identification features contained in the probe data packet based on the routing hash information configured by the switch of the current data transmission layer to obtain the switch index of the next data transmission layer to which the probe data packet is to be sent; querying the switch index mapping relationship based on the switch index of the next data transmission layer to which the probe data packet is to be sent, and determining the switch of the next data transmission layer to which the probe data packet is to be sent. Specifically, the switch of each data transmission layer uses the pre-configured routing hash information to perform a routing hash calculation on the probe data packet. The calculation result is the switch index of the next data transmission layer. Based on the relationship between the switch index and the switch represented by the switch index mapping relationship, the switch of the next data transmission layer can be determined. Switch Index Mapping Relationship: A mapping that represents the corresponding relationship between switch index and switch. Based on this relationship, the specific switch of the next data transmission layer to which the probe data packet is to be sent can be determined based on the switch index obtained by the routing hash calculation.

[0088] Among them, in the path selection and data forwarding mechanism of the data center network, routing hash information is a set of key elements used to map the path identification characteristics of the data packet to a specific switch or transmission path, mainly including parameters such as the path selection hash algorithm and hash seed. At the same data transmission layer, all switches are configured with the same routing hash information to ensure the consistency and stability of data forwarding; switches at different data transmission layers can be configured with different routing hash information according to the hierarchical network characteristics and data traffic requirements. By accurately calculating the path identification characteristics of the detection data packet based on the routing hash information configured by the current data transmission layer switch (such as using an XOR hash algorithm combined with a hash seed, or based on a virtual routing function, etc.), the switch index of the next data transmission layer to which the detection data packet needs to be sent is obtained, thereby achieving efficient forwarding and path optimization of data packets, and improving network transmission efficiency and data processing capabilities.

[0089] In the data transmission process of the data center network, the path identification feature is a set of key features that can uniquely and accurately identify the data packet transmission path. Common path identification features include source port number, destination port number, source IP address, destination IP address, protocol number, etc. In the specific data transmission scenario of this application, the source port number is mainly used as the core path identification feature for routing hash calculation to determine the data packet transmission path. Because in the detection data packet scenario, except for the source port number, the other four-tuple data in the data packet five-tuple data are usually fixed. The change of the source port number can change the output result of the hash function, thereby determining the transmission path. In addition, the path identification feature can also be expanded to other data information according to different network environments and transmission requirements, or combined with the five-tuple data, such as flow labels, part of the source port number, etc. In networks that support IPv6 routing, fields such as IPv6 flow labels can be used to identify different paths, or partial bit segments of the source port number (such as the lower 8 bits or upper 8 bits) can be selected as routing hash calculation parameters to meet the complex path identification requirements under different network environments.

[0090] In one embodiment of the present application, the switch needs to use the path identification feature contained in the detection data packet to perform routing hash calculation. The path identification feature refers to the feature that can control the physical path (i.e., the switch) that the data packet passes through, such as the five-tuple data of the data packet. In this embodiment, since the four-tuple data in the five-tuple data of the detection data packet is fixed and only the source port number changes, the path identification feature is actually the source port number. When performing routing hash calculation, the switch uses a preset hash function to perform hash calculation on the five-tuple data of the detection data packet, as shown in Figure 9. Since the other four-tuple data are fixed, the change of the source port number will cause the change of the hash function output result. Traversing the source port number means combining each source port with the preset four-tuple data to form a five-tuple data, performing hash calculation and outputting the result. Based on the switch corresponding to the output result, the source port is divided into multiple source port number groups.

[0091] In one embodiment of the present application, in addition to using an XOR hash algorithm, a virtual routing function can also be used to perform routing hash calculations. That is, on a certain switch, a routing hash calculation is performed on the path identification features of the detection data packet using a virtual routing function to obtain a hash value, and then the hash value is used to perform a modulo operation (or modular modulo operation) on the number of switches included in the next data transmission layer to obtain the switch index of the next data transmission layer. For example, when performing routing hash calculations on the aggregation layer switch, the hash value output by the virtual routing function is used to perform a modulo operation on the number of core layer switches to obtain the switch index of the core layer.

[0092] In one embodiment of the present application, the switch index and the source port number grouping can be obtained based on different calculation methods. For example, the switch index is obtained based on an XOR hash algorithm, and the source port number grouping can be obtained through a virtual routing function and a regional operation. For example, after a modulo operation, source port numbers with the same remainder are divided into a group.

[0093] In one embodiment of the present application, the path identification feature can be other data information in addition to the quintuple data, or a combination of the quintuple data and other data information, such as a flow tag, part of the source port number, etc. Exemplarily, in a network that supports IPv6 routing, fields such as the flow tag of IPv6 can also be used to identify different paths, that is, the flow tag is used as a parameter for the route hash calculation. In addition, since the source port number has 16 bits, only a partial bit segment of the source port number can be used as a parameter for the route hash calculation, such as using the low 8 bits or high 8 bits, that is, different paths are identified using different low 8 bits (or high 8 bits) of the source port number.

[0094] In one embodiment of the present application, the routing hash information used in the routing hash calculation includes an XOR hash algorithm and a hash seed. The hash seed can be regarded as a parameter input to the XOR hash algorithm. Both the XOR hash algorithm and the hash seed need to be pre-configured for the switch, wherein each switch included in the same data transmission layer needs to be configured with the same routing hash information, and the routing hash information of switches in different data transmission layers may be different. For example, FIG10 schematically shows a schematic diagram of the routing hash information configuration of switches in each layer. It can be seen that the switches in each layer are configured with the same routing hash information, that is, the same XOR hash algorithm and hash seed are configured. Since each switch included in the same data transmission layer is configured with the same routing hash information, the hash calculation output results of each switch in the same data transmission layer for the same detection data packet are the same, so that a relative routing control connecting different paths has a consistent routing result on any switch in the same layer, just as if these paths are on the same switch, to ensure the consistency of the source port grouping of each switch.

[0095] In one embodiment of the present application, considering that there are a large number of source port numbers, when grouping the source port numbers, the grouping of some source port numbers can be calculated first, and then the grouping of other source port numbers can be obtained through the grouping of some source port numbers. This can reduce the sending of detection data packets and improve grouping efficiency. For example, first, a plurality of designated source port numbers that meet the preset conditions are extracted from the multiple source port numbers of the first device, and the hierarchical port number grouping information of the multiple designated source port numbers relative to the various data transmission layers corresponding to the first device is obtained; then, based on the hierarchical port number grouping information of the various data transmission layers corresponding to the multiple designated source port numbers, the hierarchical port number grouping of the various data transmission layers corresponding to the multiple non-designated source port numbers that do not meet the preset conditions among the multiple source port numbers is calculated, wherein the hierarchical port number grouping corresponding to a non-designated source port number is obtained by merging the hierarchical port number groups corresponding to at least two designated source port numbers. The source port number is generally represented by 16-bit binary data. The value of each bit of binary data is one of 0 and 1. The binary bit with a value of 1 is called a valid bit. Then, the specified source port number that meets the preset conditions can be a single-bit valid source port number, that is, in the binary data of the source port number, only one bit has a value of 1, such as the source port numbers 0b0000 0000 0000 0001, 0b000000000 0000 0100, 0b0000 0000 0010 0000, etc. Obviously, the number of specified source port numbers is 16. It can be seen that other non-single-bit valid source port numbers that do not meet the preset conditions can actually be obtained by performing an XOR operation based on these single-bit valid source port numbers. For example, 0b0000 0000 0000 0001 and 0b0000 0000 0000 0010 are XORed to obtain 0b0000 0000 0000 0011 (the XOR operation refers to comparing two numbers in the same position. When the two data are the same, the comparison result is 0, and when the two numbers are different, the comparison result is 1). Thus, the grouping of non-single-bit valid source port numbers that do not meet the preset conditions can also be calculated based on the hierarchical port number grouping information of the single-bit valid source port numbers that meet the preset conditions. Obviously, a grouping of non-single-bit valid source port numbers that do not meet the preset conditions must be calculated from the hierarchical port number grouping information of at least two single-bit valid source port numbers that meet the preset conditions. For example, the hierarchical port number grouping information of at least two designated source port numbers corresponding to the non-designated source port number is XORed to obtain the hierarchical port number grouping information corresponding to the non-designated source port number, and then the hierarchical port number grouping of the non-designated source port number is determined.It should be noted that the hierarchical port number grouping information involved here refers to the information relied upon to determine the hierarchical port number grouping, such as the switch index and switch identifier corresponding to the hierarchical port number, that is, the XOR operation of the hash result output of the aforementioned routing hash calculation, and does not directly refer to the number of the hierarchical port number grouping. For example, the source port number 0b0000 0000 0000 0011 is obtained by performing an XOR operation on the source port number 0b0000 0000 0000 0001 and the source port number 0b0000 0000 0000 0010. Then, the switch index of the source port number 0b0000 0000 0000 0001 and the switch index of the source port number 0b0000 0000 0000 0010 can be XORed to obtain the switch index of the source port number 0b0000 0000 0000 0011, and further obtain the hierarchical port number grouping of the source port number 0b0000 0000 0000 0011.

[0096] Step 720: Cross-combine the hierarchical port number groups of each data transmission layer to obtain multiple combined port number groups.

[0097] Among them, Composite Port Group can refer to a data set formed by deeply fusing multiple hierarchical port number groups using a specific cross-combination algorithm under the advanced path optimization strategy of the data center network. It organically integrates the hierarchical port number groupings of different data transmission layers (such as the hierarchical port number groupings of the spine switch and the hierarchical port number groupings of the core switch, etc.) to form a more complex and comprehensive path mapping relationship. This type of grouping can further tap the potential transmission capacity of the data center network, optimize the data transmission path, ensure a high degree of independence and reliability between different paths, effectively avoid data transmission conflicts, improve network resource utilization, and enable data to be efficiently transmitted along the optimal path in a complex data center network.

[0098] Specifically, after obtaining the hierarchical port number groupings of each data transmission layer, the hierarchical port number groupings of each data transmission layer are cross-combined to obtain combined port number groupings. Here, the hierarchical port number groupings of different data transmission layers are cross-combined. For example, the hierarchical port number groupings of the spine switch are cross-combined with the hierarchical port number groupings of the core switch, the hierarchical port number groupings of the core switch are cross-combined with the hierarchical port number groupings of the leaf switch, and the hierarchical port number groupings of the leaf switch are cross-combined with the hierarchical port number groupings of the spine switch. For example, in an actual network, each Pod has 8 spine switches, each core plane has 8 core switches, and each Rack has 2 leaf switches. Then the number of spine switch hierarchical port number SG groups is 8, the number of core switch hierarchical port number CG groups is 8, and the number of leaf switch hierarchical port number LG groups is 2. When cross-combining, 8 SG groups are cross-combined with 2 LG groups to obtain 16 combined port number groups, which can be recorded as 16 SLG groups (Spine-Leaf Groups). These 16 SLG groups can be further cross-combined with 8 CG groups to obtain 128 SCLG groups (Spine-Core-Leaf Groups).

[0099] In one embodiment of the present application, during data transmission, the selection of switches at the access layer and aggregation layer is more important, while the selection of switches at the core layer is generally irrelevant. Therefore, when performing cross-combination, the cross-combination of the core switch-level port number groups can be ignored, and only the leaf switch-level port number groups and the spine switch-level port number groups can be cross-combined. As in the previous example, 8 SG groups are cross-combined with 2 LG groups to obtain 16 SLG groups. These 16 SLG groups can be processed subsequently. These 16 SLG groups can be represented as SGi*LGj, where i is the SG number, ranging from 1 to 8, and j is the LG group number, ranging from 1 to 2.

[0100] Step 730: Extract the intersection of the source port numbers in the multiple combined port number groups to obtain the sender source port number group corresponding to each combined port number group.

[0101] Specifically, a hierarchical port number group includes multiple source port numbers, and a combined port number group includes multiple hierarchical port number groups. Then, the source port numbers contained in the multiple hierarchical port number groups in the combined port number group are intersected. The resulting source port number is a source port number that meets the requirements of the multiple hierarchical port number groups in the combined port number group. This source port number belongs to the sender source port number group corresponding to the combined port number group. For example, for the combined port number group SG1*LG1, assuming that SG1 includes source port numbers 0-3000 and LG1 includes source port numbers 2000-4000, the sender source port number group obtained after the intersection includes source port numbers 2000-3000.

[0102] Step 740: Configure the source port numbers for multiple forward data transmission paths used by the first device according to the sender source port number grouping, wherein the forward data transmission path is the physical path for the first device to send data to the second device, and the source port numbers configured for different forward data transmission paths belong to different sender source port number groups, and the source ports in the same sender source port number group are configured to the same forward data transmission path.

[0103] Step 750: Send a connection request packet to the second device according to at least one forward data transmission path among the multiple forward data transmission paths after the source port number is configured, so as to establish a data transmission connection with the second device.

[0104] Step 740 to step 750 are the same as step 520 to step 530 in the aforementioned embodiment and are not described again here.

[0105] In the technical solution provided in the embodiment of the present application, the source port number of the first device is obtained and the hierarchical port number grouping of each data transmission layer in the data center network is performed; then the hierarchical port number grouping of each data transmission layer is cross-combined to obtain a plurality of combined port number groups; finally, the intersection of the source port numbers in the plurality of combined port number groups is extracted to obtain the sender source port number grouping corresponding to each combined port number group. This not only reasonably groups the source ports, but also achieves the effect of grouping the source port numbers based on the forward data transmission path. When the source port number of the forward data transmission path is subsequently configured, it can effectively ensure that each forward data transmission path corresponds to a different source port number, thereby reducing the situation where different source port numbers use the same path and increasing the reliability of data transmission.

[0106] Figure 11 schematically shows a flow chart of a data transmission method provided by an embodiment of the present application, which is a further optimization of the above embodiment. As shown in Figure 11, the data transmission method provided by the embodiment of the present application includes the following steps:

[0107] Step 1110: Acquire a sender source port number group of the first device, where the sender source port number group is obtained by grouping the source port number of the first device.

[0108] Step 1120: Configure the source port numbers for multiple forward data transmission paths used by the first device according to the sender source port number grouping, wherein the forward data transmission path is the physical path for the first device to send data to the second device, and the source port numbers configured for different forward data transmission paths belong to different sender source port number groups, and the source ports in the same sender source port number group are configured to the same forward data transmission path.

[0109] For steps 1110 to 1120, reference may be made to the relevant description of steps 510 to 520 in the aforementioned embodiment, or to the relevant description of steps 710 to 740 in the aforementioned embodiment, and will not be repeated here.

[0110] Step 1130: Configure physical sending ports for each forward data transmission path, wherein the physical sending port is a physical port used by the first device to send data, and the difference in the number of forward data transmission paths configured between the physical sending ports of the first device is less than a threshold.

[0111] Specifically, a physical sending port is a physical port, that is, a physical port used by the first device to send data. The physical sending port is also an important feature of a data transmission path, and the physical sending port and the source port number are important identification information of the data transmission path. Exemplarily, FIG12 schematically shows a schematic diagram of a data packet format. As shown in FIG12 , the information of the data packet includes a sending port, an IP header, and a TCP / UDP header. The sending port is the physical sending port. The IP header and the TCP / UDP header contain the five-tuple data of the aforementioned embodiment. The sending port and the source port number in the data packet can be used to determine a physical path. In this embodiment, the physical sending port of the forward data transmission path adopts a uniform configuration method, and the number of forward data transmission paths connected to each physical sending port is not much different, that is, the difference in the number of forward data transmission paths configured between the physical sending ports of the first device is less than a threshold.

[0112] In one embodiment of the present application, the network card of a server in the data center network will have two physical transmission ports, that is, the first device generally includes two physical transmission ports, which are recorded as the first physical transmission port and the second physical transmission port. When configuring the physical transmission ports of each forward data transmission path, the forward data transmission path with an odd path identifier can be configured to the first physical transmission port, and the forward data transmission path with an even path identifier can be configured to the second physical transmission port, so as to achieve interleaving and uniform distribution between the forward data transmission path and the physical transmission port, effectively avoiding too many forward data transmission paths from transmitting data via the same physical transmission port. For example, Figure 13 schematically shows a schematic diagram of the configuration of the physical transmission port. As shown in Figure 13, the forward data transmission path with an odd path identifier is configured to transmission port 1, and the forward data transmission path with an even path identifier is configured to transmission port 2, so as to achieve path-transmission port interleaving. When sending data, the specific path to be used for data transmission is determined by the scheduler. Optionally, when configuring the physical transmit ports, the first N / 2 forward data transmission paths can be bound to the first physical transmit port, while the last N / 2 forward data transmission paths can be bound to the second physical transmit port. Optionally, four paths can be grouped together, with two of the four paths bound to the first physical transmit port and the remaining two bound to the second physical transmit port. For example, if there are eight forward data transmission paths and their physical transmit port numbers are 1 and 2, then the physical transmit port numbers configured for these eight forward data transmission paths are: 1, 1, 2, 2, 1, 1, 2, 2.

[0113] Step 1140: Send a connection request packet to the second device according to at least one forward data transmission path among the multiple forward data transmission paths after configuring the physical sending port and the source port number.

[0114] Specifically, after configuring the physical sending port and the source port number, the connection request packet can be sent to the second device through the forward data transmission path.

[0115] Step 1150: Obtain a request response packet fed back by the second device based on the connection request packet.

[0116] Specifically, after receiving the connection request packet sent by the first device, the second device will generate response information based on the connection request packet, and the response information will be fed back to the second device as a request response packet.

[0117] Step 1160: When the physical receiving port of the request response packet is inconsistent with the physical sending port of the connection request packet, the physical sending port corresponding to the forward data transmission path is updated according to the physical receiving port.

[0118] Specifically, the physical port on the first device that receives the request response packet is called the physical receive port of the request response packet. This physical receive port is one of the physical transmit ports. Generally, the physical receive port and the physical transmit port of the request response packet are the same. If the physical receive port and the physical transmit port are inconsistent, it indicates that the physical port for transmitting data has been modified. In this case, the physical transmit port corresponding to the forward data transmission path is updated based on the physical receive port, that is, the physical transmit port is modified to be the same as the physical receive port.

[0119] In the technical solution provided by the embodiment of the present application, by obtaining the sender source port number group and configuring the source port number of the forward data transmission path, the source port numbers configured by different forward data transmission paths belong to different sender source port number groups, and the source ports in the same sender source port number group are configured to the same forward data transmission path. The forward data transmission data of the logical path in the data center network can be controlled accordingly, that is, the physical path of the logical path is controlled, the logical path can be allowed to take different network physical paths, and each physical path can be allowed to pass through different spine switches, and all paths can be allowed to alternately pass through the leaf switches (2) of the second device, effectively avoiding forward single point failures. By configuring the physical sending port of the forward data transmission path, that is, controlling which (sending side) leaf switch the forward data transmission path will pass through, it is possible to avoid too many forward data transmission paths passing through the same leaf switch for data transmission, so that each physical sending port is load balanced. By detecting the physical receiving port of the request response packet, when it is inconsistent with the physical sending port of the connection request packet, the physical sending port corresponding to the forward data transmission path is updated according to the physical receiving port, thereby effectively avoiding mixed single point failures on the sending side.

[0120] In the above-mentioned data transmission method, the first device obtains the sender source port number group obtained by grouping its own source port number, configures the source port number for multiple forward data transmission paths according to the group, ensures that different paths correspond to different group source port numbers, and the same group source port is configured to the same path, and then sends a connection request packet to the second device based on the path with the configured source port number to establish a data transmission connection. Through such a configuration, the possibility of different logical paths using the same physical path is greatly reduced, because different group source port numbers guide data to different physical paths. This makes data transmission more reliable. Even if a physical path fails, data from other logical paths can continue to be transmitted through different physical paths, ensuring the stable establishment of data transmission connections and improving the performance of the entire data transmission system.

[0121] The steps for obtaining the sender's source port number grouping are refined. First, the hierarchical port number groupings of the first device's source port number at each data transmission layer are obtained. These groups are then cross-combined to obtain multiple combined port number groups. The intersection of the source port numbers within the combined port number groups is then extracted to obtain the sender's source port number grouping. This multi-level grouping and processing approach fully accounts for the complex structure of data center networks, ensuring that the grouping results are more aligned with actual network transmission requirements. Different source port numbers can be more reasonably assigned to different paths, further reducing the likelihood of different source port numbers using the same path. This improves data transmission reliability and efficiency and reduces the occurrence of path conflicts and congestion.

[0122] The source port number is combined with the preset four-tuple data to generate a five-tuple data. Based on this data, a probe packet is generated and sent to the second device. The switch groupings at each layer of the probe packet are used to determine the hierarchical port number groupings. The number of hierarchical port number groupings is correlated with the number of switches in the next data transmission layer. This method closely integrates with the network's physical topology and accurately determines the hierarchical port number groupings for each data transmission layer. This provides an accurate basis for the subsequent generation of the sender's source port number groupings, helps optimize data transmission path configuration, improves data transmission accuracy and stability, and ensures smoother data transmission within the network.

[0123] Clearly determine how the probe packet will traverse each layer of switches. Based on the routing hash information configured on the current layer switch, a routing hash calculation is performed on the probe packet's path identification features to determine the index of the switch at the next data transmission layer. The specific switch is then determined by querying the mapping relationship based on the index. Routing hash calculation and index query accurately plan the path, ensuring that packets are accurately forwarded between switches at each layer along the intended path. This prevents blind packet transmission, improves data transmission accuracy and efficiency, and ensures that data reaches the target device reliably.

[0124] Before performing route hash calculations, all switches in the data transmission layer are configured with the same route hash information, including the route hash function and hash seed. This identical configuration ensures consistent hash calculation results for the same probe packet across all switches in the same data transmission layer, ensuring consistent source port grouping across all switches. This facilitates subsequent control and management of data transmission paths, ensuring orderly and stable data transmission within the network, avoiding path confusion and data loss caused by inconsistent switch processing results, and improving the reliability and efficiency of the entire data transmission system.

[0125] Two methods are provided for calculating the switch index using routing hashes: one based on an XOR hash algorithm and a hash seed, and the other based on a virtual routing function modulo the number of switches in the next data transmission layer. These two different calculation methods provide more options for different network environments and data transmission requirements. Network administrators can choose the most appropriate calculation method based on their actual needs, improving the adaptability of data transmission path planning, better handling complex network conditions, and ensuring efficient and stable data transmission.

[0126] When obtaining hierarchical port number groups, the system first extracts group information for designated source port numbers that meet preset conditions. This information is then used to calculate hierarchical port number groups corresponding to non-designated source port numbers. Each non-designated source port number group is formed by fusing at least two designated source port number groups. This approach reduces the number of probe packets sent and improves grouping efficiency. Furthermore, calculating non-designated source port number groups based on designated source port number groups ensures accurate and comprehensive grouping, helping to optimize data transmission path configuration and improve the efficiency and reliability of the entire data transmission process.

[0127] This paper describes a specific method for calculating the hierarchical port number groupings corresponding to non-specified source port numbers. The method determines the designated source port number that can be XORed with the non-specified source port number and then XORs the corresponding hierarchical port number groupings to obtain the result. The XOR operation is simple and effective, reducing computational complexity and workload while improving grouping efficiency. Grouping calculations based on designated source port numbers ensure the accuracy and completeness of non-specified source port number groupings, enabling better matching of different paths, optimizing data transmission paths, and improving data transmission efficiency and reliability.

[0128] Before sending a connection request packet to the second device, the physical transmit ports of each forward data transmission path are configured so that the difference in the number of forward data transmission paths configured for each physical transmit port on the first device is less than a threshold. The connection request packet is then sent based on the configured paths. By controlling the difference in the number of paths for each physical transmit port, a reasonable arrangement of forward data transmission paths and physical transmit ports is achieved, achieving load balancing across the physical transmit ports. This reduces network congestion and transmission delays caused by overloading a single port, improves data transmission stability and efficiency, and ensures smooth data transmission from the first device to the second device.

[0129] When the first device has first and second physical transmit ports, forward data transmission paths with odd-numbered path identifiers are assigned to the first physical transmit port, and even-numbered paths are assigned to the second physical transmit port. This odd-even allocation method is simple, intuitive, and easy to implement. It quickly and evenly distributes forward data transmission paths to the two physical transmit ports, interweaving the forward data transmission paths with the physical transmit ports. This evenly distributes the data transmission load, improves data transmission efficiency and stability, and ensures efficient and stable data transmission.

[0130] After the first device sends a connection request packet, it receives a request response packet from the second device based on the connection request packet. If the physical receiving port of the request response packet is inconsistent with the physical sending port of the connection request packet, the physical sending port corresponding to the forward data transmission path is updated based on the physical receiving port. Timely updating of the physical sending port ensures the accuracy of the data transmission path, avoids data transmission errors or interruptions caused by port inconsistencies, effectively prevents hybrid single points of failure on the sending side, and ensures the stability and reliability of the data transmission path, allowing for continuous and accurate data transmission between the first and second devices.

[0131] Figure 14 schematically shows a flow chart of a data transmission method provided by an embodiment of the present application, which is applied to a second device. As shown in Figure 14, the data transmission method provided by this embodiment includes steps 1410 to 1430, which are as follows:

[0132] Step 1410: Acquire a connection request packet sent by the first device and a receiver source port number group obtained by grouping the source port number of the second device.

[0133] In the data reception phase of the data center network, the receiving source port group (Receiving Source Port Group) can be a set of port numbers generated from the source port numbers of the second device according to established rules. The generation process is similar to that of the sender, forming multiple independent subsets by cross-combining and extracting the intersection of the hierarchical port number groups of each transport layer. These subsets assign source ports to different reverse data transmission paths, ensuring that different reverse paths use different source port numbers, improving data transmission reliability, and ensuring that data is returned safely, stably, and accurately from the receiving end to the sending end.

[0134] Specifically, the connection request packet is sent by the first device through the forward data transmission path. The method for obtaining the source port number packet of the receiver is similar to the method for obtaining the source port number packet of the sender in the aforementioned embodiment, which will not be repeated here.

[0135] Step 1420: Configure the source port numbers of multiple reverse data transmission paths used by the second device according to the receiving party source port number grouping, wherein the reverse data transmission path is the physical path for the second device to send data to the first device, and the source port numbers configured for different reverse data transmission paths belong to different receiving party source port number groups. The source ports in the same receiving party source port number group are configured to the same reverse data transmission path.

[0136] Specifically, corresponding to the forward data transmission path, the physical path for the second device to send data to the first device is called the reverse data transmission path. The source port number configuration process for the reverse data transmission path is similar to that for the forward data transmission path and will not be repeated here.

[0137] Step 1430: Send a request response packet to the first device according to at least one reverse data transmission path among the multiple reverse data transmission paths after the source port number is configured, so as to establish a data transmission connection with the first device.

[0138] Specifically, the second device feeds back the request response packet to the first device through the reverse data transmission path. This process is similar to the process of the first device sending the connection request packet through the forward data transmission path, and will not be repeated here.

[0139] It can be understood that, unless otherwise specified, the various steps in the data transmission method applied on the second device side are similar to the various steps in the data transmission method applied on the first device side. Therefore, the implementation process of the relevant steps can refer to the description in the various embodiments of the aforementioned data transmission method on the first device side, and will not be repeated in this embodiment.

[0140] In the technical solution provided in the embodiment of the present application, the second device configures the source port number of the reverse data transmission path through the receiving party source port number grouping, which can control the reverse data transmission path of the logical path in the data center network, and can make the logical path take different network physical paths, and can make each reverse data transmission path pass through a different spine switch, and let all reverse data transmission paths alternately pass through the leaf switches (2) of the first device, effectively avoiding reverse single point failure and improving the reliability of data transmission.

[0141] In one embodiment of the present application, after receiving a connection request packet, the second device configures the physical sending port of the reverse data transmission path based on the physical receiving port of the connection request packet, wherein the physical receiving port of the connection request packet is the same as the physical sending port of the reverse data transmission path. Then, based on at least one of the multiple reverse data transmission paths after configuring the physical sending port and source port number, the second device sends a request response packet to the first device. On the second device side, it is necessary to ensure that the physical port for receiving data is consistent with the physical port for sending data (the same path), that is, the physical sending port of the reverse data transmission path is set to the physical receiving port of the connection request packet to avoid hybrid single point failure on the receiving side.

[0142] After receiving a connection request packet from the first device based on multiple forward data transmission paths configured with a source port number, the second device reversely arranges a reverse data transmission path from itself to the first device based on the source port number and path information in the connection request packet, combined with its pre-stored network topology, routing rules, and other information. It then sends a request response packet to the first device via this arranged reverse data transmission path. Because the reverse path is arranged based on the connection request information and its own global network information, it can avoid congested links and faulty nodes, allowing the request response packet to reach the first device more efficiently and stably, speeding up the establishment of the data transmission connection and enhancing the reliability of data exchange.

[0143] When the first device transmits data through multiple forward data transmission paths configured with the source port number, it continuously monitors the performance indicators of these paths. If the performance indicator of a forward data transmission path falls below a pre-set threshold, the first device immediately selects a suitable path from the pre-configured backup paths, switches the data transmission task from the poorly performing path to the backup path, and promptly notifies the second device of the path switch information so that the second device can simultaneously update its reverse data transmission path. This real-time monitoring and dynamic path switching mechanism promptly responds to path anomalies, prevents data transmission from being affected, and ensures continuous and stable data transmission. Furthermore, the paths of both communicating parties are synchronously matched to avoid data transmission errors or interruptions, improving the fault tolerance and adaptability of the entire data transmission system.

[0144] The following describes the implementation effect of the technical solution of the present application by combining the first device and the second device.

[0145] The implementation process for source port number grouping for the first device and the second device is identical. Therefore, source port number grouping can be pre-executed uniformly by a designated module. During actual data transmission, the first and second devices can each obtain the corresponding source port number grouping from the designated module for configuration. Therefore, the technical solution of this application can be divided into two parts: a controller pre-configuration transaction and a server runtime transaction, as shown in Figure 15. The controller pre-configuration transaction includes switch configuration, detecting source port number grouping at each layer, and generating cross-grouping. Switch configuration involves configuring routing hash information for switches at each data transmission layer in the data center network, ensuring that switches at the same data transmission layer are configured with the same routing hash information. Detecting source port number grouping at each layer involves obtaining the hierarchical port number grouping of the source port number of the first device at each data transmission layer in the data center network through probing packets. Generating cross-grouping involves cross-combining the hierarchical port number groupings at each data transmission layer to obtain multiple combined port number groupings; then, extracting the intersection of the source port numbers in the multiple combined port number groupings to obtain the sender source port number grouping corresponding to each combined port number grouping. The controller pre-configuration transaction only needs to be performed once when the system of this solution is enabled, rather than upon each connection establishment.

[0146] Server runtime transactions are transactions that occur during each connection establishment. Server runtime transactions include connection creation, handshake synchronization between the two devices, and data transmission. Creating a connection refers to establishing a data transmission connection between a first device and a second device. The connection creation process is shown in Figure 16. First, the client (i.e., the first device) orchestrates the forward path. This involves configuring the source port number and physical send port for the forward data transmission path based on the sender's source port number grouping. A connection request packet is then sent along each forward data transmission path. After receiving the link establishment request, the server (i.e., the second device) detects the inbound port of the connection request packet (i.e., the physical receiving port of the connection request packet) and configures the physical send port for the reverse data transmission path based on each inbound port. Simultaneously, the server requests the controller for the receiver's source port number grouping information, orchestrates the reverse path, and sends a request response packet along each path. The client detects the path inbound port and modifies the forward path orchestration. This involves detecting the physical receiving port of the request response packet. If the physical receiving port and the physical send port of the connection request packet are inconsistent, the server updates the physical send port corresponding to the forward data transmission path based on the physical receiving port.

[0147] The technical solution of the present application is applied to the transmission protocol stack of the data center network, which is composed of network-side components and end-side components. As shown in Figure 17, the network-side component includes a source port number grouping controller to implement switch configuration and source port number grouping detection. The end-side component works in the server, mainly working in the transport layer, and is implemented in the multi-path transmission protocol stack. The specific implementation point is to control the sending port of the path and its physical path in the network at all connected endpoints (including the client and the server). As shown in Figure 18, the server includes a physical layer, a transport layer, a transport interface layer, and an application layer. The technical solution of the present application is applied to the transport layer.

[0148] When a connection uses two physical paths, Figure 6 shows the effect diagram of the technical solution of the present application. It can be seen from Figure 6 that under any LA single point failure, the forward and reverse data transmission paths can ensure that at least one path survives. Of course, in some cases, the two physical path scenario still has the risk of LC / CUF single point failure. As shown in Figure 19A, the forward and reverse data transmission paths pass through the same core layer switch or aggregation layer switch. In this scenario, if the risk of LC / CUF single point failure is to be eliminated, the symmetric hash function of the switch is also required, that is, after the source and destination IP in a five-tuple are exchanged, the hash result remains unchanged. Figure 19B is the effect of a connection using four physical paths. When the connection uses four or more paths, this solution can eliminate the risk of single point failure of any switch. When one switch fails, the connection of the existing solution has a probability of less than 50% to survive (all single point failure scenarios need to be avoided), and there is a probability of more than 50% that the connection will be interrupted (encountering a single point failure, see Figures 4A-4D). This solution can ensure that when a switch fails, at least half of the paths of each connection can survive, thereby ensuring that the entire connection will not be interrupted and improving the reliability of data transmission.

[0149] It should be noted that although the steps of the method of the present application are described in a specific order in the drawings, this does not require or imply that the steps must be performed in this specific order, or that all steps must be performed to achieve the desired results. Additionally or alternatively, some steps may be omitted, multiple steps may be combined into one step, and / or one step may be decomposed into multiple steps.

[0150] The following describes an embodiment of the device of the present application, which can be used to execute the data transmission method in the above embodiment of the present application. Figure 20 schematically shows a block diagram of the structure of the data transmission device provided in the embodiment of the present application. As shown in Figure 20, the data transmission device provided in the embodiment of the present application includes:

[0151] a port number group acquiring module, configured to acquire a sender source port number group of a first device, wherein the sender source port number group is obtained by grouping source port numbers of the first device;

[0152] a port number configuration module, configured to configure source port numbers for multiple forward data transmission paths used by the first device according to the sender source port number grouping, wherein the forward data transmission path is a physical path for the first device to send data to the second device, the source port numbers configured for different forward data transmission paths belong to different sender source port number groups, and the source ports in the same sender source port number group are configured to the same forward data transmission path;

[0153] The request packet sending module is used to send a connection request packet to the second device according to at least one forward data transmission path among the multiple forward data transmission paths after the source port number is configured, so as to establish a data transmission connection with the second device.

[0154] In one embodiment of the present application, the port number group acquisition module is specifically used to:

[0155] Obtaining hierarchical port number groups of the source port number of the first device at each data transmission layer in the data center network;

[0156] Cross-combining the hierarchical port number groups of each data transmission layer to obtain a plurality of combined port number groups;

[0157] The intersection of the source port numbers in the plurality of combined port number groups is extracted to obtain a sender source port number group corresponding to each of the combined port number groups.

[0158] In one embodiment of the present application, the port number group acquisition module is specifically configured to: combine the source port number of the first device with preset four-tuple data to generate five-tuple data, and generate a detection data packet based on the five-tuple data;

[0159] Sending the probe data packet to the second device to determine switches at each data transmission layer in the data center network through which the probe data packet passes to reach the second device;

[0160] The switch group where the switches of each data transmission layer are located is used as the source port number contained in the detection data packet relative to the hierarchical port number group of each data transmission layer; wherein the number of hierarchical port number groups corresponding to the data transmission layer is the number of switches included in the next data transmission layer connected to the data transmission layer; one switch of the data transmission layer and one switch of the next data transmission layer represent a switch group of the data transmission layer.

[0161] In one embodiment of the present application, the port number group acquisition module is specifically used to:

[0162] Performing a routing hash calculation on the path identification feature contained in the probe data packet based on the routing hash information configured by the switch of the current data transmission layer to obtain the switch index of the next data transmission layer to which the probe data packet is to be sent; wherein the path identification feature is used to determine the switch of the next data transmission layer;

[0163] The switch index mapping relationship is queried according to the switch index of the next data transmission layer to which the detection data packet needs to be sent, and the switch of the next data transmission layer to which the detection data packet needs to be sent is determined.

[0164] In one embodiment of the present application, the port number group acquisition module is specifically used to: configure routing hash information for switches at each data transmission layer in the data center network, wherein switches at the same data transmission layer are configured with the same routing hash information, and the routing hash information includes the routing hash function and hash seed used by the switch.

[0165] In one embodiment of the present application, the port number group acquisition module is specifically used to: perform a routing hash calculation on the path identification feature contained in the probe data packet based on the XOR hash algorithm and hash seed configured by the switch of the current data transmission layer, and obtain the switch index of the next data transmission layer to which the probe data packet needs to be sent; or

[0166] Based on the virtual routing function configured by the switch of the current data transmission layer, a routing hash calculation is performed on the path identification feature contained in the detection data packet to obtain a hash value corresponding to the detection data packet; the hash value corresponding to the detection data packet is modulo the number of switches included in the next data transmission layer to obtain the switch index of the next data transmission layer to which the detection data packet needs to be sent.

[0167] In one embodiment of the present application, the port number group acquisition module is specifically configured to: extract a plurality of designated source port numbers that meet preset conditions from a plurality of source port numbers of the first device, and obtain hierarchical port number grouping information of the plurality of designated source port numbers relative to each data transmission layer corresponding to the first device;

[0168] According to the hierarchical port number grouping information of each data transmission layer corresponding to the multiple designated source port numbers, the hierarchical port number groupings of each data transmission layer corresponding to the multiple non-designated source port numbers that do not meet the preset conditions among the multiple source port numbers are calculated, wherein the hierarchical port number grouping corresponding to a non-designated source port number is obtained by merging the hierarchical port number groups corresponding to at least two designated source port numbers.

[0169] In one embodiment of the present application, the port number group acquisition module is specifically used to:

[0170] Determine at least two designated source port numbers corresponding to the non-designated source port number, wherein the non-designated source port number can be obtained by an exclusive-OR operation of the at least two designated source port numbers;

[0171] An exclusive OR operation is performed on the hierarchical port number groups corresponding to the at least two designated source port numbers to obtain a hierarchical port number group corresponding to the non-designated source port number.

[0172] In one embodiment of the present application, the request packet sending module is specifically configured to:

[0173] Configuring a physical sending port for each forward data transmission path, wherein the physical sending port is a physical port used by the first device to send data, and a difference in the number of forward data transmission paths configured between the physical sending ports of the first device is less than a threshold;

[0174] A connection request packet is sent to the second device according to at least one forward data transmission path among the multiple forward data transmission paths after the physical sending port and the source port number are configured.

[0175] In one embodiment of the present application, the first device includes a first physical sending port and a second physical sending port; and the request packet sending module is specifically configured to:

[0176] A forward data transmission path with an odd path identifier is configured to the first physical transmission port, and a forward data transmission path with an even path identifier is configured to the second physical transmission port.

[0177] In one embodiment of the present application, the apparatus further comprises:

[0178] A physical port update module is used to obtain a request response packet fed back by the second device based on the connection request packet: when the physical receiving port of the request response packet is inconsistent with the physical sending port of the connection request packet, the physical sending port corresponding to the forward data transmission path is updated according to the physical receiving port.

[0179] Figure 21 schematically shows a block diagram of the structure of the data transmission device provided in an embodiment of the present application. As shown in Figure 21, the data transmission device provided in an embodiment of the present application includes:

[0180] a port number group acquisition module, configured to acquire a connection request packet sent by the first device and a receiver source port number group obtained by grouping the source port number of the second device;

[0181] a port number configuration module, configured to configure source port numbers for multiple reverse data transmission paths used by the second device according to the receiver source port number group, wherein the reverse data transmission path is a physical path for the second device to send data to the first device, the source port numbers configured for different reverse data transmission paths belong to different receiver source port number groups, and the source ports in the same receiver source port number group are configured to the same reverse data transmission path;

[0182] The response packet sending module is used to send a request response packet to the first device according to at least one reverse data transmission path among the multiple reverse data transmission paths after the source port number is configured, so as to establish a data transmission connection with the first device.

[0183] In one embodiment of the present application, the response packet sending module is specifically configured to:

[0184] configuring a physical sending port of a reverse data transmission path according to a physical receiving port of the connection request packet, wherein the physical receiving port of the connection request packet is the same as the physical sending port of the reverse data transmission path;

[0185] A request response packet is sent to the first device according to at least one reverse data transmission path among the multiple reverse data transmission paths after the physical sending port and the source port number are configured.

[0186] The specific details of the data transmission device provided in each embodiment of the present application have been described in detail in the corresponding method embodiments and will not be repeated here.

[0187] FIG22 schematically shows a block diagram of a computer system structure of an electronic device for implementing an embodiment of the present application.

[0188] It should be noted that the computer system 2200 of the electronic device shown in FIG22 is merely an example and should not impose any limitations on the functions and scope of use of the embodiments of the present application.

[0189] As shown in Figure 22, the computer system 2200 includes a central processing unit (CPU) 2201, which can perform various appropriate actions and processes according to the program stored in the read-only memory (ROM) 2202 or the program loaded from the storage part 2208 into the random access memory (RAM) 2203. Various programs and data required for system operation are also stored in the random access memory 2203. The CPU 2201, the read-only memory 2202, and the random access memory 2203 are connected to each other via a bus 2204. An input / output interface 2205 (i.e., an I / O interface) is also connected to the bus 2204.

[0190] The following components are connected to the input / output interface 2205: an input section 2206 including a keyboard, a mouse, and the like; an output section 2207 including devices such as a cathode ray tube (CRT), a liquid crystal display (LCD), and a speaker; a storage section 2208 including a hard disk; and a communication section 2209 including a network interface card such as a local area network card or a modem. The communication section 2209 performs communication processing via a network such as the Internet. A drive 2210 is also connected to the input / output interface 2205 as needed. Removable media 2211, such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory, is installed in the drive 2210 as needed, so that computer programs read therefrom can be installed into the storage section 2208 as needed.

[0191] In particular, according to an embodiment of the present application, the processes described in the various method flow charts can be implemented as computer software programs. For example, an embodiment of the present application includes a computer program product comprising a computer program carried on a computer-readable medium, the computer program containing program code for executing the methods shown in the flow charts. In such an embodiment, the computer program can be downloaded and installed from a network via the communication section 2209 and / or installed from a removable medium 2211. When the computer program is executed by the central processing unit 2201, the various functions defined in the system of the present application are performed.

[0192] It should be noted that the computer-readable medium shown in the embodiments of the present application may be a computer-readable signal medium or a computer-readable storage medium or any combination of the two. The computer-readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or component, or any combination of the above. More specific examples of computer-readable storage media may include, but are not limited to: an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM), a 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 above. In the present application, a computer-readable storage medium may be any tangible medium containing or storing a program that can be used by or in combination with an instruction execution system, device or device. In the present application, a computer-readable signal medium may include a data signal propagated in baseband or as part of a carrier wave, which carries a computer-readable program code. Such propagated data signals may take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. A computer-readable signal medium may also be any computer-readable medium other than a computer-readable storage medium that can transmit, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer-readable medium may be transmitted using any suitable medium, including but not limited to wireless, wired, or any suitable combination thereof.

[0193] The flowcharts and block diagrams in the accompanying drawings illustrate the possible implementation architecture, functions and operations of the systems, methods and computer program products according to various embodiments of the present application. In this regard, each box in the flowchart or block diagram can represent a module, program segment, or a part of code, and the above-mentioned module, program segment, or a part of code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the box can also occur in an order different from that marked in the accompanying drawings. For example, two boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram or flowchart, and the combination of the boxes in the block diagram or flowchart, can be implemented with a dedicated hardware-based system that performs the specified function or operation, or can be implemented with a combination of dedicated hardware and computer instructions.

[0194] It should be noted that, although several modules or units of the device for action execution are mentioned in the above detailed description, this division is not mandatory. In fact, according to the embodiment of the application, the features and functions of two or more modules or units described above can be concretized in one module or unit. On the contrary, the features and functions of one module or unit described above can be further divided into multiple modules or units to be concretized.

[0195] Through the description of the above embodiments, it is easy for those skilled in the art to understand that the example embodiments described herein can be implemented by software or by combining software with necessary hardware. Therefore, the technical solution according to the embodiments of the present application can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (which can be a CD-ROM, a USB flash drive, a mobile hard disk, etc.) or on a network, and includes several instructions to enable a computing device (which can be a personal computer, a server, a touch terminal, or a network device, etc.) to execute the method according to the embodiments of the present application.

[0196] Those skilled in the art will readily appreciate other embodiments of the present invention after considering the specification and practicing the invention disclosed herein. This application is intended to cover any variations, uses, or adaptations of the present invention that follow the general principles of this application and include common knowledge or customary techniques in the art not disclosed herein.

[0197] It should be understood that the present application is not limited to the exact structures described above and shown in the drawings, and that various modifications and changes may be made without departing from the scope thereof. The scope of the present application is limited only by the appended claims.

[0198] The technical features of the above embodiments can be combined arbitrarily. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.

[0199] The above-described embodiments merely represent several implementation methods of the present application. While the descriptions are relatively specific and detailed, they should not be construed as limiting the scope of the present invention. It should be noted that a person skilled in the art could make various modifications and improvements without departing from the spirit of the present application, all of which fall within the scope of protection of the present application. Therefore, the scope of protection of the present patent application shall be determined by the appended claims.

Claims

1. A data transmission method, performed by a first device, comprising: Acquire a sender source port number group of the first device, where the sender source port number group is obtained by grouping the source port number of the first device; configuring source port numbers for multiple forward data transmission paths used by the first device according to the sender source port number grouping, wherein the forward data transmission path is a physical path for the first device to send data to the second device, source port numbers configured for different forward data transmission paths belong to different sender source port number groups, and source ports in the same sender source port number group are configured to the same forward data transmission path; and According to at least one forward data transmission path among the plurality of forward data transmission paths after the source port number is configured, a connection request packet is sent to the second device to establish a data transmission connection with the second device.

2. The data transmission method according to claim 1, wherein obtaining the sender source port number packet of the first device comprises: Obtaining hierarchical port number groups of the source port number of the first device at each data transmission layer in the data center network; Cross-combining the hierarchical port number groups of each data transmission layer to obtain a plurality of combined port number groups; The intersection of the source port numbers in the plurality of combined port number groups is extracted to obtain a sender source port number group corresponding to each of the combined port number groups.

3. The data transmission method according to claim 2, wherein obtaining the hierarchical port number grouping of the source port number of the first device at each data transmission layer in the data center network comprises: Combining the source port number of the first device with preset four-tuple data to generate five-tuple data, and generating a detection data packet based on the five-tuple data; Sending the probe data packet to the second device to determine switches at each data transmission layer in the data center network through which the probe data packet passes to reach the second device; The switch group where the switches of each data transmission layer are located is used as the source port number contained in the detection data packet relative to the hierarchical port number group of each data transmission layer; wherein the number of hierarchical port number groups corresponding to the data transmission layer is the number of switches included in the next data transmission layer connected to the data transmission layer; one switch of the data transmission layer and one switch of the next data transmission layer represent a switch group of the data transmission layer.

4. The data transmission method according to claim 3, wherein determining switches at each data transmission layer in the data center network through which the probe data packet passes to reach the second device comprises: Performing a routing hash calculation on the path identification feature contained in the probe data packet based on the routing hash information configured by the switch of the current data transmission layer to obtain the switch index of the next data transmission layer to which the probe data packet is to be sent; wherein the path identification feature is used to determine the switch of the next data transmission layer; The switch index mapping relationship is queried according to the switch index of the next data transmission layer to which the detection data packet needs to be sent, and the switch of the next data transmission layer to which the detection data packet needs to be sent is determined.

5. The data transmission method according to claim 4, before performing routing hash calculation on the path identification feature contained in the detection data packet based on routing hash information configured by the switch of the current data transmission layer, the method further comprises: Routing hash information is configured for switches at each data transmission layer in the data center network, wherein switches at the same data transmission layer are configured with the same routing hash information, and the routing hash information includes a routing hash function and a hash seed used by the switch.

6. The data transmission method according to claim 4 or 5, performing a routing hash calculation on the path identification feature contained in the probe packet based on routing hash information configured by the switch of the current data transmission layer to obtain the switch index of the next data transmission layer to which the probe packet is to be sent, comprising: Performing a routing hash calculation on the path identification feature contained in the probe packet based on the XOR hash algorithm and hash seed configured for the switch of the current data transmission layer to obtain the switch index of the next data transmission layer to which the probe packet is to be sent; or Based on the virtual routing function configured by the switch of the current data transmission layer, a routing hash calculation is performed on the path identification feature contained in the detection data packet to obtain a hash value corresponding to the detection data packet; the hash value corresponding to the detection data packet is modulo the number of switches included in the next data transmission layer to obtain the switch index of the next data transmission layer to which the detection data packet needs to be sent.

7. The data transmission method according to any one of claims 2 to 6, wherein obtaining the hierarchical port number grouping of the source port number of the first device at each data transmission layer in the data center network comprises: Extracting a plurality of designated source port numbers that meet preset conditions from a plurality of source port numbers of the first device, and obtaining hierarchical port number grouping information of the plurality of designated source port numbers relative to each data transmission layer corresponding to the first device; According to the hierarchical port number grouping information of each data transmission layer corresponding to the multiple designated source port numbers, the hierarchical port number groupings of each data transmission layer corresponding to the multiple non-designated source port numbers that do not meet the preset conditions among the multiple source port numbers are calculated, wherein the hierarchical port number grouping corresponding to a non-designated source port number is obtained by merging the hierarchical port number groups corresponding to at least two designated source port numbers.

8. The data transmission method according to claim 7, wherein, based on the hierarchical port number groups of the respective data transmission layers corresponding to the plurality of designated source port numbers, calculating the hierarchical port number groups of the respective data transmission layers corresponding to the plurality of non-designated source port numbers that do not meet the preset conditions among the plurality of source port numbers comprises: Determine at least two designated source port numbers corresponding to the non-designated source port number, wherein the non-designated source port number can be obtained by an exclusive-OR operation of the at least two designated source port numbers; An exclusive OR operation is performed on the hierarchical port number groups corresponding to the at least two designated source port numbers to obtain a hierarchical port number group corresponding to the non-designated source port number.

9. The data transmission method according to any one of claims 1 to 8, wherein the step of sending a connection request packet to the second device according to at least one of the plurality of forward data transmission paths after configuring the source port number comprises: Configuring a physical sending port for each forward data transmission path, wherein the physical sending port is a physical port used by the first device to send data, and a difference in the number of forward data transmission paths configured between the physical sending ports of the first device is less than a threshold; A connection request packet is sent to the second device according to at least one forward data transmission path among the multiple forward data transmission paths after the physical sending port and the source port number are configured.

10. The data transmission method according to claim 9, wherein the first device comprises a first physical transmission port and a second physical transmission port; configuring the physical transmission port of each forward data transmission path comprises: A forward data transmission path with an odd path identifier is configured to the first physical transmission port, and a forward data transmission path with an even path identifier is configured to the second physical transmission port.

11. The data transmission method according to claim 9 or 10, after sending a connection request packet to the second device according to at least one forward data transmission path among the plurality of forward data transmission paths after configuring the physical transmission port and the source port number, the method further comprises: Obtain a request response packet fed back by the second device based on the connection request packet: When the physical receiving port of the request response packet is inconsistent with the physical sending port of the connection request packet, the physical sending port corresponding to the forward data transmission path is updated according to the physical receiving port.

12. A data transmission method, performed by a second device, the method comprising: Obtaining a connection request packet sent by the first device and a receiver source port number group obtained by grouping the source port number of the second device; configuring source port numbers for multiple reverse data transmission paths used by the second device according to the receiver source port number group, wherein the reverse data transmission path is a physical path for the second device to send data to the first device, source port numbers configured for different reverse data transmission paths belong to different receiver source port number groups, and source ports in the same receiver source port number group are configured to the same reverse data transmission path; and According to at least one reverse data transmission path among the plurality of reverse data transmission paths after the source port number is configured, a request response packet is sent to the first device to establish a data transmission connection with the first device.

13. The data transmission method according to claim 12, wherein the step of sending a request response packet to the first device according to at least one of the plurality of reverse data transmission paths after configuring the source port number comprises: configuring a physical sending port of a reverse data transmission path according to a physical receiving port of the connection request packet, wherein the physical receiving port of the connection request packet is the same as the physical sending port of the reverse data transmission path; A request response packet is sent to the first device according to at least one reverse data transmission path among the multiple reverse data transmission paths after the physical sending port and the source port number are configured.

14. A data transmission device, applied to a first device, comprising: a port number group acquiring module, configured to acquire a sender source port number group of a first device, wherein the sender source port number group is obtained by grouping source port numbers of the first device; a port number configuration module, configured to configure source port numbers for multiple forward data transmission paths used by the first device according to the sender source port number grouping, wherein the forward data transmission path is a physical path for the first device to send data to the second device, the source port numbers configured for different forward data transmission paths belong to different sender source port number groups, and the source ports in the same sender source port number group are configured to the same forward data transmission path; and The request packet sending module is used to send a connection request packet to the second device according to at least one forward data transmission path among the multiple forward data transmission paths after the source port number is configured, so as to establish a data transmission connection with the second device.

15. A data transmission device, applied to a second device, comprising: a port number group acquisition module, configured to acquire a connection request packet sent by the first device and a receiver source port number group obtained by grouping the source port number of the second device; a port number configuration module, configured to configure source port numbers for multiple reverse data transmission paths used by the second device according to the receiver source port number group, wherein the reverse data transmission path is a physical path for the second device to send data to the first device, the source port numbers configured for different reverse data transmission paths belong to different receiver source port number groups, and the source ports in the same receiver source port number group are configured to the same reverse data transmission path; and The response packet sending module is used to send a request response packet to the first device according to at least one reverse data transmission path among the multiple reverse data transmission paths after the source port number is configured, so as to establish a data transmission connection with the first device.

16. A computer-readable medium having a computer program stored thereon, wherein when the computer program is executed by a processor, the data transmission method according to any one of claims 1 to 11 or 12 to 13 is implemented.

17. An electronic device comprising: processor; as well as a memory for storing executable instructions of the processor; The processor executes the executable instructions so that the electronic device executes the data transmission method described in any one of claims 1-11 or 12-13.

18. A computer program product comprising computer instructions stored in a computer-readable storage medium; The processor of the computer device reads and executes the computer instructions from the computer-readable storage medium, so that the computer device executes the data transmission method according to any one of claims 1 to 11 or 12 to 13.

Citation Information

Patent Citations

  • Multi-path transmission method and device, computer equipment and storage medium

    CN116846816A

  • Data transmission method and related equipment

    CN117221230A

  • Data transmission method and device, computer readable medium and electronic equipment

    CN118869591A

  • Data processing method, data transmission method, and related device

    WO2022067791A1

Cited By

  • Data packet processing method, system and device and storage medium

    CN121486281A