Data transmission method and device

By introducing service expansion fields into messages transmitted in the overlay network and carrying service information, the problem that the existing technology cannot meet network isolation needs in large-scale tenant scenarios is solved, and the flexibility and user experience of service expansion are improved.

CN119854067APending Publication Date: 2025-04-18BEIJING HUAWEI DIGITAL TECH
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202311338076.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-10-16
Publication Date
2025-04-18

AI Technical Summary

Technical Problem

Existing VXLAN and Geneve technologies cannot meet network isolation requirements in scenarios with a large number of tenants, and it is difficult to expand new services by overlaying messages transmitted in the network, affecting the user experience.

Method used

By introducing service expansion fields into messages transmitted in the overlay network, carrying service information to realize the functions of corresponding services. The specific method includes obtaining the packets to be transmitted, encapsulating them, adding service extension fields and service mark bits, and transmitting them over the overlay network.

Benefits of technology

Improves the flexibility of expanding new services through messages transmitted in the overlay network, enhances user experience, and can meet network isolation needs in large-scale tenant scenarios.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119854067A_ABST
    Figure CN119854067A_ABST
Patent Text Reader

Abstract

The invention discloses a data transmission method and device, and belongs to the technical field of communication. The method comprises the following steps: acquiring a first message, wherein the first message is a message needing to be transmitted in an overlay network; and packaging the first message to obtain a second message, and transmitting the second message through the overlay network. Wherein the header of the second message comprises a service extension field, the service extension field is used for carrying service information, and the service information is used for realizing the corresponding service. According to the method provided by the invention, the new service can be flexibly expanded through the message transmitted in the overlay network.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of communication technology, and in particular to a data transmission method and device. Background Art

[0002] Virtual local area network (VLAN) is the mainstream technology for network isolation. According to the current standard definition, VLAN can achieve network isolation for about 4,000 tenants. In scenarios with a large number of tenants, such as data centers with tens of thousands of tenants or large campus networks with a large number of tenants, VLAN cannot meet the network isolation needs of these tenants / users.

[0003] To meet the network isolation requirements of a large number of tenants, the limitation of VLAN on the number of tenants can be solved by technologies such as virtual extensible local area network (VXLAN) or generic network virtualization encapsulation (Geneve). According to the current standard definition, VXLAN and Geneve can achieve network isolation for approximately 16 million tenants.

[0004] Among them, VXLAN and Geneve are essentially tunnel technologies for building overlay networks. In order to improve user experience, how to expand new services through messages transmitted in the overlay network has become a technical problem that needs to be solved urgently. Summary of the invention

[0005] The present application provides a data transmission method and device, which can flexibly implement the expansion of new services through messages transmitted in an overlay network.

[0006] This application provides the following technical solutions:

[0007] In a first aspect, the present application provides a data transmission method, the method comprising: obtaining a first message, the first message being a message that needs to be transmitted in an overlay network. Encapsulating the first message to obtain a second message, and transmitting the second message through the overlay network. The header of the second message includes a service extension field, the service extension field is used to carry service information, and the service information is used to implement the corresponding service.

[0008] Through the method provided in the present application, it is possible to carry a service extension field in a message transmitted in an overlay network, and carry service information through the service extension field to implement the corresponding service. This can improve the flexibility of extending new services through messages transmitted in the overlay network, thereby improving user experience.

[0009] In a possible design, the header of the second message further includes a service flag bit, which is used to indicate whether the header of the second message includes a service extension field. Through this possible design, it is possible to quickly identify whether the second message includes a service extension field.

[0010] In one possible design, the above-mentioned business information includes one or more of an identifier of a user group, an identifier of an application group, a quality of service (QoS) level, or a flow detection value. Among them, the identifier of the user group is used to indicate the group to which the user who initiated the first message belongs. The identifier of the application group is used to indicate the group to which the application that initiated the first message belongs. The quality of service level is used to indicate the quality of service level corresponding to the initiator of the first message. The flow detection value is used to detect the performance of the link for transmitting the second message. Through this possible design, the message forwarding device that receives the second message can execute the corresponding security policy or QoS policy on the second message according to the identifier of the user group, the identifier of the application group, and the QoS level carried in the second message. And, the performance of the communication link for transmitting the second message is detected according to the flow detection value carried in the second message.

[0011] In another possible design, the encapsulation of the first message to obtain the second message includes: encapsulating the first message through VXLAN to obtain the second message. The header of the second message includes a VXLAN header, the reserved field in the VXLAN header is used to carry a service flag bit, and the service flag bit carried in the VXLAN header is used to indicate whether the VXLAN header of the second message header includes a service extension field.

[0012] In another possible design, when the above-mentioned service marking bit takes the first value, the service marking bit indicates that the VXLAN header of the second message header includes a service extension field, and the value of the service marking bit is used to characterize the type of service information carried in the service extension field.

[0013] In another possible design, the above-mentioned service marking bit includes a first marking bit and a second marking bit, the first marking bit is used to indicate whether the VXLAN header of the second message header includes a service extension field, and the second marking bit is used to characterize the type of service information carried in the service extension field.

[0014] In another possible design, the VXLAN header in the second message header is a VXLAN standard header.

[0015] In another possible design, the VXLAN standard header is a VXLAN standard header carrying a group policy identifier (group policy identifier, Group Policy ID), and the group policy identifier is used to indicate the group to which the user initiating the first message belongs.

[0016] Through the above-mentioned possible designs, the purpose of carrying at least one kind of business information in the second message is achieved in the scenario where the message forwarding device runs VXLAN.

[0017] In another possible design, the above encapsulation of the first message to obtain the second message includes: encapsulating the first message through Geneve to obtain the second message. The header of the second message includes a Geneve header, the option length field in the Geneve header is used to carry a service flag bit, and the service flag bit carried in the Geneve header is used to indicate whether the Geneve header includes a service extension field.

[0018] In another possible design, when the service flag bit indicates that the Geneve header of the second message header includes a service extension field, the Geneve header includes a variable length option field, and the variable length option field includes a type field and a variable length option data field. The variable length option data field is used to carry the service extension field, and the type field is used to characterize the type of service information carried in the service extension field.

[0019] Through the above two possible designs, the purpose of carrying at least one type of business information in the second message is achieved in the scenario where the message forwarding device runs Geneve.

[0020] In a second aspect, the present application provides a data transmission device.

[0021] In a possible design, the data transmission device is used to execute any one of the methods provided in the first aspect above. The present application may divide the data transmission device into functional modules according to any one of the methods provided in the first aspect above. For example, each functional module may be divided according to each function, or two or more functions may be integrated into one processing module. Exemplarily, the present application may divide the data transmission device into an acquisition unit, an encapsulation unit, and a sending unit, etc. according to the function. The description of the possible technical solutions and beneficial effects executed by the above-mentioned divided functional modules can refer to the technical solutions provided by the above-mentioned first aspect or its corresponding possible design, which will not be repeated here.

[0022] In another possible design, the data transmission device includes: one or more processors, a memory and a network interface, the one or more processors receive or send data through the network interface, and the one or more processors are configured to call program instructions stored in the memory so that the data transmission device executes any method provided by the first aspect and any possible design thereof.

[0023] In a third aspect, the present application provides a computer-readable storage medium, which is a non-volatile computer-readable storage medium, and the computer-readable storage medium includes program instructions. When the program instructions are executed by a processor or a message forwarding device, the processor or the message forwarding device executes the method provided in the first aspect of the present application and any possible implementation thereof.

[0024] In a fourth aspect, the present application provides a computer program product comprising instructions, which, when executed on a processor or a message forwarding device, enables the processor or the message forwarding device to execute the method provided in the first aspect of the present application and any possible implementation thereof.

