Network link testing using IP-IN-IP encapsulation

By transmitting nested data packets encapsulated in IP-in-IP on the data plane of the network link and alternating the destinations to transmit test packets back and forth, the problem of insufficient accuracy in link error rate testing in the prior art is solved, and higher accuracy network link reliability testing is achieved.

CN116569532BActive Publication Date: 2025-12-02MICROSOFT TECHNOLOGY LICENSING LLC
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202180082776.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-12-09
Filing Date
2021-10-18
Publication Date
2025-12-02
Estimated Expiration
2041-10-18

AI Technical Summary

Technical Problem

Existing technologies lack sufficient accuracy when testing the error rate of network links, resulting in limited testing capabilities and an inability to accurately determine the reliability of the links.

Method used

Test packets encapsulated in IP-in-IP are used to increase the number of test instances and improve the accuracy of error rate by transmitting multiple nested data packets on the data plane and alternating the destinations of the test packets.

Benefits of technology

It improves the accuracy of network link testing, enabling more accurate determination of link reliability and error rate, reducing testing time, and enhancing the precision of network reliability testing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116569532B_ABST
    Figure CN116569532B_ABST
Patent Text Reader

Abstract

Improving the accuracy of detectable error rates on links between two network nodes involves transmitting IP-in-IP encapsulated test packets back and forth between the two network nodes. These test packets consist of a series of nested data packets with alternating destinations between the two network nodes. Transmitting these test packets on the network's data plane improves the accuracy of the detectable error rate.
Need to check novelty before this filing date? Find Prior Art

Description

Background Technology

[0001] Network systems such as cloud computing networks, the Internet, or other networks involve various connections between two or more network nodes. Data is propagated between network nodes as discrete data packets. Data packets may include headers containing routing information such as source Internet Protocol (IP) addresses, destination IP addresses, message type, packet size, and other information and combinations thereof. Two network nodes can transmit data packets over a link. During transmission over the link, one or more packets may be “lost,” or may leave the source network node but not reach the destination network node. Lost packets may result in incomplete data transmission between the first and second network nodes, or may prolong data transmission and inspection processes. This may lead to increased network traffic (to add redundancy and / or inspection procedures) and / or reduced customer satisfaction.

[0002] Network engineers and / or network administrators can transmit multiple sample data packets across a link to determine the error rate of those sample data packets. A single node can receive and send thousands, tens of thousands, hundreds of thousands, millions, or more data packets per minute. An acceptable error rate for a node might be one lost packet for every thousand, ten thousand, hundred thousand, million, or more transmitted packets. To test the link's loss rate, network engineers can send thousands, tens of thousands, hundreds of thousands, millions, or more sample packets. Sending so many sample packets can take a significant amount of time to complete. This can limit the link's testing capabilities, reduce the accuracy of the tested link, and potentially lead to uncertainty about the actual error rate. Summary of the Invention

[0003] According to one aspect of this disclosure, a method is disclosed for increasing the accuracy of a detectable error rate on a link between a first network node and a second network node in a network connection. The method further includes preparing test packets. The test packets comprise multiple nested data packets. Each nested data packet corresponds to a test instance. Each nested data packet includes a destination. The destinations in consecutive nested data packets alternate between the first and second network nodes. The method further includes transmitting the test packets multiple times across the data plane between the first and second network nodes according to the destination in each nested data packet, thereby increasing the number of test instances relative to test transmissions on the control plane. The accuracy of the error rate is based at least in part on the number of test instances. The method also includes evaluating the reliability of the link based at least in part on whether the test packets are received at the final destination. The reliability of the link is based at least in part on the accuracy of the error rate.

[0004] Assessing the reliability of a link can include determining whether test packets have been received at the final destination.

[0005] If the test group does not reach its final destination, it may not have been routed through each of the multiple nested data groups.

[0006] Test packets may include at least two nested data packets with a destination of a first network node and at least two nested data packets with a destination of a second network node.

[0007] Test packets can include more than 100 nested data packets with alternating destinations between the first and second network nodes.

[0008] Preparing test packets can include preparing test packets at the first network node.

[0009] Preparing test packets may include preparing test packets at a remote location separate from the first or second network node.

[0010] The number of nested data groups can be based on the maximum group size of the first network node and the second network node.

[0011] Multiple nested data packets can be nested Internet Protocol (IP) packets.

[0012] According to another aspect of this disclosure, a method for increasing the accuracy of a detectable error rate on a link between a first network node and a second network node in a network connection is disclosed. The method further includes preparing a plurality of test packets. Each of the plurality of test packets includes a plurality of nested data packets corresponding to a test instance. Each nested data packet in the test packets includes a destination. The destinations of consecutive nested data packets in each test packet alternate between the first network node and the second network node. The method further includes transmitting each of the plurality of test packets multiple times across the data plane between the first network node and the second network node according to the destination in each nested data packet, thereby increasing the volume of the test instance relative to test transmissions on the control plane. The accuracy of the error rate is based at least in part on the number of test instances. The method also includes determining the link error rate based at least in part on the number of test packets returned from the plurality of test packets received at the final destination.

[0013] Determining the error rate of a link can include tracking which test packets out of multiple test packets reach the final destination.

[0014] The accuracy of the error rate can be based on the number of nested data groups in each of the multiple test groups.

[0015] Each of the multiple test groups may include at least two nested data groups with a destination of a first network node and at least two nested data groups with a destination of a second network node.

[0016] Each of the multiple test groups can have the same multiple nested data groups.

[0017] According to another aspect of this disclosure, a system for increasing the accuracy of a detectable error rate on a link between a first network node and a second network node in a network connection is disclosed. The system includes one or more processors, a memory in electronic communication with the one or more processors, and instructions stored in the memory. The instructions can be executed by the one or more processors to prepare a plurality of test packets. Each of the plurality of test packets includes a plurality of nested data packets corresponding to a test instance. Each nested data packet in the test packets includes a destination. The destinations in consecutive nested data packets within each test packet alternate between the first network node and the second network node. The instructions can also be executed by the one or more processors to transmit each of the plurality of test packets multiple times across the data plane between the first network node and the second network node according to the destination in each nested data packet, thereby increasing the volume of test instances relative to test transmissions on the control plane. The accuracy of the link error rate is based at least in part on the number of test instances. The instructions can also be executed by the one or more processors to determine the link error rate based at least in part on the number of test packets returned from the plurality of test packets received at the final destination.

