Port-driven communication method and system suitable for PCIe network architecture
By implementing a port-driven communication method for the PCIe network architecture, and utilizing port coding and tenant identification, explicit path control and multi-tenant isolation are achieved. This solves the problems of path opacity and QoS guarantee in the PCIe interconnect architecture, and improves communication efficiency and security.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-11-25
- Publication Date
- 2026-03-24
AI Technical Summary
The existing PCIe interconnect architecture is difficult to meet the requirements of horizontal scalability, flexibility and end-to-end performance determinism in high-performance computing and data center interconnect. Traditional routing methods result in opaque paths and imprecise control, making it impossible to achieve fine-grained traffic scheduling and port-level QoS guarantees.
A port-driven communication method is adopted. By assigning a unique port code to each switch port, a global port mapping table is constructed, the code is compressed and a checksum is added. Combined with tenant identifiers and path signatures, explicit path control and multi-tenant isolation are achieved.
It improves communication efficiency, reduces latency and packet header burden, enhances the security and reliability of data transmission, and prevents path tampering and cross-tenant domain interference.
Smart Images

Figure CN121193671B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of communication network congestion control and compilation principles, and particularly relates to a port driving type communication method and system suitable for a PCIe network architecture. BACKGROUND
[0002] In the current field of high-performance computing and data center interconnection, the PCI Express (PCIe) technology has become the mainstream high-bandwidth, low-latency interconnection standard. With the rapid development of AI training, cloud computing, large-scale distributed storage and other businesses, the traditional tree or hierarchical structure PCIe architecture gradually fails to meet the needs of system for horizontal scalability, flexibility and end-to-end performance determinism.
[0003] The existing PCIe interconnection architecture generally adopts a routing mode based on BDF (Bus-Device-Function) or GID (Global ID) addressing. Under this scheme, the forwarding of data packets between switch chips depends on the address lookup table (such as D-LUT, GID-Table, etc.) maintained inside each level of device, which determines the next hop port of the data packet by analyzing and matching the target address in the TLP packet header. Especially in the PCIe architecture (PCIe Fabric) based on network structure (Mesh), the addressing and routing mechanism based on BDF (Bus-Device-Function) or GID (Global ID) needs to rely on the address lookup table of each level of switch chip for dynamic forwarding, which not only increases the complexity of routing table maintenance and synchronization, but also leads to path opacity and imprecise control of data packets under multi-hop forwarding, making it difficult to achieve fine traffic scheduling and port-level QoS guarantee.
[0004] The PCIe protocol also introduces the virtual channel (VC) and traffic class (TC) mechanism to achieve basic quality of service control at the link layer and within the channel. Some high-end systems combine multi-path routing and dynamic load balancing technology to try to improve bandwidth utilization and traffic isolation capability to some extent. However, this mechanism is limited to channel priority scheduling and cannot meet the application requirements of end-to-end, path-level quality of service control and high-density, multi-host, multi-port collaboration scenarios in network architecture. Moreover, these traditional schemes essentially rely on large-scale lookup tables generated and synchronized automatically and cannot achieve explicit control at the path level, so the end-to-end routing selection process lacks transparency and programmability, and the quality of service guarantee capability is limited to physical link and channel granularity. For large-scale, dynamic, multi-host collaboration high-density interconnection environments such as network architecture, it is still difficult to break through the technical bottlenecks of lookup table complexity, path uncontrollability and limited QoS isolation granularity.
[0005] Therefore, how to implement a port routing mechanism compatible with the PCIe protocol and capable of efficiently managing port addressing, path selection and QoS scheduling under a network structure is a technical problem that needs to be solved by the industry and academia.
[0006] The above background technology content is disclosed only to assist in understanding the inventive concept and technical solutions of the present application, and does not necessarily belong to the prior art of the present application, nor necessarily give technical teaching; in the absence of explicit evidence that the above content has been disclosed before the filing date of the present application, the above background technology should not be used to evaluate the novelty and inventiveness of the present application. SUMMARY
[0007] The present application aims to provide a port-driven communication method and system suitable for PCIe network architecture, which can reduce the packet header burden of data packets and ensure the safety and reliability of data transmission on the basis of improving communication efficiency and reducing communication delay.
[0008] To achieve the above-mentioned purpose, the technical solutions adopted by the present application are as follows:
[0009] A port-driven communication method suitable for PCIe network architecture, comprising the following steps:
[0010] A unique port code is allocated to each port of each switch in the PCIe network architecture in advance, and a global port mapping table is constructed, which includes the port code corresponding to each port;
[0011] A target path from a source port to a target port is determined according to the topology of the PCIe network architecture and the global port mapping table, the target path includes the port code corresponding to each port it passes through, and the source port and the target port are two different ports;
[0012] The target path is compressed and encoded, and a first check code is added to the tail of the compressed and encoded target path to obtain an encrypted target path, and the encrypted target path is written into the extension header of the data packet to be sent;
[0013] In the transmission process of the data packet, the switch currently receiving the data packet parses the encrypted target path to obtain the target path and checks the first check code, if the check is passed, the current target transmission port is determined according to the target path, and the switch transmits the data packet to the current target transmission port.
[0014] Further, any of the above technical solutions or a combination of the above technical solutions further comprises the following steps:
[0015] The PCIe network architecture includes multiple tenant domains, and each tenant domain includes multiple devices based on PCIe communication. Different devices belonging to the same tenant domain are configured to communicate with each other, and devices belonging to different tenant domains are configured not to communicate. Each tenant domain is configured with a unique tenant identifier and the tenant identifier is distributed to each device and switch within the tenant domain.
[0016] The source device configures a tenant identifier field in the extended header of the data packet. The tenant identifier field includes a first tenant identifier and a second tenant identifier. The first tenant identifier is the tenant identifier corresponding to the tenant domain where the source device is located, and the second tenant identifier is the tenant identifier corresponding to the tenant domain where the target device is located.
[0017] During the transmission of the data packet, the switch is also configured to determine whether the first tenant identifier and the second tenant identifier in the tenant identifier field are consistent. If they are consistent, the switch transmits the data packet according to the port encoding in the target path. If they are inconsistent, the switch does not transmit the data packet.
[0018] Furthermore, following any one or a combination of the aforementioned technical solutions, the method further includes the following steps:
[0019] The PCIe network architecture includes multiple tenant domains, and each tenant domain includes multiple devices based on PCIe communication. Different devices belonging to the same tenant domain are configured to communicate with each other, and devices belonging to different tenant domains are configured not to communicate. Each tenant domain is configured with a unique tenant identifier and the tenant identifier is distributed to each device and switch within the tenant domain.
[0020] The source device determines whether the source device and the target device belong to the same tenant domain. If not, it does not initiate a data packet. If they do, it initiates a data packet and configures a tenant identifier field in the extended header of the data packet. The tenant identifier field includes a third tenant identifier, which is the tenant identifier corresponding to the tenant domain where the source device and / or the target device are located.
[0021] During the transmission of the data packet, the switch is also configured to determine whether the third tenant identifier in the tenant identifier field is consistent with its own corresponding tenant identifier. If they are consistent, the switch transmits the data packet according to the port encoding in the target path. If they are inconsistent, the switch does not transmit the data packet.
[0022] Furthermore, following any one or a combination of the aforementioned technical solutions, the method further includes the following steps:
[0023] The PCIe network architecture includes multiple tenant domains, and each tenant domain includes multiple devices based on PCIe communication. Different devices belonging to the same tenant domain are configured to communicate with each other, and devices belonging to different tenant domains are also configured to communicate with each other. Each tenant domain is configured with a unique tenant identifier and the tenant identifier is distributed to each device and switch within the tenant domain.
[0024] The source device configures a tenant identifier field in the extended header of the data packet. The tenant identifier field includes a first tenant identifier and a second tenant identifier. The first tenant identifier is the tenant identifier corresponding to the tenant domain where the source device is located, and the second tenant identifier is the tenant identifier corresponding to the tenant domain where the target device is located.
[0025] During the transmission of the data packet, the switch is also configured to determine whether there is an identifier in the first tenant identifier and the second tenant identifier in the tenant identifier field that matches its own tenant identifier. If there is an identifier, the switch transmits the data packet according to the port encoding in the target path. If they do not match, the switch does not transmit the data packet.
[0026] Furthermore, following any one or a combination of the aforementioned technical solutions, the method further includes the following steps:
[0027] The tenant identifier field and the encrypted target path are encrypted and signed based on a hash algorithm to obtain a first signature value;
[0028] During the transmission of the data packet, the switch decrypts and verifies the first signature value. If the verification passes, the switch performs tenant identifier matching identification. If the verification fails, the data packet is not transmitted.
[0029] Furthermore, following any one or a combination of the aforementioned technical solutions, the method further includes the following steps:
[0030] When the switch determines that it will not transmit the data packet, the switch sends a first feedback message to the management unit of its tenant domain.
[0031] Upon receiving the first feedback information, the management unit outputs a prompt message.
[0032] Furthermore, following any or a combination of the aforementioned technical solutions, the target path is compressed and encoded in the following manner: each port code is pre-aliased to obtain a port aliasing code table, wherein the length of the aliasing code is less than the length of the port code; based on the port aliasing code table, the target path is compressed and encoded using port alias group compression encoding to obtain the encrypted target path;
[0033] Alternatively, the source device may encode the target path according to a preset alias encoding rule to obtain the encrypted target path.
[0034] Furthermore, following any one or a combination of the aforementioned technical solutions, the method further includes the following steps:
[0035] If there are multiple transmission paths from the source port to the target port, the transmission path with the best data transmission quality is determined as the primary target path, and one or more of the other transmission paths are determined as backup target paths.
[0036] The primary destination path is written into the extended header of the data packet, and the data packet is transmitted based on the primary destination path.
[0037] Furthermore, following any one or a combination of the aforementioned technical solutions, the method further includes the following steps:
[0038] When the data transmission quality of the primary target path does not meet the preset data transmission requirements, the data packet is transmitted by switching to an alternative target path.
[0039] When switching the transmission path of the data packet, the target path in the extended header of the data packet is rewritten to one of the alternative target paths, and a second check code is added to the end of the rewritten target path. The second check code is different from the first check code.
[0040] Furthermore, following any one or a combination of the aforementioned technical solutions, the method further includes the following steps:
[0041] In the PCIe network architecture, the port connected to the device to be communicated is identified as the terminal port. Using one terminal port as the source port and another terminal port as the target port, multiple communication port groups are determined.
[0042] For each communication port group, determine the transmission path from the source port to the destination port, and traverse all communication port groups to construct a path table, which includes corresponding communication port groups and transmission paths;
[0043] A path verification table is pre-built, which includes corresponding transmission paths and check codes, with different check codes corresponding to different transmission paths;
[0044] The source device uses the checksum corresponding to the target path in the determined path checksum table as the first checksum, and adds the first checksum to the end of the compressed and encoded target path.
[0045] Furthermore, in accordance with any one or a combination of the aforementioned technical solutions, the method also includes periodically updating the checksums corresponding to each transmission path in the path verification table.
[0046] According to another aspect of the present invention, a port-driven communication system suitable for PCIe network architecture is provided, comprising a plurality of devices to communicate, one or more switches, wherein the devices are electrically connected to the switches, and two different devices communicate based on the port-driven communication method suitable for PCIe network architecture described in any one or a combination of the above technical solutions.
[0047] The beneficial effects of the technical solution provided by this invention are as follows:
[0048] a. This invention can effectively shorten the path description length and reduce the packet header burden by using a global port encoding table and a group compression encoding mechanism. Based on the check code at the end of the path, it can realize the integrity verification of the path. When the verification fails, the data packet is discarded and reported, thereby preventing the path from being tampered with and generating other synchronization errors, and improving the security and reliability of data transmission.
[0049] b. The present invention pre-constructs a path verification table, which includes corresponding transmission paths and verification codes. Different transmission paths correspond to different verification codes, and the verification codes corresponding to each transmission path in the path verification table are updated regularly. This can prevent the path verification table from being tampered with or deciphered, thus preventing data transmission security issues.
[0050] c. This invention configures a unique tenant identifier for each tenant domain and distributes it to each node in the tenant domain. The tenant identifier is added to the extended header of the data packet. Based on the tenant identifier, the communication method between the same and different tenant domains is determined. By introducing this path signature and multi-tenant isolation mechanism, various data transmission requirements can be met, and the data transmission path can be prevented from being tampered with, thereby further improving the reliability and security of data transmission. Attached Figure Description
[0051] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments recorded in this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0052] Figure 1 A flowchart illustrating a port-driven routing method provided as an exemplary embodiment of the present invention;
[0053] Figure 2A flowchart illustrating a first multi-tenant isolation mechanism provided as an exemplary embodiment of the present invention;
[0054] Figure 3 A flowchart illustrating a second multi-tenant isolation mechanism provided as an exemplary embodiment of the present invention;
[0055] Figure 4 This is a flowchart illustrating a third multi-tenant isolation mechanism provided as an exemplary embodiment of the present invention. Detailed Implementation
[0056] To enable those skilled in the art to better understand the present invention, the technical solutions of the present invention will be clearly and completely described below with reference to the accompanying drawings of the embodiments of the present invention. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort should fall within the scope of protection of the present invention.
[0057] It should be noted that the terms "first," "second," etc., in the specification, claims, and accompanying drawings of this invention are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments of the invention described herein can be implemented in orders other than those illustrated or described herein. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover a non-exclusive inclusion; for example, a process, method, apparatus, product, or device that comprises a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or devices.
[0058] Compared to the additional latency and complexity introduced by traditional BDF routing and GID (Global ID) addressing, explicitly indicating the entire data packet transmission process by using a transmission path from the source port to the destination port avoids the need for address matching every time data is forwarded. This significantly reduces the forwarding latency of data packets within the switching chip, improves data throughput efficiency, simplifies the chip's logic structure, and thus reduces the power consumption of the communication system. However, this efficient and low-latency communication method also correspondingly introduces problems such as reduced data transmission security, increased risk of data transmission path tampering, and increased header burden due to path description.
[0059] In view of this, the present invention proposes a port-driven communication method and system suitable for PCIe network architecture, which aims to improve communication efficiency, reduce communication latency, reduce packet header burden, and ensure data transmission security and reliability.
[0060] In one embodiment of the present invention, a port-driven communication method suitable for PCIe network architecture is provided, see [link to relevant documentation]. Figure 1 The method includes the following steps: First, a unique port code is pre-assigned to each port of each switch in the PCIe network architecture, and a global port mapping table is constructed, the global port mapping table including the port code corresponding to each port; second, a target path from the source port to the target port is determined according to the topology of the PCIe network architecture and the global port mapping table, the target path including the port codes corresponding to each port it passes through, the source port and the target port being two different ports; third, the target path is compressed and encoded, and a first checksum is added to the end of the compressed and encoded target path to obtain an encrypted target path, the encrypted target path is written into the extended header of the data packet to be sent; during the transmission of the data packet, the switch currently receiving the data packet parses the encrypted target path to obtain the target path and verifies the first checksum, if the verification passes, the current target transmission port is determined according to the target path, and the switch transmits the data packet to the current target transmission port.
[0061] The global port mapping table is constructed by the management unit (usually the system manager, Root Complex) during system initialization, device enumeration, or topology configuration phases and then uniformly generated and distributed to each node. Specifically, the management unit assigns a unique port code (Port ID) to the physical output port connected to each PCIe switching chip and establishes a static one-to-one mapping table between the port codes and physical ports, namely the global port mapping table (PMT). The global port mapping table includes physical ports and port codes that correspond one-to-one with each physical port. Each port code is unique, and the physical port is represented as port information that the PCIe network architecture can recognize, such as a port BDF (Bus, Device, Function) or a port address.
[0062] After the global port mapping table is established, it is distributed to various terminal devices and switches in the PCIe network architecture. Taking the global port mapping table as an example, which includes a BDF (Browser Defender) and port code corresponding to each port, the source device initiating the data packet determines the transmission path from the source port to the target port, and searches the global port mapping table for the port codes corresponding to each port along the transmission path to obtain the target path. During data packet transmission, each switch can identify the current target transmission port based on the port codes in the target path. It should be noted that in this application, the switch is a data switching device based on PCIe in a broad sense; it can be a PCIe switch, a CXL switch, or a PCIe interface / PCIe board that only includes a switching chip and ports.
[0063] There are several ways to set the port codes. For example, all ports can be encoded by serial number. More preferably, the port can be encoded according to the switch to which it is located and its position within the switch. For example, the port code corresponding to the second port of the third switch is set to 0x0302, and the port code corresponding to the first port of the fourth switch is set to 0x0401. This application does not limit the specific setting method of the port codes, as long as each port code is unique and corresponds to the BDF of the physical port, so that each switch and terminal device can identify the physical port corresponding to the port code according to the global port mapping table. For example, if a target path passes through the second port of the first switch, the fourth port of the third switch, the sixth port of the fifth switch, and the eighth port of the seventh switch in sequence, then the target path is represented as: Port-Vector=[0x12, 0x34, 0x56, 0x78], where Port-Vector represents the target path.
[0064] The switch identifies the current target transmission port based on the target path and the global port mapping table, and transmits the data packet to the current target transmission port to achieve low-latency, high-efficiency data transmission. There are several ways to achieve this low-latency, high-efficiency data packet transmission. For example, the switch can identify ports in the target path that match its own port, and determine the later port of the two matching ports to use as the current target transmission port for transmitting the data packet. Another example is to configure an incrementally increasing pointer in the target path to indicate the currently active port, determine the current target transmission port based on the active port, and configure the pointer to indicate the next active port after each data transmission is completed.
[0065] This application proposes a port alias and group compression coding mechanism to define a shared alias ID for multiple physical ports on the target path. Each switching chip decompresses the data packet into the actual port ID according to the alias table. Simultaneously, a path CRC (Path-CRC) checksum field is added to the end of the packet's extended header, also known as the Vendor Defined Prefix (VDP), to verify path integrity. When the CRC check fails, the packet is immediately dropped and reported, preventing path tampering or synchronization errors. For example, when the CRC check fails, the switch that failed the check returns a second feedback message to the source device, configured to indicate path verification failure.
[0066] The port alias and group compression coding mechanism proposed in this invention can be implemented in multiple ways.
[0067] One approach is to pre-alias each port code to obtain a port alias code table, wherein the length of the alias code is less than the length of the port code; based on the port alias code table, the target path is compressed using port alias group compression encoding to obtain the encrypted target path; during the transmission of the data packet, the switch parses the port code in the encrypted target path according to the port alias code table.
[0068] When a terminal device, i.e., a source device, needs to send data to another terminal device, i.e., a target device, the source device determines the target path based on the PCIe network architecture topology and the global port mapping table. It then determines the alias codes corresponding to each port code on the target path based on the port alias encoding table, writes the target path composed of alias codes into the extended header of the data packet, and adds the first checksum, for example, a CRC check field, to the end of the target path.
[0069] Another approach is to pre-set aliasing rules for port codes and distribute these rules to each switch and endpoint device. When a source device needs to send data to another destination device, the source device determines the target path based on the PCIe network topology and the global port mapping table. It then converts each port code on the target path into its corresponding alias code based on the aliasing rules, writes the target path composed of these aliases into the extended header of the data packet, and adds the first checksum to the end of the target path.
[0070] This application effectively shortens the path description length and reduces the header burden through the aforementioned port alias and group compression coding mechanism, achieving a balance between saving coding width and maintaining path explicitness. Based on the checksum at the end of the path, path integrity verification can be implemented. If the check fails, the data packet is discarded and reported, thus preventing path tampering and other synchronization errors, improving the security and reliability of data transmission. It significantly reduces the width of the packet header, metadata, and registers.
[0071] In one embodiment of the invention, ports connected to terminal devices are selected from all switch ports to determine all possible data transmission paths. Specifically, ports in the PCIe network architecture connected to the device to be communicated with are identified as terminal ports. Multiple communication port groups are determined, with one terminal port as the source port and another as the destination port. For each communication port group, a transmission path from the source port to the destination port is determined. All communication port groups are traversed to construct a path table, which includes corresponding communication port groups and transmission paths.
[0072] A path verification table is pre-built, which includes corresponding transmission paths and checksums, with different checksums corresponding to different transmission paths. The checksums corresponding to each transmission path in the path verification table are updated periodically to prevent the path verification table from being tampered with or deciphered, thus preventing data transmission security issues.
[0073] When a source device needs to send data to a target device, the source device searches the path table for the transmission path corresponding to the communication port group from the source port to the target port as the target path. The source device determines the checksum corresponding to the target path in the path verification table as the first checksum. The source device adds the first checksum to the end of the compressed target path to obtain an encrypted target path, and writes the encrypted target path into the header extension of the data packet.
[0074] If there are multiple transmission paths from the source port to the destination port, the transmission path with the best data transmission quality is determined as the primary destination path, and one or more of the other transmission paths are determined as backup destination paths; the primary destination path is written into the extended header of the data packet and the data packet is transmitted based on the primary destination path.
[0075] When the data transmission quality of the primary target path does not meet the preset data transmission requirements, a backup target path is switched to transmit the data packet. When switching the transmission path of the data packet, the target path in the extended header of the data packet is rewritten as the backup target path, and a second checksum is added to the end of the rewritten target path. This second checksum is different from the first checksum. Specifically, the checksum corresponding to the backup target path is searched in the aforementioned path checksum table to serve as the second checksum.
[0076] In one embodiment of the present invention, the port-driven communication method applicable to PCIe network architecture introduces path signature and multi-tenant isolation mechanisms to further improve the reliability and security of data transmission. In this embodiment, the PCIe network architecture includes multiple tenant domains, and each tenant domain includes multiple devices based on PCIe communication. Different devices belonging to the same tenant domain are configured to communicate with each other, while devices belonging to different tenant domains can be configured to communicate with each other or not communicate. Each tenant domain is configured with a unique tenant identifier. The tenant domain represents a logical partition of different host groups, service domains, or security domains within the same physical PCIe / CXL interconnect network. For example, in a cloud data center, different virtual machines or container groups are different tenants.
[0077] This addresses the scenario where devices belonging to different tenant domains are configured not to communicate. See also... Figure 2 The extended header of the data packet includes a tenant identifier field, which comprises a first tenant identifier and a second tenant identifier. The first tenant identifier is the tenant identifier corresponding to the tenant domain of the source device, and the second tenant identifier is the tenant identifier corresponding to the tenant domain of the destination device. In this technical solution, the tenant domain to which the data packet belongs is identified by setting a TID (Tenant ID) field, i.e., the tenant identifier field, in the VDP extended header. After receiving the data packet, the switching chip verifies the TID matching: if it does not match, it discards or blocks forwarding; if it matches, it continues to forward along the destination path.
[0078] Specifically, during the transmission of the data packet, the switch is configured to determine whether the first tenant identifier and the second tenant identifier are consistent. If they are consistent, the switch transmits the data packet according to the port encoding in the encrypted target path; if they are inconsistent, the switch does not transmit the data packet. This ensures that data flows are forwarded only within the authorized tenant domain, preventing traffic interference between different tenants, avoiding cross-domain path abuse and side-channel risks, and improving data transmission security.
[0079] For scenarios where devices belonging to different tenant domains are configured not to communicate, see [link to relevant documentation]. Figure 3Multi-tenant isolation can also be achieved through the following methods: each tenant domain is configured with a unique tenant identifier, and the tenant identifier is distributed to each node, i.e., device and switch, within the tenant domain; it is determined whether the source device and the target device belong to the same tenant domain. If not, no data packet is initiated; if so, a data packet is initiated, and the extended header of the data packet is configured with a tenant identifier, which includes a third tenant identifier, which is the tenant identifier corresponding to the tenant domain where the source device and / or the target device reside; during the transmission of the data packet, the switch is also configured to determine whether the third tenant identifier is consistent with its own corresponding tenant identifier. If they are consistent, the switch transmits the data packet according to the port encoding in the encrypted target path; if they are inconsistent, the switch does not transmit the data packet.
[0080] For scenarios where devices belonging to different tenant domains are also configured to communicate, see [link to relevant documentation]. Figure 4 The port-driven communication method applicable to PCIe network architecture further includes the following steps: the tenant domain is configured with a unique tenant identifier and the tenant identifier is distributed to each device and switch within the tenant domain; the extended header of the data packet is configured with a tenant identifier field, the tenant identifier field including a first tenant identifier and a second tenant identifier, the first tenant identifier being the tenant identifier corresponding to the tenant domain where the source device is located, and the second tenant identifier being the tenant identifier corresponding to the tenant domain where the target device is located; during the transmission of the data packet, the switch is also configured to determine whether there is an identifier in the first tenant identifier and the second tenant identifier that matches its own corresponding tenant identifier; if so, the switch transmits the data packet according to the port encoding in the encrypted target path; if they do not match, the switch does not transmit the data packet.
[0081] To further improve the security and reliability of data transmission, the port-driven communication method applicable to PCIe network architecture further includes the following steps: encrypting and signing the tenant identifier field and the encrypted target path based on a hash algorithm to obtain a first signature value; during the transmission of the data packet, the switch decrypts and verifies the first signature value; if the verification passes, it then performs tenant identifier matching identification; if the verification fails, it does not transmit the data packet.
[0082] In any of the above embodiments, when the switch determines not to transmit the data packet, it sends a first feedback message to the management unit of its tenant domain. This first feedback message is configured to indicate a mismatch in tenant identifiers. Upon receiving the first feedback message, the management unit outputs a prompt message, which may be a specific error message, such as indicating a mismatch in tenant identifiers. Specifically, the switch's decision not to transmit the data packet may involve discarding the data packet or blocking its forwarding.
[0083] In one embodiment of the present invention, a port-driven communication system suitable for PCIe network architecture is provided. The communication system includes a plurality of devices to communicate and one or more switches. The devices are electrically connected to the switches, and two different devices communicate based on any of the port-driven communication methods suitable for PCIe network architecture described above.
[0084] It should be noted that the port-driven communication system for PCIe network architecture provided by this invention has the same inventive concept as the above-described port-driven communication method embodiment for PCIe network architecture. The entire contents of the port-driven communication method embodiment for PCIe network architecture are incorporated into the port-driven communication system embodiment for PCIe network architecture by means of introduction.
[0085] It should be noted that, in this document, relational terms such as "first" and "second" are used only to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.
[0086] The above description is only a specific embodiment of this application. It should be noted that for those skilled in the art, several improvements and modifications can be made without departing from the principle of this application, and these improvements and modifications should also be considered within the scope of protection of this application.
Claims
1. A port-driven communication method suitable for PCIe network architecture, characterized in that, Includes the following steps: A unique port code is pre-assigned to each port of each switch in the PCIe network architecture, and a global port mapping table is constructed, which includes the port code corresponding to each port; The target path from the source port to the target port is determined based on the topology of the PCIe network architecture and the global port mapping table. The target path includes the port codes corresponding to each port it passes through. The source port and the target port are two different ports. The target path is compressed and encoded, and a first checksum is added to the end of the compressed and encoded target path to obtain an encrypted target path. The encrypted target path is then written into the extended header of the data packet to be sent. The target path is compressed and encoded in the following ways: each port code is pre-aliased to obtain a port alias code table, wherein the length of the alias code is less than the length of the port code; the target path is compressed and encoded using port alias group compression encoding according to the port alias code table to obtain the encrypted target path; or, the source device encodes the target path according to a preset alias encoding rule to obtain the encrypted target path. During the transmission of the data packet, the switch currently receiving the data packet parses the encrypted target path to obtain the target path and verifies the first verification code. If the verification passes, the switch determines the current target transmission port based on the target path and transmits the data packet to the current target transmission port.
2. The port-driven communication method for PCIe network architecture according to claim 1, characterized in that, It also includes the following steps: The PCIe network architecture includes multiple tenant domains, and each tenant domain includes multiple devices based on PCIe communication. Different devices belonging to the same tenant domain are configured to communicate with each other, and devices belonging to different tenant domains are configured not to communicate. Each tenant domain is configured with a unique tenant identifier and the tenant identifier is distributed to each device and switch within the tenant domain. The source device configures a tenant identifier field in the extended header of the data packet. The tenant identifier field includes a first tenant identifier and a second tenant identifier. The first tenant identifier is the tenant identifier corresponding to the tenant domain where the source device is located, and the second tenant identifier is the tenant identifier corresponding to the tenant domain where the target device is located. During the transmission of the data packet, the switch is also configured to determine whether the first tenant identifier and the second tenant identifier in the tenant identifier field are consistent. If they are consistent, the switch transmits the data packet according to the port encoding in the target path. If they are inconsistent, the switch does not transmit the data packet.
3. The port-driven communication method applicable to PCIe network architecture according to claim 1, characterized in that, It also includes the following steps: The PCIe network architecture includes multiple tenant domains, and each tenant domain includes multiple devices based on PCIe communication. Different devices belonging to the same tenant domain are configured to communicate with each other, and devices belonging to different tenant domains are configured not to communicate. Each tenant domain is configured with a unique tenant identifier and the tenant identifier is distributed to each device and switch within the tenant domain. The source device determines whether the source device and the target device belong to the same tenant domain. If not, it does not initiate a data packet. If they do, it initiates a data packet and configures a tenant identifier field in the extended header of the data packet. The tenant identifier field includes a third tenant identifier, which is the tenant identifier corresponding to the tenant domain where the source device and / or the target device are located. During the transmission of the data packet, the switch is also configured to determine whether the third tenant identifier in the tenant identifier field is consistent with its own corresponding tenant identifier. If they are consistent, the switch transmits the data packet according to the port encoding in the target path. If they are inconsistent, the switch does not transmit the data packet.
4. The port-driven communication method suitable for PCIe network architecture according to claim 1, characterized in that, It also includes the following steps: The PCIe network architecture includes multiple tenant domains, and each tenant domain includes multiple devices based on PCIe communication. Different devices belonging to the same tenant domain are configured to communicate with each other, and devices belonging to different tenant domains are also configured to communicate with each other. Each tenant domain is configured with a unique tenant identifier and the tenant identifier is distributed to each device and switch within the tenant domain. The source device configures a tenant identifier field in the extended header of the data packet. The tenant identifier field includes a first tenant identifier and a second tenant identifier. The first tenant identifier is the tenant identifier corresponding to the tenant domain where the source device is located, and the second tenant identifier is the tenant identifier corresponding to the tenant domain where the target device is located. During the transmission of the data packet, the switch is also configured to determine whether there is an identifier in the first tenant identifier and the second tenant identifier in the tenant identifier field that matches its own tenant identifier. If there is an identifier, the switch transmits the data packet according to the port encoding in the target path. If they do not match, the switch does not transmit the data packet.
5. The port-driven communication method suitable for PCIe network architecture according to claim 2, 3, or 4, characterized in that, It also includes the following steps: The tenant identifier field and the encrypted target path are encrypted and signed based on a hash algorithm to obtain a first signature value; During the transmission of the data packet, the switch decrypts and verifies the first signature value. If the verification passes, the switch performs tenant identifier matching identification. If the verification fails, the data packet is not transmitted.
6. The port-driven communication method suitable for PCIe network architecture according to claim 2, 3, or 4, characterized in that, It also includes the following steps: When the switch determines that it will not transmit the data packet, the switch sends a first feedback message to the management unit of its tenant domain. Upon receiving the first feedback information, the management unit outputs a prompt message.
7. The port-driven communication method applicable to PCIe network architecture according to claim 1, characterized in that, It also includes the following steps: If there are multiple transmission paths from the source port to the target port, the transmission path with the best data transmission quality is determined as the primary target path, and one or more of the other transmission paths are determined as backup target paths. The primary destination path is written into the extended header of the data packet, and the data packet is transmitted based on the primary destination path.
8. The port-driven communication method for PCIe network architecture according to claim 7, characterized in that, It also includes the following steps: When the data transmission quality of the primary target path does not meet the preset data transmission requirements, the data packet is transmitted by switching to an alternative target path. When switching the transmission path of the data packet, the target path in the extended header of the data packet is rewritten to one of the alternative target paths, and a second check code is added to the end of the rewritten target path. The second check code is different from the first check code.
9. The port-driven communication method for PCIe network architecture according to claim 1, characterized in that, It also includes the following steps: In the PCIe network architecture, the port connected to the device to be communicated is identified as the terminal port. Using one terminal port as the source port and another terminal port as the target port, multiple communication port groups are determined. For each communication port group, determine the transmission path from the source port to the destination port, and traverse all communication port groups to construct a path table, which includes corresponding communication port groups and transmission paths; A path verification table is pre-built, which includes corresponding transmission paths and check codes, with different check codes corresponding to different transmission paths; The source device uses the checksum corresponding to the target path in the determined path checksum table as the first checksum, and adds the first checksum to the end of the compressed and encoded target path.
10. The port-driven communication method for PCIe network architecture according to claim 9, characterized in that, It also includes periodically updating the checksums corresponding to each transmission path in the path checksum table.
11. A port-driven communication system suitable for PCIe network architecture, characterized in that, It includes multiple devices to communicate, one or more switches, the devices being electrically connected to the switches, and two different devices communicating based on the port-driven communication method applicable to PCIe network architecture as described in claim 1.
Citation Information
Patent Citations
Device and method for bridging multiple HT (Hyper Transport) buses to single PCIe (Peripheral Component Interface Express) bus
CN101882126A
Communication method and system based on PCIe (peripheral component interconnect express) data exchange
CN103117929A