[0025] It can be understood that any of the above-mentioned devices, computer storage media or computer program products can be applied to the corresponding methods provided above. Therefore, the beneficial effects that can be achieved can refer to the beneficial effects in the corresponding methods and will not be repeated here.

[0026] In this application, the name of the above data transmission device does not limit the device or functional module itself. In actual implementation, these devices or functional modules may appear with other names. As long as the functions of each device or functional module are similar to those of this application, they belong to the scope of this application and its equivalent technologies. BRIEF DESCRIPTION OF THE DRAWINGS

[0027] Figure 1 The diagram is a schematic diagram of the format of a VXLAN message obtained through VXLAN encapsulation;

[0028] Figure 2 This is a schematic diagram of the VXLAN header;

[0029] Figure 3 It is a schematic diagram of the format of the Geneve header in the Geneve message obtained after Geneve encapsulation;

[0030] Figure 4 This is a schematic diagram of an application scenario of the data transmission method provided in an embodiment of the present application;

[0031] Figure 5 It is a flowchart of a data transmission method provided by an embodiment of the present application;

[0032] Figure 6 This is a schematic diagram of the format of a VXLAN header provided in an embodiment of the present application;

[0033] Figure 7 It is a schematic diagram of a VXLAN header carrying a Group Policy ID provided in an embodiment of the present application;

[0034] Figure 8 This is a schematic diagram of the format of a service marking bit provided in an embodiment of the present application;

[0035] Fig. 9 This is a format diagram of a service extension field provided in an embodiment of the present application;

[0036] Fig.10 This is a schematic diagram of the format of a Geneve header provided in an embodiment of the present application;

[0037] Fig.11 is another schematic diagram of the data transmission method provided in an embodiment of the present application;

[0038] Fig.12 It is a structural schematic diagram of a data transmission device provided in an embodiment of the present application;

[0039] Fig.13 It is a structural diagram of a message forwarding device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0040] In order to make the objectives, technical solutions and advantages of the present application clearer, the implementation methods of the present application will be further described in detail below with reference to the accompanying drawings.

[0041] To facilitate understanding, the technology and background involved in the embodiments of the present application are first explained below.

[0042] 1) Overlay network

[0043] An overlay network is one or more virtual logical networks built on the same underlying (underlay) network through network virtualization technology. Overlay network and underlay network are relative concepts. Different overlay networks share the equipment and lines in the underlay network, and the physical networking, interconnection technology in the underlay network and the services in the overlay network are decoupled from each other. Based on the multi-instance feature of the overlay network, the overlay network can serve different services of the same tenant (such as multiple departments) or different tenants, without limitation.

[0044] In an overlay network, devices can be interconnected through logical links as required to form an overlay topology. The logical links between devices in an overlay network can also be called tunnels or logical tunnels. That is, tunnels are established between interconnected network devices (also called overlay devices) in an overlay network. In this way, when the original message is ready to be transmitted through the tunnel in the overlay network, the tunnel endpoint device in the overlay network adds a new header and tunnel header to the original message. The new header refers to a header that complies with the underlay network protocol, and the tunnel header refers to a header that complies with the tunnel protocol in network virtualization. Here, the tunnel protocol includes but is not limited to VXLAN, Geneve, etc. In this way, the original message with the new header and tunnel header added is forwarded according to the new header. When the original message is delivered to the tunnel endpoint device, the aforementioned new header and tunnel header will be discarded to obtain the original message. In this process, the overlay network does not perceive the underlay network.

[0045] As an example, the underlay network is a Layer 3 network, and the overlay network is a Layer 2 network. In this way, the messages of the Layer 2 network can be transmitted through the tunnel established in the Layer 3 network. The Layer 3 network includes the core layer, the aggregation layer, and the access layer, and generally communicates through Internet Protocol (IP) routing. The Layer 2 network includes the core layer and the access layer, and generally communicates through media access control (MAC) address addressing. The networking capability of the Layer 2 network is limited, while the Layer 3 network can achieve cross-segment communication through IP routing.

[0046] 2) VXLAN

[0047] VXLAN is one of the standard technologies for network virtualization over Layer 3 (NVO3) defined by the Internet Engineering Task Force (IETF). It is essentially a tunnel technology for building overlay networks. Specifically, VXLAN can encapsulate Layer 2 network messages through Layer 3 network protocols and forward Layer 2 network messages through Layer 3 networks through tunnels established in Layer 3 networks. In this way, the expansion of Layer 2 networks within the scope of Layer 3 networks can be achieved, while also meeting the needs of network isolation for a large number of tenants.

[0048] VXLAN uses a message encapsulation mode that encapsulates the original Layer 2 Ethernet frame with the User Datagram Protocol (UDP), referred to as the MAC-in-UDP encapsulation mode. Figure 1 , Figure 1 A schematic diagram of the format of a VXLAN message obtained through VXLAN encapsulation is shown.

[0049] like Figure 1 As shown in the figure, the original message from the tenant that needs to be transmitted through the overlay network built by VXLAN is encapsulated by VXLAN to obtain the following Figure 1 The VXLAN message shown in the figure. The original message includes an Ethernet header, an IP header, and the payload of the original message. After the original message is encapsulated by VXLAN, the Ethernet header of the original message is used as the inner Ethernet header of the VXLAN message, and the IP header of the original message is used as the inner IP header of the VXLAN message. It can be seen that the original message as a whole is used as the payload of the VXLAN message.

[0050] Figure 1 The VXLAN message shown also includes a VXLAN header (i.e., the tunnel header described above) with a length of 8 bytes, and the VXLAN header is located at the outer layer of the original message. Figure 2 , Figure 2 A schematic diagram of a VXLAN header is shown. Figure 2 As shown, the VXLAN header includes VXLAN flags, reserved field 1, virtual extended local area network identifier (VXLAN identifier, VNI) and reserved field 2. Among them, the VXLAN flag includes 8 bits. When the VXLAN flag takes the value 00001000, it means that the VNI carried by the VXLAN header is valid. VNI includes 24 bits, indicating the tenant who initiated the original message or the virtual network where the tenant is located. Reserved field 1 (24 bits) and reserved field 2 (8 bits) are fields to be defined and are generally set to 0.

[0051] The above-mentioned VXLAN message also includes an outer UDP header, an outer IP header and an outer Ethernet header located outside the VXLAN header. Among them, the outer UDP header includes the source port (source port), the destination port (destport), the UDP length (UDP length) and the UDP checksum (UDP checksum). The outer IP header includes fields such as the protocol (protocol) type, the source IP address (IP source address, IP SA) and the destination IP address (IP destination address, IP DA). The outer Ethernet header includes the destination MAC address (MAC destination address, MAC DA), the source MAC address (MAC source address, MAC SA), the protocol tag ( Figure 1 802.1Q tags) and Ethernet types shown in the figure are not described in detail.

[0052] Since the VXLAN in the VXLAN message is of fixed length (8 bytes), it gradually reveals the problem of inflexibility and difficulty in expanding new services, so VXLAN cannot meet more and more network requirements, such as flow detection, executing security policies (such as network security blocking, etc.) or quality of service (QoS) policies on user groups or application groups, etc. Among them, the technologies used for flow detection include but are not limited to flow operations administration and maintenance (IOAM), flow information telemetry (IFIT), in-band network telemetry (INT), etc.

[0053] 3) Geneve

[0054] Geneve is essentially a tunnel technology for building overlay networks. It is a tunnel encapsulation protocol recommended by NVO3 to identify and adapt to the ever-changing functions and requirements in the field of network virtualization. The overall implementation is similar to the VXLAN described above. The format of the Geneve message obtained after the original message is encapsulated by Geneve is also similar to the above. Figure 1 The following figure shows the format of a VXLAN message. The difference is that the header outside the original message in a VXLAN message is a VXLAN header, while the header outside the original message in a Geneve message is a Geneve header.