[0018] The instructions also enable the processor to track which of multiple test groups reach the final destination when determining the error rate.

[0019] The accuracy of the error rate can be based on the number of nested data groups in each of the multiple test groups.

[0020] Each of the multiple test groups may include at least two nested data groups with a destination of a first network node and at least two nested data groups with a destination of a second network node.

[0021] Each of the multiple test groups can have the same multiple nested data groups.

[0022] Test packets can be prepared at a remote location separate from the first and second network nodes.

[0023] This summary is provided to present a selection of concepts in a simplified form, which will be further described in the detailed description below. This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.

[0024] Additional features and advantages will be set forth in the description below. The features and advantages of this disclosure can be realized and obtained by means of the systems and methods particularly pointed out in the appended claims. The features of this disclosure will become more apparent from the following description and the appended claims, or may be learned by practice of the disclosed subject matter set forth below. Attached Figure Description

[0025] To describe how the above and other features of this disclosure can be obtained, a more specific description will be presented by referring to specific embodiments illustrated in the accompanying drawings. For better understanding, in the various drawings, like elements are designated by like reference numerals. The drawings depict some exemplary embodiments, which will be described and explained with additional specificity and detail using the drawings, wherein:

[0026] Figure 1 It is a representation of a network having a link between two network nodes to be tested, according to at least one embodiment of this disclosure;

[0027] Figure 2 It is a representation of a test group comprising multiple nested data groups according to at least one embodiment of the present disclosure;

[0028] Figures 3-1 to 3-5 It is a representation of test packets transmitted between two network nodes according to at least one embodiment of the present disclosure;

[0029] Figure 4 This is a representation of a method for testing a link between two network nodes according to at least one embodiment of this disclosure;

[0030] Figure 5 This is a representation of another method for testing a link between two network nodes according to at least one embodiment of this disclosure; and

[0031] Figure 6 It is a representation of a computing system according to at least one embodiment of the present disclosure. Detailed Implementation

[0032] This disclosure relates to apparatus, systems, and methods for increasing the resolution of the error rate of a link between two network nodes. To test the link error rate, a single IP-in-IP encapsulated test packet may include multiple nested data packets with alternating destinations. The test packet bounces back and forth between the first and second network nodes on the data plane, based on the header of each nested data packet. If the test packet is not received at its final destination, the nested data packet is lost at some point between the first and second network nodes, and the error rate can be approximately one lost packet per data packet. If the test packet is received at its final destination, no data packets are lost between the first and second network nodes, and the error rate can be less than one lost packet per data packet.

[0033] Each nested data packet can represent or correspond to a single test instance of the link between a first network node and a second network node. As used herein, a test instance is a discrete test of the link between two network nodes. When testing for connectivity errors (e.g., testing for lost packets), a test instance is a single transmission of test packets from the first network node to the second network node. By transmitting test packets back and forth on the link based on alternating destinations of nested data packets, network engineers can test the network multiple times using a single test packet. This allows network engineers to increase the number of test instances used to test the link. Increasing the number of test instances can increase the accuracy of network testing.

[0034] As used herein, IP-in-IP encapsulation refers to preparing a data packet containing one or more nested data packets. An IP-in-IP data packet may include an initial packet header that provides general information about the data packet, such as the initial destination and / or routing path. The initial header may include instructions for a first network node to remove the header and unpack the nested data packets encapsulated within it. The first network node can then treat the unpacked nested data packets as its own entity, ignoring the removed initial header. Nested data packets may include any information. For example, a nested data packet may include a nested header that may include routing information, such as the destination IP address to a second network node and the source IP address of the first network node. A network node can transmit data packets to a second network node based on the nested headers within the nested data packets. The nested data packets may include instructions to remove the nested headers, and the second network node can remove the nested headers to find a second nested data packet with a second nested header, and the second network node can continue transmitting data packets based on the routing information in the second nested header. This process can be repeated until the data packet is sent to its final destination.

[0035] As used herein, a network node can include any computing device configured as part of a network. A network node can be configured to send and / or receive data packets from another connected network node. For example, a network node can include a switch, router, server, personal computing device, mobile computing device, or any other computing device.

[0036] Network nodes can be connected to one or more network nodes via links. In some embodiments, two network nodes can be connected using wired connections, wireless connections, satellite signals, the Internet, any other connection type, or combinations thereof. In some embodiments, the two network nodes can be part of a single network. In some embodiments, the two network nodes can be part of separate networks. For example, a first node may belong to a first network, while a second node may belong to a second network, and information can be transmitted between the first and second networks via a link.

[0037] As used herein, the error rate of a test link between two network nodes can refer to the ratio of data packets that fail to be correctly transmitted from the source node to the destination node. Errors can include lost data packets. For example, a data packet may leave the source node but fail to reach the destination node. In some examples, a data packet may not leave the source node. In some embodiments, errors can include data corruption in the data packet, which may prevent the data packet from correctly reaching the destination node. For example, characters in the destination IP address may be corrupted (e.g., altered, omitted, or added), causing the data packet to fail to reach the destination node. In some embodiments, errors can include routing the data packet to the wrong destination. The error rate can be expressed as one error per number of data packets transmitted. For example, the error rate could be 1 in 1,000, 1 in 10,000, 1 in 100,000, 1 in 1,000,000, or higher. Considering statistical variations, the error rate can be tested by sending test packets until an error occurs. A network link can have an acceptable error rate, which can be an acceptable number of lost packets per packet sent to maintain a desired network reliability metric.

