Method, device, equipment and computer readable storage medium for transmitting packet
By carrying SLA requirements and SLA guarantee identifiers in the IPv6 packet header, edge devices can identify applications and ensure quality based on the stored correspondence, solving the problem of insufficient processing capacity and realizing network quality assurance for differentiated transmission.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- HUAWEI TECH CO LTD
- Filing Date
- 2021-01-14
- Publication Date
- 2026-06-12
Smart Images

Figure CN114338432B_ABST
Abstract
Description
[0001] This application claims priority to Chinese Patent Application No. 202011026720.7, filed on September 25, 2020, entitled "A Message Processing Method, Apparatus and System", the entire contents of which are incorporated herein by reference. Technical Field
[0002] This application relates to the field of communication technology, and in particular to methods, apparatus, devices and computer-readable storage media for transmitting messages. Background Technology
[0003] With the continuous development of communication technology, it has become possible to perform differentiated transmission of messages with different Service Level Agreement (SLA) requirements. In the process of differentiated transmission, the application corresponding to the message is first identified, and then the SLA requirements are determined based on the application, thereby providing appropriate network quality assurance according to the SLA requirements.
[0004] Among related technologies, deep packet inspection (DPI) or artificial intelligence (AI) can be used to identify the application corresponding to a packet, determine the SLA requirements based on the application corresponding to the packet, and provide network quality assurance.
[0005] However, both DPI and AI rely on strong processing power. For communication devices with weak processing power, insufficient processing power may lead to recognition failure, making subsequent differentiated transmission difficult to achieve. Summary of the Invention
[0006] This application provides a method, apparatus, device, and computer-readable storage medium for transmitting messages to solve the problems in related technologies. The technical solution is as follows.
[0007] In a first aspect, a method for transmitting messages is provided, the method comprising: firstly, a first device receiving a first message, the first message including quality assurance indication information and information of a first application, wherein the first message belongs to a first application requiring quality assurance. Based on the received first message, the first device storing the correspondence between the information of the first application and the quality assurance indication information. Upon subsequently receiving a second message including information of the first application, the first device performs quality assurance on the second message according to the stored correspondence.
[0008] The first device stores the correspondence between quality assurance instruction information and first application information in the first message, and obtains the first application information from the second message based on the quality assurance instruction information, thereby providing network quality assurance for the second message. Therefore, even if the processing power of the first device is weak, it can still provide network quality assurance and realize application-based differentiated transmission.
[0009] In one possible implementation, the quality assurance indication information includes Service Level Agreement (SLA) requirements and / or SLA guarantee identifiers. The quality assurance indication information includes three different scenarios, and the first device can achieve application identification with relatively weak processing capabilities under any of these scenarios, offering greater flexibility.
[0010] In one possible implementation, the first message includes an IPv6 (Internet Protocol version 6) message, with Quality Assurance (QA) information located in the IPv6 message header. Because the QA information is located in the IPv6 message header, the first device only needs to parse the header to obtain the QA information, without needing to perform deep parsing of the message, thus reducing the processing power required for the parsing process.
[0011] In one possible implementation, the Quality Assurance Indication (QA) information is located in the Application-Aware IPv6 Network (APN6) header of the IPv6 packet, and the APN6 header is located in the IPv6 extension header. The IPv6 extension header includes the APN6 header, and the QA information is located within this APN6 header, thus making the way the first packet carries the QA information more flexible.
[0012] In one possible implementation, the APN6 header includes an APN6 basic header, with quality assurance indication information located within the APN6 basic header; alternatively, the APN6 header includes an APN6 parameter extension header, with quality assurance indication information located within the APN6 extension header. The APN6 header includes two different headers, and the quality assurance indication information can be located within either of the headers included in the APN6 header.
[0013] In one possible implementation, the quality assurance indication information includes SLA requirements and an SLA assurance identifier. The APN6 header includes an APN6 basic header and an APN6 parameter extension header. The SLA requirement is located in the APN6 basic header, and the SLA assurance identifier is located in the APN6 parameter extension header; alternatively, the SLA requirement is located in the APN6 parameter extension header, and the SLA assurance identifier is located in the APN6 basic header. The SLA requirement and the SLA assurance identifier are located in two different headers included in the APN6 header, thus making the way the APN6 header carries quality assurance indication information more flexible.
[0014] In one possible implementation, the information of the first application includes the transmission information of the first message, which includes the IP tuple information of the first message. Since IP tuple information is information carried in all types of messages, using IP tuple information as the information of the first application allows this application to achieve network quality assurance without encapsulating any other special information in the first message, except for quality assurance indication information.
[0015] In one possible implementation, quality assurance for the second message based on the correspondence includes: the first device determining the forwarding path corresponding to the first application based on quality assurance indication information, and sending the second message according to the forwarding path. Since the forwarding path determined based on the quality assurance indication information can provide appropriate quality assurance, sending the second message according to this forwarding path can achieve quality assurance for the second message.
[0016] In one possible implementation, before performing quality assurance on the second message according to the correspondence, the method further includes encapsulating quality assurance indication information in the second message. By carrying quality assurance indication information in the second message, subsequent hops of the first device can perform QoS scheduling based on the quality assurance indication information, or reroute the second message.
[0017] In one possible implementation, the information of the first application includes a first identifier, which includes at least one of an application identifier, a user identifier, and a flow identifier. The application identifier identifies the first application, the user identifier identifies the user corresponding to the first packet, and the flow identifier identifies the packet flow corresponding to the first packet. Based on the first identifier, the first device can perform traffic analysis and select a traffic management strategy based on the traffic analysis results, so as to appropriately control and schedule the first packet according to the traffic management strategy.
[0018] In one possible implementation, the first message received by the first device is sent by the second device. Quality assurance for the second message is performed according to a corresponding relationship, including: the first device sending the second message to the second device. Since the first message was sent by the second device, the first device correspondingly sends the second message to the second device when forwarding the second message, thereby achieving message exchange between the first and second devices.
[0019] Secondly, a method for transmitting messages is provided, the method comprising:
[0020] The first device receives the first message;
[0021] The first device determines that the first message belongs to the first application that requires quality assurance.
[0022] The first device updates the first message to obtain the second message, which includes quality assurance instruction information.
[0023] The first device sends a second message to the second device. The quality assurance instruction information is used to instruct the second device to obtain information about the first application from the first message and to perform quality assurance on messages belonging to the first application.
[0024] Because the first device has application identification capabilities, it can send a second message carrying quality assurance indication information to the second device after identifying that the first message belongs to the first application. Therefore, based on the quality assurance indication information carried in the second message, even if the second device has weaker processing capabilities, it can still obtain the corresponding application information from the second message, and thus provide network quality assurance for the application based on the obtained application information and quality assurance indication information.
[0025] In one possible implementation, the quality assurance indication information includes Service Level Agreement (SLA) requirements and / or SLA guarantee identifiers. The quality assurance indication information includes three different scenarios, allowing the second device to perform application identification with relatively weak processing capabilities based on any one of them, providing flexibility.
[0026] In one possible implementation, the first device updates the first message to obtain the second message, further comprising: the first device obtaining a first identifier of a first application, the first identifier including at least one of an application identifier, a user identifier, and a flow identifier; encapsulating the first identifier in the second message; the application identifier identifying the application corresponding to the first message; the user identifier identifying the user corresponding to the first message; and the flow identifier identifying the message flow corresponding to the first message; the information of the first application including the first identifier. The second message carries the first identifier in addition to quality assurance indication information, so that the second device can perform traffic management based on the first identifier.
[0027] Thirdly, a network system for transmitting messages is provided, the network system including a first device and a second device.
[0028] The first device is used to obtain the first message and determine that the first message belongs to the first application that requires quality assurance.
[0029] The first device is also used to update the first message to obtain a second message, the second message including quality assurance instruction information;
[0030] The first device is also used to send a second message to the second device;
[0031] The second device is used to receive the second message;
[0032] The second device is also used to store the correspondence between the information of the first application and the quality assurance instruction information included in the second message according to the second message;
[0033] The second device is also used to receive a third message, which includes information from the first application.
[0034] The second device is also used to ensure the quality of the third message based on the corresponding relationship.
[0035] In one possible implementation, the first device is further configured to obtain a first identifier of a first application, the first identifier including at least one of an application identifier, a user identifier, and a flow identifier, and encapsulate the first identifier in a second message, wherein the application identifier is used to identify the application corresponding to the first message, the user identifier is used to identify the user corresponding to the first message, and the flow identifier is used to identify the message flow corresponding to the first message, and the information of the first application includes the first identifier.
[0036] In one possible implementation, the second message received by the second device is sent by the first device, and the second device is used to send a third message to the first device.
[0037] The technical effects of the third aspect and its various possible implementations can be found in the technical effects of the first and second aspects, and will not be elaborated here.
[0038] Fourthly, an apparatus for transmitting messages is provided, the apparatus comprising:
[0039] The receiving module is used for the first device to receive a first message, the first message including quality assurance instruction information and information of the first application, and the first message belongs to the first application;
[0040] The storage module is used to save the correspondence between the information of the first application and the quality assurance instruction information based on the first message;
[0041] The receiving module is also used for the first device to receive a second message, the second message including information of the first application;
[0042] The assurance module is used to ensure the quality of the second message based on the corresponding relationship.
[0043] In one possible implementation, the quality assurance indication information includes Service Level Agreement (SLA) requirements and / or SLA assurance identifiers.
[0044] In one possible implementation, the first message includes an Internet Protocol version 6 (IPv6) message, with quality assurance information located in the header of the IPv6 message.
[0045] In one possible implementation, the quality assurance indication information is located in the Application Aware IPv6 Network APN6 header of the IPv6 packet, and the APN6 header is located in the IPv6 extended header.
[0046] In one possible implementation, the APN6 header includes the APN6 basic header, and the quality assurance indication information is located in the APN6 basic header;
[0047] Alternatively, the APN6 header includes an APN6 parameter extension header, with quality assurance indication information located in the APN6 extension header.
[0048] In one possible implementation, the quality assurance instruction information includes SLA requirements and SLA assurance identifiers, and the APN6 header includes an APN6 basic header and an APN6 parameter extension header. The SLA requirements are located in the APN6 basic header, and the SLA assurance identifiers are located in the APN6 parameter extension header.
[0049] Alternatively, the SLA requirement is located in the APN6 parameter extension header, and the SLA guarantee identifier is located in the APN6 basic header.
[0050] In one possible implementation, the information of the first application includes the transmission information of the first message, which includes the IP tuple information of the first message.
[0051] In one possible implementation, the assurance module is used by the first device to determine the forwarding path corresponding to the first application based on the quality assurance instruction information, and to send the second message according to the forwarding path.
[0052] In one possible implementation, the apparatus further includes an encapsulation module for encapsulating quality assurance indication information in a second message.
[0053] In one possible implementation, the information of the first application includes a first identifier, which includes at least one of an application identifier, a user identifier, and a flow identifier. The application identifier is used to identify the first application, the user identifier is used to identify the user corresponding to the first message, and the flow identifier is used to identify the message flow corresponding to the first message.
[0054] In one possible implementation, the first message received by the first device is sent by the second device, and the protection module is used for the first device to send a second message to the second device.
[0055] It should be noted that the technical effects of the fourth aspect and its various possible implementations can be found in the first aspect and its various possible implementations, and will not be elaborated upon here.
[0056] Fifthly, an apparatus for transmitting messages is provided, the apparatus comprising:
[0057] The acquisition module is used by the first device to acquire the first message;
[0058] The determination module is used by the first device to determine that the first message belongs to the first application that requires quality assurance.
[0059] The update module is used by the first device to update the first message to obtain the second message, the second message including quality assurance indication information;
[0060] The sending module is used for the first device to send a second message to the second device. The quality assurance indication information is used to instruct the second device to obtain information about the first application from the first message and to perform quality assurance on messages belonging to the first application.
[0061] In one possible implementation, the quality assurance indication information includes Service Level Agreement (SLA) requirements and / or SLA assurance identifiers.
[0062] In one possible implementation, the update module is further configured to have the first device obtain a first identifier of the first application, the first identifier including at least one of an application identifier, a user identifier, and a flow identifier, and encapsulate the first identifier in a second message, wherein the application identifier is used to identify the application corresponding to the first message, the user identifier is used to identify the user corresponding to the first message, and the flow identifier is used to identify the message flow corresponding to the first message, and the information of the first application includes the first identifier.
[0063] It should be noted that the technical effects of the fifth aspect and its various possible implementations can be found in the second aspect and its various possible implementations, and will not be elaborated upon here.
[0064] A sixth aspect provides a communication device, comprising: a communication interface and a processor. Optionally, the communication device further comprises a memory. The communication interface, the memory, and the processor communicate with each other via an internal connection path. The memory stores instructions, and the processor executes the instructions stored in the memory to control the communication interface to receive signals and to control the communication interface to send signals. When the processor executes the instructions stored in the memory, it causes the processor to perform the method of the first aspect or any possible implementation thereof.
[0065] A seventh aspect provides a communication device, comprising: a communication interface and a processor. Optionally, the communication device further comprises a memory. The communication interface, the memory, and the processor communicate with each other via an internal connection path. The memory stores instructions, and the processor executes the instructions stored in the memory to control the communication interface to receive signals and to control the communication interface to send signals. When the processor executes the instructions stored in the memory, it causes the processor to perform the method of the second aspect or any possible implementation thereof.
[0066] Optionally, there may be one or more processors and one or more memories.
[0067] Alternatively, the memory can be integrated with the processor, or the memory can be set up separately from the processor.
[0068] In the specific implementation process, the memory can be a non-transitory memory, such as read-only memory (ROM), which can be integrated with the processor on the same chip or set on different chips. This application does not limit the type of memory or the way the memory and processor are set.
[0069] Eighthly, a communication device is provided, the communication device including a processor and a communication interface; the processor executes instructions to cause the communication device to perform the method of transmitting messages in the first aspect or any possible implementation of the first aspect, or to implement the method of transmitting messages in the second aspect or any possible implementation of the second aspect.
[0070] Ninth aspect, a communication system is provided, the system including a first communication device and a second communication device, the first communication device being configured to perform the method of the first aspect or any possible implementation thereof, and the second communication device being configured to perform the method of the second aspect or any possible implementation thereof.
[0071] In a tenth aspect, a computer program (product) is provided, comprising: computer program code, which, when executed by a computer, causes the computer to perform the methods described in the foregoing aspects.
[0072] In an eleventh aspect, a computer-readable storage medium is provided that stores a program or instructions, wherein when the program or instructions are run on a computer, the methods described in the preceding aspects are performed.
[0073] In a twelfth aspect, a chip is provided, including a processor for retrieving and executing instructions stored in a memory, causing a communication device on which the chip is mounted to perform the methods described in the foregoing aspects.
[0074] In the thirteenth aspect, another chip is provided, including: an input interface, an output interface, a processor, and a memory, wherein the input interface, the output interface, the processor, and the memory are connected by an internal connection path, the processor is used to execute code in the memory, and when the code is executed, the processor is used to execute the methods in the above aspects. Attached Figure Description
[0075] Figure 1 A schematic diagram of an implementation environment provided for this application;
[0076] Figure 2 A flowchart of a method for transmitting messages provided in this application;
[0077] Figure 3 A schematic diagram of a message header structure provided in this application;
[0078] Figure 4 A schematic diagram of a message header structure provided in this application;
[0079] Figure 5 A schematic diagram of a message header structure provided in this application;
[0080] Figure 6 A schematic diagram of a message header structure provided in this application;
[0081] Figure 7 A schematic diagram of a message header structure provided in this application;
[0082] Figure 8 A schematic diagram of a message header structure provided in this application;
[0083] Figure 9 A schematic diagram of the structure of a field provided in this application;
[0084] Figure 10 A schematic diagram of the structure of a field provided in this application;
[0085] Figure 11 A schematic diagram of a message transmission process provided in this application;
[0086] Figure 12 A schematic diagram of traffic management provided for this application;
[0087] Figure 13 A schematic diagram of a message transmission process provided in this application;
[0088] Figure 14 A schematic diagram of a message transmission process provided in this application;
[0089] Figure 15 A schematic diagram of a message transmission process provided in this application;
[0090] Figure 16 A schematic diagram of a message transmission process provided in this application;
[0091] Figure 17 A schematic diagram of a message transmission process provided in this application;
[0092] Figure 18 A schematic diagram of the structure of a device for transmitting messages provided in this application;
[0093] Figure 19 A schematic diagram of the structure of a device for transmitting messages provided in this application;
[0094] Figure 20 A schematic diagram of the structure of a communication device provided in this application;
[0095] Figure 21 A schematic diagram of the structure of a communication device provided in this application;
[0096] Figure 22 This is a schematic diagram of the structure of a communication system provided in this application. Detailed Implementation
[0097] The terminology used in the implementation section of this application is only for explaining specific embodiments of this application and is not intended to limit this application.
[0098] With the continuous development of communication technology, differentiated transmission of messages with different SLA requirements has become possible. In the process of differentiated transmission, the application corresponding to the message is first identified, and then the appropriate transmission method is selected based on the application's corresponding SLA requirements. By adding differentiated transmission services to broadband packages, operators can improve user experience.
[0099] Both DPI and AI rely on devices with strong processing capabilities. For devices with weak processing capabilities, insufficient processing power may lead to application recognition failures, making it difficult to achieve subsequent network quality assurance.
[0100] This application provides a method for transmitting messages, applicable to an implementation environment including core devices and edge devices. The core device, with its strong processing capabilities, identifies applications according to methods provided in related technologies, carrying quality assurance indication information in the downlink message corresponding to the application. Correspondingly, the edge device stores the correspondence between application information and quality assurance indication information based on the downlink message. Upon receiving a subsequent uplink message containing application information, the edge device can perform quality assurance on the uplink message based on the stored correspondence. Thus, the edge device, with only relatively weak processing capabilities, can identify applications in subsequent uplink messages, enabling network quality assurance based on the application and making differentiated transmission possible.
[0101] For example, the edge device has limited processing power, insufficient for application identification as provided by the relevant technologies. Therefore, the edge device can only perform application identification based on stored correspondences. Alternatively, the edge device may have sufficient processing power to perform application identification as provided by the relevant technologies, but due to the specific nature of its business, it needs to prioritize the normal operation of other services. Therefore, it can only perform application identification using its remaining processing power, and the edge device can only complete application identification based on stored correspondences using its remaining processing power. Or, the edge device may have sufficient processing power to perform application identification as provided by the relevant technologies, but the edge device is configured to perform application identification based on stored correspondences.
[0102] See Figure 1 , Figure 1 An exemplary implementation environment diagram is provided. Figure 1 The system comprises, in sequence, a terminal, an optical network terminal (ONT), and an optical line terminal (OLT). The OLT connects to the broadband remote access server (BRAS) via the Internet Protocol radio access network (IPRAN). The IPRAN includes an access router (ACC), an aggregation node (AGG), and a metro core (MC). In addition to communicating with the BRAS, the MC can also communicate with the internet gateway (IGW). Figure 1 The implementation environment shown is also known as the BRAS high-mounted scenario.
[0103] exist Figure 1Among the devices shown, the ONT and OLT are connected by a Virtual Local Area Network (VLAN). The OLT and ACC are connected by a VLAN, or by 802.1Q-in-802.1Q (QinQ). Both 802.1Q and QinQ are standards defined by the Institute of Electrical and Electronics Engineers (IEEE). QinQ is also known as stacked VLAN or double VLAN. The ACC and MC are connected by a Layer 2 Virtual Private Network (L2VPN), which is carried by Segment Routing IPv6 (SRv6) based on Internet Protocol Version 6 (IPv6). In other words, the ACC and MC are connected by an L2VPN over SRv6. Additionally, the MC and IGW are connected by a VLAN or QinQ.
[0104] For example, the core device mentioned above includes a Control Center (MC), and the edge device includes an Access Control Center (ACC). The MC is a chassis-type device, and the ports of a chassis-type device can be flexibly changed. Therefore, it can be configured with an additional main control board to provide processing capabilities according to the application identification needs, or with a dedicated service board for application identification, thus making the MC's processing capabilities stronger. The ACC, on the other hand, is often a box-type device, and the ports of a box-type device are fixed. Therefore, it cannot be configured with an additional main control board or service board according to the application identification needs, thus making the ACC's processing capabilities weaker.
[0105] What is understandable is that Figure 1 The implementation environment shown is merely an example and is not intended to limit this application. Except... Figure 1 In addition to the implementation environment shown, other scenarios, including core equipment and edge equipment, and scenarios where the core equipment has application identification capabilities and both uplink and downlink messages pass through the same edge equipment, can also serve as the implementation environment for this application.
[0106] Based on the implementation environment illustrated in the diagram above, this application provides a method for transmitting messages, which is applied to device A and device B. See also... Figure 2 The method includes the following steps.
[0107] 201. Device A receives the first message and determines that the first message belongs to the first application that requires quality assurance.
[0108] Among them, device A can correspond to the core device mentioned above, for example... Figure 1 The MC in this context refers to the message received by device A or generated by device A. After receiving the first message, device A, possessing application identification capabilities, can perform application identification on it. Application identification determines the application to which the first message belongs; for example, the first message may belong to a first application requiring protection, or a second application not requiring protection. In this application, the application can be software providing functionality, or it can refer to the same user, the same enterprise account, etc. Software providing functionality includes, but is not limited to, game applications, video applications, etc. In some networks, because the IP tuple information of an application may constantly change, application identification cannot be performed solely based on the configured IP tuple information. This application does not limit the method by which device A performs application identification; for example, device A can perform application identification through DPI or AI.
[0109] In response to the identification that a first message belongs to a first application requiring quality assurance, device A determines the quality assurance indication information for the first application. Device A can then route the first message based on this quality assurance indication information. For example, device A is configured with a mapping relationship between the first application and the quality assurance indication information. After device A identifies the first application, it can obtain the corresponding quality assurance indication information for the first application based on the mapping relationship. For example, the quality assurance indication information includes SLA requirements and / or SLA guarantee identifiers. Therefore, the quality assurance indication information includes the following three cases A1-A3.
[0110] Scenario A1: Quality assurance instructions include SLA requirements.
[0111] The Service Level Agreement (SLA) requirement indicates requirements regarding bandwidth, latency, and reliability. For example, in this embodiment, the SLA requirement for the first application is indicated by an SLA level identifier, with different values indicating different requirements. For instance, an SLA level value of 1 indicates a latency requirement of less than a latency threshold. During routing based on the SLA requirement, for a first packet belonging to the first application, a forwarding path that meets the SLA requirement of that first packet is selected. For other packets belonging to the second application that do not require guarantees, routing is performed normally according to the configured routing table. Forwarding paths that meet the SLA requirement include, but are not limited to: paths with bandwidth not less than the bandwidth indicated by the SLA requirement, paths with latency not greater than the latency indicated by the SLA requirement, and paths with reliability not less than the reliability indicated by the SLA requirement.
[0112] Scenario A2: Quality assurance instructions include SLA assurance markings.
[0113] The SLA guarantee identifier is used to indicate whether packet protection is required. In scenario A2, device A is configured with a mapping relationship between SLA guarantee identifiers and routing policies. Therefore, the routing policy corresponding to the SLA guarantee identifier can be determined based on this mapping relationship, and routing can be performed based on the determined routing policy. For example, in response to the SLA guarantee identifier indicating that packet protection is required, the corresponding routing policy includes selecting the optimal path as the forwarding path. In response to the SLA guarantee identifier indicating that packet protection is not required, the corresponding routing policy includes selecting a path other than the optimal path as the forwarding path. The optimal path includes, but is not limited to, the path with the highest bandwidth, the path with the lowest latency, and the path with the highest reliability.
[0114] For example, this embodiment demonstrates different indications for the SLA guarantee identifier based on different values. For example, if the SLA guarantee identifier is a first value, it indicates that guarantee is required. If the SLA guarantee identifier is a second value, it indicates that guarantee is not required. For example, the first value can be 1 and the second value can be 0, or the first value can be 0 and the second value can be 1. This embodiment does not limit the values of the first and second values.
[0115] Situation A3: Quality assurance instructions include SLA requirements and SLA assurance markings.
[0116] In scenario A3, the SLA requirement indicates requirements regarding bandwidth, latency, and reliability, while the SLA guarantee indicator indicates whether compliance with the SLA requirement is necessary. Therefore, if the SLA guarantee indicator indicates that compliance with the SLA requirement is required, then routing should be performed according to the SLA requirement. Alternatively, if the SLA guarantee indicator indicates that compliance with the SLA requirement is not necessary, then routing should not be performed according to the SLA requirement, and normal routing can proceed.
[0117] 202, Device A updates the first message to obtain the second message, which includes quality assurance instruction information.
[0118] After determining the quality assurance indication information for the first application, device A updates the first message based on the quality assurance indication information to obtain a second message, thereby making the second message include the quality assurance indication information. For example, the second message carries the quality assurance indication information in the following manner.
[0119] For example, the second message includes an IPv6 message, and the quality assurance indication information is located in the header of the IPv6 message. The IPv6 message header includes the IPv6 standard header and the IPv6 extension header, which includes, but is not limited to, a hop-by-hop (HBH) header, a destination option header (DOH), and a segment routing header (SRH). For example, this embodiment adds a type-length-value (TLV) field to the IPv6 message header, thereby carrying the quality assurance indication information through the TLV field in the IPv6 message header. Taking the quality assurance indication information including SLA requirements and SLA guarantee identifiers as an example, such as… Figure 3 As shown, Figure 3 This illustrates the scenario where the TLV field carries SLA requirements and SLA guarantee identifiers. Figure 3 This includes fields for option type, option data length, the SLA level indicating the SLA requirement, and the SLA guarantee identifier. Additionally, Figure 3 It also includes the application (APP) identifier (ID), which is explained below.
[0120] For example, the quality assurance indication information is located in the application-aware IPv6 networking (APN6) header of the IPv6 packet, and the APN6 header is located in the IPv6 extended header. See also Figure 4 , Figure 4 This illustrates a packet header structure that includes the IPv6 standard packet header and the SRH header. Additionally, Figure 5 Another exemplary packet header structure is shown, including the IPv6 standard packet header, HBH, DOH, and SRH. The IPv6 standard packet header includes version, traffic class, flow label, payload length, next header, hop limit, source address, and destination address.
[0121] like Figure 6As shown, Figure 6 A schematic diagram of an SRH structure is shown. The SRH includes (n+1) segments and option TLVs, where n is an integer not less than 0. For example, when the APN6 header is located within the SRH, the APN6 header is located at... Figure 6 The SRH option TLV field is shown. When the APN6 header is located within the IPv6 extended header, the APN6 header is located in the TLV field added to the IPv6 extended header.
[0122] For example, the quality assurance instruction information includes SLA requirements and an SLA assurance identifier, and the APN6 header includes an APN6 basic header and an APN6 parameter extension header. Accordingly, the SLA requirement is located in the APN6 basic header, and the SLA assurance identifier is located in the APN6 parameter extension header. Alternatively, the SLA requirement is located in the APN6 parameter extension header, and the SLA assurance identifier is located in the APN6 basic header.
[0123] Among them, see Figure 7 The APN6 basic header includes the option type field, option data length field, and IPv6 application-aware ID field. SLA requirements or SLA guarantees are identified in this IPv6 application-aware ID field. For example... Figure 8 As shown, the APN6 extended header includes an option type field, an option data length field, and an IPv6 service-aware parameter field. This IPv6 service-aware parameter field is a variable sub-TLV field, and the SLA requirement or SLA guarantee identifier is located within this IPv6 service-aware parameter field. Taking the SLA guarantee identifier as an example, this implementation adds a type field to the IPv6 service-aware parameter field. The added type field carries the SLA guarantee identifier. See the structural diagram of the type field. Figure 9 . Figure 9 This includes type, length, reserved, and SLA guarantee identifier.
[0124] Alternatively, the APN6 header includes the APN6 basic header, with quality assurance indication information located within the APN6 basic header. Alternatively, the APN6 header includes the APN6 parameter extension header, with quality assurance indication information located within the APN6 extension header.
[0125] For example, when device A updates the first message to obtain the second message, it further includes: device A obtaining a first identifier of a first application, the first identifier including at least one of an APP identifier, a user identifier, and a flow identifier, and encapsulating the first identifier in the second message. Taking the IPv6 application-aware ID field, in which both the SLA requirement and the first identifier are encapsulated in the second message, as an example, the structural diagram of the IPv6 application-aware ID field can be found in [reference needed]. Figure 10 .
[0126] The application identifier indicates the application corresponding to the first message, the user identifier indicates the user corresponding to the first message, and the flow identifier indicates the message flow corresponding to the first message. The first identifier encapsulated in the second message is used by the device that subsequently receives the second message for traffic management. The traffic management process is explained in section 204 below.
[0127] 203, Device A sends a second message to Device B.
[0128] Device B can correspond to the edge device mentioned above, for example... Figure 1 The ACC in the second message. After receiving the second message, device A sends the second message to device B so that in subsequent message transmissions, application identification and quality assurance can be performed based on the quality assurance indication information included in the second message.
[0129] For example, device A sends a second packet via a tunneling policy (SRv6 policy). If the second packet includes an Internet Protocol version 4 (IPv4) packet, device A encapsulates an IPv6 header into the second packet before sending it via the tunneling policy. If the second packet includes an IPv6 packet, device A can either send the second packet directly via the tunneling policy or route and forward the second packet.
[0130] For example, when device A sends a second message to device B, it includes the following cases B1 and B2.
[0131] Scenario B1: Device A is configured with multiple tunnel policies, each corresponding to a different policy identifier. Device A has a first mapping relationship between quality assurance indication information and policy identifiers. Device A sends a second message to Device B, including: Device A determining the target policy identifier corresponding to the quality assurance indication information of the first application based on the first mapping relationship, determining the tunnel policy corresponding to the target policy identifier from the multiple tunnel policies configured by Device A, and transmitting the second message according to the tunnel policy corresponding to the target policy identifier.
[0132] Each tunneling policy specifies a transmission path, which includes multiple specified nodes. The tunneling policy is uniquely identified by a triple consisting of a header, a color value, and an end point. For example, this embodiment also uses the color value as the policy identifier. The header includes the node that generated the tunneling policy; in this case, the header of each tunneling policy configured by device A includes device A. The end point includes the destination address of the tunneling policy; in this case, the end point of each tunneling policy configured by device A includes the address of device B. Therefore, device A transmitting a second message according to any tunneling policy means that device A transmits the second message hop-by-hop to device B according to each node included in the transmission path specified by any tunneling policy.
[0133] Since device A is configured with a first mapping relationship between quality assurance indication information and policy identifiers, device A can determine the target policy identifier that matches the quality assurance indication information of the first application based on the first mapping relationship. Then, device A determines the tunnel policy corresponding to the target policy identifier from among the multiple tunnel policies configured in device A, and transmits the second message to device A according to the tunnel policy corresponding to the target policy identifier.
[0134] It should be noted that in practical applications, tunnel policies are represented as segment lists, also known as segment ID lists (SID lists). The multiple nodes included in the transmission path specified by any tunnel policy are arranged from bottom to top in the SID list according to their order on the transmission path. Therefore, in the process of transmitting the second packet to device B according to the tunnel policy corresponding to the target policy identifier, the tunnel policy corresponding to the target policy identifier, i.e., the SID list, is configured in the second packet. During transmission, device A first transmits the second packet to the last node in the SID list, then the last node in the SID list transmits the second packet to the second-to-last node in the SID list, and so on, until the second packet reaches the first node in the SID list, i.e., device B.
[0135] Scenario B2: Device A is configured with multiple tunnel policies, each corresponding to a different policy identifier. Device A also has a second mapping relationship between quality assurance indication information and target markers, and a third mapping relationship between target markers and target policy identifiers. The target policy identifier is one of the policy identifiers corresponding to the multiple tunnel policies. Device A sends a second message to Device B, including: Device A determining the target marker corresponding to the quality assurance indication information of the first application based on the second mapping relationship, determining the target policy identifier corresponding to the target marker based on the third mapping relationship, determining the tunnel policy corresponding to the target policy identifier from the multiple tunnel policies configured by Device A, and transmitting the second message according to the tunnel policy corresponding to the target policy identifier.
[0136] The target markers include, but are not limited to, Differential Service Codepoints (DSCPs) and priority markers configured internally by Device A. After Device A determines the quality assurance indication information of the first application, it determines the target marker corresponding to the quality assurance indication information of the first application based on the second mapping relationship, and then determines the target policy identifier corresponding to the target marker based on the third mapping identifier. This allows it to transmit the second message according to the tunnel policy corresponding to the target policy identifier. Furthermore, the method by which Device A transmits the second message according to the tunnel policy corresponding to the target policy identifier is described in Case A1 above, and will not be repeated here.
[0137] For example, when device A transmits other packets belonging to a second application that does not require guarantees, device A transmits these other packets according to a tunnel policy other than the tunnel policy corresponding to the target policy identifier. Whether device B advertises a route to device A during the transmission of these other packets according to the other tunnel policy affects how device A transmits these other packets. The following explains the two methods separately.
[0138] With device B publishing a route, device A transmits other packets using route coloring.
[0139] In this implementation, the route advertised by device B includes a route prefix and a next hop. The route prefix is the address of another device in the network besides device B, and the next hop is the address of device B. This route indicates that, in response to any packet whose destination address is the route prefix, device B will be selected as the next hop for that packet. Exemplarily, this implementation does not limit the method by which device B advertises routes. For example, device B may advertise routing information via the Border Gateway Protocol (BGP).
[0140] Route coloring refers to the process of adding a policy identifier to routes published by device B through a routing policy, thus embedding the policy identifier in the route. Subsequently, in response to a route carrying a policy identifier that matches the policy identifier of a tunnel policy, that route and tunnel policy can undergo route iteration. During route iteration, in response to any packet's destination address being a route prefix included in a route, a tunnel policy with the same policy identifier as that route, i.e., a SID list, is configured for that packet. This ensures that any packet transmitted from device A to device B traverses the transmission path specified by the tunnel policy with the same policy identifier as that route. After the packet arrives at device B via the specified transmission path, device B forwards the packet to its destination address. Thus, packet transmission is achieved through the route coloring process.
[0141] When other packets need to be transmitted according to different tunneling strategies, device A colors the routes published by device B according to the policy identifiers corresponding to the other tunneling strategies. Alternatively, device B colors the routes when it publishes them. In this case, device A will transmit the other packets belonging to the second application that do not require protection according to the other tunneling strategies by default. It can be seen that device A transmits the second packet and other packets according to different tunneling strategies, which distinguishes between the first application that requires protection and other applications that do not require protection.
[0142] Alternatively, if device B has not advertised routes, device A may transmit other packets via redirection. In this case, because device B has not advertised routes, device A cannot perform route coloring, and therefore cannot achieve route iteration between routes and tunnel policies. Therefore, device A modifies the transmission path of other packets to the transmission path specified by other tunnel policies through redirection, thereby enabling device A to transmit other packets according to those other tunnel policies.
[0143] Next, taking device A as the MC, device B as the ACC, and the second message as the downlink message as an example, we will explain the message transmission process of device A.
[0144] like Figure 11As shown, the MC is configured with SRv6 policy A (color 100) and SRv6 policy B (color 200). SRv6 policy A is a normal path with latency not less than a threshold, and SRv6 policy B is a low-latency path with latency less than the threshold. The MC configures the mapping relationship between the destination marker T and color 200 through color 200 match mark T. Furthermore, after the MC receives a BGP route advertised by the ACC, it colors the BGP route to 100 as follows:
[0145] peer ACC-IP route-policy A import
[0146] route-policy A permit node 10
[0147] apply extcommunity color 0:100
[0148] After the MC receives a downlink message, it identifies the application of the message. If the downlink message belongs to the first application requiring protection, a target marker T is determined, and the color corresponding to the target marker T is set to 200 according to the mapping relationship. Then, the downlink message is sent to the ACC via SRv6 policy B with color 200. Alternatively, if the downlink message belongs to the second application not requiring protection, the downlink message is sent to the ACC via SRv6 policy A.
[0149] 204, Device B receives the second message.
[0150] As described in sections 201-203, the second message belongs to the first application. Since device A encapsulates quality assurance indication information in the second message, the second message also includes quality assurance indication information. Furthermore, the second message also includes information about the first application. For example, the information about the first application includes the transmission information of the second message, which includes the Internet Protocol (IP) tuple information of the second message.
[0151] In some implementations, the IP tuple information of the second message includes a four-tuple, which includes: source IP address, destination IP address, source port, and destination port. Alternatively, the IP tuple information of the second message includes a five-tuple, which includes: source IP address, destination IP address, protocol number, source port, and destination port. Alternatively, the IP tuple information of the second message includes a seven-tuple, which includes: source IP address, destination IP address, protocol number, source port, destination port, type of service (ToS), and interface index.
[0152] For example, in addition to IP tuple information, the information of the first application may also include a first identifier. The first identifier includes at least one of an application identifier, a user identifier, and a flow identifier, wherein the application identifier is used to indicate the application corresponding to the second packet, the user identifier is used to indicate the user corresponding to the second packet, and the flow identifier is used to indicate the packet flow corresponding to the second packet.
[0153] Based on the first identifier, device B is capable of traffic management. For example, the traffic management performed by device B includes, but is not limited to: performing traffic analysis based on the first identifier, obtaining analysis results, and selecting appropriate traffic management strategies based on the analysis results, such as adjusting traffic processing priorities, uploading traffic to a network manager for further analysis, limiting or discarding traffic, etc. For example, during the traffic analysis based on the first identifier, device B calculates the total traffic corresponding to a first application based on the application identifier included in the first identifier. Alternatively, it calculates the total traffic consumed by any user based on the user identifier included in the first identifier. Alternatively, it calculates the total traffic corresponding to any packet flow based on the flow identifier included in the first identifier. This embodiment does not limit the traffic analysis process or the traffic management strategy.
[0154] It should be noted that the second message received by device B and sent by device A is merely an example and is not intended to limit the sending device of the second message. In some implementations, the second message containing quality assurance indication information may also be sent by a device other than device A.
[0155] 205. Device B stores the correspondence between the information of the first application and the quality assurance instruction information.
[0156] During message transmission, device B often receives multiple messages. If a received message does not carry quality assurance indication information, device B sends the message normally. However, if a received message includes a second message carrying quality assurance indication information, device B stores the correspondence between the information of the first application and the quality assurance indication information. In some implementations, device B stores this correspondence in two ways:
[0157] The first storage method: The correspondence includes information from the first application and quality assurance instructions.
[0158] Taking the quality assurance instruction information including SLA requirements as an example, device B stores the SLA requirements and the information of the first application according to Table 1 below. In Table 1, the protocol number 6 is used to indicate that the transmission protocol used is the Transmission Control Protocol (TCP), and the SLA level identifier is used to indicate the SLA requirements.
[0159] Table 1
[0160] Source IP address Source port Destination IP address Destination port Protocol number SLA level 1.1.1.1 6000 2.2.2.2 80 6 1
[0161] The second storage method: The correspondence only includes the information of the first application, excluding the quality assurance instruction information, but the corresponding quality assurance instruction information can be determined based on the information of the first application.
[0162] For example, device B stores information about the first application according to Table 2 below, and Table 2 has corresponding quality assurance instructions.
[0163] Table 2
[0164]
[0165]
[0166] In some implementations, in response to the quality assurance instruction information including SLA requirements and SLA assurance identifier, device B does not directly perform the save operation, but saves the correspondence between the information of the first application and the quality assurance instruction information only when the SLA assurance identifier indicates that quality assurance is required.
[0167] 206, Device B receives the third message.
[0168] The third message is the message to be transmitted. After device B obtains the third message, it identifies the application to which the third message belongs based on the information of the first application.
[0169] For example, as described in 1202, the information of the first application includes the transmission information of the second message. Accordingly, device B identifies the third message based on the information of the first application, including: determining that the third message belongs to the first application in response to a match between the transmission information of the third message and the transmission information of the second message. Wherein, if the transmission information of the third message matches the transmission information of the second message, it indicates that the third message and the second message belong to the same application. Since the second message belongs to the first application, the third message also belongs to the first application.
[0170] Taking a 5-tuple of IP tuple information included in the transmitted information as an example, the transmitted information of the third message matches the transmitted information of the second message, including the following conditions: the source IP address of the third message corresponds to the destination IP address of the second message; the source port of the third message corresponds to the destination port of the second message; the destination IP address of the third message corresponds to the source IP address of the second message; the destination port of the third message corresponds to the source port of the second message; and the protocol number of the third message is the same as that of the second message. Based on these conditions, it can be determined that the second message and the third message are messages transmitted in opposite directions by the same devices using the same port, thus indicating that the second message and the third message belong to the same application.
[0171] For example, Table 3 shows a case where the quintuple of a third message matches the quintuple of a second message.
[0172] Table 3
[0173] Source IP address Source port Destination IP address Destination port Protocol number Third Message 2.2.2.2 80 1.1.1.1 6000 6 Second message 1.1.1.1 6000 2.2.2.2 80 6
[0174] It can be seen that device B can identify the application of the third message based on the information of the first application. For example, if the information of the first application includes the transmission information of the second message, device B does not need to have application device capabilities; device B only needs to compare the transmission information to provide the corresponding network quality assurance for the application. Compared with the DPI and AI methods provided in related technologies, the identification method provided in this application does not rely on strong processing capabilities. In other words, even if device B has weak processing capabilities, it can still achieve application identification according to the identification method provided in this application.
[0175] 207. Device B performs quality assurance on the third message based on the corresponding relationship.
[0176] Since the correspondence includes information about the first application and quality assurance indication information, in response to identifying that the third message belongs to the first application, the corresponding quality assurance indication information can be determined based on the information of the first application and the correspondence, thereby providing quality assurance for the third message according to the quality assurance indication information.
[0177] For example, device B performs quality assurance on the third message according to the correspondence, including: device B determines the forwarding path corresponding to the first application according to the quality assurance instruction information, and sends the third message according to the forwarding path. In some embodiments, in response to the second message received by device B being sent by device A, device B performs quality assurance on the third message according to the correspondence, including: device B sends the third message to device A.
[0178] In this process, device B determines the forwarding path corresponding to the first application based on the quality assurance instruction information. This includes device B determining the tunnel policy that matches the quality assurance instruction information as the forwarding path. The methods for determining the forwarding path include the following two cases, C1 and C2. Case C1 is described in case B1 above in section 203, and case C2 is described in case B2 above in section 203; they will not be repeated here.
[0179] Scenario C1: Device B is configured with multiple tunnel policies, each corresponding to a different policy identifier. Device B has a first mapping relationship between Quality Assurance Indication Information and policy identifiers. Device B determines the tunnel policy matching the Quality Assurance Indication Information as the forwarding path, including: Device B, based on the first mapping relationship, determines the target policy identifier corresponding to the Quality Assurance Indication Information; determines the tunnel policy corresponding to the target policy identifier from the multiple tunnel policies configured by Device B; and determines the tunnel policy corresponding to the target policy identifier as the forwarding path.
[0180] Scenario C2: Device B is configured with multiple tunnel policies, each corresponding to a different policy identifier. Device B also has a second mapping relationship between Quality Assurance Indication Information and target markers, and a third mapping relationship between target markers and target policy identifiers. The target policy identifier is one of the policy identifiers corresponding to the multiple tunnel policies. Device B determines the tunnel policy matching the Quality Assurance Indication Information as the forwarding path, including: Device B determines the target marker corresponding to the Quality Assurance Indication Information based on the second mapping relationship; determines the target policy identifier corresponding to the target marker based on the third mapping relationship; determines the tunnel policy corresponding to the target policy identifier from the multiple tunnel policies configured by Device B; and determines the tunnel policy corresponding to the target policy identifier as the forwarding path.
[0181] For example, the method further includes: device B encapsulating quality assurance indication information in a third message, wherein device B may encapsulate the quality assurance indication information in the third message before performing quality assurance on the third message according to the correspondence, or may encapsulate the quality assurance indication information in the third message after quality assurance. The quality assurance indication information encapsulated in the third message is used by each hop device after device B to determine the quality of service (QoS), thereby controlling and scheduling the third message according to the QoS. Alternatively, the quality assurance indication information encapsulated in the third message may also be used by each hop device after device B to reroute the third message.
[0182] For example, in addition to encapsulating quality assurance indication information, device B also encapsulates an application identifier in the third message. Then, each subsequent hop device combines the quality assurance indication information and the application identifier to determine the application of the third message, thereby performing statistical management based on the application of the third message. For example, the statistical management performed by each hop device includes, but is not limited to, application-level control based on the application of the third message and the service function chain (SFC). This application does not limit the statistical management performed by each hop device. In some embodiments, in addition to the application identifier, device B can also encapsulate a user identifier and / or a flow identifier in the third message to facilitate further statistical management by each hop device.
[0183] It should be noted that the SFC includes multiple service nodes, each corresponding to a specific service. Therefore, multiple service nodes can provide a variety of services in an orderly manner. Each hop device sends the third message to at least one service node in the SFC according to the application of the third message. Each service receiving the third message then provides its corresponding service, resulting in a service outcome used for application-level control. This implementation does not limit the services provided by the service nodes included in the SFC. For example, the services provided by the service nodes include, but are not limited to, anti-distributed denial of service (anti-DDoS), log auditing, URL control, application control, and firewall (FW), etc.
[0184] Taking various jumping devices, including AGGs, as an example, see [link / reference]. Figure 12 , Figure 12 This paper illustrates a process where an AGG (Agile Group) performs application-level control through a cloud-based value-added service system (VAS). The VAS includes a service classifier (SC) and a tail end. The AGG sends a third message and its application to the SC. Based on the application in the third message, the SC selects at least one service node from the service nodes included in the service classifier (SFC). Figure 12 Three service nodes were selected: anti-DDoS, application control, and firewall. The third message arrived at each selected service node in sequence. After the last service node provided the service, the service result was sent to the tail node, which then sent the service result to AGG so that AGG could perform application-level control based on the received service result.
[0185] Taking device A as the MC and device B as the ACC as an example, see [link / reference]. Figure 13 , Figure 13This illustrates the process of device B transmitting uplink messages. The process of transmitting uplink messages is described above. Figure 11 The corresponding explanations will not be repeated here.
[0186] In summary, because device A possesses application identification capabilities, it can send a second message carrying quality assurance indication information to device B after identifying that the first message belongs to the first application. Therefore, based on the quality assurance indication information carried in the second message, even with weaker processing capabilities, device B can obtain the corresponding application information from the second message. This allows it to provide network quality assurance based on the obtained application and assurance information, achieving differentiated transmission of messages for different applications. This not only reduces operator costs but also improves user experience.
[0187] Next, see Figure 14 The method for transmitting messages provided in this application is described through the interaction between ACC and MC.
[0188] Step 1: The MC receives downlink packets and determines that the downlink packets belong to the first application requiring quality assurance. See also... Figure 15 If the application to which the downlink message belongs is the first application that needs to be guaranteed, then the quality assurance indication information is carried in the downlink message.
[0189] Step 2: In response to the application requiring assurance for the downlink packet, the MC selects an appropriate forwarding path based on the quality assurance indication information to forward the downlink packet carrying the quality assurance indication information. Alternatively, see [link to relevant documentation]. Figure 15 If the application to which the downlink message belongs does not require protection, the MC will forward the downlink message normally.
[0190] Step 3: See Figure 15 After receiving a downlink packet, the ACC determines whether it carries Quality Assurance Indication (QA) information. If the downlink packet does not carry QA information, it forwards the packet normally. If the downlink packet carries QA information, it parses the packet header to obtain the QA information and saves the mapping between the IP tuple information of the downlink packet and the QA information. Then, it forwards the downlink packet normally.
[0191] Step 4: See Figure 16 After the ACC saves the mapping relationship, in response to receiving an uplink packet, the ACC determines whether the IP tuple information of the uplink packet matches the IP tuple information of the downlink packet. If there is a match, the ACC selects an appropriate forwarding path to send the uplink packet according to the quality assurance indication information, that is, it performs quality assurance on the uplink packet according to the mapping relationship. Alternatively, if there is no match, the ACC forwards the uplink packet normally.
[0192] See Figure 17 In step four, for uplink packets that match the five-tuple of the downlink packet, ACC also carries Quality Assurance Indication (QAI), application identifier, user identifier, and flow identifier in the uplink packet. This allows subsequent devices, such as AGG devices, to not only forward the uplink packet but also to perceive the application of the uplink packet based on the QAII, application identifier, user identifier, and flow identifier carried in the uplink packet, thereby enabling traffic management based on the perceived application. See [link to relevant documentation]. Figure 17 Step five in the process.
[0193] The method for transmitting messages according to this application has been described above. Corresponding to the above method, this application also provides an apparatus for transmitting messages. This apparatus is used to transmit messages via... Figure 18 Each module shown performs the above... Figure 2 The method by which device B in the process transmits messages. For example... Figure 18 As shown, this application provides a message transmission apparatus, which includes the following modules.
[0194] The receiving module 1801 is used by device B to receive a first message, which includes quality assurance instruction information and information about a first application. The first message belongs to the first application. The steps performed by the receiving module 1801 are described in section 204 above.
[0195] The storage module 1802 is used to store the correspondence between the information of the first application and the quality assurance instruction information according to the first message. The steps performed by the storage module 1802 are described in section 205 above.
[0196] The receiving module 1801 is also used for device B to receive a second message, which includes information about the first application. The steps performed by the receiving module 1802 can also be found in the description above at 206.
[0197] The assurance module 1803 is used to ensure the quality of the second message according to the correspondence. The steps performed by the assurance module 1803 are described in section 207 above.
[0198] In one possible implementation, the quality assurance instruction information includes SLA requirements and / or SLA assurance markings.
[0199] In one possible implementation, the first message includes an IPv6 message, with quality assurance indication information located in the header of the IPv6 message.
[0200] In one possible implementation, the quality assurance indication information is located in the APN6 header of the IPv6 packet, and the APN6 header is located in the IPv6 extended header.
[0201] In one possible implementation, the APN6 header includes the APN6 basic header, and the quality assurance indication information is located in the APN6 basic header;
[0202] Alternatively, the APN6 header includes an APN6 parameter extension header, with quality assurance indication information located in the APN6 extension header.
[0203] In one possible implementation, the quality assurance instruction information includes SLA requirements and SLA assurance identifiers, and the APN6 header includes an APN6 basic header and an APN6 parameter extension header. The SLA requirements are located in the APN6 basic header, and the SLA assurance identifiers are located in the APN6 parameter extension header.
[0204] Alternatively, the SLA requirement is located in the APN6 parameter extension header, and the SLA guarantee identifier is located in the APN6 basic header.
[0205] In one possible implementation, the information of the first application includes the transmission information of the first message, which includes the IP tuple information of the first message.
[0206] In one possible implementation, the assurance module 1803 is used by device B to determine the forwarding path corresponding to the first application based on the quality assurance instruction information, and to send the second message according to the forwarding path.
[0207] In one possible implementation, the apparatus further includes an encapsulation module for encapsulating quality assurance indication information in a second message.
[0208] In one possible implementation, the information of the first application includes a first identifier, which includes at least one of an application identifier, a user identifier, and a flow identifier. The application identifier is used to identify the first application, the user identifier is used to identify the user corresponding to the first message, and the flow identifier is used to identify the message flow corresponding to the first message.
[0209] In one possible implementation, the first message received by device B is sent by device A, and the protection module 1803 is used for device B to send a second message to device A. Device A corresponds to the aforementioned... Figure 2 Device A in the middle.
[0210] like Figure 19 As shown, this application also provides an apparatus for transmitting messages, which is used to transmit messages via... Figure 19 Each module shown performs the above... Figure 2 The method for transmitting messages executed by device A. The device includes the following modules.
[0211] Module 1901 is used by device A to obtain the first message.
[0212] The determination module 1902 is used by device A to determine that the first message belongs to the first application that requires quality assurance.
[0213] For details on the steps performed by module 1901 and module 1902, please refer to the description in section 201 above.
[0214] Update module 1903 is used by device A to update the first message to obtain a second message, the second message including quality assurance indication information. The steps performed by update module 1903 are described in section 202 above.
[0215] The sending module 1904 is used by device A to send a second message to device B. The quality assurance indication information is used to instruct device B to obtain information about the first application from the first message and to perform quality assurance on messages belonging to the first application. Device B corresponds to the aforementioned... Figure 2 For device B in the above text, the steps performed by the transmitting module 1904 are described in section 203.
[0216] In one possible implementation, the quality assurance indication information includes Service Level Agreement (SLA) requirements and / or SLA assurance identifiers.
[0217] In one possible implementation, the update module 1903 is further configured to have device A obtain a first identifier of a first application, the first identifier including at least one of an application identifier, a user identifier, and a flow identifier, and encapsulate the first identifier in a second message, wherein the application identifier is used to identify the application corresponding to the first message, the user identifier is used to identify the user corresponding to the first message, and the flow identifier is used to identify the message flow corresponding to the first message, and the information of the first application includes the first identifier.
[0218] It should be understood that the above Figure 18 The device provided in section 19, when implementing its functions, is only illustrated by the division of the aforementioned functional modules. In practical applications, the aforementioned functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. Furthermore, the aforementioned... Figure 18 and Figure 19 The provided device and Figure 2 The methods shown belong to the same concept, and their specific implementation process can be found in 201-207, which will not be repeated here.
[0219] This application provides a communication device, which includes a communication interface and a processor. Optionally, the communication device also includes a memory. The communication interface, the memory, and the processor communicate with each other via an internal connection path. The memory stores instructions, and the processor executes the instructions stored in the memory to control the communication interface to receive and send signals. When the processor executes the instructions stored in the memory, it causes the processor to perform any of the exemplary message transmission methods provided in this application.
[0220] This application provides a communication device, which includes a communication interface and a processor. Optionally, the communication device also includes a memory. The communication interface, the memory, and the processor communicate with each other via an internal connection path. The memory stores instructions, and the processor executes the instructions stored in the memory to control the communication interface to receive and send signals. When the processor executes the instructions stored in the memory, it causes the processor to perform any of the exemplary message transmission methods provided in this application.
[0221] Corresponding to the method and virtual device provided in this application, this application also provides a communication device, the hardware structure of which is described below.
[0222] The communication device 2000 or communication device 2100 described below corresponds to the communication device in the above-described method. The various hardware components, modules, and other operations and / or functions in communication device 2000 or communication device 2100 respectively implement the various steps and methods implemented by communication device 2000 or communication device 2100 in the method. For details on how communication device 2000 or communication device 2100 performs message transmission, please refer to the above-described method; for brevity, they will not be repeated here. The steps of methods 201-203 above are completed by the integrated logic circuits of the hardware in the processor of communication device 2000 or communication device 2100 or by instructions in software form. The steps of the method disclosed in this application can be directly manifested as being executed by the hardware processor, or being executed by a combination of hardware and software modules in the processor. The software modules can be located in random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, or other mature storage media in the art. This storage medium is located in memory; the processor reads the information in the memory and, in conjunction with its hardware, completes the steps of the above-described method. To avoid repetition, they will not be described in detail here.
[0223] Communication device 2000 or communication device 2100 corresponds to the virtual device mentioned above. Figure 18 or Figure 19The message transmission device shown in the diagram is implemented using software from communication device 2000 or communication device 2100. In other words, the functional modules included in the message transmission device are generated by the processor of communication device 2000 or communication device 2100 after reading program code stored in memory.
[0224] See Figure 20 , Figure 20 A schematic diagram of the structure of an exemplary communication device 2000 of this application is shown. Figure 20 The communication device 2000 shown is used to perform the above. Figure 2 The operation involved in the method of transmitting messages is shown. The communication device 2000 is, for example, a switch, router, controller, etc.
[0225] like Figure 20 As shown, the communication device 2000 includes at least one processor 2001, a memory 2003, and at least one communication interface 2004.
[0226] The processor 2001 is, for example, a general-purpose central processing unit (CPU), a digital signal processor (DSP), a network processor (NP), a graphics processing unit (GPU), a neural-network processing unit (NPU), a data processing unit (DPU), a microprocessor, or one or more integrated circuits or application-specific integrated circuits (ASICs) used to implement the scheme of this application, a programmable logic device (PLD), or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. A PLD is, for example, a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof. It can implement or execute the various logic blocks, modules, and circuits described in conjunction with the disclosure of this application. The processor can also be a combination that implements computational functions, such as including one or more microprocessor combinations, a combination of a DSP and a microprocessor, etc.
[0227] Optionally, the communication device 2000 also includes a bus. The bus is used to transmit information between the various components of the communication device 2000. The bus can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. The bus can be divided into address bus, data bus, control bus, etc. For ease of representation, Figure 20 The bus is represented by a single thick line, but this does not mean that there is only one bus or one type of bus.
[0228] Memory 2003 may be, for example, read-only memory (ROM) or other types of storage devices capable of storing static information and instructions; random access memory (RAM) or other types of dynamic storage devices capable of storing information and instructions; electrically erasable programmable read-only memory (EEPROM); compact disc read-only memory (CD-ROM) or other optical disc storage; optical disc storage (including compressed discs, laser discs, optical discs, digital versatile discs, Blu-ray discs, etc.); magnetic disk storage media or other magnetic storage devices; or any other medium capable of carrying or storing desired program code in the form of instructions or data structures and accessible by a computer, but not limited thereto. Memory 2003 may exist independently and be connected to processor 2001 via a bus. Memory 2003 may also be integrated with processor 2001.
[0229] The communication interface 2004 uses any transceiver-like device for communicating with other devices or communication networks, such as Ethernet, radio access network (RAN), or wireless local area network (WLAN). The communication interface 2004 can include wired and wireless communication interfaces. Specifically, the communication interface 2004 can be an Ethernet interface, such as Fast Ethernet (FE), Gigabit Ethernet (GE), Asynchronous Transfer Mode (ATM), WLAN, cellular network communication, or combinations thereof. The Ethernet interface can be an optical interface, an electrical interface, or a combination thereof. In some embodiments of this application, the communication interface 2004 can be used by the communication device 2000 to communicate with other devices.
[0230] In specific implementations, as some embodiments, the processor 2001 may include one or more CPUs, such as Figure 20 The CPU0 and CPU1 shown are examples of processors. Each of these processors can be a single-core processor or a multi-core processor. A processor here can refer to one or more devices, circuits, and / or processing cores used to process data (e.g., computer program instructions).
[0231] In specific implementations, as some embodiments, the communication device 2000 may include multiple processors, such as... Figure 20 The processors shown are 2001 and 2005. Each of these processors may be a single-core processor or a multi-core processor. Here, "processor" may refer to one or more devices, circuits, and / or processing cores used to process data (such as computer program instructions).
[0232] In some embodiments, memory 2003 is used to store program code 2010 for executing the solution of this application, and processor 2001 can execute the program code 2010 stored in memory 2003. That is, communication device 2000 can implement the method of transmitting messages provided by the method through processor 2001 and program code 2010 in memory 2003. Program code 2010 may include one or more software modules. Optionally, processor 2001 itself may also store program code or instructions for executing the solution of this application.
[0233] In specific implementation, the communication device 2000 of this application can correspond to the communication device in the above method. The processor 2001 in the communication device 2000 reads the instructions in the memory 2003, causing... Figure 20 The communication device 2000 shown is capable of performing all or part of the operations performed by the communication device in the method.
[0234] Communication equipment 2000 can also correspond to the above. Figure 18 The device shown, Figure 18 Each functional module in the illustrated device is implemented using the software of the communication device 2000. In other words, Figure 18 The device shown includes functional modules generated by the processor 2001 of the communication device 2000 after reading the program code 2010 stored in the memory 2003.
[0235] Communication equipment 2000 can also correspond to the above. Figure 19 The device shown, Figure 19 Each functional module in the illustrated device is implemented using the software of the communication device 2000. In other words, Figure 19 The device shown includes functional modules generated by the processor 2001 of the communication device 2000 after reading the program code 2010 stored in the memory 2003.
[0236] in, Figure 2 Each step of the method for transmitting messages shown is accomplished through integrated logic circuits in the hardware or software instructions of the processor in the communication device 2000. The steps of the method disclosed in this application can be directly implemented by the hardware processor, or by a combination of hardware and software modules within the processor. The software modules can reside in random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, or other storage media readily available in the art. Since this storage medium is located in memory, the processor reads information from the memory and, in conjunction with its hardware, completes the steps of the above method; to avoid repetition, these will not be described in detail here.
[0237] See Figure 21 , Figure 21 A schematic diagram of an exemplary communication device 2100 of this application is shown. The communication device 2100 includes a main control board 2100 and an interface board 2130. Figure 21 The communication device 2100 shown is used to perform the above. Figure 2 The operation involved in the method of transmitting messages shown is illustrated. The communication device 2100 is, for example, a switch, router, controller, etc. Communication device 2100 can be an example of communication device 2000.
[0238] The main control board 2100, also known as the main processing unit (MPU) or route processor card, is used to control and manage the various components in the communication device 2100, including routing calculation, device management, device maintenance, and protocol processing functions. The main control board 2100 includes a central processing unit 2101 and a memory 2102.
[0239] Interface board 2130 is also called a line processing unit (LPU), linecard, or service board. Interface board 2130 provides various service interfaces and implements packet forwarding. Service interfaces include, but are not limited to, Ethernet interfaces, POS (Packet over SONET / SDH) interfaces, etc., with Ethernet interfaces including, for example, Flexible Ethernet Clients (FlexE Clients). Interface board 2130 includes: a central processing unit 2131, a network processor 2132, a forwarding table entry memory 2134, and a physical interface card (PIC) 2133.
[0240] The central processing unit 2131 on the interface board 2130 is used to control and manage the interface board 2130 and communicate with the central processing unit 2101 on the main control board 2100.
[0241] Network processor 2132 is used to implement packet forwarding processing. Network processor 2132 can be in the form of a forwarding chip. Specifically, network processor 2132 forwards received packets based on the forwarding table stored in forwarding table entry memory 2134. If the destination address of the packet is the address of communication device 2100, the packet is sent to the CPU (such as central processing unit 2101) for processing; if the destination address of the packet is not the address of communication device 2100, the next hop and outgoing interface corresponding to the destination address are looked up in the forwarding table according to the destination address, and the packet is forwarded to the outgoing interface corresponding to the destination address. Uplink packet processing includes: packet ingress interface processing, forwarding table lookup; downlink packet processing includes forwarding table lookup, etc.
[0242] The physical interface card 2133 is used to implement physical layer interfacing functions. Raw traffic enters the interface board 2130 through this card, and processed packets are sent out from the physical interface card 2133. The physical interface card 2133, also known as a daughter card, can be installed on the interface board 2130. It is responsible for converting photoelectric signals into packets, performing validity checks on the packets, and forwarding them to the network processor 2132 for processing. In some implementations, the central processing unit can also perform the functions of the network processor 2132, such as implementing software forwarding based on a general-purpose CPU, thus eliminating the need for a network processor 2132 within the physical interface card 2133.
[0243] Optionally, the communication device 2100 includes multiple interface boards. For example, the communication device 2100 also includes an interface board 2140, which includes a central processing unit 2141, a network processor 2142, a forwarding table entry memory 2144, and a physical interface card 2143.
[0244] Optionally, the communication device 2100 also includes a switching fabric unit (SFU). The switching fabric unit 2100 can also be referred to as a switch fabric unit (SFU). When the communication device has multiple interface boards 2130, the switching fabric unit 2100 is used to complete data exchange between the interface boards. For example, interface boards 2130 and 2140 can communicate through the switching fabric unit 2100.
[0245] The main control board 2100 and the interface board 2130 are coupled. For example, the main control board 2100, interface board 2130, interface board 2140, and switching network board 2100 communicate with each other via a system bus connected to the system backplane. In one possible implementation, an inter-process communication (IPC) channel is established between the main control board 2100 and the interface board 2130, and the main control board 2100 and the interface board 2130 communicate with each other through the IPC channel.
[0246] Logically, the communication device 2100 includes a control plane and a forwarding plane. The control plane includes a main control board 2100 and a central processing unit 2131, while the forwarding plane includes various components that perform forwarding, such as a forwarding table entry memory 2134, a physical interface card 2133, and a network processor 2132. The control plane performs functions such as router operation, generating forwarding tables, processing signaling and protocol messages, and configuring and maintaining the device's status. The control plane distributes the generated forwarding table to the forwarding plane. In the forwarding plane, the network processor 2132 forwards messages received by the physical interface card 2133 based on the forwarding table distributed by the control plane. The forwarding table distributed by the control plane can be stored in the forwarding table entry memory 2134. In some embodiments, the control plane and the forwarding plane can be completely separated and not on the same device.
[0247] If the communication device 2100 is configured to perform Figure 2 The communication device that performs the message transmission method executed by device A obtains the first message and updates it to obtain the second message, then sends the second message through the physical interface card 2133. For example, the first message is a message received through the physical interface card 2133.
[0248] If the communication device 2100 is configured to perform Figure 2 The communication device that performs the message transmission method in device B receives a second message sent by a device with application identification capability through physical interface card 2133, thereby saving the correspondence between the information of the first application and the quality assurance indication information included in the second message. After obtaining the third message, the third message is sent through physical interface card 2133 according to the correspondence to ensure the quality of the third message. For example, the second message and the third message are messages received through physical interface card 2133.
[0249] The operation on interface board 2140 in this application is the same as that on interface board 2130, and will not be described again for the sake of simplicity. Communication device 2100 can correspond to the communication device in the above methods. The main control board 2100, interface board 2130 and / or 2140 in the communication device 2100 can realize the functions and / or various steps implemented by the communication device in the above methods, and will not be described again for the sake of simplicity.
[0250] It's worth noting that a communication device may have one or more main control boards, including a primary and a backup main control board. It may also have one or more interface boards; the stronger the data processing capability of the communication device, the more interface boards it provides. Each interface board may also have one or more physical interface cards. A switching network board may or may not exist; multiple boards can share the load and provide redundancy. In a centralized forwarding architecture, the communication device may not need a switching network board, as the interface boards handle the entire system's business data processing. In a distributed forwarding architecture, the communication device can have at least one switching network board, which enables data exchange between multiple interface boards, providing high-capacity data exchange and processing capabilities. Therefore, the data access and processing capabilities of a distributed architecture communication device are greater than those of a centralized architecture device. Alternatively, the communication equipment can also be a single board, without a switching network board. The functions of the interface board and the main control board are integrated on this one board. In this case, the central processing unit (CPU) on the interface board and the CPU on the main control board can be combined into a single CPU to perform the combined functions. This type of equipment has lower data exchange and processing capabilities (e.g., low-end switches or routers). The specific architecture adopted depends on the specific network deployment scenario, and no restrictions are imposed here.
[0251] In some possible implementations, the above-mentioned communication device can be implemented as a virtualized device.
[0252] For example, a virtualization device can be a virtual machine (VM) running a program for sending messages, deployed on hardware (e.g., a physical server). A virtual machine refers to a complete computer system simulated by software, possessing full hardware system functionality and running in a completely isolated environment. A virtual machine can be configured as a first or second communication device. For example, a communication device can be implemented based on a general-purpose physical server combined with Network Functions Virtualization (NFV) technology. The communication device can be a virtual host, virtual router, or virtual switch. Those skilled in the art can, by reading this application, virtually create a communication device with the above-mentioned functions on a general-purpose physical server using NFV technology. Further details are omitted here.
[0253] For example, a virtualization device can be a container. A container is an entity used to provide an isolated virtualized environment; for example, a container can be a Docker container. A container can be configured as a communication device. For instance, a communication device can be created using a corresponding image. For example, using an image of proxy-container (a container that provides proxy services), two container instances can be created for proxy-container: container instance proxy-container1 and container instance proxy-container2. Container instance proxy-container1 can then be used for execution... Figure 2 The communication device that performs the method of transmitting messages executed by device A provides the container instance proxy-container2 as a means of execution. Figure 2 The communication device is the one that executes the method of transmitting messages in device B. When implemented using container technology, the communication device can run on the kernel of a physical machine, and multiple communication devices can share the operating system of the physical machine. Container technology can isolate different communication devices. Containerized communication devices can run in a virtualized environment, such as in a virtual machine, or they can run directly on a physical machine.
[0254] For example, a virtualization device can be a Pod. A Pod is the basic unit used by Kubernetes (Kubernetes is an open-source container orchestration engine from Google, commonly known as K8s) to deploy, manage, and orchestrate containerized applications. A Pod can include one or more containers. Each container in the same Pod is typically deployed on the same host, so each container in the same Pod can communicate through that host and share the host's storage and network resources. A Pod can be configured as a communication device. Specifically, a Pod can be created by instructing Container as a Service (CaaS, a container-based PaaS service) to provide the Pod as a communication device.
[0255] Of course, communication equipment can also be other virtualized devices, which will not be listed here.
[0256] In some possible implementations, the communication device described above can also be implemented by a general-purpose processor.
[0257] For example, the general-purpose processor can be in the form of a chip. Specifically, the general-purpose processor implementing the communication device includes processing circuitry and input and output interfaces internally connected and communicating with the processing circuitry. The processing circuitry is used to execute the message generation step in each of the above methods through the input interface, the receiving step in each of the above methods through the input interface, and the sending step in each of the above methods through the output interface. Optionally, the general-purpose processor may also include a storage medium, and the processing circuitry is used to execute the storage step in each of the above methods through the storage medium. The storage medium may store instructions executed by the processing circuitry, and the processing circuitry is used to execute the instructions stored in the storage medium to execute the above methods.
[0258] It should be understood that the aforementioned processor can be a Central Processing Unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. General-purpose processors can be microprocessors or any conventional processor. It is worth noting that the processor can be a processor supporting the Advanced Reduced Instruction Set Computing (RISC) machine (ARM) architecture.
[0259] Furthermore, in an alternative implementation, the memory described above may include read-only memory and random access memory, and provide instructions and data to the processor. The memory may also include non-volatile random access memory. For example, the memory may also store device type information.
[0260] The memory can be volatile or non-volatile, or may include both. The non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. The volatile memory can be random access memory (RAM), which serves as an external cache. Many forms of RAM are available by way of example, but not limitation. Examples include static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous linked dynamic random access memory (SLDRAM), and direct rambus RAM (DR RAM).
[0261] See Figure 22 This application provides a network system 2200 for transmitting messages, which includes a first device 2201 and a second device 2202. The first device 2201 is used to obtain a first message and determine that the first message belongs to a first application that requires quality assurance.
[0262] The first device 2201 is also used to update the first message to obtain a second message, the second message including quality assurance instruction information;
[0263] The first device 2201 is also used to send a second message to the second device 2202;
[0264] The second device 2202 is used to receive the second message;
[0265] The second device 2202 is also used to store the correspondence between the information of the first application and the quality assurance instruction information included in the second message according to the second message;
[0266] The second device 2202 is also used to receive a third message, which includes information about the first application;
[0267] The second device 2202 is also used to ensure the quality of the third message according to the correspondence.
[0268] In one possible implementation, the first device 2201 is further configured to obtain a first identifier of a first application, the first identifier including at least one of an application identifier, a user identifier, and a flow identifier, and encapsulate the first identifier in a second message, wherein the application identifier is used to identify the application corresponding to the first message, the user identifier is used to identify the user corresponding to the first message, and the flow identifier is used to identify the message flow corresponding to the first message, and the information of the first application includes the first identifier.
[0269] In one possible implementation, the second message received by the second device 2202 is sent by the first device 2201, and the second device 2202 is used to send a third message to the first device 2201.
[0270] The steps performed by the first device 2201 are described in sections 201-207 above. Figure 2 The description of device A is provided below. For the steps performed by the second device 2202, please refer to sections 201-207 above. Figure 2 The description of the corresponding device B will not be repeated here.
[0271] This application provides a communication device configured to perform... Figure 2 A communication device that performs a method for transmitting messages, as executed by device B. The communication device includes a main control board and an interface board. The main control board includes a first processor and a second memory. The interface board includes a second processor, a second memory, and an interface card. The main control board and the interface board are coupled. The second memory can be used to store program code, and the second processor is used to call the program code in the second memory to perform the following operations: receiving a first message, the first message including quality assurance indication information and information of a first application, the first message belonging to the first application.
[0272] The first memory can be used to store program code, and the first processor is used to call the program code in the first memory to perform the following operation: save the correspondence between the information of the first application and the quality assurance instruction information according to the first message.
[0273] The second processor is also used to call program code in the second memory to perform the following operations: receive a second message, the second message including information of the first application; and perform quality assurance on the second message according to the correspondence.
[0274] In one possible implementation, an inter-process communication (IPC) channel is established between the main control board and the interface board, and the main control board and the interface board communicate with each other through the IPC channel.
[0275] This application provides a communication device configured to perform... Figure 2 A communication device that performs a method for transmitting messages, as described in device A. The communication device includes a main control board and an interface board. The main control board includes a first processor and a second memory. The interface board includes a second processor, a second memory, and an interface card. The main control board and the interface board are coupled.
[0276] The first memory can be used to store program code, and the first processor is used to call the program code in the first memory to perform the following operations: obtain a first message; determine that the first message belongs to a first application that requires quality assurance; update the first message to obtain a second message, the second message including quality assurance instruction information.
[0277] The second memory can be used to store program code, and the second processor is used to call the program code in the second memory to perform the following operations: send a second message to the second device, and the quality assurance indication information is used to instruct the second device to obtain information of the first application from the first message and to perform quality assurance on the messages belonging to the first application.
[0278] In one possible implementation, an IPC channel is established between the main control board and the interface board, and the main control board and the interface board communicate with each other through the IPC channel.
[0279] This application provides a computer program (product) comprising: computer program code, which, when executed by a computer, causes the computer to perform the above-described 201-207. Figure 2 The method of transmitting messages shown
[0280] This application provides a computer-readable storage medium that stores a program or instructions, which, when executed on a computer, provide the above-mentioned sections 201-207 and... Figure 2 The method for transmitting messages shown is executed.
[0281] This application provides a chip, including a processor, for calling and executing instructions stored in a memory, causing a communication device equipped with the chip to perform the above-described 201-207 instructions. Figure 2 The method for transmitting messages is shown.
[0282] This application provides another chip, including: an input interface, an output interface, a processor, and a memory. The input interface, output interface, processor, and memory are connected via internal interconnection paths. The processor is used to execute code in the memory. When the code is executed, the processor is used to execute the above-described 201-207 and... Figure 2 The method for transmitting messages is shown.
[0283] In the above embodiments, implementation can be achieved, in whole or in part, through software, hardware, firmware, or any combination thereof. When implemented in software, it can be implemented, in whole or in part, as a computer program product. A computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the processes or functions according to this application are generated, in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state drive), etc.
[0284] In the context of this application, computer program code or related data may be carried on any suitable carrier to enable a device, apparatus, or processor to perform the various processes and operations described above. Examples of carriers include computer-readable media, etc.
[0285] Those skilled in the art will understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and modules described above can be found in the corresponding processes described in the aforementioned methods, and will not be repeated here.
[0286] In the several embodiments provided in this application, it should be understood that the disclosed systems, devices, and methods can be implemented in other ways. For example, the devices described above are merely illustrative; for instance, the division of modules is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple modules or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the couplings or direct couplings or communication connections shown or discussed may be indirect couplings or communication connections through some interfaces, devices, or modules, or they may be electrical, mechanical, or other forms of connection.
[0287] The modules described as separate components may or may not be physically separate. The components shown as modules may or may not be physical modules; that is, they may be located in one place or distributed across multiple network modules. Some or all of the modules can be selected to achieve the purpose of this application's solution, depending on actual needs.
[0288] Furthermore, the functional modules in the various embodiments of this application can be integrated into one processing module, or each module can exist physically separately, or two or more modules can be integrated into one module. The integrated modules described above can be implemented in hardware or as software functional modules.
[0289] In this application, the terms "first," "second," etc., are used to distinguish identical or similar items that have substantially the same function and purpose. It should be understood that there is no logical or temporal dependency between "first," "second," and "nth," nor does it limit the quantity or order of execution. It should also be understood that although the following description uses the terms "first," "second," etc., to describe various elements, these elements should not be limited by the terms. These terms are merely used to distinguish one element from another. For example, without departing from the scope of various examples, a first device can be referred to as a second device, and similarly, a second device can be referred to as a first device. Both the first and second devices can be communication devices, and in some cases, they can be separate and different devices.
[0290] It should also be understood that in the various embodiments of this application, the sequence number of each process does not imply 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 this application.
[0291] In this application, the term "at least one" means one or more, and the term "multiple" means two or more. The terms "system" and "network" are often used interchangeably.
[0292] It should be understood that determining B based on A does not mean determining B solely based on A; B can also be determined based on A and other information.
[0293] It should also be understood that the phrases "one implementation," "an embodiment," and "a possible implementation" used throughout the specification mean that a specific feature, structure, or characteristic related to the implementation or implementation is included in at least one embodiment of this application. Therefore, the phrases "in one implementation," "in a possible implementation," or "a possible implementation" appearing throughout the specification do not necessarily refer to the same implementation. Furthermore, these specific features, structures, or characteristics can be combined in any suitable manner in one or more embodiments.
[0294] The above description and embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of this application.
Claims
1. A method for transmitting messages, characterized in that, The method includes: The first device receives a first message sent by the second device. The first message includes quality assurance instruction information and information of the first application. The first message belongs to the first application. The correspondence between the information of the first application and the quality assurance instruction information is saved according to the first message; The first device receives a second message, the second message including information about the first application; The second message is sent to the second device according to the correspondence.
2. The method according to claim 1, characterized in that, The quality assurance information includes Service Level Agreement (SLA) requirements and / or SLA assurance identifiers.
3. The method according to claim 1 or 2, characterized in that, The first message includes an Internet Protocol version 6 (IPv6) message, and the quality assurance indication information is located in the header of the IPv6 message.
4. The method according to claim 3, characterized in that, The quality assurance indication information is located in the Application Aware IPv6 Network (APN6) header of the IPv6 packet, and the APN6 header is located in the IPv6 extended header.
5. The method according to claim 4, characterized in that, The APN6 message header includes the APN6 basic message header, and the quality assurance indication information is located in the APN6 basic message header; Alternatively, the APN6 header may include an APN6 parameter extension header, and the quality assurance indication information may be located within the APN6 parameter extension header.
6. The method according to claim 4, characterized in that, The quality assurance instruction information includes SLA requirements and SLA assurance identifiers. The APN6 header includes an APN6 basic header and an APN6 parameter extension header. The SLA requirements are located in the APN6 basic header, and the SLA assurance identifiers are located in the APN6 parameter extension header. Alternatively, the SLA requirement may be located in the APN6 parameter extension header, and the SLA guarantee identifier may be located in the APN6 basic header.
7. The method according to any one of claims 1-6, characterized in that, The information of the first application includes the transmission information of the first message, and the transmission information of the first message includes the IP tuple information of the first message.
8. The method according to any one of claims 1-7, characterized in that, Sending the second message to the second device according to the correspondence includes: The first device determines the forwarding path corresponding to the first application based on the quality assurance indication information included in the correspondence, and sends the second message to the second device according to the forwarding path.
9. The method according to any one of claims 1-8, characterized in that, Before sending the second message to the second device according to the correspondence, the method further includes: The quality assurance instruction information is encapsulated in the second message.
10. The method according to any one of claims 1-9, characterized in that, The information of the first application includes a first identifier, which includes at least one of an application identifier, a user identifier, and a flow identifier. The application identifier is used to identify the first application, the user identifier is used to identify the user corresponding to the first message, and the flow identifier is used to identify the message flow corresponding to the first message.
11. A method for transmitting messages, characterized in that, The method includes: The first device receives the first message; The first device determines that the first message belongs to the first application that requires quality assurance; The first device updates the first message to obtain a second message, the second message including quality assurance indication information and information of the first application; The first device sends the second message to the second device. The quality assurance indication information is used to instruct the second device to obtain the information of the first application from the second message and to save the correspondence between the information of the first application and the quality assurance indication information. The correspondence is used by the second device to send a message belonging to the first application to the first device.
12. The method according to claim 11, characterized in that, The quality assurance information includes Service Level Agreement (SLA) requirements and / or SLA assurance identifiers.
13. The method according to claim 11 or 12, characterized in that, The first device updates the first message to obtain the second message, and further includes: The first device obtains a first identifier of the first application, the first identifier including at least one of an application identifier, a user identifier, and a flow identifier, and encapsulates the first identifier in a second message. The application identifier is used to identify the application corresponding to the first message, the user identifier is used to identify the user corresponding to the first message, and the flow identifier is used to identify the message flow corresponding to the first message. The information of the first application includes the first identifier.
14. A network system for transmitting messages, characterized in that, The network system includes a first device and a second device, wherein the first device is used to obtain a first message and determine that the first message belongs to a first application that requires quality assurance. The first device is further configured to update the first message to obtain a second message, the second message including quality assurance indication information and information of the first application; The first device is also used to send the second message to the second device; The second device is used to receive the second message sent by the first device; The second device is further configured to save the correspondence between the information of the first application included in the second message and the quality assurance instruction information according to the second message; The second device is also configured to receive a third message, the third message including information about the first application; The second device is also used to send the third message to the first device according to the correspondence.
15. The network system according to claim 14, characterized in that, The first device is further configured to obtain a first identifier of the first application, the first identifier including at least one of an application identifier, a user identifier, and a flow identifier, and encapsulate the first identifier in a second message, wherein the application identifier is used to identify the application corresponding to the first message, the user identifier is used to identify the user corresponding to the first message, and the flow identifier is used to identify the message flow corresponding to the first message, and the information of the first application includes the first identifier.
16. A device for transmitting messages, characterized in that, The device includes a memory and a processor; the memory stores at least one instruction, which is loaded and executed by the processor to implement the method for transmitting messages as described in any one of claims 1-13.
17. A computer-readable storage medium, characterized in that, The storage medium stores at least one instruction, which is loaded and executed by a processor to implement the method for transmitting messages as described in any one of claims 1-13.
18. A computer program product, characterized in that, The computer program product includes: computer program code, which, when executed by a computer, enables the computer to perform the method for transmitting messages as described in any one of claims 1-13.