[0055] like Figure 3 As shown, Figure 3 FIG. 4 shows a schematic diagram of the format of the Geneve header in the Geneve message obtained after Geneve encapsulation. Figure 3 As shown in (a) of FIG. 1 , the Geneve header includes a version (Ver) field, an option length (Opt Len) field, an O bit, a C bit, a reserved field 1, a protocol type (protocol type) field, a virtual network identifier (VNI) field, a reserved field 2, and a variable-length options field. Figure 3 As shown in (b) in the figure, the variable-length option field in the Geneve header includes an option class field, a type field, an R bit, a length field, and a variable-length option data field. It can be seen that the data format of the variable-length option field in the Geneve header is a type-length-value (TLV) format. In some examples, the aforementioned variable-length option field implemented in the TLV format can carry 4 to 128 bytes of data.

[0056] For the detailed definition of each field in the Geneve header, please refer to the draft definition of Request For Comments (RFC) 8926, which will not be repeated here. In addition, the VNI field in the Geneve header has the same length (3 bytes, i.e., 24 bits) as the VNI field in the VXLAN header described above, and has the same meaning, which will not be repeated here.

[0057] In order to realize the extension of new services through messages transmitted in an overlay network, an embodiment of the present application provides a data transmission method, which encapsulates the first message after obtaining a first message that needs to be transmitted in the overlay network, obtains a second message whose message header includes a service mark bit, and transmits the second message through the overlay network. The service mark bit carried in the header of the second message is used to indicate whether the header of the second message includes a service extension field, and the service extension field is used to carry service information. The service information is used to implement the corresponding service. The service information includes but is not limited to one or more of the following: an identifier of a user group, an identifier of an application group, a QoS level or a flow detection value, etc. In this way, the corresponding service can be implemented based on the service information carried in the service extension field of the second message transmitted through the overlay network, thereby improving the flexibility of extending new services through the second message, and further improving the user experience.

[0058] Among them, the identifier of the user group is used to indicate the user group to which the user who initiated the first message belongs. Optionally, the user group can have a corresponding security policy or QoS policy. For example, the security policy corresponding to the user group is: release messages from any user in the user group. For another example, the QoS policy corresponding to the user group is: give priority to forwarding messages from users in the user group. In this case, when the service extension field of the second message carries the identifier of the user group, the message forwarding device that receives the second message can implement the following service: according to the user group indicated by the identifier of the user group, execute the security policy or QoS policy corresponding to the user group on the second message.

[0059] The identifier of the application group is used to indicate the application group to which the application that initiated the first message belongs. Optionally, the application group can have a corresponding security policy or QoS policy. For example, the security policy corresponding to the application group is: release messages from any application in the application group. For another example, the QoS policy corresponding to the application group is: give priority to forwarding messages from applications in the application group. In this case, when the service extension field of the second message carries the identifier of the application group, the service that can be implemented by the message forwarding device that receives the second message is: according to the application group indicated by the identifier of the application group, execute the security policy or QoS policy corresponding to the application group on the second message.

[0060] The QoS level is used to indicate the QoS level corresponding to the initiator of the first message, and the QoS level is used to indicate the priority of forwarding the first message or the second message including the first message. In this way, when the service extension field of the second message carries the QoS level of the initiator of the first message, the message forwarding device can implement the following service: forwarding the first message or the second message including the first message according to the priority control indicated by the QoS level. For example, when the QoS level of the initiator of the first message is the highest, the message forwarding device gives priority to forwarding the second message or the first message.

[0061] The flow detection value is used to detect the link performance of the second message. As an example, the flow detection value is used to detect whether the link for transmitting the second message has packet loss, whether the link has jitter, and link delay, etc. It should be understood that the flow detection value is a value used to detect the link performance of the transmission stream in the flow detection technology. Usually, the flow detection value is a preset detection field embedded in the message. By counting the detection fields carried in the received messages by each message forwarding device, the link performance of the transmission message can be detected. Here, the process of embedding the detection field in the message can also be called message coloring. In this way, when the service extension field of the second message carries the above-mentioned flow detection value, the message forwarding device on the second message transmission link can implement the following service: according to the flow detection value, the performance of the transmission link of the second message is detected.

[0062] refer to Figure 4 , Figure 4 A schematic diagram of an application scenario of the data transmission method provided in an embodiment of the present application is shown. Figure 4 The dotted arrows shown in the figure are traffic forwarding paths.

[0063] like Figure 4 As shown, network 400 is an overlay network, host 41 accesses network 400 through message forwarding device 410, host 42 accesses network 400 through message forwarding device 420, and host 41 and host 42 communicate through a tunnel between message forwarding device 410 and message forwarding device 420 established in the underlay network of network 400. In addition, when a message from host 41 or host 42 is transmitted through the tunnel between message forwarding device 410 and message forwarding device 420, the message is transmitted through the network transmission protocol of the aforementioned underlay network. As an example, when the networks where host 41 and host 42 are located are two layer-2 networks, the underlay network of the overlay network used to realize communication between host 41 and host 42 can be a layer-3 network. In this way, the message transmitted in the layer-2 network is transmitted through the tunnel established in the layer-3 network (i.e., the tunnel between message forwarding device 410 and message forwarding device 420).

[0064] When host 41 needs to communicate with host 42, host 41 generates a message with the destination host being host 42, and sends the message to message forwarding device 410. When message forwarding device 410 determines that the message needs to be transmitted through a tunnel in the overlay network (i.e., a tunnel between itself and message forwarding device 420), the message can be encapsulated and transmitted using the data transmission method provided in the embodiment of the present application. Similarly, when host 42 needs to communicate with host 41, host 42 generates a message with the destination host being host 41, and sends the message to message forwarding device 420. When message forwarding device 420 determines that the message needs to be transmitted through a tunnel in the overlay network (i.e., a tunnel between itself and message forwarding device 410), the message can be encapsulated and transmitted using the data transmission method provided in the embodiment of the present application. In this way, by encapsulating and transmitting messages from host 41 or host 42 using the data transmission method provided in the embodiment of the present application, it is possible to carry business information for implementing corresponding services in messages transmitted in the overlay network. Based on this, the flexibility of extending new services through messages transmitted in the overlay network can be improved, thereby improving user experience. Among them, the detailed description of the data transmission method provided in the embodiment of the present application can refer to the description of the method below, and the relevant description of the service information and the services that the service information can achieve can refer to the above description, which will not be repeated.

[0065] It is understandable that the above-mentioned host 41 (or host 42) can be a physical machine or a virtual machine (VM) deployed on a physical machine, and there is no limitation on this. The message forwarding device 410 (or message forwarding device 420) can be a network virtualization edge (NVE) device. Alternatively, when VXLAN is running in the message forwarding device 410 (message forwarding device 420), the message forwarding device (or message forwarding device 420) is a VXLAN tunnel endpoint (VXLAN tunnel endpoints, VTEP) device. Among them, VTEP is an edge device of the VXLAN network, including the starting point and end point of the VXLAN tunnel. VTEP can be either an independent network device (such as a switch) or a server where the virtual machine is located, and there is no limitation on this.

[0066] In one example, the network where host 41 (or host 42) is located is a campus network. In this case, host 41 (host 42) can be a terminal device in the campus network, such as a general-purpose computer, laptop, tablet, mobile phone, printer, camera and other terminal devices. Alternatively, host 41 can be an internal server deployed in the campus, or a VM deployed on an internal server. Message forwarding device 410 (or message forwarding device 420) can be a network device such as a switch, router, or gateway with message encapsulation and forwarding capabilities in the campus.