[0038] As used herein, the reliability of a link between two network nodes can be an indication of whether packets will be transmitted correctly across the link (e.g., without errors). Link reliability can be related to error rate. For example, a link with a low error rate (e.g., one error for every additional data packets transmitted) may be more reliable than a link with a high error rate (e.g., one error for every fewer data packets transmitted). A reliable link can have a maximum acceptable error rate, which can be the maximum error rate that a network engineer allows before the link is shut down due to maintenance, outage, or upgrade to new hardware. For example, a reliable link can have a maximum acceptable error rate of 1 in 1,000,000, 1 in 100,000, 1 in 10,000, 1 in 1,000, or any value in between. In some examples, for a maximum error rate of 1 in 1,000, a 1 in 999 error rate may be higher than the maximum error rate, while a 1 in 1,001 error rate may be lower.

[0039] As used in this article, the accuracy of a link test between two network nodes can refer to the detectable error rate on the link. High-accuracy testing allows for testing more packets within a test period compared to low-accuracy testing. Test accuracy may be related to the available test bandwidth on the link. For example, if the test lasts one minute and the test bandwidth supports 100 test packets per minute, then the test accuracy is 1 error per 100 data packets. Similarly, if the test lasts one hour and the test bandwidth supports 1,000 test packets per minute, then the test accuracy is 1 error per 60,000 data packets.

[0040] In some cases, the test procedure or protocol has a test precision greater than the maximum error rate. In this way, the test procedure can perform enough tests to determine if the link is reliable (e.g., whether the link has an error rate less than the maximum error rate). In other cases, the test procedure has a test precision less than the link's maximum error rate. In other words, the test procedure may not be able to transmit enough packets to determine if the link has an error rate below the maximum error rate. For example, a precision of 1 error in 900 packets is lower than the maximum error rate of 1 error in 1,000 packets. In some examples, a precision of 1 error in 1,100 packets is higher than the maximum error rate of 1 error in 1,000 packets.

[0041] According to embodiments of this disclosure, to improve the accuracy of network reliability testing, test packets can be transmitted on the data planes of a first network node and a second network node. A network node typically includes a data plane (e.g., a forwarding plane) and a control plane (e.g., a management plane). The data plane routes network traffic, including data packets. The data plane can be optimized to deliver data packets quickly and efficiently to the destination (e.g., an IP address) identified in the destination header. The destination can be the next hop in the path or the final destination. The control plane can include forwarding rules, identify the network topology, and provide additional access to network nodes and / or the network. However, the control plane can be optimized to handle packets and other network information, rather than performing bulk and / or high-speed packet forwarding.

[0042] Traditionally, links between two network nodes can be tested by sending test transmissions on the control plane. Control plane test transmissions can include sending test packets using the Internet Control Message Protocol (ICMP) on the link using the control plane. However, ICMP messages can include information and / or other processing not directly related to determining whether an error has occurred. Furthermore, because ICMP messages are transmitted on the control plane, the number of ICMP messages transmitted over a period of time may be limited. This can lead to lower accuracy in network reliability testing, thus limiting the testable error rate.

[0043] According to embodiments of this disclosure, IP-in-IP encapsulated test packets are transmitted on the data plane of network nodes. In this way, test packets can be transmitted as normal network traffic instead of ICMP data packets. Due to the increased packet transmission rate on the data plane, the accuracy of link testing according to this disclosure can be improved. This can result in a lower detectable error rate, which allows network engineers to more accurately determine the reliability and / or error rate of network links. In some embodiments, transmitting test packets via the data plane can increase the accuracy of network testing beyond the error rate, which can further aid in determining the error rate.

[0044] As discussed herein, the number of nested data packets encapsulated within a single test packet using IP-in-IP encapsulation can be determined at least in part by the maximum packet size of the first or second network device. For example, if the maximum packet size of the first or second network device is 9,000 bytes and the data packet size is 20 bytes, then the number of nested data packets encapsulated by the test packet can be 450 (e.g., 9,000 divided by 20). In some embodiments, the maximum packet size can be configurable at the first and / or second network node. In some embodiments, the number of nested data packets can be determined based on the lower of the maximum data packet sizes at the first or second network node. In some embodiments, the data packet can include any number of nested data packets, including 4, 5, 10, 50, 100, 250, 500, 750, 1,000, 2,500, 5,000, 7,500, 10,000, or more nested data packets. In some embodiments, the data packet can include a large volume of data packets. Large data packets can be any size of data packet that allows for greater accuracy on the data plane than the error rate available on the control plane. In some embodiments, large data packets can include any number of nested data packets, including 4, 5, 10, 50, 100, 250, 500, 750, 1,000, 2,500, 5,000, 7,500, 10,000 or more nested data packets. In some embodiments, nested data packets can be nested IP packets. In other words, nested data packets can include Internet Protocol (IP) headers, addresses, and other IP packet information.

[0045] According to embodiments of this disclosure, the number of nested data packets can be greater than or equal to the maximum error rate. In this way, a single test packet can include enough nested data packets to determine the reliability of the network link based on the maximum error rate. For example, a single test packet can include 1,000 nested data packets, and the maximum error rate of the link can be 1 out of 1,000. A single test packet can therefore have sufficiently high accuracy to test the reliability of the network within the maximum error rate.

[0046] According to embodiments of this disclosure, if the expected error rate is greater than the maximum number of nested data packets in a single test packet, then link testing can include multiple test packets. Therefore, increasing the number of test packets may increase the test accuracy beyond the number of nested data packets within a single test packet. Link testing can include nested data packets for a combination of multiple test packets. To test link reliability, network engineers can prepare and send enough test packets such that the combination of nested data packets is greater than or equal to the desired test accuracy. In this way, network engineers can test the reliability of network links for network links where the maximum error rate is greater than the number of nested data packets in a single test packet. Furthermore, this allows network engineers to run multiple tests to generate statistics on the error rate of the network link.

[0047] Figure 1 This represents a network 100 including a first network node 102 and a second network node 104. Test packets 106 can be transmitted across a link 108 between the first network node 102 and the second network node 104. Link 108 can support bidirectional communication between the first network node 102 and the second network node 104. In other words, test packets 106 can be transmitted along link 108 from the first network node 102 to the second network node 104, and from the second network node 104 to the first network node 102.

