Data transmission method, device, computer readable medium and electronic device
By configuring the source port number of the data transmission path in the data center network, the problem that different port numbers in the prior art may correspond to the same path is solved, and the reliability and service quality of data transmission are improved.
Patent Information
- Application Number
- CN202410267546.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-03-08
- Publication Date
- 2025-06-06
- Estimated Expiration
- 2044-03-08
AI Technical Summary
In existing data center networks, random configuration of data transmission paths causes different port numbers to correspond to the same path, resulting in reduced reliability for the entire data transmission in the event of path failure.
By obtaining the source port number packets of the data sender and receiver, the source port number is configured for multiple forward and reverse data transmission paths, so that the source port numbers corresponding to different paths belong to different packets, thereby reducing the use of the same path.
It improves the reliability of data transmission, avoids the serious impact of path failure on data transmission, and enhances the service quality of data center network.
Smart Images

Figure CN118869591B_ABST
Abstract
Description
Technical Field
[0001] 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
[0002] At present, most of the data in the Internet relies on data center networks for storage, computing, and exchange. The data processing capabilities of data center networks will affect the quality of Internet services. In order to improve data processing capabilities, data transmission in data center networks mostly adopts equal-cost multi-path mode, that is, there are multiple physical paths between any pair of server nodes in the data center network, and these paths are often of equal length. Then one or more paths are selected from multiple equal-length paths, and random port numbers are configured for them before data transmission. However, since this solution does not specifically control the path, different port numbers may correspond to the same path. When a path fails, it will have a serious impact on the entire data transmission, thereby reducing the reliability of data transmission. Summary of the invention
[0003] The purpose of the present application is to provide a data transmission method, device, computer-readable medium and electronic device to reduce the occurrence of different port numbers using the same path and increase the reliability of data transmission.
[0004] Other features and advantages of the present application will become apparent from the following detailed description, or may be learned in part by the practice of the present application.
[0005] According to one aspect of an embodiment of the present application, a data transmission method is provided, which is applied to a data sender, including:
[0006] Acquire a sender source port number group of a data sender, wherein the sender source port number group is obtained by grouping the source port number of the data sender;
[0007] According to the sender source port number grouping, source port numbers are configured for multiple forward data transmission paths corresponding to the data sender, wherein the forward data transmission path is a physical path for the data sender to send data to the data receiver, source port numbers corresponding 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 correspond to the same forward data transmission path;
[0008] A connection request packet is sent to the data receiving party according to the forward data transmission path after the source port number is configured, so as to establish a data transmission connection with the data receiving party.
[0009] According to one aspect of an embodiment of the present application, a data transmission method is provided, which is applied to a data receiving party, including:
[0010] Acquire the connection request packet sent by the data sender and the receiver source port number grouping obtained by grouping the source port number of the data receiver;
[0011] According to the receiving party source port number grouping, source port numbers are configured for multiple reverse data transmission paths corresponding to the data receiving party, wherein the reverse data transmission path is a physical path for the data receiving party to send data to the data sending party, source port numbers corresponding to different reverse data transmission paths belong to different receiving party source port number groups, and source ports in the same receiving party source port number group correspond to the same reverse data transmission path;
[0012] A request response packet is sent to the data sender according to the reverse data transmission path after the source port number is configured, so as to establish a data transmission connection with the data sender.
[0013] According to one aspect of an embodiment of the present application, there is provided a data transmission device, including:
[0014] A port number group acquisition module, used to acquire a sender source port number group of a data sender, wherein the sender source port number group is obtained by grouping the source port number of the data sender;
[0015] A port number configuration module, configured to perform source port number configuration on multiple forward data transmission paths corresponding to the data sender according to the sender source port number grouping, wherein the forward data transmission path is a physical path for the data sender to send data to the data receiver, source port numbers corresponding to different forward data transmission paths belong to different sender source port number groups, and source ports in the same sender source port number grouping correspond to the same forward data transmission path;
[0016] The request packet sending module is used to send a connection request packet to the data receiving party according to the forward data transmission path after the source port number is configured, so as to establish a data transmission connection with the data receiving party.
[0017] In one embodiment of the present application, the port number group acquisition module is specifically used to:
[0018] Obtaining hierarchical port number grouping of the source port number of the data sender at each data transmission layer in the data center network;
[0019] Cross-combining the hierarchical port number groups of each data transmission layer to obtain a plurality of combined port number groups;
[0020] The intersection of the source port numbers in the multiple combined port number groups is extracted to obtain the sender source port number group corresponding to each of the combined port number groups.
[0021] In one embodiment of the present application, the port number group acquisition module is specifically used to: combine the source port number of the data sender with the preset four-tuple data to generate five-tuple data, and generate a detection data packet based on the five-tuple data;
[0022] Sending the detection data packet to the data receiver to determine switches of each data transmission layer in the data center network through which the detection data packet passes to reach the data receiver;
[0023] The switch group to which the switches of each data transmission layer belong is used as the source port number contained in the detection 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 included in the next data transmission layer connected to the data transmission layer; a switch of the data transmission layer and a switch of the next data transmission layer represent a switch group of the data transmission layer.
[0024] In one embodiment of the present application, the port number group acquisition module is specifically used to:
[0025] Based on the routing hash information 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 the switch index of the next data transmission layer to which the detection data packet needs to be sent; wherein the path identification feature is used to determine the switch of the next data transmission layer;
[0026] 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.
[0027] 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 a routing hash function and a hash seed used by the switch.
[0028] In one embodiment of the present application, the port number group acquisition module is specifically used to: perform routing hash calculation on the path identification feature contained in the detection 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 detection data packet needs to be sent; or
[0029] 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.
[0030] In one embodiment of the present application, the port number group acquisition module is specifically used to: extract multiple designated source port numbers that meet preset conditions from multiple source port numbers of the data sender, and obtain hierarchical port number grouping information of the multiple designated source port numbers relative to each data transmission layer corresponding to the data sender;
[0031] 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.
[0032] In one embodiment of the present application, the port number group acquisition module is specifically used to:
[0033] 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 XOR operation of the at least two designated source port numbers;
[0034] An XOR operation is performed on the hierarchical port number groups corresponding to the at least two designated source port numbers to obtain the hierarchical port number group corresponding to the non-designated source port number.
[0035] In one embodiment of the present application, the request packet sending module is specifically used to:
[0036] Configuring a physical sending port of each forward data transmission path, wherein the physical sending port is a physical port used by the data sender to send data, and a difference in the number of forward data transmission paths configured between the physical sending ports of the data sender is less than a threshold;
[0037] Send a connection request packet to the data receiver according to the forward data transmission path after configuring the physical sending port and the source port number.
[0038] In one embodiment of the present application, the data sender includes a first physical sending port and a second physical sending port; the request packet sending module is specifically used for:
[0039] 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.
[0040] In one embodiment of the present application, the device further includes:
[0041] A physical port update module is used to obtain a request response packet fed back by the data receiver 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.
[0042] According to one aspect of an embodiment of the present application, there is provided a data transmission device, including:
[0043] A port number group acquisition module is used to acquire a connection request packet sent by a data sender and a receiver source port number group obtained by grouping the source port number of a data receiver;
[0044] A port number configuration module, configured to perform source port number configuration on multiple reverse data transmission paths corresponding to the data receiver according to the receiver source port number grouping, wherein the reverse data transmission path is a physical path for the data receiver to send data to the data sender, source port numbers corresponding to different reverse data transmission paths belong to different receiver source port number groups, and source ports in the same receiver source port number grouping correspond to the same reverse data transmission path;
[0045] The response packet sending module is used to send a request response packet to the data sender according to the reverse data transmission path after the source port number is configured, so as to establish a data transmission connection with the data sender.
[0046] In one embodiment of the present application, the response packet sending module is specifically used for:
[0047] Configure 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;
[0048] A request response packet is sent to the data sender according to the reverse data transmission path after configuring the physical sending port and the source port number.
[0049] 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.
[0050] 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.
[0051] According to one aspect of the embodiments of the present application, a computer program product or a computer program is provided, the computer program product or the computer program includes computer instructions, and the computer instructions are stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device executes the data transmission method in the above technical solution.
[0052] 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 corresponding to different forward data transmission paths belong to different sender source port number groups, and the source port in the same sender source port number group corresponds to the same forward data transmission path, and the sender source port number group is obtained by grouping the source port number of the data sender. Then, after the data sender establishes a data transmission connection with the data receiver based on the forward data transmission path after the source port number is configured, the data transmission performed by the data sender 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.
[0053] It should be understood that the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the present application. BRIEF DESCRIPTION OF THE DRAWINGS
[0054] The drawings herein are incorporated into the specification and constitute a part of the specification, illustrate embodiments consistent with the present application, and together with the specification are used to explain the source of the present application. Obviously, the drawings described below are only some embodiments of the present application, and for ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work.
[0055] Figure 1 The exemplary system architecture block diagram applying the technical solution of the present application is schematically shown.
[0056] Figure 2 The topology diagram of a data center network using the technical solution of the present application is schematically shown.
[0057] Figure 3 A schematic diagram of data transmission using multiple logical paths provided by an embodiment of the present application is schematically shown.
[0058] Figures 4A-4D Schematic diagram showing various single point failures.
[0059] Figure 5 The following schematically shows a flow chart of a data transmission method provided by an embodiment of the present application.
[0060] Figure 6 A schematic diagram of a forward data transmission path provided by an embodiment of the present application is schematically shown.
[0061] Figure 7 The following schematically shows a flow chart of a data transmission method provided by an embodiment of the present application.
[0062] Figures 8A-8C The diagram schematically shows a switch grouping method provided by an embodiment of the present application.
[0063] Fig. 9 A schematic diagram of a routing hash calculation of the present application is schematically shown.
[0064] Fig.10 The schematic diagram schematically shows the configuration of routing hash information of switches at each layer.
[0065] Fig.11 The following schematically shows a flow chart of a data transmission method provided by an embodiment of the present application.
[0066] Fig.12 A diagram schematically shows the format of a data packet.
[0067] Fig.13 A schematic diagram schematically shows a physical transmit port configuration.
[0068] Fig.14 The following schematically shows a flow chart of a data transmission method provided by an embodiment of the present application.
[0069] Fig.15 The exemplary system architecture block diagram applying the technical solution of the present application is schematically shown.
[0070] Fig.16 A schematic diagram of creating a connection using the technical solution of the present application is schematically shown.
[0071] Fig.17 An exemplary system diagram applying the technical solution of the present application is schematically shown.
[0072] Fig.18 An exemplary system diagram applying the technical solution of the present application is schematically shown.
[0073] Figures 19A-19BThe schematic diagram schematically shows the effect of applying the technical solution of the present application.
[0074] Fig. 20 The structural block diagram of the data transmission device provided in an embodiment of the present application is schematically shown.
[0075] Fig.21 The structural block diagram of the data transmission device provided in an embodiment of the present application is schematically shown.
[0076] Fig. 22 The structure block diagram of a computer system suitable for implementing an electronic device of an embodiment of the present application is schematically shown. DETAILED DESCRIPTION
[0077] 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 more comprehensive and complete and fully convey the concept of the example embodiments to those skilled in the art.
[0078] 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 to provide a full understanding of the embodiments of the present application. However, those skilled in the art will appreciate 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, realizations or operations are not shown or described in detail to avoid blurring the various aspects of the application.
[0079] The block diagrams shown in the accompanying drawings are merely functional entities and do not necessarily correspond to physically independent entities. That is, these functional entities may be implemented in software form, or in one or more hardware modules or integrated circuits, or in different networks and / or processor devices and / or microcontroller devices.
[0080] The flowcharts shown in the accompanying drawings are only exemplary and do not necessarily include all the contents and operations / steps, nor must they be executed in the order described. For example, some operations / steps can be decomposed, and some operations / steps can be combined or partially combined, so the actual execution order may change according to actual conditions.
[0081] In the embodiments of the present application, the term "module" or "unit" refers to a computer program or a part of a computer program with 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.
[0082] 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 need to comply with relevant laws, regulations and standards of relevant countries and regions.
[0083] Figure 1 The exemplary system architecture block diagram applying the technical solution of the present application is schematically shown.
[0084] like Figure 1 As shown, the system architecture 100 may include a terminal device 110, a network 120 and a server 130. The terminal device 110 may include but is not limited to a mobile phone, a computer, an intelligent voice interaction device, an intelligent home appliance, a vehicle terminal, an aircraft, etc. The server 130 may be an independent physical server, or a server cluster or a distributed system composed of multiple physical servers, or 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. The network 120 may be a communication medium of various connection types that can provide a communication link between the terminal device 110 and the server 130, such as a wired communication link or a wireless communication link.
[0085] According to the implementation requirements, the system architecture in the embodiment of the present application can have any number of terminal devices, networks and servers. For example, the server 130 can be a server group composed of multiple server devices. In addition, the technical solution provided in the embodiment of the present application can be applied to the terminal device 110, can also be applied to the server 130, or can be implemented by the terminal device 110 and the server 130 together, and the present application does not make any special restrictions on this.
[0086] 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 cloud computing business model application, which can form a resource pool, which is used on demand and is flexible and convenient. Cloud computing technology will become an important support. The background services of the technical network system require a large amount of computing and storage resources, such as video websites, picture websites, and more portal websites. With the high development and application of the Internet industry, each item may have its own identification mark in the future, and all need to be transmitted to the background system for logical processing. Data of different levels will be processed separately, and all kinds of industry data require strong system backing support, which can only be achieved through cloud computing.
[0087] The technical solution of the present application can be used in a data center network. For example, Figure 2 The topology diagram of a data center network using the technical solution of the present application is schematically shown. Figure 2As shown in the figure, the data center network includes an access layer (Leaf), a convergence layer (Spine), and a core layer (Core). 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 convergence 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 convergence layer is also called a leaf-spine network architecture. The access layer switches are called leaf switches, and the convergence layer switches are called spine switches. Multiple core layer switches can belong to a control plane Plane, for example, core layer switches C0 and C1 belong to control plane Plane 0. Multiple servers can belong to a cluster Pod, for example, servers H0 to H3 belong to server cluster Pod 0. Data transmission in the data center network can also be regarded as data transmission between switches between layers. The data sender and the data receiver each correspond to an access layer and an aggregation layer. The data transmission process is that the data sender sends the data to the access layer switch on the sender side, which is forwarded by the access layer switch to the aggregation layer switch, and then sent by the aggregation layer switch to the core layer switch, and then the core layer switch sends the data to the aggregation layer switch on the receiver side, and then the aggregation layer switch forwards the data to the access layer switch, and finally reaches the data receiver. Taking the data transmission between server H0 and server H4 as an example, server H0 sends data to the access layer switch L0 (or access layer switch L1) connected to it, and then the data is forwarded by the access layer switch L0 to the aggregation layer switch S0 (or one of the switches S1 to S3), and then sent by the aggregation layer switch S0 to the core layer switch C0 (or core layer switch C1), and then the core layer switch C0 sends the data to the aggregation layer switch S4, the aggregation layer switch S4 sends the data to the access layer switch L4 (or access layer switch L5), and the access layer switch L4 sends the data to the server H4.
[0088] In the process of data transmission, the path formed by various physical devices is called the physical path of data transmission, such as Figure 2 The physical path formed by the switches at each layer. The logical path is generally a definition of the path based on some attributes. For example, from the perspective of the ports for data transmission and reception, the logical path can refer to a port on the data sender to a port on the data receiver. Generally speaking, a data stream can be regarded as a logical path. The transmission of data in the logical path actually needs to be implemented through a specific physical path. When data is transmitted, the data packet of the logical path is configured with information such as the source port, so as to connect the data packet to the physical path corresponding to the source port number, and transmit data through the physical path. In a multipath transmission protocol, a transmission connection will use multiple logical paths for data transmission, such as Figure 3As shown in the figure. When transmitting data, the connection layer will divide the transmitted data into data packets, and then spread these data packets to multiple logical paths in some way (the specific spreading method depends on the path scheduling mechanism). The data transmission of multiple logical paths is often independent, that is, the response information generated by the data of a certain logical path of the data sender will only be transmitted back from the corresponding logical path of the data receiver. In practice, the multiple physical paths used by a connection will overlap more or less in the network (random). In some cases, the overlap of these physical paths will seriously weaken the connection's ability to resist single point failures. Existing multi-path transmission schemes all use random or continuous source port numbers, and do not optimize the physical paths of logical paths. Their disadvantage is that they cannot be completely immune to single point failures. Single point failure immunity includes forward single point failure, reverse single point failure, mixed single point failure and upper-layer switch failure. The following takes a connection using two physical paths as an example to introduce these types of failures.
[0089] A forward single point failure refers to a single point failure in the forward data transmission path where the data sender sends data to the data receiver. Figure 4A The schematic diagram of the forward single point failure is shown schematically. Figure 4A In the figure, LA represents the access layer switch, LC represents the aggregation layer switch, and CUF represents the core layer switch. Figure 4A As shown in the figure, the connection established between the data sender (Client) and the data receiver (Server) uses two forward data transmission paths, namely two forward physical paths. Forward physical path ① includes sender port 1-LA1-LC2-CUF2-LC6-LA3-receiver port 1, and forward physical path ② includes sender port 2-LA2-LC4-CUF4-LC8-LA3-receiver port 1. It can be seen that these two forward physical paths overlap at the access layer switch LA3 on the receiver 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.
[0090] A reverse single point failure refers to a single point failure in the reverse data transmission path where the data receiver sends data to the data sender. Figure 4B The schematic diagram of the reverse single point failure is shown schematically. Figure 4B The meaning of each symbol in Figure 4A Same as Figure 4BAs shown, the connection established between the data sender (Client) and the data receiver (Server) uses two reverse data transmission paths, namely, two reverse physical paths. Reverse physical path ① includes receiver port 1-LA3-LC5-CUF1-LC1-LA1-sender port 1, and reverse physical path ② includes receiver port 2-LA4-LC7-CUF3-LC3-LA1-sender port 1. It can be seen that these two reverse physical paths overlap at the access layer switch LA1 on the sender side. If LA1 fails, the connection will be completely interrupted, resulting in unavailability of upper-layer services.
[0091] A hybrid single point failure occurs when the forward data transmission path and the reverse data transmission path overlap. Figure 4C The schematic diagram of the hybrid single point failure on the receiver side is shown schematically. Figure 4C The meaning of each symbol in Figure 4A Same as Figure 4C As shown, the connection established between the data sender (Client) and the data receiver (Server) uses two forward physical paths and two reverse physical paths, forward physical path ① includes sender port 1-LA1-LC2-CUF2-LC6-LA3-receiver port 1, forward physical path ② includes sender port 2-LA2-LC4-CUF4-LC8-LA4-receiver port 2, reverse physical path ① includes receiver port 2-LA4-LC5-CUF1-LC1-LA1-sender port 1, reverse physical path ② includes receiver port 1-LA3-LC7-CUF3-LC3-LA2-sender port 2, wherein the forward physical path ① corresponds to the reverse physical path ① (that is, the response data of the data sent through the forward physical path ① will be fed back through the reverse physical path ①), and the forward physical path ② corresponds to the reverse physical path ②. It can be seen that the two forward physical paths and the two reverse physical paths overlap at LA3 and LA4 on the receiving side, which makes LA3 and LA4 on the receiving side single points of failure. In other words, as long as one of LA3 and LA4 fails, the entire connection will be interrupted, causing the upper layer service to be unavailable. Figure 4D The schematic diagram of the hybrid single point failure on the sender side is shown schematically. Figure 4D The meaning of each symbol in Figure 4A Same as Figure 4DAs shown in the figure, the connection established between the data sender (Client) and the data receiver (Server) uses 2 forward physical paths and 2 reverse physical paths. The forward physical path ① includes the sender port 1-LA1-LC2-CUF2-LC6-LA3-receiver port 1, the forward physical path ② includes the sender port 2-LA2-LC4-CUF4-LC8-LA4-receiver port 2, the reverse physical path ① includes the receiver port 1-LA3-LC8-CUF4-LC4-LA2-sender port 2, and the reverse physical path ② includes the receiver port 2-LA4-LC6-CUF2-LC2-LA1-sender port 1. It can be seen that the 2 forward physical paths and the 2 reverse physical paths overlap at LA1 and LA2 on the sender side, which makes LA1 and LA2 on the receiver side become single point failure potential points. In other words, as long as one of LA1 and LA2 fails, the entire connection will be interrupted, causing the upper layer service to be unavailable.
[0092] 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.
[0093] 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.
[0094] Figure 5 The flowchart of a data transmission method provided by an embodiment of the present application is schematically shown, and the method is applied to a data sender. Figure 5 As shown, the data transmission method provided in this embodiment includes steps 510 to 530, which are specifically as follows:
[0095] Step 510: Acquire the sender source port number grouping of the data sender, where the sender source port number grouping is obtained by grouping the source port number of the data sender.
[0096] Specifically, the source port refers to the port in the logical sense used by the data sender for data transmission. It is generally the port in the data transmission connection protocol, such as the port in the TCP / IP protocol (Transmission Control Protocol / Internet Protocol). The port number can range from 0 to 65535. The source port number is used to identify which port is used to send the data. Figure 2 In the data center network architecture shown, when the data sender sends data to the data receiver, the access layer switch, the aggregation layer switch and the core layer switch are involved, so the sender source port number grouping includes the source port number grouping of the above-mentioned switches at each layer. Multiple source port numbers of the switches at each layer are grouped to obtain the source port number grouping of the switches at each layer, and then the source port number groupings of the switches at each layer are fused (for example, the intersection of the source port number groups of the switches at each layer is taken) to obtain the sender source port number grouping. It can be understood that the source port numbers of switches at different layers can overlap. For example, the source port numbers of the access layer switches include 0-3000, and the source port numbers of the aggregation layer switches can also include 0-3000. For example, the source port numbers of the access layer switches 0-3000 are grouped into one group, and the source port numbers of the aggregation layer switches 1000-3000 are grouped into one group. Then, the intersection of the access layer switch and the aggregation layer switch groups is taken as the fusion result, and the sender source port number grouping can be obtained as 1000-3000. The sender source port number grouping may be pre-calculated and stored by a designated module (the designated module may be a server, a controller, etc.). During data transmission, the data sender obtains the sender source port number grouping from the designated module.
[0097] Step 520: According to the sender source port number grouping, the source port numbers of multiple forward data transmission paths corresponding to the data sender are configured, wherein the forward data transmission path is the physical path for sending data from the data sender to the data receiver, and the source port numbers corresponding to 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 correspond to the same forward data transmission path.
[0098] Specifically, the forward data transmission path, i.e., the aforementioned physical path, is the physical path for the data sender to send data to the data receiver. Figure 4AThe forward physical path shown. When the data center network architecture between the data sender and the data receiver is determined, the forward data transmission path between the data sender and the data receiver can be determined based on the network architecture. When the data sender sends data to the data receiver, it is necessary to first configure the source port number of the forward data transmission path, that is, to 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 the source port number of the forward data transmission path is configured, a source port number can be randomly extracted from a certain source port number group or the source port number with the previous number can be preferentially extracted and configured to a certain forward data transmission path. When the source port number in a source port number group has been configured to a certain forward data transmission path, the source port number in the source port group is no longer used to configure to other forward data transmission paths, so that after the source port is matched, the source port numbers corresponding to 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 correspond 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.
[0099] Step 530: Send a connection request packet to the data receiver according to the forward data transmission path after the source port number is configured, so as to establish a data transmission connection with the data receiver.
[0100] Specifically, after the forward data transmission path is configured with a source port number, the data sender can use the forward data transmission path to send a connection request packet to the data receiver. 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 data receiver will respond to it, thus establishing a data transmission connection between the data sender and the data receiver. After the data transmission connection is established, the data sender can send data to the data receiver based on the 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 Figure 4A The forward single point fault shown in the figure can be obtained after applying the technical solution of the present application. Figure 6As shown in the schematic diagram of the forward data transmission path, 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. Then, even if LA3 fails and the forward physical path ① is unavailable, the data transmission connection can still continue to transmit data through the forward physical path ②, which will not cause the data transmission connection to be completely interrupted and affect the business relying on this connection, thereby improving the reliability of data transmission.
[0101] 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 corresponding to different forward data transmission paths belong to different sender source port number groups, and the source port in the same sender source port number group corresponds to the same forward data transmission path, and the sender source port number group is obtained by grouping multiple source port numbers of the data sender. Then, after the data sender establishes a data transmission connection with the data receiver based on the forward data transmission path after the source port number is configured, the data transmission performed by the data sender 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.
[0102] Figure 7 The flowchart of a data transmission method provided by an embodiment of the present application is schematically shown. This embodiment is a further refinement of the above embodiment. Figure 7 As shown, the data transmission method provided in the embodiment of the present application includes the following steps:
[0103] Step 710: Obtain the hierarchical port number grouping of the source port number of the data sender at each data transmission layer in the data center network.
[0104] Specifically, Figure 2Taking the data center network structure shown as an example, each data transmission layer in the data center network includes an access layer, an aggregation layer, and a core layer. When the data sender sends data to the data receiver, 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, so the hierarchical port number grouping of each layer is also the source port number grouping of each layer switch. In the data transmission process, data is sent to the switch of the next layer via the switch of the previous layer, and the source port number will affect which switch of the next layer is sent to. Therefore, the source port number grouping of the switches of each layer can be determined based on the next layer switch corresponding to the source port number, and the source port pointing to the same next layer switch can be divided into the same source port number grouping, so that the source port numbers in different hierarchical port number groups can correspond to different next layer switches, which also makes the source port numbers in different hierarchical port number groups correspond to different physical paths.
[0105] 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 data sender 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 data receiver to determine the switches of each data transmission layer in the data center network through which the probe data packet passes to reach the data receiver; 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 of the next layer to send the data packet to. The five-tuple data of the data packet includes the source IP address, the destination IP address, the protocol number, the source port number and the destination port number, wherein the source IP address, the destination IP address and the protocol number are obtained from the IP header of the data packet, and the source port number and the 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 other four-tuple data except the source port number in the five-tuple data of the data packet are fixed to form a preset four-tuple data, and then the source port numbers contained in the data sender are respectively combined with the preset four-tuple data to generate the five-tuple data corresponding to each source port number, and the detection data packet corresponding to each source port number is generated based on the five-tuple data. Then the detection data packet is sent to the data receiver. The switches of each data transmission layer through which the detection data packet reaches the data receiver constitute the forward data transmission path through which the detection data packet passes. The switch group where the switch in the path is located is the source port number relative to the hierarchical port number group of each data transmission layer. Taking one switch as a switch group, the number of hierarchical port groups of each data transmission layer is the number of switches contained in its next data transmission layer.
[0106] For example, the data transmission layers that the data sent by the data sender passes through include the access layer and aggregation layer, the core layer on the data sender side, and the aggregation layer and access layer on the data receiver side. Then, when obtaining the hierarchical port number grouping, it is necessary to obtain the hierarchical port number grouping from the access layer to its aggregation layer on the data sender side, the hierarchical port number grouping from the aggregation layer to the core layer on the data sender side (recorded as the core switch hierarchical port number grouping), and the hierarchical port number grouping from the aggregation layer to its access layer on the data receiver side (recorded as the leaf switch hierarchical port number grouping). Fig. 8AAs shown in the figure, the access layer on the data sender side 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 (SpineGroup index), where i represents the group number and the maximum value of i is the number of aggregation layer switches. Figure 8B As shown in the figure, the data transmission from the aggregation layer 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. Figure 8C As shown in the figure, the aggregation layer on the data receiving side 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 a 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.
[0107] In one embodiment of the present application, when determining the switches of each data transmission layer through which the probe data packet passes to reach the data receiver, it is necessary to perform routing hash calculations on the switches of each data transmission layer to determine the switches of the next data transmission layer, specifically including: performing routing hash calculations on the path identification features contained in the probe data packet based on the routing hash information configured by the switches of the current data transmission layer to obtain the switch index of the next data transmission layer to which the probe data packet needs 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 needs to be sent, and determining the switch of the next data transmission layer to which the probe data packet needs to be sent. Specifically, the switches of each data transmission layer use the pre-configured routing hash information to perform routing hash calculations on the probe data packet, and 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.
[0108] 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, such as Fig. 9 As shown, since other four-tuple data are fixed, the change of the source port number will cause the change of the output result of the hash function. Traversing the source port number means combining each source port with the preset four-tuple data into 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.
[0109] 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 through a virtual routing function to obtain a hash value, and then the hash value is used to perform a modulus operation (or called a modulo modulus operation) on the number of switches included in the next data transmission layer to obtain the switch index of the next data transmission layer. Exemplarily, when the aggregation layer switch performs routing hash calculations, the hash value output by the virtual routing function is used to perform a modulus operation on the number of core layer switches to obtain the switch index of the core layer.
[0110] 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 modulus operation, source port numbers with the same remainder are divided into a group.
[0111] In one embodiment of the present application, the path identification feature may 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 supporting IPv6 routing, fields such as the flow tag of IPv6 may 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 may be used as a parameter for the route hash calculation, such as using the lower 8 bits or the upper 8 bits, that is, different paths are identified using different lower 8 bits (or upper 8 bits) of the source port number.
[0112] 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 configured in advance for the switch. 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, Fig.10 The schematic diagram of the routing hash information configuration of the switches at each layer is schematically shown. It can be seen that the switches at each layer are configured with the same routing hash information, that is, the same XOR hash algorithm and hash seed. Since the switches included in the same data transmission layer are configured with the same routing hash information, the hash calculation output results of the switches at the same data transmission layer for the same detection data packet are the same, so that a relative routing control connecting different paths has consistent routing results on any switch at 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.
[0113] 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, so that the sending of detection data packets can be reduced and the grouping efficiency can be improved. For example, first, multiple designated source port numbers that meet the preset conditions are extracted from multiple source port numbers of the data sender, and the hierarchical port number grouping information of the multiple designated source port numbers relative to each data transmission layer corresponding to the data sender is obtained; then, 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 grouping 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 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, and 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 00000001 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). Therefore, 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 XOR-ed 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 of the output of the aforementioned routing hash calculation, and does not directly refer to the number of the hierarchical port number grouping. Exemplarily, 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 00000000 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 0b000000000 0000 0011, and then the hierarchical port number grouping of the source port number 0b0000 0000 00000011 can be obtained.
[0114] Step 720: Cross-combine the hierarchical port number groups of each data transmission layer to obtain a plurality of combined port number groups.
[0115] 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 the 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 groupings is 8, the number of core switch hierarchical port number CG groupings is 8, and the number of leaf switch hierarchical port number LG groupings 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 continue to be cross-combined with 8 CG groups to obtain 128 SCLG groups (Spine-Core-Leaf Groups).
[0116] In one embodiment of the present application, in the data transmission process, the switch selection of the access layer and the aggregation layer is more important, while the switch selection of the core layer is usually irrelevant. Therefore, when performing cross-combination, the cross-combination of the core switch level port number grouping can be ignored, and only the leaf switch level port number grouping and the spine switch level port number grouping can be cross-combined. As in the previous example, 8 SG groups are cross-combined with 2 LG groups to obtain 16 SLG groups, and these 16 SLG groups can be processed subsequently. These 16 SLG groups can be expressed as SGi*LGj, where i is the number of the SG, with a value of 1-8, and j is the number of the LG group, with a value of 1-2.
[0117] Step 730: extract the intersection of source port numbers in multiple combined port number groups to obtain the sender source port number group corresponding to each combined port number group.
[0118] 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, and the obtained source port number is the source port number that meets the requirements of the multiple hierarchical port number groups in the combined port number group. The source port number belongs to the sender source port number group corresponding to the combined port number group. Exemplarily, 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.
[0119] Step 740: According to the sender source port number grouping, the source port numbers of multiple forward data transmission paths corresponding to the data sender are configured, wherein the forward data transmission path is the physical path for sending data from the data sender to the data receiver, and the source port numbers corresponding to 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 correspond to the same forward data transmission path.
[0120] Step 750: Send a connection request packet to the data receiver according to the forward data transmission path after the source port number is configured, so as to establish a data transmission connection with the data receiver.
[0121] Step 740 to step 750 are the same as step 520 to step 530 in the aforementioned embodiment and will not be described again here.
[0122] In the technical solution provided in the embodiments of the present application, the hierarchical port number grouping of each data transmission layer in the data center network is performed by obtaining the source port number of the data sender; then the hierarchical port number groupings of each data transmission layer are 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 groupings corresponding to each combined port number grouping. This not only performs reasonable grouping of 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.
[0123] Fig.11 The flowchart of a data transmission method provided by an embodiment of the present application is schematically shown. This embodiment is a further optimization of the above embodiment. Fig.11 As shown, the data transmission method provided in the embodiment of the present application includes the following steps:
[0124] Step 1110: Acquire the sender source port number grouping of the data sender, where the sender source port number grouping is obtained by grouping the source port number of the data sender.
[0125] Step 1120: According to the sender source port number grouping, the source port numbers of multiple forward data transmission paths corresponding to the data sender are configured, wherein the forward data transmission path is the physical path for sending data from the data sender to the data receiver, and the source port numbers corresponding to 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 correspond to the same forward data transmission path.
[0126] For steps 1110 to 1120, reference may be made to the relevant description of steps 510 to 520 in the aforementioned embodiment, or reference may be made to the relevant description of steps 710 to 740 in the aforementioned embodiment, and will not be repeated here.
[0127] Step 1130: configure the physical sending ports of each forward data transmission path, wherein the physical sending port is a physical port used by the data sender to send data, and the difference in the number of forward data transmission paths configured between the physical sending ports of the data sender is less than a threshold.
[0128] Specifically, a physical sending port is a physical port, that is, a physical port used by a data sender to send data. The physical sending port is also an important feature of a data transmission path. The physical sending port and the source port number are important identification information of the data transmission path. For example, Fig.12 A schematic diagram schematically shows the format of a data packet, such as Fig.12 As shown, the information of the data packet includes a sending port, an IP header and a TCP / UDP header, the sending port is a physical sending port, the IP header and the TCP / UDP header contain the five-tuple data described in the above embodiment, and 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 data sender is less than the threshold.
[0129] In one embodiment of the present application, a network card of a server in a data center network will have two physical transmission ports, that is, the data transmitter 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, and effectively avoid too many forward data transmission paths from transmitting data via the same physical transmission port. Exemplary, Fig.13 A schematic diagram schematically shows a physical transmission port configuration, such as Fig.13 As shown, the forward data transmission path with an odd path identifier is configured to the transmission port 1, and the forward data transmission path with an even path identifier is configured to the transmission port 2, so as to realize the interleaving arrangement of the path and the transmission port. When sending data, the specific path to be used for data transmission is determined by the scheduler. Optionally, when configuring the physical transmission port, the first N / 2 forward data transmission paths can also be bound to the first physical transmission port, and the last N / 2 forward data transmission paths can be bound to the second physical transmission port. Optionally, 4 paths can also be taken as a group, 2 of the 4 paths can be bound to the first physical transmission port, and the remaining 2 can be bound to the second physical transmission port. For example, there are 8 forward data transmission paths in total, and the physical transmission port numbers are 1 and 2 respectively. Then the physical transmission port numbers configured for these 8 forward data transmission paths are: 1, 1, 2, 2, 1, 1, 2, 2 respectively.
[0130] Step 1140: Send a connection request packet to the data receiver according to the forward data transmission path after configuring the physical sending port and the source port number.
[0131] Specifically, after configuring the physical sending port and the source port number, a connection request packet can be sent to the data receiver through the forward data transmission path.
[0132] Step 1150: Obtain a request response packet fed back by the data receiver based on the connection request packet.
[0133] Specifically, after receiving the connection request packet sent by the data sender, the data receiver will generate response information based on the connection request packet, and the response information will be fed back to the data receiver as a request reply packet.
[0134] 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.
[0135] Specifically, the physical port at which the data sender receives the request response packet is called the physical receiving port of the request response packet, and the physical receiving port is one of the physical sending ports. Generally, the physical receiving port of the request response packet is the same as the physical sending port. If the physical receiving port and the physical sending port are inconsistent, it means that the physical port for sending data is modified. At this time, the physical sending port corresponding to the forward data transmission path is updated according to the physical receiving port, that is, the physical sending port is modified to be the same as the physical receiving port.
[0136] In the technical solution provided by the embodiment of the present application, by obtaining the sender source port number grouping and configuring the source port number of the forward data transmission path, the source port numbers corresponding to different forward data transmission paths belong to different sender source port number groups, and the source ports in the same sender source port number grouping correspond 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 can be controlled, so that the logical path can take different network physical paths, and each physical path can pass through different spine switches, and all paths can alternately pass through the leaf switches (2) of the data receiver, effectively avoiding forward single point failure. By configuring the physical sending port of the forward data transmission path, that is, controlling which leaf switch (on the sending side) 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 failure on the sending side.
[0137] Fig.14 The flowchart of a data transmission method provided by an embodiment of the present application is schematically shown, and the method is applied to a data receiving party. Fig.14 As shown, the data transmission method provided in this embodiment includes steps 1410 to 1430, which are specifically as follows:
[0138] Step 1410: Acquire the connection request packet sent by the data sender and the receiver source port number grouping obtained by grouping the source port number of the data receiver.
[0139] Specifically, the connection request packet is sent by the data sender through the forward data transmission path, and 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.
[0140] Step 1420: configure source port numbers for multiple reverse data transmission paths corresponding to the data receiver according to the receiver source port number grouping, wherein the reverse data transmission path is a physical path for the data receiver to send data to the data sender, source port numbers corresponding to 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 correspond to the same reverse data transmission path.
[0141] Specifically, corresponding to the forward data transmission path, the physical path where the data receiver sends data to the data sender is called the reverse data transmission path. The source port number configuration process of the reverse data transmission path is similar to the source port configuration process of the forward data transmission path, and will not be repeated here.
[0142] Step 1430: Send a request response packet to the data sender according to the reverse data transmission path after the source port number is configured, so as to establish a data transmission connection with the data sender.
[0143] Specifically, the data receiver feeds back the request response packet to the data sender through the reverse data transmission path. This process is similar to the process in which the data sender sends the connection request packet through the forward data transmission path, and will not be repeated here.
[0144] It can be understood that, unless otherwise specified, the various steps in the data transmission method applied on the data receiving side are similar to the various steps in the data transmission method applied on the data sending 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 data sending side, and will not be repeated in this embodiment.
[0145] In the technical solution provided in the embodiment of the present application, the data receiver configures the source port number of the reverse data transmission path by grouping the source port number of the receiver, so as to control the reverse data transmission path of the logical path in the data center network, enable the logical path to take different network physical paths, and allow each reverse data transmission path to pass through a different spine switch, and allow all reverse data transmission paths to alternately pass through the leaf switches (2) of the data sender, thereby effectively avoiding reverse single point failures and improving the reliability of data transmission.
[0146] In one embodiment of the present application, after receiving the connection request packet, the data receiver configures the physical sending port of the reverse data transmission path according to 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; and then sends a request response packet to the data sender according to the reverse data transmission path after configuring the physical sending port and the source port number. On the data receiver 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 mixed single point failure on the receiving side.
[0147] The following is a combination of a data sender and a data receiver to illustrate the implementation effect of the technical solution of the present application.
[0148] The implementation process of the source port number grouping of the data sender and the source port number grouping of the data receiver is the same. Therefore, the source port number grouping can be uniformly pre-executed by the designated module. In actual data transmission, the data sender and the data receiver can respectively obtain the corresponding source port number grouping from the designated module for configuration. Therefore, the technical solution of the present application can be divided into two parts: controller pre-configuration transactions and server runtime transactions, such as Fig.15 As shown. The controller pre-configuration transaction includes switch configuration, detection of source port number groups at each layer, and generation of cross-groups. Switch configuration refers to configuring routing hash information for switches at each data transmission layer in the data center network, so that switches at the same data transmission layer are configured with the same routing hash information. Detecting source port number groups at each layer refers to obtaining the hierarchical port number groups of the source port number of the data sender at each data transmission layer in the data center network by detecting data packets. Generating cross-groups refers to cross-combining the hierarchical port number groups of each data transmission layer to obtain multiple combined port number groups; then extracting the intersection of the source port numbers in the multiple combined port number groups to obtain the sender source port number groups corresponding to each combined port number group. The controller pre-configuration transaction only needs to be done once when the system of this solution is enabled, rather than a transaction when each connection is established.
[0149] Server runtime transactions belong to transactions when each connection is established. Server runtime transactions include creating a connection, handshake synchronization between the two ends, and data transmission. Creating a connection refers to the connection between the data sender and the data receiver to establish a data transmission connection. The process of creating a connection is as follows: Fig.16As shown, first the client (i.e., the data sender) arranges the forward path, that is, the forward data transmission path is configured with the source port number and the physical sending port based on the source port number grouping of the sender, and then a connection request packet is sent from each forward data transmission path. Then, after receiving the link establishment request, the server (i.e., the data receiver) senses the inbound port of the connection request packet (i.e., the physical receiving port of the connection request packet), and configures the physical sending port of the reverse data transmission path according to each inbound port; at the same time, it requests the controller for the source port number grouping information of the receiver, arranges the reverse path, that is, configures the source port number of the reverse data transmission path, and sends a request response packet on each path. The client senses the path inbound port and modifies the forward path arrangement, that is, detects the physical receiving port of the request response packet. When the physical receiving port 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.
[0150] The technical solution of this application is applied to the transmission protocol stack of the data center network, which is composed of network-side components and terminal-side components, such as Fig.17 As shown, 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 works in the transport layer, and is implemented in the multi-path transport 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 18, the server includes a physical layer, a transport layer, a transport interface layer and an application layer, and the technical solution of this application is applied to the transport layer.
[0151] When a connection uses two physical paths, Figure 6 The effect diagram of the technical solution of the present application is shown. Figure 6 It can be seen 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, such as Fig.19A As shown in the figure, the forward and reverse data transmission paths pass through the same core layer switch or aggregation layer switch. In this scenario, if you want to eliminate the risk of LC / CUF single point failure, you also need the symmetric hash function of the switch, that is, after the source and destination IP in a quintuple are exchanged, the hash result remains unchanged. Fig.19B This is the effect of a connection using 4 physical paths. When the connection uses 4 or more paths, this solution can eliminate the risk of single point failure of any switch. When a switch fails, the connection of the existing solution has a probability of less than 50% to survive (all single point failure scenarios must be avoided), and a probability of more than 50% that the connection will be disconnected (encountering a single point failure, see Figure 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.
[0152] It should be noted that although the steps of the method in 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 the steps shown 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, etc.
[0153] The following introduces an apparatus embodiment of the present application, which can be used to execute the data transmission method in the above-mentioned embodiment of the present application. Fig. 20 The structure block diagram of the data transmission device provided in the embodiment of the present application is schematically shown. Fig. 20 As shown, the data transmission device provided in the embodiment of the present application includes:
[0154] A port number group acquisition module, used to acquire a sender source port number group of a data sender, wherein the sender source port number group is obtained by grouping the source port number of the data sender;
[0155] A port number configuration module, configured to perform source port number configuration on multiple forward data transmission paths corresponding to the data sender according to the sender source port number grouping, wherein the forward data transmission path is a physical path for the data sender to send data to the data receiver, source port numbers corresponding to different forward data transmission paths belong to different sender source port number groups, and source ports in the same sender source port number grouping correspond to the same forward data transmission path;
[0156] The request packet sending module is used to send a connection request packet to the data receiving party according to the forward data transmission path after the source port number is configured, so as to establish a data transmission connection with the data receiving party.
[0157] In one embodiment of the present application, the port number group acquisition module is specifically used to:
[0158] Obtaining hierarchical port number grouping of the source port number of the data sender at each data transmission layer in the data center network;
[0159] Cross-combining the hierarchical port number groups of each data transmission layer to obtain a plurality of combined port number groups;
[0160] The intersection of the source port numbers in the multiple combined port number groups is extracted to obtain the sender source port number group corresponding to each of the combined port number groups.
[0161] In one embodiment of the present application, the port number group acquisition module is specifically used to: combine the source port number of the data sender with the preset four-tuple data to generate five-tuple data, and generate a detection data packet based on the five-tuple data;
[0162] Sending the detection data packet to the data receiver to determine switches of each data transmission layer in the data center network through which the detection data packet passes to reach the data receiver;
[0163] The switch group to which the switches of each data transmission layer belong is used as the source port number contained in the detection 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 included in the next data transmission layer connected to the data transmission layer; a switch of the data transmission layer and a switch of the next data transmission layer represent a switch group of the data transmission layer.
[0164] In one embodiment of the present application, the port number group acquisition module is specifically used to:
[0165] Based on the routing hash information 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 the switch index of the next data transmission layer to which the detection data packet needs to be sent; wherein the path identification feature is used to determine the switch of the next data transmission layer;
[0166] 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.
[0167] 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 a routing hash function and a hash seed used by the switch.
[0168] In one embodiment of the present application, the port number group acquisition module is specifically used to: perform routing hash calculation on the path identification feature contained in the detection 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 detection data packet needs to be sent; or
[0169] 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.
[0170] In one embodiment of the present application, the port number group acquisition module is specifically used to: extract multiple designated source port numbers that meet preset conditions from multiple source port numbers of the data sender, and obtain hierarchical port number grouping information of the multiple designated source port numbers relative to each data transmission layer corresponding to the data sender;
[0171] 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.
[0172] In one embodiment of the present application, the port number group acquisition module is specifically used to:
[0173] 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 XOR operation of the at least two designated source port numbers;
[0174] An XOR operation is performed on the hierarchical port number groups corresponding to the at least two designated source port numbers to obtain the hierarchical port number group corresponding to the non-designated source port number.
[0175] In one embodiment of the present application, the request packet sending module is specifically used to:
[0176] Configuring a physical sending port of each forward data transmission path, wherein the physical sending port is a physical port used by the data sender to send data, and a difference in the number of forward data transmission paths configured between the physical sending ports of the data sender is less than a threshold;
[0177] Send a connection request packet to the data receiver according to the forward data transmission path after configuring the physical sending port and the source port number.
[0178] In one embodiment of the present application, the data sender includes a first physical sending port and a second physical sending port; the request packet sending module is specifically used for:
[0179] 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.
[0180] In one embodiment of the present application, the device further includes:
[0181] A physical port update module is used to obtain a request response packet fed back by the data receiver 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.
[0182] Fig.21 The structure block diagram of the data transmission device provided in the embodiment of the present application is schematically shown. Fig.21 As shown, the data transmission device provided in the embodiment of the present application includes:
[0183] A port number group acquisition module is used to acquire a connection request packet sent by a data sender and a receiver source port number group obtained by grouping the source port number of a data receiver;
[0184] A port number configuration module, configured to perform source port number configuration on multiple reverse data transmission paths corresponding to the data receiver according to the receiver source port number grouping, wherein the reverse data transmission path is a physical path for the data receiver to send data to the data sender, source port numbers corresponding to different reverse data transmission paths belong to different receiver source port number groups, and source ports in the same receiver source port number grouping correspond to the same reverse data transmission path;
[0185] The response packet sending module is used to send a request response packet to the data sender according to the reverse data transmission path after the source port number is configured, so as to establish a data transmission connection with the data sender.
[0186] In one embodiment of the present application, the response packet sending module is specifically used for:
[0187] Configure 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;
[0188] A request response packet is sent to the data sender according to the reverse data transmission path after configuring the physical sending port and the source port number.
[0189] 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.
[0190] Fig. 22 The structure block diagram of a computer system for implementing an electronic device according to an embodiment of the present application is schematically shown.
[0191] It should be noted that Fig. 22 The computer system 2200 of the electronic device shown is only an example and should not bring any limitation to the functions and scope of use of the embodiments of the present application.
[0192] like Fig. 22 As shown, the computer system 2200 includes a central processing unit 2201 (CPU), which can perform various appropriate actions and processes according to the program stored in the read-only memory 2202 (ROM) or the program loaded from the storage part 2208 to the random access memory 2203 (RAM). Various programs and data required for system operation are also stored in the random access memory 2203. The central processing unit 2201, the read-only memory 2202 and the random access memory 2203 are connected to each other through a bus 2204. An input / output interface 2205 (Input / Output interface, i.e., I / O interface) is also connected to the bus 2204.
[0193] The following components are connected to the input / output interface 2205: an input section 2206 including a keyboard, a mouse, etc.; an output section 2207 including a cathode ray tube (CRT), a liquid crystal display (LCD), etc., and a speaker; a storage section 2208 including a hard disk, etc.; and a communication section 2209 including a network interface card such as a LAN card, a modem, etc. 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. A removable medium 2211, such as a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, etc., is installed on the drive 2210 as needed so that a computer program read therefrom is installed into the storage section 2208 as needed.
[0194] In particular, according to an embodiment of the present application, the process described in each method flow chart can be implemented as a computer software program. For example, an embodiment of the present application includes a computer program product, which includes a computer program carried on a computer readable medium, and the computer program contains a program code for executing the method shown in the flow chart. In such an embodiment, the computer program can be downloaded and installed from the network through the communication part 2209, and / or installed from the removable medium 2211. When the computer program is executed by the central processor 2201, various functions defined in the system of the present application are executed.
[0195] It should be noted that the computer-readable medium shown in the embodiment of the present application may be a computer-readable signal medium or a computer-readable storage medium or any combination of the above two. The computer-readable storage medium may be, for example, but not limited to, a system, device or device of electricity, magnetism, light, electromagnetic, infrared, or semiconductor, 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, which may be used by an instruction execution system, device or device or used in combination with it. In the present application, a computer-readable signal medium may include a data signal propagated in a baseband or as part of a carrier wave, wherein a computer-readable program code is carried. Such propagated data signals may take a variety of forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above. Computer readable signal media may also be any computer readable medium other than computer readable storage media, which may send, propagate, or transmit programs for use by or in conjunction with an instruction execution system, apparatus, or device. The program code contained on the computer readable medium may be transmitted using any suitable medium, including but not limited to: wireless, wired, etc., or any suitable combination of the above.
[0196] The flow chart and block diagram in the accompanying drawings illustrate the possible architecture, function and operation of the system, method and computer program product according to various embodiments of the present application. In this regard, each box in the flow chart or block diagram can represent a module, a program segment or a part of a code, and the above-mentioned module, program segment or a part of a 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 a different order from the order 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 flow chart, and the combination of the boxes in the block diagram or flow chart can be implemented with a dedicated hardware-based system that performs a specified function or operation, or can be implemented with a combination of dedicated hardware and computer instructions.
[0197] It should be noted that, although several modules or units of the equipment for action execution are mentioned in the above detailed description, this division is not mandatory. In fact, according to the embodiments of the present application, the features and functions of two or more modules or units described above can be embodied in one module or unit. On the contrary, the features and functions of one module or unit described above can be further divided into being embodied by multiple modules or units.
[0198] Through the description of the above implementation methods, it is easy for those skilled in the art to understand that the example implementation methods described here can be implemented by software or by combining software with necessary hardware. Therefore, the technical solution according to the implementation methods 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 implementation methods of the present application.
[0199] Those skilled in the art will readily appreciate other embodiments of the present application after considering the specification and practicing the invention disclosed herein. The present application is intended to cover any variations, uses or adaptations of the present application, which follow the general principles of the present application and include common knowledge or customary technical means in the art that are not disclosed in the present application.
[0200] It should be understood that the present application is not limited to the precise structures that have been 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.
Claims
1. A data transmission method, characterized in that: Applied to a data sender, the method comprises: Obtaining hierarchical port number grouping of the source port number of the data sender 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; Extracting the intersection of source port numbers in the multiple combined port number groups to obtain a sender source port number group corresponding to each of the combined port number groups, wherein the sender source port number group is obtained by grouping the source port number of the data sender; According to the sender source port number grouping, source port numbers are configured for multiple forward data transmission paths corresponding to the data sender, wherein the forward data transmission path is a physical path for the data sender to send data to the data receiver, source port numbers corresponding 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 correspond to the same forward data transmission path; A connection request packet is sent to the data receiving party according to the forward data transmission path after the source port number is configured, so as to establish a data transmission connection with the data receiving party.
2. The data transmission method according to claim 1, characterized in that: Obtaining the hierarchical port number grouping of the source port number of the data sender at each data transmission layer in the data center network, including: Combining the source port number of the data sender with the preset four-tuple data to generate five-tuple data, and generating a detection data packet based on the five-tuple data; Sending the detection data packet to the data receiver to determine switches of each data transmission layer in the data center network through which the detection data packet passes to reach the data receiver; The switch group to which the switches of each data transmission layer belong is used as the source port number contained in the detection 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 included in the next data transmission layer connected to the data transmission layer; a switch of the data transmission layer and a switch of the next data transmission layer represent a switch group of the data transmission layer.
3. The data transmission method according to claim 2, characterized in that: Determining switches at each data transmission layer in the data center network through which the detection data packet passes to reach the data receiver includes: Based on the routing hash information 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 the switch index of the next data transmission layer to which the detection data packet needs 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.
4. The data transmission method according to claim 3, characterized in that: Before performing routing hash calculation on the path identification feature contained in the detection data packet based on the routing hash information configured by the switch of the current data transmission layer, the method further includes: 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.
5. The data transmission method according to claim 3, characterized in that: Based on the routing hash information 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 the switch index of the next data transmission layer to which the detection data packet needs to be sent, including: Based on the XOR hash algorithm and hash seed 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 the switch index of the next data transmission layer to which the detection data packet needs 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.
6. The data transmission method according to claim 1, characterized in that: Obtaining the hierarchical port number grouping of the source port number of the data sender at each data transmission layer in the data center network, including: Extracting a plurality of designated source port numbers that meet preset conditions from a plurality of source port numbers of the data sender, and obtaining hierarchical port number grouping information of the plurality of designated source port numbers relative to each data transmission layer corresponding to the data sender; 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.
7. The data transmission method according to claim 6, characterized in that: According to the hierarchical port number groups of each data transmission layer corresponding to the plurality of designated source port numbers, calculating the hierarchical port number groups of each data transmission layer corresponding to the plurality of non-designated source port numbers that do not meet the preset conditions among the plurality of source port numbers, including: 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 XOR operation of the at least two designated source port numbers; An XOR operation is performed on the hierarchical port number groups corresponding to the at least two designated source port numbers to obtain the hierarchical port number group corresponding to the non-designated source port number.
8. The data transmission method according to claim 1, characterized in that: Sending a connection request packet to the data receiver according to the forward data transmission path after configuring the source port number includes: Configuring a physical sending port of each forward data transmission path, wherein the physical sending port is a physical port used by the data sender to send data, and a difference in the number of forward data transmission paths configured between the physical sending ports of the data sender is less than a threshold; Send a connection request packet to the data receiver according to the forward data transmission path after configuring the physical sending port and the source port number.
9. The data transmission method according to claim 8, characterized in that: The data transmitter includes a first physical transmission port and a second physical transmission port; the physical transmission ports configured for each forward data transmission path include: 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.
10. The data transmission method according to claim 8, characterized in that: After sending a connection request packet to the data receiver according to the forward data transmission path after configuring the physical transmission port and the source port number, the method further includes: Obtaining a request response packet fed back by the data recipient 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.
11. A data transmission method, characterized in that: Applied to a data receiver, the method comprises: Obtaining hierarchical port number grouping of the source port number of the data receiver 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; Extracting the intersection of the source port numbers in the plurality of combined port number groups to obtain the receiving party source port number group corresponding to each of the combined port number groups; Get the connection request packet sent by the data sender; According to the receiving party source port number grouping, source port numbers are configured for multiple reverse data transmission paths corresponding to the data receiving party, wherein the reverse data transmission path is a physical path for the data receiving party to send data to the data sending party, source port numbers corresponding to different reverse data transmission paths belong to different receiving party source port number groups, and source ports in the same receiving party source port number group correspond to the same reverse data transmission path; A request response packet is sent to the data sender according to the reverse data transmission path after the source port number is configured, so as to establish a data transmission connection with the data sender.
12. The data transmission method according to claim 11, characterized in that: Sending a request response packet to the data sender according to the reverse data transmission path after configuring the source port number includes: Configure 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 data sender according to the reverse data transmission path after configuring the physical sending port and the source port number.
13. A data transmission device, characterized in that: Applied to a data sender, the device comprises: A port number group acquisition module is used to obtain the hierarchical port number grouping of the source port number of the data sender in each data transmission layer in the data center network; cross-combining the hierarchical port number groupings of each data transmission layer to obtain multiple combined port number groups; extracting the intersection of the source port numbers in the multiple combined port number groups to obtain the sender source port number grouping corresponding to each of the combined port number groups, wherein the sender source port number grouping is obtained by grouping the source port number of the data sender; A port number configuration module, configured to perform source port number configuration on multiple forward data transmission paths corresponding to the data sender according to the sender source port number grouping, wherein the forward data transmission path is a physical path for the data sender to send data to the data receiver, source port numbers corresponding to different forward data transmission paths belong to different sender source port number groups, and source ports in the same sender source port number grouping correspond to the same forward data transmission path; The request packet sending module is used to send a connection request packet to the data receiving party according to the forward data transmission path after the source port number is configured, so as to establish a data transmission connection with the data receiving party.
14. A data transmission device, characterized in that: Applied to a data receiving party, the device comprises: A port number group acquisition module is used to obtain the hierarchical port number grouping of the source port number of the data receiver at each data transmission layer in the data center network; cross-combining the hierarchical port number groupings of each data transmission layer to obtain multiple combined port number groups; extracting the intersection of the source port numbers in the multiple combined port number groups to obtain the receiver source port number grouping corresponding to each of the combined port number groups; and obtaining the connection request packet sent by the data sender; A port number configuration module, configured to perform source port number configuration on multiple reverse data transmission paths corresponding to the data receiver according to the receiver source port number grouping, wherein the reverse data transmission path is a physical path for the data receiver to send data to the data sender, source port numbers corresponding to different reverse data transmission paths belong to different receiver source port number groups, and source ports in the same receiver source port number grouping correspond to the same reverse data transmission path; The response packet sending module is used to send a request response packet to the data sender according to the reverse data transmission path after the source port number is configured, so as to establish a data transmission connection with the data sender.
15. A computer readable medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, it implements the data transmission method described in any one of claims 1 to 10, or implements the data transmission method described in any one of claims 11 to 12.
16. An electronic device, characterized in that: include: processor; as well as A memory, configured to store 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-10, or executes the data transmission method described in any one of claims 11-12.
17. A computer program product, characterized in that The computer program product includes 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 described in any one of claims 1-10, or implements the data transmission method described in any one of claims 11-12.
Citation Information
Patent Citations
Multi-path transmission method and device, computer equipment and storage medium
CN116846816A
Data transmission method and related equipment
CN117221230A