[0067] In another example, the network where host 41 (host 42) is located is a data center network. In this case, host 41 (or host 42) can be a server deployed in the data center, or a VM deployed on these servers, without limitation. Message forwarding device 410 (or message forwarding device 420) can be a network device such as a switch, a router, or a gateway with message encapsulation and forwarding capabilities in the data center.

[0068] It should be understood that Figure 4 In the application scenario shown, optionally, the host 41 and the message forwarding device 410 can be or belong to two independent devices, or the host 41 and the message forwarding device 410 can be integrated into one device, which is not limited. Similarly, the host 42 and the message forwarding device 420 can be or belong to two independent devices, or the host 42 and the message forwarding device 420 can be integrated into one device, which is not limited.

[0069] As an example, when the network where host 41 (or host 42) is located is a campus network, host 41 (or host 42) is a terminal device in the campus network, and the message forwarding device connected to host 41 (or host 42) is a switch or router of the campus network, that is, the host and the message forwarding device are two independent devices. As another example, when the network where host 41 (or host 42) is located is a data center network, host 41 (or host 42) is a VM deployed on a server in the campus network, and the message forwarding device connected to host 41 (or host 42) is the server where the VM is deployed, that is, the host and the message forwarding device are integrated into the same device.

[0070] It should be understood that the above content is an exemplary description of the application scenario of the data transmission method provided in the embodiment of the present application, and does not constitute a limitation on the application scenario of the data transmission method. A person of ordinary skill in the art will know that as business requirements change, the application scenario can be adjusted according to application requirements, and the embodiment of the present application does not list them one by one.

[0071] The embodiment of the present application also provides a data transmission device, which is used to execute the data transmission method provided in the embodiment of the present application. The device can be any message forwarding device with message forwarding capability or a functional module in a message forwarding device, and the functions implemented by the device can be implemented by hardware and / or software, without limitation.

[0072] As an example, the message forwarding device may be a network device such as a switch, a router, or a gateway with message encapsulation and forwarding capabilities in a campus / data center. The functional module in the message forwarding device may be a device or component with message forwarding capabilities in the message forwarding device, such as a central processing unit (CPU), a message forwarding chip, a router chip, etc., but is not limited thereto.

[0073] The implementation process of the data transmission method provided in the embodiment of the present application is described below with reference to the accompanying drawings.

[0074] refer to Figure 5 , Figure 5 A schematic diagram of a data transmission method provided in an embodiment of the present application is shown. Optionally, the method is applied to Figure 4 In the application scenario shown in Figure 4 The message forwarding device in the Figure 5 As shown, the data transmission method includes the following steps:

[0075] Step 101: Obtain a first message, where the first message is a message that needs to be transmitted in an overlay network.

[0076] The first message is a message initiated by the first host.

[0077] In a possible implementation, when the first host and the message forwarding device are or belong to two independent devices, the message forwarding device receives the first message from the first host, thereby obtaining the first message. For example, the first host is any terminal in the campus network, and the message forwarding device is a campus switch, then the message forwarding device receives the first message sent by the first host, thereby obtaining the first message.

[0078] In another possible implementation, when the first host and the message forwarding device are integrated into one device, the message forwarding device obtains the first message generated by the first host. For example, if the first host is a VM deployed on a server in a data center and the message forwarding device is the server, the server obtains the first message generated by the first host.

[0079] After obtaining the first message, the message forwarding device determines that the first message is a message that needs to be transmitted in the overlay network. This process can be referred to the description of RFC 7348 and will not be described here.

[0080] As an example, when VXLAN is running in a message forwarding device, the message forwarding device can determine whether there is a VNI that has a mapping relationship with the destination address based on the destination address of the first message. When the message forwarding device determines that there is a VNI that has a mapping relationship with the destination address based on the destination address of the first message, it determines to transmit the first message through the overlay network, and determines the tunnel used to transmit the first message based on the VNI. When the message forwarding device determines that there is no VNI that has a mapping relationship with the destination address based on the destination address of the first message, it determines to forward the first message based on the destination address. Optionally, the destination address of the first message can be a MAC address or an IP address, which is not limited to this.

[0081] Step 102: encapsulate the first message to obtain a second message, wherein the header of the second message includes a service extension field for carrying service information.

[0082] The message forwarding device uses the first message as a whole as a payload, adds a tunnel header and a message header that complies with the network transmission protocol of the underlay network to the first message, so as to obtain a second message. The underlay network is an underlay network of the overlay network used to transmit messages from the first host. The interpretation of the tunnel header can be referred to the above description and will not be repeated here.

[0083] As an example, assuming that the network where the first host is located is a layer 2 network, and the underlay network of the overlay network used to transmit the message from the first host is a layer 3 network, the message forwarding device uses the first message as a whole as a payload, and sequentially adds a tunnel header, an outer UDP header, an outer IP header, and an outer Ethernet header to the first message to obtain a second message. The second message includes the first message, a tunnel header, an outer UDP header, an outer IP header, and an outer Ethernet header, and the header of the second message includes a tunnel header, and an outer UDP header, an outer IP header, and an outer Ethernet header located outside the tunnel header. For a detailed description of the outer UDP header, outer IP header, and outer Ethernet header located outside the tunnel header, please refer to the description of the outer UDP header, outer IP header, and outer Ethernet header located outside the VXLAN header above, and no further details will be given.

[0084] In the embodiment of the present application, in the process of the message forwarding device encapsulating the first message into the second message, the message forwarding device sets a service extension field in the tunnel header added to the first message, and the service extension field is used to carry service information, and the service information is used to implement the corresponding service. The detailed description of the service information can refer to the above description and will not be repeated.

[0085] Optionally, the message forwarding device further sets a service flag bit in the tunnel header added to the first message, where the service flag bit is used to indicate whether the tunnel header of the second message includes a service extension field.

[0086] The specific implementation process of step 102 can be referred to the following description and will not be repeated here.

[0087] Step 103: Transmit the second message through the above-mentioned overlay network.

[0088] After the message forwarding device encapsulates the first message to obtain the second message, the second message is transmitted through a tunnel in the overlay network with the message forwarding device as the tunnel start endpoint.

[0089] Through the data transmission method provided in the embodiment of the present application, it is possible to carry business information for implementing corresponding services in messages transmitted in the overlay network. Based on this, the flexibility of expanding new services through messages transmitted in the overlay network can be improved, thereby improving user experience.

[0090] The specific implementation of the above step 102 is described below.

[0091] In the first possible scenario, the packet forwarding device runs VXLAN.

[0092] In this case, the message forwarding device encapsulates the first message through VXLAN to obtain the second message. Specifically, the message forwarding device uses the first message as a whole as the payload, and sequentially adds a VXLAN header (i.e., the tunnel header described above) and an outer UDP header, an outer IP header, and an outer Ethernet header located outside the VXLAN header to the first message through VXLAN, thereby completing the encapsulation of the first message and obtaining the second message. The second message is a VXLAN message, and the header of the second message includes a VXLAN header, and an outer UDP header, an outer IP header, and an outer Ethernet header located outside the VXLAN header. Among them, the detailed description of the outer UDP header, the outer IP header, and the outer Ethernet header located outside the VXLAN header can be referred to the above description and will not be repeated.

[0093] In an embodiment of the present application, the VXLAN header of the second message includes a service flag bit, which is specifically used to indicate whether the VXLAN header of the second message header includes a service extension field, and the service extension field is used to carry service information. The detailed description of the service information can be referred to the above description and will not be repeated.

[0094] As an example, the service flag bit can be carried by a reserved field in the second message VXLAN header. It should be understood that within the length range of the reserved field in the second message VXLAN header, the embodiment of the present application does not specifically limit the length value of the service flag bit.