[0048] Test packet 106 can encapsulate one or more nested data packets (collectively referred to as 110) according to the IP-in-IP encapsulation protocol. Each nested data packet 110 may include a header containing a destination IP address representing the first network node 102 and the second network node 104. When test packet 106 arrives at one of network nodes 102 or 104, network nodes 102 or 104 can strip the header from the nested data packet 110 to reveal the next nested data packet 110 and its associated destination IP address.

[0049] For example, test packet 106 may include a first nested data packet 110-1 with a destination of first network node 102. When test packet 106 arrives at first network node 102, the first header of the first nested data packet 110-1 may include an instruction to remove the first header of the first nested data packet 110-1, thereby revealing a second nested data packet 110-2. The second nested data packet 110-2 may include a second header with a destination of second node 104. First network node 102 may transmit test packet 106 to the destination identified in the second header (e.g., second network node 104). The second header may include an instruction to remove the second header, thereby revealing a third nested data packet 110-3. The third nested data packet 110-3 may have a third header indicating a third destination of first network node 102. Second network node 104 may transmit test packets to first network node 102 based on the third header. The process can be repeated, bouncing the test packet 106 back and forth between the first network node 102 and the second network node 104 until the test packet 106 is transmitted to the final destination revealed in the nth (e.g., final) nested data packet 110-n.

[0050] In some embodiments, test packet 106 may bounce back and forth between first network node 102 and second network node 104 based on aligned inner headers in each nested data packet. In some embodiments, the destinations outlined in successive data packets may alternate between first network node 102 and second network node 104. For example, first nested data packet 110-1 may have a first destination of first network node 102. Second nested data packet 110-2, which is unveiled after first nested data packet 110-1, may have a second destination of second network node 104. Third nested data packet 110-3, which is unveiled after second nested data packet, may have a third destination of first network node 102. Fourth nested data packet 110-4, which is unveiled after third nested data packet 110-3, may have a fourth destination of second network node 104. These destinations of successive nested data packets 110 may continue to alternate between first network node 102 and second network node 104, and may continue until the final destination is outlined in the nth or last nested data packet 110-n.

[0051] In some embodiments, test packet 106 may include at least two nested data packets 110 with a destination of a first network node 102 and at least two nested data packets 110 with a destination of a second network node 104. In this way, test packet 106 may bounce back and forth between the first network node 102 and the second network node 104 multiple times.

[0052] Each nested data packet 110 can correspond to or represent a single test instance. Therefore, by transmitting and / or bouncing test packets 106 back and forth between the first network node 102 and the second network node 104, test packet 106 can include multiple test instances. In this way, test packet 106 can provide multiple test instances (e.g., equal to the number of data packets 110) within a single test packet 106. This can increase the number of test instances that can be executed in a single network test.

[0053] In some embodiments, test packet 106 may be prepared by originator 111. In some embodiments, originator 111 is any computing device communicating with network 100. For example, test packet 106 may be prepared by a remote computing device and transmitted to first network node 102 or second network node 104. In some examples, test packet 106 may be prepared by first network node 102 or second network node 104. Although originator 111 is shown as a separate computing device, it should be understood that originator 111 can be any computing device, including first network node 102 or second network node 104. In any case, test packet 106 may be prepared using multiple nested data packets with alternating destinations between first network node 102 and second network node.

[0054] Data can be transmitted between the first network node 102 and the second network node 104 along the data plane 112 and the control plane 114. In some embodiments, the data plane 112 may be optimized for data transmission and has high transmission bandwidth (e.g., sending a large number of packets per minute). In some embodiments, the control plane 114 may be optimized for data processing and may have low transmission bandwidth (e.g., sending a smaller number of packets per minute relative to the data plane 112).

[0055] In some embodiments, test packets 106 can be processed by network 100 as regular network traffic. For example, regular network traffic is transmitted on data plane 112. In this way, test packets 106 can be transmitted back and forth between first network node 102 and second network node 104 along data plane 112. Each transmission of test packets 106 from first network node 102 to second network node 104 and from second network node 104 to first network node 102 represents a test instance. Because data plane 112 has a higher transmission rate, transmitting test packets 106 along data plane 112 instead of control plane 114 can increase the number of test instances that can be performed over a period of time. In other words, transmitting test packets via the data plane can increase the accuracy of link testing, thereby increasing the maximum error that can be determined.

[0056] In some embodiments, the final nested data packets 110-n may have a final destination of test packet 106. The final destination may communicate with the originator 111 (e.g., preparer or provider) of test packet 106. In some embodiments, the final destination may be the originator 111 of test packet 106. In some embodiments, when a first network node 102 prepares test packet 106, the final destination may be the first network node 102. In some embodiments, when a remote computing device prepares test packet 106, the final destination may be the remote computing device. In some embodiments, when a remote computing device prepares test packet 106, the final destination may be the first network node 102 or the second network node 104, and the final nested data packets 110 may include instructions that cause the first network node 102 or the second network node 104 to transmit the final reception of test packet 106 to the originator 111.

[0057] If the originator 111 receives the test packet 106 as its final destination, or receives notification of the final receipt of the test packet 106, then each test instance of the test packet 106 (represented by each nested data packet 110) results in successful transmission between the first network node 102 and the second node without errors (e.g., no test packets 106 are lost). This can provide an indication of the reliability of the network link 108. For example, this can provide an indication that, considering statistical variations, the network link 108 has an error rate of less than 1 in n, where n represents the number of nested data packets 110 encapsulated by the test packet 106.

[0058] If the originator 111 does not receive the test packet 106 as its final destination or does not receive notification of the final receipt of the test packet 106, then a test instance fails. In other words, the test packet 106 was lost during transmission between the first network node 102 and the second network node 104. This can indicate an error rate of at least 1 in the number of test instances. This can further provide an indication of the reliability of link 108 by indicating that at least one data packet may have been lost relative to the number of nested data packets 110 encapsulated in the test packet 106.

[0059] In some embodiments, the entire transmission of test packet 106 (e.g., the test packet bouncing back and forth according to the alternating destinations of subsequent nested data packets 110) can occur over a period of time. This period of time can be related to the transmission rate (e.g., bandwidth) of the first network node 102 and / or the second network node 104. In some embodiments, this period of time can be the transmission rate divided by the number of nested data packets 110. In some embodiments, this period of time can be longer than the transmission rate divided by the number of nested data packets 110. For example, this period of time can be based at least in part on the priority level of test packet 106. For example, test packet 106 can have a low priority, and the first network node 102 and / or the second network node 104 can transmit other network traffic over test packet 106. In some examples, test packet 106 can have a regular priority, and test packet 106 can conform to a regular network traffic routing queue followed by the first network node 102 and / or the second network node 104.

[0060] In some embodiments, the originator 111 (e.g., a remote computing device, a first network node 102, or a second network node 104) may determine a test period. The test period may be an indication of the amount of time the originator 111 expects the network test to take from the initial transmission of test packet 106 to the receipt of test packet 106 at the final destination. In some embodiments, the test period may be determined by identifying the expected total conversion time of test packet 106 for round-trip routing between the first network node 102 and the second network node 104. In some embodiments, the test period may be a multiple of the expected total conversion time (e.g., 1.1, 1.5, 2, 2.5, 3, 4, or more), which may take into account routing delays at the first network node 102 and / or the second network node 104.

[0061] In some embodiments, if test packet 106 does not reach its final destination within the test period, the originator 111 can determine that test packet 106 has been lost. As discussed herein, the error is a failure in the transmission of test packet 106 from the first network node 102 to the second network node 104. Therefore, if test packet 106 is not transmitted from the first network node 102 to the second network node 104 at any hop from the first network node 102 to the second network node 104 or from the second network node 104 to the first network node 102, then test packet 106 will not reach its final destination. To avoid long wait times, if test packet 106 does not reach its final destination within the test period, the originator 111 can determine that an error occurred in the transmission of test packet 106.

[0062] In some embodiments, the originator 111 may provide multiple test packets 106 to test the reliability of link 108. For example, if the maximum error rate is 1 in 100,000, and the maximum number of nested data packets 110 in a single test packet 106 is 1,000, then the originator may provide at least 100 test packets 106 to test the reliability of link 108. This can result in a total of 100,000 combinations of nested data packets 110. Since each nested data packet 110 corresponds to a single test instance, the total number of combinations of test instances for the 100 test packets 106 is 100,000. If one of the test packets 106 fails to reach its final destination, then the originator 111 may determine that the error rate of link 108 is at least 1 in 100,000. If more than one test packet 106 fails to reach its final destination, then the originator 111 may determine that the error rate of link 108 is greater than 1 in 100,000. If all test packets 106 reach their final destination, then the originator 111 can determine that the error rate of link 108 is equal to or less than 1 in 100,000.

[0063] It should be noted that the error rate of link 108 can be a statistical average. For example, if the error rate of link 108 is 1 in 100,000, then on average, for every 100,000 data packets transmitted through link 108, one data packet may be lost. However, based on statistical variability, when transmitting 100,000 data packets, there is a statistical probability that all 100,000 data packets may be transmitted successfully. Furthermore, for 100,000 data packets transmitted, there is a statistical probability that more than one data packet may be lost.

[0064] To determine the reliability of link 108, originator 111 can generate test packets 106 with a certain number of nested data packets 110 to precisely test the error rate. For example, if the error rate of link 108 is 1 in 1,000, then originator 111 can generate test packets 106 with a number of 1,000 test instances (represented by 1,000 nested data packets 110). If test packets 106 reach their final destination, this can indicate that link 108 is reliable. However, if test packets 106 do not reach their final destination, statistically, the error rate may actually be less than or equal to 1 in 1,000, but an error occurred in one of the 1,000 test instances regardless.

[0065] In some embodiments, to statistically determine the error rate, the originator 111 may send multiple test packets 106 with a certain number of test instances that precisely test the error rate. In some embodiments, to statistically determine the error rate, the originator 111 may send multiple test packets 106 with fewer test instances than the error rate. This may help provide the originator with a sample sufficient for statistical analysis. For example, if the error rate is 1 in 100,000, the originator 111 may develop 1,000 test packets 106, each with 1,000 nested data packets 110. This could result in 1,000,000 test instances. Based on the number of test packets 106 that do not return, this number of test packets 106 can provide a higher level of accuracy in the determined error rate (and associated reliability) of the network.

[0066] While embodiments of this disclosure have been described with respect to two network nodes (e.g., first network node 102 and second network node 104), it should be understood that links 108 between more than two network nodes can also be tested using IP-in-IP encapsulated test packets 106. For example, network 100 may include three network nodes: first network node 102, second network node 104, and third network node. Test packets 106 can be generated using alternating destinations of nested data packets 110. The destinations may alternate between first network node 102, second network node 104, and third network node. For example, the first destination may be first network node 102, the second destination may be second network node 104, and the third destination may be third network node. In some embodiments, the third network node may communicate with first network node 102, and the fourth destination may be first network node 102, the fifth destination may be second network node 104, the sixth destination may be third network node, and so on.

[0067] In some embodiments, the third network node may not communicate with the first network node 102, and the fourth destination may be the second network node 104, the fifth destination may be the first network node 102, the sixth destination may be the second network node 104, the seventh destination may be the third network node, and so on.

[0068] Testing more than two network nodes in the same test group 106 allows network engineers or network administrators to determine the reliability of a specific path from the first network node 102 to the final network node. This can help network engineers determine the routing paths for network services.

[0069] Figure 2This is a representation of an IP-in-IP encapsulation test packet 206 having multiple nested data packets (collectively referred to as 210). Test packet 206 may include an initial test packet header 216, which includes information about test packet 206, such as the originating entity, the original source IP address, any other test packet information, and combinations thereof. In some embodiments, the initial test packet header 216 may include instructions for an initial or first destination network node to remove the initial test packet header 216.