[0095] Optionally, the VXLAN header in the second message is a VXLAN standard header. In this case, the service flag bit is carried by a reserved field in the VXLAN standard header. Figure 6 , Figure 6 A schematic diagram of the format of a VXLAN header provided in an embodiment of the present application is shown. Figure 2 ,like Figure 6 As shown in the figure, the service flag bit in the VXLAN standard header is composed of Figure 2 The reserved field 2 shown is 1 byte (8 bits) long. Of course, the service flag bit in the VXLAN standard header can also be Figure 2 All or part of the bits of the reserved field 1 shown carry ( Figure 6 not shown).

[0096] Optionally, the VXLAN header in the second message is a VXLAN standard header carrying a group policy identifier (Group Policy ID). In this case, the service flag bit is carried by a reserved field in the VXLAN standard header carrying the Group Policy ID. The Group Policy ID has the same meaning as the identifier of the user group described above. Therefore, in this embodiment, the user group identifier can be carried by the Group Policy ID or by the service extension field, without limitation.

[0097] As an example, refer to Figure 7 , Figure 7 A schematic diagram of a VXLAN header carrying a Group Policy ID provided in an embodiment of the present application is shown. Figure 7 As shown, Figure 7(a) in the figure shows the format of the VXLAN standard header carrying the Group Policy ID. As shown in the figure, the VXLAN standard header carrying the Group Policy ID includes a group based policy extension bit (group based policy extension bit, G bit), a VNI identifier bit (I bit), a Don't Learn bit (Don'tLearn bit, D bit), a policy applied bit (Policy Applied bit, A bit), a group policy identifier, a VNI, and a reserved field. Among them, the definition of each bit segment of the VXLAN standard header carrying the Group Policy ID refers to the VXLAN-Group-Policy draft definition and is not described in detail here. Figure 7 As shown in (b) in FIG. 1 , the above-mentioned service flag bit can be represented by Figure 7 The reserved field with a length of 1 byte (8 bits) shown in (b) carries.

[0098] In a possible implementation, when the service flag bit in the VXLAN header of the second message takes a first value, it indicates that the service flag bit indicates that the VXLAN header of the second message includes a service extension field. When the service flag bit in the VXLAN header of the second message takes a second value, it indicates that the service flag bit indicates that the VXLAN header of the second message does not include a service extension field, or indicates that the service extension field in the VXLAN header of the second message is invalid. The first value may be, for example, a non-zero value, and the second value may be, for example, 0, without limitation.

[0099] When the service flag bit indicates that the VXLAN header of the second message includes a service extension field, the value of the service flag bit (i.e., the first value) is also used to characterize the type of service information carried in the service extension field. For example, the value of the service flag bit is specifically used to characterize the type combination of service information carried in the service extension field.

[0100] Among them, different first values ​​of the service flag bit correspond to different types of combinations of service information, and the service extension field indicates that the service information corresponding to the type combination recorded by the service flag bit is included in sequence. For example, when the first value of the service flag bit is 1, it corresponds to type combination 1 of the service information, and type combination 1 includes user groups and application groups, so that the service flag bit with a value of 1 indicates that the service extension field includes the identifier of the user group and the identifier of the application group in sequence. For another example, when the first value of the service flag bit is 2, it corresponds to type combination 2 of the service information, and type combination 2 includes user groups, application groups and QoS levels, so that the service flag bit with a value of 2 indicates that the service extension field includes the identifier of the user group, the identifier of the application group and the QoS level in sequence. For another example, when the first value of the service flag bit is 3, it corresponds to type combination 3 of the service information, and type combination 3 includes user groups, application groups, QoS levels and flow detection values, so that the service flag bit with a value of 3 indicates that the service extension field includes the identifier of the user group, the identifier of the application group, the QoS level and flow detection values ​​in sequence.

[0101] In another possible implementation, the service marking bit in the VXLAN header of the second message includes a first marking bit and a second marking bit.

[0102] The first flag bit is used to indicate whether the VXLAN header of the second message includes a service extension field. As an example, each bit of the first flag bit can be set to 1 to indicate that the VXLAN header of the second message includes a service extension field, and each bit of the first flag bit can be set to 0 to indicate that the VXLAN header of the second message does not include a service extension field, or indicates that the service extension field in the VXLAN header of the second message is invalid.

[0103] Optionally, the first mark bit can be a low preset number of bits in the service mark bit, or a high preset number of bits in the service mark bit, or a preset number of bits in the middle of the service mark bit, without limitation. Among them, the embodiment of the present application does not specifically limit the value of the preset number. For example, the preset number can be 1 or 2, etc. As an example, when the preset number is 2, the first mark bit can be the lower 2 bits or the upper 2 bits in the service mark bit. It should be understood that when the value of the preset number is an integer greater than 1, the first mark bit can be a continuous preset number of bits in the service mark bit, or a discrete preset number of bits in the service mark bit, without limitation.

[0104] The second flag bit is used to characterize the type of service information carried in the service extension field. The second flag bit is the remaining bit in the service flag bit except the first flag bit. The second flag bit includes multiple bits. Optionally, each bit in the second flag bit corresponds to a type of service information. When a bit in the second flag bit takes a value of 1, it indicates that the service extension field includes the service information corresponding to the bit.

[0105] As an example, refer to Figure 8 , Figure 8 FIG. 1 shows a format diagram of a service flag bit provided in an embodiment of the present application. Figure 8 As shown, taking the reserved field length of the service mark bit in the VXLAN header of the second message as 8 bits, and the first mark bit as the lower 2 bits of the 8 bits as an example, in this case, the second mark bit is the remaining 6 bits of the 8 bits except the lower 2 bits. Moreover, the first bit from low to high in the remaining 6 bits corresponds to the application group, the second bit corresponds to the user group, the third bit corresponds to the QoS level, the fourth bit corresponds to the flow detection value, and the fifth bit and the sixth bit are reserved extension bits. In this case, when the first mark bit indicates that the VXLAN header of the second message includes a service extension field, the second bit position in the second mark bit from low to high is 1, and the bits in the second mark bit except the second bit are all set to 0, indicating that the service extension field carried by the VXLAN header of the second message carries the identifier of the user group.

[0106] Based on the above possible implementation, it is possible to set a service extension field for carrying service information in the VXLAN header of the second message. Taking the above possible implementation, the service mark bit indicates that the service extension field includes the user group identifier, the application group identifier, the QoS level and the flow detection value in sequence as an example, refer to Fig. 9 , Fig. 9 FIG. 1 shows a format diagram of a service extension field provided in an embodiment of the present application. Fig. 9 As shown, the service extension field includes 12 bytes (96 bits). In addition, bytes 1 to 2 of the service extension field are used to carry the identification of the application group, bytes 3 to 4 of the service extension field are used to carry the identification of the user group, bytes 5 to 6 of the service extension field are used to carry the QoS level, and bytes 7 to 12 of the service extension field are used to carry the flow detection value.

[0107] In the second possible scenario, the message forwarding device runs Geneve.

[0108] In this case, the message forwarding device encapsulates the first message through Geneve to obtain the second message. Specifically, the message forwarding device uses the first message as a whole as the payload, and adds the Geneve header (i.e., the tunnel header described above) and the outer UDP header, outer IP header, and outer Ethernet header located outside the Geneve header to the first message in sequence through Geneve, thereby completing the encapsulation of the first message and obtaining the second message. The second message is a Geneve message, and the header of the second message includes a Geneve header, and an outer UDP header, outer IP header, and outer Ethernet header located outside the Geneve header. Among them, the detailed description of the outer UDP header, outer IP header, and outer Ethernet header located outside the Geneve header can refer to the description of the outer UDP header, outer IP header, and outer Ethernet header located outside the VXLAN header above, and will not be repeated.