[0070] Test packet 206 may also include multiple nested data packets 210. Each nested data packet 210 includes a destination, such as a destination IP address. The nested data packets 210 are provided sequentially. In this way, a network node analyzing test packet 206 may only know the outermost nested data packet (e.g., be able to read its header information). Each nested data packet 210 may have a header identifying the destination of test packet 206. The header may also include instructions for removing the header at that destination, exposing the nested data packets 210 below. The next nested data packet 210 may have a new destination, and the network node may forward test packet 206 to the identified destination.

[0071] In the illustrated embodiment, test packet 206 has a first nested data packet 210-1, which is exposed when the initial test packet header 216 is removed. The first nested data packet 210-1 may have a first destination as a first network node. Test packet 206 can be transmitted to the first network node according to the destination in the first nested data packet 210-1. The first nested data packet 210-1 may also include instructions for the first network node to remove the header of the first nested data packet 210-1, thereby exposing a second nested data packet 210-2. The second nested data packet 210-2 may have a second destination as a second network node, and the first network node can send test packet 206 to the second network node according to the second destination in the second nested data packet 210-2.

[0072] As in Figure 2 As can be seen, this process can be repeated with multiple nested data packets 210, including a third nested data packet 210-3, a fourth nested data packet 210-4, a fifth nested data packet 210-5, a sixth nested data packet 210-6, and so on up to the nth or final nested data packet 210-n. As can be seen, the destinations shown in the successive nested data packets 210 alternate between the first and second network nodes. The nested data packets 210 are unpacked from left to right in the order shown, such that the path taken by the test packet 206 follows the destinations shown in the left-to-right order.

[0073] To develop test packet 206, a network engineer can determine the path that test packet 206 will take (e.g., hopping back and forth between a first network node and a second network node). The network engineer can then generate the test packet by creating nested data packets 210 with the destination for each hop in the path.

[0074] Test packet 206 has a final destination within final test packet 210-n. In some embodiments, the final destination may be a first network node or a second network node. In some embodiments, the final destination may be a remote computing device. In some embodiments, the final destination may be the same computing device that generated or provided test packet 206. In some embodiments, final test packet 210-n may include instructions for communicating receipt of final test packet 210-n to the originator of test packet 206.

[0075] Figures 3-1 to 3-5 This is a representation of a network 300 according to at least one embodiment of the present disclosure, which includes test packets 306 hopping back and forth between a first network node 302 and a second network node 304 across a link 308. Figure 1 As can be seen, test packet 306 may initially be transmitted to the first network node 302 and may have an initial test packet header 316. The first network node 302 may remove the initial test packet header 316 to reveal a first nested data packet 310-1 with a destination of the second network node 304. The first network node 302 may then transmit test packet 306 to the second network node 304 according to the destination of the first nested data packet 310-1.

[0076] like Figure 3-2 As can be seen, test packet 306 has been transmitted to the second network node 304. The header of the first nested data packet 310-1 may include an instruction to remove the header of the first nested data packet 310-1, revealing the second nested data packet 310-2. The second nested data packet 310-2 has a second destination of the first network node 302, and the second network node 304 can then transmit test packet 306 back to the first network node 302, as shown. Figure 3-3 As can be seen, the first network node 302 can then strip the header of the second nested data packet 310-2, revealing a third nested data packet 310-3 destined for the second network node 304. The first network node 302 can then transmit the test packet 306 back to the second network node 304, as shown below. Figure 3-4 As can be seen in the diagram. The second network node 304 can remove the header of the third nested data packet 310-3, revealing the fourth nested data packet 310-4, and then transmit the test packet 306 back to the first network node 302, as shown. Figure 3-5 As can be seen in the text.

[0077] This process can be repeated until the nth or final nested data group 310-n is revealed. Figure 3-5 In the illustrated embodiment, the first network node 302 can remove the header of the fourth nested data packet 310-4, revealing the final nested data packet 310-n. The first network node 302 can then transmit the test packet 306 to the final destination indicated in the final nested data packet 310-n.

[0078] Figure 4 This is a representation of a method 400 for increasing the accuracy of a detectable error rate on a link between a network connection between a first network node and a second network node, according to at least one embodiment of this disclosure. Method 400 can be... Figure 1 It is implemented or executed on network 100. For example, Figure 1 The originator 111 can generate the test group used in method 400.

[0079] According to embodiments of this disclosure, method 400 may include preparing a test packet 402. The test packet may include multiple nested data packets, each nested data packet corresponding to a test instance. Each nested data packet may include a destination. Destinations in consecutive data packets may alternate between a first network node and a second network node. In some embodiments, the test packet may include at least two nested data packets with a destination of a first network node and two nested data packets with a destination of a second network node. In some embodiments, the test packet includes more than 100 nested data packets with destinations alternating between a first network node and a second network node. In some embodiments, the test packet may be prepared by either a first network node or a second network node. In some embodiments, the test packet may be prepared at a remote location separate from the first or second computing device. In some embodiments, the number of nested data packets depends on the maximum packet size of the first and second network nodes.

[0080] Method 400 may further include transmitting 404 test packets back and forth across the data plane between the first and second network nodes. The 404 test packets may be transmitted multiple times based on the destination in each nested data packet. Transmitting test packets along the data plane can increase the number of test instances (e.g., the number of nested data packets within the test packets). This increased number of test instances can improve the accuracy of the detectable error rate in network testing.

[0081] In some embodiments, method 400 may further include evaluating the reliability of the 406 link. The reliability of the link may be based at least in part on whether a packet is received at the final destination. If a test packet is received at the final destination, then the link is likely reliable. If the test packet does not reach the final destination, then the test packet was not routed through each of the nested data packets.

[0082] Figure 5 This is a representation of a method 500 for increasing the accuracy of a detectable error rate on a link between a network connection between a first network node and a second network node, according to at least one embodiment of the present disclosure. Method 500 can... Figure 1 Implemented or executed on network 100. For example, Figure 1 The originator 111 can generate test groups used in method 500.