[0109] In the embodiment of the present application, the Geneve header of the second message includes a service flag bit, which is used to indicate whether the Geneve header of the second message header includes a service extension field, and the service extension field is used to carry service information. The detailed description of the service information can be referred to the above description and will not be repeated.

[0110] As an example, the option length field (i.e., the Opt Len field described above) in the second message Geneve header is used to carry the service flag bit. It should be understood that within the length range of the option length field in the second message Geneve header, the embodiment of the present application does not specifically limit the length value of the service flag bit. Figure 3 When the value of the Opt Len field in the Geneve header of the second message is not 0, it indicates that the Geneve header of the second message includes a service extension field. When the value of the Opt Len field in the Geneve header of the second message is 0, it indicates that the Geneve header of the second message does not include a service extension field.

[0111] When the service flag bit in the Geneve header of the second message indicates that the Geneve header of the second message includes a service extension field, the Geneve header of the second message includes a variable-length option field, and the variable-length option field includes a type field and a variable-length option data field, and the variable-length option data field is used to carry the service extension field. Among them, the type field is used to characterize the type of service information carried in the service extension field. As an example, the length of the type field in the variable-length option field in the Geneve header is 1 byte, and the remaining bits in the type field except for the critical bit (C bit) are used to characterize the type of service information carried in the service extension field. Here, the detailed definition of Cbit in the type field can refer to the RFC draft definition, and the detailed description of "the remaining bits are used to characterize the type of service information carried in the service extension field" can refer to the description of "the second flag bit is used to characterize the type of service information carried in the service extension field" in the above text, which will not be repeated. For the format description of the service information carried in the service extension field, please refer to the above text. Fig. 9 The description is not repeated here.

[0112] refer to Fig.10 , Fig.10 A schematic diagram of the format of a Geneve header provided in an embodiment of the present application is shown. Figure 3 ,like Fig.10 As shown, the service tag is carried in Figure 3 When the service flag bit carried by the Opt Len field indicates that the Geneve header also includes a service extension field, the Geneve header also includes the following: Fig.10 The type field and variable length option field shown in . Among them, the service extension field is carried in Figure 3 The variable length option data field in the variable length option field is shown. The bits [0 to 6] in the 1-byte type field, except bit 7 as the C bit, are used to indicate the type of service information carried in the service extension field.

[0113] The above exemplarily introduces the specific implementation process of step 102 when the tunnel protocols running in the message forwarding device are VXLAN and Geneve respectively. In order to deepen the understanding of the method described in the embodiment of the present application, the data transmission method provided in the embodiment of the present application is further explained by taking the message forwarding device running VXLAN as an example. Among them, when the message forwarding device runs VXLAN, the message forwarding device in the embodiment of the present application can also be called a VTEP device.

[0114] refer to Fig.11 , Fig.11Another schematic diagram of the data transmission method provided by the embodiment of the present application is shown. Fig.11 As shown, the communication between VTEP device 2 and user terminal 1 and user terminal 2 is Layer 2 network communication, the communication between VTEP device 3 and the mail server is also Layer 2 network communication, and the communication between VTEP device 1, VTEP device 2, and VTEP device 3 is through the tunnel established on the Layer 3 network, specifically: VTEP device 1 and VTEP device 2 communicate through tunnel 1, and VTEP device 1 and VTEP device 3 communicate through tunnel 2. It can be seen that VTEP device 1, VTEP device 2, and VTEP device 3 are nodes in the Layer 2 overlay network covering the Layer 3 network.

[0115] like Fig.11 As shown, when user terminal 1 (or user terminal 2) needs to access the mail server, a first message with the destination address being the mail server is generated, and the first message is sent to VTEP device 2 via switch 1.

[0116] In response, after VTEP device 2 receives the first step message from user terminal 1 (or user terminal 2), it executes step 102 to encapsulate the first message to obtain the second message. Then, VTEP device 2 executes 103 to transmit the second message through tunnel 1 of the Layer 2 overlay network. It can be understood that since the tunnel endpoint for establishing tunnel communication with VTEP device 2 is VTEP device 1, after VTEP device 1 receives the second message from VTEP device 2, it decapsulates the second message to obtain the first message. Then VTEP device 1 re-encapsulates the first message according to the destination address of the first message and the IP address of VTEP device 3 to obtain the third message, and transmits the third message through tunnel 2. In this way, when VTEP device 3 receives the third message, it decapsulates the third message to obtain the first message. Then, VTEP device 3 forwards the first message to the mail server via switch 2. It should be understood that the process of VTEP device 1 encapsulating the first message to obtain the third message can refer to the description of VTEP device 2 encapsulating the first message to obtain the second message, and will not be repeated here.

[0117] It should be noted that, in order to improve the access efficiency of user terminal 1 (or user terminal 2) to the mail server, VTEP device 2 can carry the identifier of the user group to which user terminal 1 (or user terminal 2) belongs through the service extension field of the second message in the process of encapsulating the first message to obtain the second message, so that VTEP device 3 forwarding the message to the mail server executes the security policy corresponding to the user group (such as release or block). When the QoS level of the user group to which user terminal 1 (or user terminal 2) belongs is the highest, in order to improve the forwarding efficiency of the message sent by user terminal 1 (or user terminal 2), VTEP device 2 can also carry the QoS level of the user group to which user terminal 1 (or user terminal 2) belongs through the service extension field of the second message in the process of encapsulating the first message to obtain the second message, so that VTEP device 1 preferentially forwards the second message after receiving the second message, and VTEP device 3 preferentially forwards the encapsulated message after receiving the encapsulated message including the first message. In addition, VTEP device 1, VTEP device 2 and VTEP device 3 can also be configured to detect the performance of the communication link. Therefore, when VTEP device 2 encapsulates the first message to obtain the second message, it can also carry the flow detection value in the service extension field of the second message to detect the performance of the communication link. It can be seen that the method provided by the embodiment of the present application can realize the extension of new services of messages transmitted in the overlay network, thereby improving the user experience.

[0118] The above mainly introduces the solution provided in the embodiment of the present application from the perspective of method.

[0119] In order to achieve the above functions, Fig.12 As shown, Fig.12 FIG. 1 is a schematic diagram showing the structure of a data transmission device 1200 provided in an embodiment of the present application. The data transmission device 1200 is used to execute the above-mentioned data transmission method, for example, to execute Figure 5 or Fig.11 The data transmission device 1200 may include an acquisition unit 1201 , an encapsulation unit 1202 , and a sending unit 1203 .

[0120] The acquisition unit 1201 is used to acquire a first message, where the first message is a message that needs to be transmitted in the overlay network. The encapsulation unit 1202 is used to encapsulate the first message to obtain a second message. The sending unit 1203 is used to transmit the second message through the overlay network. The header of the second message includes a service extension field, where the service extension field is used to carry service information, and the service information is used to implement the corresponding service.

[0121] As an example, combining Figure 5, the acquiring unit 1201 can be used to execute step 101, the encapsulating unit 1202 can be used to execute step 102, and the sending unit 1203 can be used to execute step 103.

[0122] Optionally, the header of the second message further includes a service flag bit, and the service flag bit is used to indicate whether the header of the second message includes a service extension field.

[0123] Optionally, the service information includes one or more of an identifier of a user group, an identifier of an application group, a service quality level, or a flow detection value. The identifier of the user group is used to indicate the group to which the user who initiated the first message belongs. The identifier of the application group is used to indicate the group to which the application that initiated the first message belongs. The service quality level is used to indicate the service quality level corresponding to the initiator of the first message. The flow detection value is used to detect the link performance of transmitting the second message.

[0124] Optionally, the encapsulation unit 1202 is specifically configured to encapsulate the first message based on VXLAN to obtain a second message. The header of the second message includes a VXLAN header, the reserved field in the VXLAN header is used to carry a service flag bit, and the service flag bit carried in the VXLAN header is used to indicate whether the VXLAN header includes a service extension field.

[0125] As an example, combining Figure 5 , the encapsulation unit 1202 can be used to perform step 102.

[0126] Optionally, when the value of the above-mentioned service flag bit is the first value, the service flag bit indicates that the VXLAN header of the second message header includes a service extension field, and the value of the service flag bit is used to characterize the type of service information carried in the service extension field.

[0127] Optionally, the above-mentioned service marking bit includes a first marking bit and a second marking bit, the first marking bit is used to indicate whether the VXLAN header of the second message header includes a service extension field, and the second marking bit is used to characterize the type of service information carried in the service extension field.

[0128] Optionally, the VXLAN header of the second message header is a VXLAN standard header.

[0129] Optionally, the VXLAN standard header is a VXLAN standard header carrying a Group Policy ID, and the Group Policy ID is used to indicate the group to which the user initiating the first message belongs.

[0130] Optionally, the encapsulation unit 1202 is specifically configured to encapsulate the first message based on Geneve to obtain a second message. The header of the second message includes a Geneve header, the option length field in the Geneve header is used to carry a service flag bit, and the service flag bit carried in the Geneve header is used to indicate whether the Geneve header includes a service extension field.

[0131] As an example, combining Figure 5 , the encapsulation unit 1202 can be used to perform step 102.

[0132] Optionally, when the service flag bit indicates that the Geneve header of the second message header includes a service extension field, the Geneve header includes a variable length option field, and the variable length option field includes a type field and a variable length option data field. The variable length option data field is used to carry the service extension field, and the type field is used to characterize the type of service information carried in the service extension field.

[0133] For the detailed description of the above optional methods, please refer to the above method embodiments, which will not be repeated here. In addition, the explanation of any of the above data transmission devices 1200 and the description of the beneficial effects can refer to the above corresponding method embodiments, which will not be repeated here.

[0134] As an example, the functions implemented by the acquisition unit 1201 and the sending unit 1203 in the data transmission device 1200 can be implemented through the communication interface of the data transmission device 1200. The functions implemented by the encapsulation unit 1202 in the data transmission device 1200 can be implemented by the processor in the data transmission device 1200 executing the program code stored in the memory in the data transmission device 1200.

[0135] Those skilled in the art should easily realize that, in combination with the units and algorithm steps of each example described in the embodiments disclosed herein, the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is executed in the form of hardware or computer software driving hardware depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.

[0136] It should be noted that Fig.12 The division of modules / units in the above is schematic and is only a logical function division. There may be other division methods in actual implementation. For example, two or more functions may be integrated into one processing module. The above integrated modules may be implemented in the form of hardware or software function modules.

[0137] The embodiment of the present application further provides a message forwarding device, which is used to implement part or all of the functions of the data transmission method provided in the embodiment of the present application.

[0138] Fig.13 Schematic diagram of the structure of a message forwarding device provided in an embodiment of the present application. Fig.13 As shown, the message forwarding device 1300 includes a processor 1301, a memory 1302, a communication interface 1303 and a bus 1304. The processor 1301, the memory 1302 and the communication interface 1303 are connected to each other through the bus 1304.

[0139] Processor 1301 may include a general processor and / or a dedicated hardware chip. A general processor may include: a central processing unit (CPU), a microprocessor or a graphics processing unit (GPU). The CPU is, for example, a single-core processor (single-CPU), or a multi-core processor (multi-CPU). A dedicated hardware chip is a hardware module for high-performance processing. A dedicated hardware chip includes at least one of a digital signal processor, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA) or a network processor (NP). Processor 1301 may also be an integrated circuit chip with signal processing capabilities. In the implementation process, some or all of the functions of the data transmission method provided in the embodiment of the present application can be completed by the hardware integrated logic circuit in the processor 1301 or the instructions in the form of software.

[0140] The memory 1302 is used to store computer programs, which include an operating system 1302a and executable codes (i.e., program instructions) 1302b. The memory 1302 is, for example, a read-only memory or other types of static storage devices that can store static information and instructions, or a random access memory or other types of dynamic storage devices that can store information and instructions, or an electrically erasable programmable read-only memory, a read-only optical disc or other optical disc storage, an optical disc storage (including a compact disc, a laser disc, an optical disc, a digital versatile disc, a Blu-ray disc, etc.), a magnetic disk storage medium or other magnetic storage device, or any other medium that can be used to carry or store the desired executable code in the form of an instruction or data structure and can be accessed by a computer, but is not limited thereto. The memory 1302 is, for example, independent and connected to the processor 1301 via a bus 1304. Or the memory 1302 and the processor 1301 are integrated together. The memory 1302 may store executable code. When the executable code stored in the memory 1302 is executed by the processor 1301, the processor 1301 is used to perform some or all functions of the data transmission method provided in the embodiment of the present application. For the implementation of the process executed by the processor 1301, please refer to the relevant description in the aforementioned embodiment. The memory 1302 may also include software modules and data required for other running processes such as an operating system.

[0141] The communication interface 1303 uses a transceiver module such as, but not limited to, a transceiver to achieve communication with other devices or communication networks. For example, the communication interface 1303 can be any one or any combination of the following devices: a network interface (such as an Ethernet interface), a wireless network card, and other devices with network access functions.

[0142] The bus 1304 is any type of communication bus for interconnecting the internal devices (e.g., the memory 1302, the processor 1301, and the communication interface 1303) of the message forwarding device. For example, a system bus. The embodiment of the present application takes the interconnection of the above-mentioned devices inside the message forwarding device through the bus 1304 as an example. Optionally, the above-mentioned devices inside the message forwarding device 1300 can also be connected to each other in communication with each other using other connection methods other than the bus 1304. For example, the above-mentioned devices inside the message forwarding device 1300 are interconnected through an internal logical interface.

[0143] It should be noted that the above-mentioned multiple devices can be respectively arranged on independent chips, or at least partially or completely arranged on the same chip. Whether to independently arrange each device on different chips or to integrate and arrange it on one or more chips often depends on the needs of product design. The embodiments of the present application do not limit the specific implementation form of the above-mentioned devices. The descriptions of the processes corresponding to the above-mentioned figures have different focuses. For the parts not described in detail in a certain process, please refer to the relevant descriptions of other processes.

[0144] In the above embodiments, all or part of the embodiments may be implemented by software, hardware, firmware, or any combination thereof. When implemented by software, all or part of the embodiments may be implemented in the form of a computer program product. The computer program product providing a program development platform includes one or more computer instructions, and when these computer program instructions are loaded and executed on a message forwarding device, all or part of the functions of the data transmission method provided in the embodiments of the present application are implemented.