[0083] According to embodiments of this disclosure, method 500 may include preparing 502 multiple test groups. Each test group may include multiple nested data groups, each nested data group corresponding to a test instance. Each nested data group may include a destination. The destinations in consecutive data groups may alternate between a first network node and a second network node. In some embodiments, a test group may include at least two nested data groups with a destination of a first network node and two nested data groups with a destination of a second network node. In some embodiments, the test group may be prepared by either the first network node or the second network node. In some embodiments, the test group may be prepared at a remote location separate from the first or second computing device. In some embodiments, the number of nested data groups depends on the maximum data group size of the first and second network nodes. In some embodiments, each test group may be identical. In other words, each of the multiple test groups may include the same number and the same order of nested data groups.

[0084] Method 500 may further include transmitting each of 504 multiple test packets back and forth across the data plane between the first and second network nodes. Each test packet may be transmitted multiple times based on its destination within each nested data packet. Transmitting test packets along the data plane can increase the number of test instances (e.g., the number of nested data packets within the test packets). This increased number of test instances can improve the accuracy of the detectable error rate in network testing.

[0085] The error rate of the link between the 406 first network nodes can be determined at least in part based on the number of returned test packets received at the final destination. Determining the error rate of the connection includes tracking which test packets arrive at the final destination. In some embodiments, the accuracy of the error rate is based on the number of nested data packets in each of a plurality of test packets.

[0086] Now to Figure 6 For reference only. One or more computing devices 600 can be used to implement at least some aspects of the techniques disclosed herein. Figure 6 The illustration shows some components that can be included within the computing device 600. Figure 6 The computing device 600 shown is Figure 1 An example of network 100 is shown.

[0087] Computing device 600 includes a processor 601 and a memory 603 in electronic communication with the processor 601. Instructions 605 and data 607 may be stored in the memory 603. Instructions 605 may be executed by the processor 601 to implement some or all of the methods, steps, operations, actions, or other functionalities disclosed herein. Executing instructions 605 may involve using data 607 stored in the memory 603. Unless otherwise stated, any of the various examples of modules and components described herein may be implemented, in part or in whole, as instructions 605 stored in the memory 603 and executed by the processor 601. Any of the various examples of data described herein may be in data 607 stored in the memory 603 and used by the processor 601 during the execution of instructions 605.

[0088] Despite Figure 6 The computing device 600 shows only a single processor 601, but in alternative configurations, a combination of processors (e.g., ARM and DSP) can be used.

[0089] The computing device 600 may also include one or more communication interfaces 609 for communicating with other electronic devices. The communication interfaces 609 may be based on wired communication technology, wireless communication technology, or both. Some examples of communication interfaces 609 include Universal Serial Bus (USB), Ethernet adapters, wireless adapters operating according to the Institute of Electrical and Electronics Engineers (IEEE) 802.11 wireless communication protocol, Bluetooth, etc. Wireless communication adapter and infrared (IR) communication port.

[0090] The computing device 600 may also include one or more input devices 611 and one or more output devices 613. Some examples of input devices 611 include a keyboard, mouse, microphone, remote control, button, joystick, trackball, touchpad, and light pen. A particular type of output device 613 typically included in the computing device 600 is a display device 615. The display device 615 used with the embodiments disclosed herein can utilize any suitable image projection technology, such as a liquid crystal display (LCD), a light-emitting diode (LED), gas plasma, electroluminescence, etc. A display controller 617 may also be provided for transforming data 607 stored in memory 603 into text, graphics, and / or moving images (as applicable) displayed on the display device 615. The computing device 600 may also include other types of output devices 613, such as speakers, printers, etc.

[0091] Various components of the computing device 600 can be coupled together via one or more buses, which may include power buses, control signal buses, status signal buses, data buses, etc. For clarity, the various buses are... Figure 6 The diagram shows a bus system 619.

[0092] Unless specifically described as being implemented in a particular manner, the techniques disclosed herein can be implemented in hardware, software, firmware, or any combination thereof. Any features described as modules, components, etc., can also be implemented together in an integrated logic device or separately as discrete but interoperable logic devices. If implemented in software, the techniques can be implemented at least in part by storing on a non-transitory computer-readable medium having computer-executable instructions thereon that, when executed by at least one processor, perform some or all of the steps, operations, actions, or other functionalities disclosed herein. The instructions can be organized into routines, programs, objects, components, data structures, etc., which can perform specific tasks and / or implement specific data types, and they can be combined or distributed as needed in various embodiments.

[0093] The term "processor" can refer to a general-purpose single-chip or multi-chip microprocessor (e.g., an advanced RISC (Reduced Instruction Set Computer) machine (ARM)), a special-purpose microprocessor (e.g., a digital signal processor (DSP)), a microcontroller, a programmable gate array, and so on. A processor can be a central processing unit (CPU). In some embodiments, a combination of processors (e.g., ARM and DSP) can be used to implement some or all of the technologies disclosed herein.

[0094] The term "memory" can refer to any electronic component capable of storing electronic information. For example, memory can be represented as random access memory (RAM), read-only memory (ROM), disk storage media, optical storage media, flash memory devices in RAM, onboard memory included in a processor, erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), registers, and combinations thereof.

[0095] As an example, the term "circuit system" can refer to one or more integrated circuits, wherein the integrated circuits can include a collection of electronic circuits on a single piece of semiconductor material (e.g., silicon). In some embodiments, the circuit system can include programmable logic devices, such as field-programmable gate arrays (FPGAs) and / or complex programmable logic devices (CPLDs). In some embodiments, the circuit system can include application-specific integrated circuits (ASICs). As another example, the term "circuit system" can refer to one or more discrete electronic circuits comprising individual electronic components. As another example, the term "circuit system" can refer to digital circuits, analog circuits, or mixed-signal circuits. A "circuit system" can also include combinations of the foregoing.

[0096] Without departing from the scope of the claims, the steps, operations, and / or actions of the methods described herein may be interchanged with each other. In other words, unless the proper functioning of the described methods requires a specific order of steps, operations, and / or actions, the order and / or use of a particular step, operation, and / or action may be modified without departing from the scope of the claims.

[0097] The systems and methods according to this disclosure can be implemented using any of the technical systems described herein. Furthermore, embodiments of this disclosure can be implemented using computing technologies, hardware, and software that are not currently available or may become available in the future.

[0098] The term "determine" (and its grammatical variations) can encompass a wide variety of actions. For example, "determine" can include calculating, computing, processing, deriving, investigating, searching (e.g., looking in a table, database, or other data structure), ascertaining, and so on. Furthermore, "determine" can include receiving (e.g., receiving information), accessing (e.g., accessing data in memory), and so on. Additionally, "determine" can include solving, selecting, picking, establishing, and so on.

[0099] The terms “comprising,” “including,” and “having” are intended to be inclusive and mean that additional elements may be present in addition to those listed. Furthermore, it should be understood that references to “one embodiment” or “embodiment” in this disclosure are not intended to be construed as excluding the existence of additional embodiments that also incorporate the listed features. For example, where compatible, any element or feature described with respect to embodiments herein may be combined with any element or feature of any other embodiment described herein.

[0100] This disclosure may be embodied in other specific forms without departing from its spirit or characteristics. The described embodiments are to be considered illustrative rather than restrictive. Therefore, the scope of this disclosure is indicated by the appended claims rather than by the foregoing description. Variations within the meaning and scope of equivalents of the claims will be included within their scope.

Claims

1. A method for increasing the accuracy of detectable error rates on a link between a first network node and a second network node, the method comprising: Prepare test groups, wherein the test groups include multiple nested data groups, each nested data group corresponds to a test instance, each nested data group includes a destination, and the destination in consecutive nested data groups alternates between the first network node and the second network node; According to the destination in each nested data packet, the test packets are transmitted back and forth across the data plane multiple times between the first network node and the second network node, wherein the accuracy of the error rate is based at least in part on the number of test instances; For each transmission between the first network node and the second network node, the header of the test packet is removed to reveal the next nested data packet; as well as The reliability of the link is evaluated at least in part based on whether the test packets are received at the final destination, wherein the reliability of the link is at least in part based on the accuracy of the error rate.

2. The method of claim 1, wherein evaluating the reliability of the link comprises: Determine whether the test packet has been received at the final destination.

3. The method of claim 2, wherein if the test packet does not reach the final destination, then the test packet is not routed through each of the plurality of nested data packets.

4. The method of claim 1, wherein the test packet comprises at least two nested data packets having a destination of the first network node and at least two nested data packets having a destination of the second network node.

5. The method of claim 1, wherein the bulk nested data packets comprise more than 100 nested data packets alternating between the first network node and the second network node to the destination.

6. The method of claim 1, wherein preparing the test group comprises: Prepare the test packet at the first network node.

7. The method of claim 1, wherein preparing the test group comprises: Prepare the test packet at a remote location separate from the first network node or the second network node.

8. The method of claim 1, wherein the number of the plurality of nested data packets is based on the maximum packet size of the first network node and the second network node.

9. The method of claim 1, wherein the plurality of nested data packets are nested Internet Protocol (IP) packets.

10. A method for increasing the accuracy of a detectable error rate on a link between a first network node and a second network node, the method comprising: Prepare multiple test groups, each of which includes multiple nested data groups corresponding to a test instance, wherein each nested data group in the test group includes a destination, and the destination in consecutive nested data groups in each test group alternates between the first network node and the second network node; According to the destination in each nested data packet, each of the plurality of test packets is transmitted back and forth multiple times across the data plane between the first network node and the second network node, wherein the accuracy of the error rate is based at least in part on the number of test instances; For each transmission between the first network node and the second network node, the header of the test packet is removed to reveal the next nested data packet; as well as The error rate of the link is determined at least in part based on the number of test packets returned from the plurality of test packets received at the final destination.

11. The method of claim 10, wherein determining the error rate of the link comprises: Track which of the multiple test groups reach the final destination.

12. The method of claim 10, wherein the accuracy of the error rate is based on the number of nested data groups in each of the plurality of test groups.

13. The method of claim 10, wherein each of the plurality of test groups comprises at least two nested data groups having a destination of the first network node and at least two nested data groups having a destination of the second network node.

14. The method of claim 10, wherein each of the plurality of test groups has the same plurality of nested data groups.

15. A system for increasing the accuracy of a detectable error rate on a link between a first network node and a second network node, the system comprising: One or more processors; A memory that is in electronic communication with the one or more processors; as well as Instructions stored in the memory, which are executable by the one or more processors to: Prepare multiple test groups, each of which includes multiple nested data groups corresponding to a test instance, wherein each nested data group in the test group includes a destination, and the destination in consecutive nested data groups in each test group alternates between the first network node and the second network node; According to the destination in each nested data packet, each of the plurality of test packets is transmitted back and forth multiple times across the data plane between the first network node and the second network node, wherein the accuracy of the error rate of the link is based at least in part on the number of test instances; For each transmission between the first network node and the second network node, the header of the test packet is removed to reveal the next nested data packet; as well as The error rate of the link is determined at least in part based on the number of test packets returned from the plurality of test packets received at the final destination.

16. The system of claim 15, wherein the instructions further cause the processor to: when determining the error rate, track which of the plurality of test groups arrive at the final destination.

17. The system of claim 15, wherein the accuracy of the error rate is based on the number of nested data groups in each of the plurality of test groups.

18. The system of claim 15, wherein each of the plurality of test groups comprises at least two nested data groups having a destination of the first network node and at least two nested data groups having a destination of the second network node.

19. The system of claim 15, wherein each of the plurality of test groups has the same plurality of nested data groups.

20. The system of claim 15, wherein the test group is prepared at a remote location separate from the first network node and the second network node.

Citation Information

Patent Citations

  • Round-trip performance measurement in a packet-switched communication network

    US20200336401A1