[0145] Furthermore, computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, computer instructions may be transmitted from one website, computer, server or data center to another website, computer, server or data center via wired (e.g., coaxial cable, optical fiber, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium stores computer program instructions that provide a program development platform.

[0146] An embodiment of the present application also provides a computer-readable storage medium, which is a non-volatile computer-readable storage medium, and the computer-readable storage medium includes program instructions. When the program instructions are executed on a processor or a message forwarding device, the processor or the message forwarding device implements a data transmission method as provided in an embodiment of the present application.

[0147] The embodiment of the present application also provides a computer program product including instructions. When the computer program product runs on a processor or a message forwarding device, the processor or the message forwarding device implements the data transmission method provided by the embodiment of the present application.

[0148] A person skilled in the art will understand that all or part of the steps to implement the above embodiments may be accomplished by hardware or by instructing related hardware through a program, and the program may be stored in a computer-readable storage medium, and the above-mentioned storage medium may be a read-only memory, a disk or an optical disk, etc.

[0149] It should be noted that the information (including but not limited to user device information, user personal information, etc.), data (including but not limited to data used for analysis, stored data, displayed data, etc.) and signals involved in this application are all authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with relevant laws, regulations and standards of relevant countries and regions. For example, the image information and executable code involved in this application are all obtained with full authorization.

[0150] In the embodiments of the present application, the terms "first", "second" and "third" are used for descriptive purposes only and should not be understood as indicating or implying relative importance. The term "at least one" means one or more, and the term "plurality" means a plurality, unless otherwise expressly defined.

[0151] The term "and / or" in this application is only a description of the association relationship of associated objects, indicating that there can be three relationships. For example, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone. In addition, the character " / " in this article generally indicates that the associated objects before and after are in an "or" relationship.

[0152] It should be understood that the terms used in the description of the various examples herein are only for describing specific examples and are not intended to be limiting. As used in the description of the various examples and the appended claims, the singular forms "a", "an", and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise.

[0153] It should also be understood that in the various embodiments of the present application, the size of the serial number of each process does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.

[0154] The above description is only an optional embodiment of the present application and is not intended to limit the present application. Any modifications, equivalent substitutions, improvements, etc. made within the concept and principle of the present application shall be included in the protection scope of the present application.

Claims

1. A data transmission method, characterized in that: include: Obtaining a first message, where the first message is a message that needs to be transmitted in the overlay network; Encapsulating the first message to obtain a second message, wherein a header of the second message includes a service extension field, the service extension field is used to carry service information, and the service information is used to implement a corresponding service; The second message is transmitted through the overlay network.

2. The method according to claim 1, characterized in that The header of the second message further includes a service flag bit, and the service flag bit is used to indicate whether the header of the second message includes the service extension field.

3. The method according to claim 1 or 2, characterized in that The service information includes one or more of an identifier of a user group, an identifier of an application group, a service quality level, or a flow detection value; Among them, the identifier of the user group is used to indicate the group to which the user who initiated the first message belongs, the identifier of the application group is used to indicate the group to which the application that initiated the first message belongs, the service quality level is used to indicate the service quality level corresponding to the initiator of the first message, and the flow detection value is used to detect the link performance of transmitting the second message.

4. The method according to claim 2 or 3, characterized in that The encapsulating the first message to obtain the second message includes: The first message is encapsulated based on a virtual extended local area network VXLAN to obtain the second message, wherein the header of the second message includes a VXLAN header, the reserved field in the VXLAN header is used to carry the service marking bit, and the service marking bit carried in the VXLAN header is used to indicate whether the VXLAN header includes the service extension field.

5. The method according to claim 4, characterized in that When the value of the service flag bit is the first value, the service flag bit indicates that the VXLAN header includes the service extension field, and the value of the service flag bit is used to characterize the type of service information carried in the service extension field.

6. The method according to claim 4, characterized in that The service flag bit includes a first flag bit and a second flag bit, the first flag bit is used to indicate whether the VXLAN header includes the service extension field, and the second flag bit is used to characterize the type of service information carried in the service extension field.

7. The method according to any one of claims 4 to 6, characterized in that The VXLAN header is a VXLAN standard header.

8. The method according to claim 7, characterized in that The VXLAN header is a VXLAN standard header carrying a group policy identifier, and the group policy identifier is used to indicate the group to which the user initiating the first message belongs.

9. The method according to claim 2 or 3, characterized in that: The encapsulating the first message to obtain the second message includes: The first message is encapsulated based on the general network virtual encapsulation Geneve to obtain the second message, the header of the second message includes a Geneve header, the option length field in the Geneve header is used to carry the service marking bit, and the service marking bit carried in the Geneve header is used to indicate whether the Geneve header includes the service extension field.

10. The method according to claim 9, characterized in that When the service flag bit indicates that the Geneve header includes the service extension field, the Geneve header includes a variable length option field, the variable length option field includes a type field and a variable length option data field, the variable length option data field is used to carry the service extension field, and the type field is used to characterize the type of service information carried in the service extension field.

11. A data transmission device, characterized in that: include: An acquiring unit, configured to acquire a first message, where the first message is a message that needs to be transmitted in the overlay network; an encapsulation unit, configured to encapsulate the first message to obtain a second message, wherein a header of the second message includes a service extension field, wherein the service extension field is used to carry service information, and the service information is used to implement a corresponding service; A sending unit is used to transmit the second message through the overlay network.

12. The device according to claim 11, characterized in that The header of the second message further includes a service flag bit, and the service flag bit is used to indicate whether the header of the second message includes the service extension field.

13. The device according to claim 11 or 12, characterized in that The service information includes one or more of an identifier of a user group, an identifier of an application group, a service quality level, or a flow detection value; Among them, the identifier of the user group is used to indicate the group to which the user who initiated the first message belongs, the identifier of the application group is used to indicate the group to which the application that initiated the first message belongs, the service quality level is used to indicate the service quality level corresponding to the initiator of the first message, and the flow detection value is used to detect the link performance of transmitting the second message.

14. The device according to claim 12 or 13, characterized in that The encapsulation unit is specifically used to encapsulate the first message based on the virtual extended local area network VXLAN to obtain the second message, the header of the second message includes a VXLAN header, the reserved field in the VXLAN header is used to carry the service marking bit, and the service marking bit carried in the VXLAN header is used to indicate whether the VXLAN header includes the service extension field.

15. The device according to claim 14, characterized in that When the value of the service flag bit is the first value, the service flag bit indicates that the VXLAN header includes the service extension field, and the value of the service flag bit is used to characterize the type of service information carried in the service extension field.

16. The device according to claim 14, characterized in that The service flag bit includes a first flag bit and a second flag bit, the first flag bit is used to indicate whether the VXLAN header includes the service extension field, and the second flag bit is used to characterize the type of service information carried in the service extension field.

17. The device according to any one of claims 14 to 16, characterized in that The VXLAN header is a VXLAN standard header.

18. The device according to claim 17, characterized in that The VXLAN header is a VXLAN standard header carrying a group policy identifier, and the group policy identifier is used to indicate the group to which the user initiating the first message belongs.

19. The device according to claim 12 or 13, characterized in that The encapsulation unit is specifically used to encapsulate the first message based on the general network virtual encapsulation Geneve to obtain the second message, the header of the second message includes a Geneve header, the option length field in the Geneve header is used to carry the service flag bit, and the service flag bit carried in the Geneve header is used to indicate whether the Geneve header includes the service extension field.

20. The device according to claim 19, characterized in that When the service flag bit indicates that the Geneve header includes the service extension field, the Geneve header includes a variable length option field, the variable length option field includes a type field and a variable length option data field, the variable length option data field is used to carry the service extension field, and the type field is used to characterize the type of service information carried in the service extension field.

21. A data transmission device, characterized in that: include: One or more processors, a memory and a network interface, the one or more processors receiving or sending data through the network interface, the one or more processors being configured to read program instructions stored in the memory to execute the method according to any one of claims 1 to 10.

22. A computer-readable storage medium, characterized in that: The method comprises computer program instructions. When the computer program instructions are executed by a processor or a message forwarding device, the processor or the message forwarding device executes the method as claimed in any one of claims 1 to 10.

23. A computer program product comprising instructions, characterized in that When the instruction is executed by a processor or a message forwarding device, the processor or the message forwarding device executes the method according to any one of claims 1 to 10.

Citation Information

Cited By

  • Transmission method and detection method of data identification information in SDWAN network

    CN122293436A