Method and apparatus for measuring end-to-end packet latency and packet delay variation via deep packet inspection at an intermediate node of a communication network
11533245 · 2022-12-20
Assignee
Inventors
Cpc classification
H04W24/10
ELECTRICITY
H04L43/106
ELECTRICITY
H04L41/5009
ELECTRICITY
H04W80/06
ELECTRICITY
International classification
H04W80/06
ELECTRICITY
H04L43/106
ELECTRICITY
H04W24/06
ELECTRICITY
Abstract
A method and apparatus for monitoring network performance in near real-time by making measurements on packets received at an intermediate node in a wireless communication network. The solution is useful for any packetized communication network that connects a client and application server, and particularly for any application running over TCP/IP protocol. A method is disclosed for measuring end-to-end qualities of a packet-based communication session between a data sender (DS) and a data receiver (DR) at an intermediate node. The measured end-to-end communication qualities may include latency and packet delay variation.
Claims
1. A method of measuring packet delay variation (PDV) at an intermediate node of a packet-based wireless communication network during a timestamp-enabled communication session in which a plurality of packets are communicated between a data sender (DS) and a data receiver (DR), the intermediate node connected between the DS and the DR, the plurality of session packets including a Timestamp value (TSval) and a Timestamp echo reply (TSecr) value, comprising the steps of: receiving a first packet sent from the DS having a TSval=S_i, and measuring a timestamp of arrival (t1) of said packet at the intermediate node; receiving a second packet sent from the DS from the same session and having the same TSval=S_i, and measuring a timestamp of arrival (t2) of said packet at the intermediate node; calculating the inter-packet arrival time between t_1 and t_2 to provide a forward packet delay (PD) measurement; receiving a first return packet sent from the DR having a TSval=R_i, and measuring a timestamp of arrival (t3) of said packet at the intermediate node; receiving a second return packet sent from the DR from the same session and having the same TSval=R_i, and measuring a timestamp of arrival (t4) of said packet at the intermediate node; calculating the inter-packet arrival time responsive to t_3 and t_4 to provide a return PD measurement; for a plurality of packets in the session, repeating said steps to provide a plurality of forward PD measurements and a plurality of return PD measurements; and processing said forward and return PD values to provide an overall PD value.
2. The method of claim 1 wherein the packet-based communication session is a TCP/IP session.
3. The method of claim 1 wherein the DS comprises a UE and the DR comprises a server.
4. The method of claim 1 wherein the forward PD value is calculated as t_2−t_1, and the return PD value is calculated as t_4−t_3.
5. The method of claim 1 wherein the overall PD value measured over a time interval is the variance associated with the forward and return PD measurements during that time interval.
6. The method of claim 1 wherein the DS comprises a UE and the DR comprises a server.
7. The method of claim 1 wherein the DS comprises a server and the DR comprises a UE.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
(21)
(22)
DETAILED DESCRIPTION
(23) (1) Introduction
(24) Communication networks and system components are described herein using terminology and components common to 4G (LTE) communication systems, and/or 5G NR communication systems, using TCP/IP communication protocols. However, the principles of the communication network monitoring techniques described herein more widely apply to other communication systems, not only to 4G or 5G systems and TCP/IP communication protocols.
(25) An implementation in the context of an enterprise or other private network may be described herein. Although sometimes described in the context of an enterprise network, the principles disclosed can also apply to any private network and more generally public networks. An enterprise network is one type of private network. Private networks are operated for use within a limited area by a limited group of authorized users, whereas public networks generally cover a larger area and are open for use by anyone that subscribes to the service by the network operator. An enterprise network is created at an enterprise location such as a warehouse, factory, research center or other building, and is usually operated by an organization for its own use. Other types of private networks may be operated by a private network manager for use by more than one organization.
(26) (2) Overview
(27) Methods and apparatus are disclosed herein to measure packet latency, packet delay variation and packet loss rate for end-to-end TCP/IP flows going through a communication network such as a 4G LTE network or a 5G NR network.
(28) Reference is made to
(29) For purpose of description, the network in
(30) The intermediate node 703 is located between the DS 701 and the DR 705, receiving and making observations of the packets. The intermediate node 703 receives a plurality of packets, some of which may be part of one session, and other packets may be part of another session. Based upon identifiers in the packets, the intermediate node can identify each packet as being part of one session or another, and therefore select packets associated with only one session as appropriate
(31) Typically, the intermediate node 703 will be the Packet Gateway (P-GW) 609 in the PSE 605; however more generally any intermediate node between the S/R pair can be utilized. A P-GW (Packet Data Network Gateway) (PDN Gateway) provides connectivity from the UE to external packet data networks by being the point of exit and entry of traffic for the UE. A UE may have simultaneous connectivity with more than one PGW for accessing multiple PDNs. The PGW performs policy enforcement, packet filtering for each user, charging support, lawful interception, and packet screening. Another key role of the PGW is to act as the anchor for mobility between 3GPP and non-3GPP technologies such as WiMAX and 3GPP2 (CDMA 1X and EVDO).
(32) As described herein, the intermediate node 703 in the PSE 605 (which may be termed the “PSE node”) makes measurements on the TCP/IP packets moving between the S/R pair. In alternative embodiments, the packet capture measurements and (part of) the analytics could be done on a separate node co-located with the P-GW 609 such as a Performance Measurement Engine (PME) 711. For this implementation, the packets arriving at P-GW could be copied and transferred to the other node via a highly efficient mechanism such as DPDK (Data Plane Development Kit, see www.dpdk.org). More generally, the data from the intermediate node 703 may be analyzed by the PSE 605, or dedicated hardware, or general purpose hardware such as a CPU 713 on the PSE 605, or elsewhere. For example, measurement data may be sent to a separate node; for example, measurement data may be sent to the Performance Measurement Engine (PME) 711 (which may be situated in the PSE 605 or possibly on the cloud) for analytics. This is where the algorithm could also be run for computing Key Performance Indices (KPIs).
(33) (3) Latency and Packet Delay Variation Using TCP Timestamp Option
(34) To measure latency, one embodiment utilizes the TCP Timestamp option, which is defined in RFC 7323 [TCP Extensions for High Performance, RFC 7323, IETF, September 2014, https://tools.ietf.org/html/rfc7323] to make accurate Round Trip Time (RTT) measurements at both sender and receiver. The TCP Timestamp option is enabled by default on Linux [TCP Linux Man Page, http://man7.org/linux/man-pages/man7/tcp.7.html] and Windows servers [Description of Windows 2000 and Windows Server 2003 TCP Features, https://support.microsoft.com/en-us/help/224829/description-of-windows-2000-and-windows-server-2003-tcp-features].
(35) The TCP Timestamp option is negotiated during TCP/IP's SYN (synchronize) handshake. TCP/IP's handshake is a three-way negotiation used to initiate and establish a communication session between a client (e.g. Data Sender 701) and a server (e.g., Data Receiver 705). For example, when a client requests a connection, it sends a SYN segment, which is a special TCP segment, to the server port. The SYN message includes the client's ISN (Initial Sequence Number). The server port responds with a SYN-ACK message, and the client then responds with an ACK message.
(36) Once negotiated, every TCP packet (in both directions) carries the 8-byte TCP Timestamp option that includes 4 bytes for the TSval (Timestamp value) field, and 4 bytes for the TSecr (Timestamp echo reply) field. The receiver of a TCP packet echoes the sender's TSval in the corresponding TSecr field (
(37) (4) Latency Measurement
(38)
(39) By observing the TSval (Timestamp Value) and TSecr (Timestamp echo reply) values on both directions of the packet flow from the intermediate node 703, the PSE 605 can identify the transmitted and reply packets, and track latency between the PSE 605 to the DR 705, and between the PSE 605 back to the DS 701. From a high-level viewpoint, beginning at the start (STEP 900) the steps to measure latency at the intermediate node of the PSE 605, between the DS 701 and the DR 705, of a packet with an index i, are as follows:
(40) 1) Let Track t_1=timestamp, at the intermediate node, of arrival of a packet with a particular TSval=S_i (STEP 902);
(41) 2) Let Track t_2=timestamp, at the intermediate node, of arrival of the return packet received on the reverse path from the DR 705, which has corresponding TSecr=S_i (STEP 904);
(42) 3) calculate the forward (from the PSE) direction round trip delay between the PSE 605 and DR 705 as TSval=t_2−t_1 (STEP 906);
(43) 4) approximate the one-way forward latency between the PSE 605 and DR 705 as TSval=(t_2−t_1)/2 (STEP 908).
(44) The method is next applied looking in the backward (second) direction (STEP 910), to find latency on the opposite side of the intermediate node of the PSE 605. For example on the opposite side of the PSE 605, t_3 is observed to be the intermediate node's timestamp of arrival of the packet with a TSval=R_i, and t_4 is observed to be the intermediate node's timestamp of arrival of the return packet with a TSecr=R_i, then the round trip delay between the PSE 605 and the DS 701 can be calculated as t_4−t_3, and the reverse latency (between the PSE 605 and the DS 701) can be approximated as (t_4−t_3)/2.
(45) The forward latency and reverse latency can then be processed (e.g. added together) to provide the overall round trip latency (RTT) between the DS 701 and the DR 705, and stored at an appropriate location. (STEP 912).
(46) While a communication session is continuing (STEP 914), this method can be repeated every time a new TSval is observed on the flow (STEP 916) so that multiple latency measurements can be collected during the duration of the flow (STEP 918). These multiple latency measurements can be processed (e.g. averaged to provide an average RTT). When the communication session is complete, the process ends (STEP 920).
(47) (5) Packet Delay Variation Measurement
(48)
(49) Packet Delay Variation (PDV) is the variation in packet delay within a stream of session packets; i.e., packets from the same session. See e.g. IP Packet Delay Variation Metric for IP Performance Metrics (IPPM), RFC 3393, IETF, https://tools.ietf.org/html/rfc3393 November 2002. Using a PDV measurement, we can use the observation that multiple packets with the same TSval are most likely transmitted back-to-back from the sender and hence can form the packet stream for calculating the PDV. The packets sent back-to-back (
(50) 1) For a new TSval=S_i, track the timestamp (t_1) of a session packet 1001 received (at the intermediate node 703 with this TSval (STEP 1102);
(51) 2) For a subsequent session packet 1002 with the same TSval (S_i), track the timestamp of arrival=t_2 (STEP 1104);
(52) 3) Calculate inter-packet arrival time 1005 for this stream=t_2−t_1 at the intermediate node (STEP 1106);
(53) 4) To make the next PD measurement, disregard any previous state regarding TSval=S_i so that the next packet 10 07 from the stream will create the corresponding t_1 (STEP 1108). This method is repeated every time new TSval is observed on the session flow so multiple measurements can be collected for the duration of the flow.
(54) This method can be applied to find the PDV on both sides of PSE (radio and backhaul). In other words, the same measurement technique can be applied looking in the backward (second) direction (STEP 1110), to make a PD measurement on the opposite side of the intermediate node of the PSE 605. For example on the opposite side of the PSE 605, if t_3 is observed to be the timestamp of the packet 1013 with a TSval=R_i, and t_4 is observed to be the intermediate node's timestamp of the next packet 1014 with a TSecr=R_i, then the PD measurement 1015 with the DS 701 can be calculated as t_4−t_3.
(55) While a communication session is continuing (STEP 1112), this method is repeated (STEP 1113) every time a new TSval is observed on the flow so that multiple PD measurements are collected during the duration of the flow.
(56) The PDV for a time interval (at the UI) is the variance associated with all PD measurements over that interval. When the communication session is complete, or ends for some other reason the PDV can be calculated (STEP 1114), and the process the ends (STEP 1116).
(57) (6) Packet Loss Rate Measurement Using TCP Sequence Numbers
(58)
(59)
(60) According to TCP/IP protocol, each of the packets 1201, 1202, 1203, 1204 is sent with a TCP sequence number (ts) that identifies its place in the sequence. Generally, this TCP sequence number is monitored at the PSE 605 and the DR 705 to identify which packets have been received, and therefore to determine which packets have been lost; i.e., the Packet Loss Rate (PLR) measurement technique estimates loss counts within a session flow based on TCP sequence numbers observed at the PSE 605. Based upon these loss counts and an RTT measurement, PLR can be determined.
(61) As will be discussed, the technique utilizes an estimate for the session flow's RTT (which can be obtained using the technique described with reference to
(62)
(63)
(64)
(65) 1) The TCP sequence number (ts) and TCP payload length (t1) are extracted (STEP 1304) from the received packet, and are stored in the data structure data_seq 1500.
(66) 2) The flow's RTT estimate (t_rtt) is retrieved (STEP 1306). Note that RTT can be estimated during the latency measurements specified elsewhere herein, such as with reference to
(67) 3) Next, the received TCP sequence number is compared with all the sequence numbers previously received in the session packets (STEP 1308). If the PSE 605 has already seen the TCP sequence number, (STEP 1310) then there is a match and it can be concluded that a duplicate packet has been received. In that instance it can be concluded that the received packet is a retransmission due to a loss that happened after the intermediate node 703, i.e. the loss happened between the intermediate node and the DR 705. In that case, the receiving end loss counter field (pse_rcv_loss_cnt) is incremented (by 1) (STEP 1314), the data structure data_seq is updated (STEP 1316) and measurement then ends for that packet.
4) If the time interval over which the session packets are examined is not yet complete (STEP 1320), then the process repeats (returns to STEP 1302) for the next packet; otherwise, if the interval is over, the process ends (STEP 1324).
5) Returning to STEP 1310, if there is no match of the received packet with a previous packet (i.e., the packet is not a duplicate), then the received packet and the entries in data_seq 1500 are examined to determine which of various possible scenarios apply (STEP 1322). These scenarios are discussed below with reference to
6) Also, the packet loss field pse_snd_loss_cnt 1540 will be incremented as applicable; e.g. when a loss is determined to have occurred between the sender DSO 701 and the PSE node 605, such as a gap.
(68)
(69)
(70)
(71) In
(72)
(73)
(74) In
(75)
(76)
(77)
(78)
(79) If the determination is made (STEP 1348) that none of previous scenarios were satisfied, then the PSE has not seen this data yet and the received packet creates a new gap. i.e., a packet was lost between PSE and sender or the received packet arrived out of order (000). The received packet is saved to create a new state data_seq for this flow, and when the lost packet(s) are retransmitted, the received retransmitted packed are tracked and processed as above described for the first through eighth scenarios. Until then we just track the new sequence gap. Particularly, from STEP 1348, if none of the first through eighth scenarios were met, then operation moves to
(80) The loss counts can be reset at beginning of each time interval. The Packet Loss Rate (PLR) for a time interval will be the loss count/# of data packets transmitted for that interval.
(81) Although the disclosed method and apparatus is described above in terms of various examples of embodiments and implementations, it should be understood that the particular features, aspects and functionality described in one or more of the individual embodiments are not limited in their applicability to the particular embodiment with which they are described. Thus, the breadth and scope of the claimed invention should not be limited by any of the examples provided in describing the above disclosed embodiments.
(82) Terms and phrases used in this document, and variations thereof, unless otherwise expressly stated, should be construed as open ended as opposed to limiting. As examples of the foregoing: the term “including” should be read as meaning “including, without limitation” or the like; the term “example” is used to provide examples of instances of the item in discussion, not an exhaustive or limiting list thereof; the terms “a” or “an” should be read as meaning “at least one,” “one or more” or the like; and adjectives such as “conventional,” “traditional,” “normal,” “standard,” “known” and terms of similar meaning should not be construed as limiting the item described to a given time period or to an item available as of a given time, but instead should be read to encompass conventional, traditional, normal, or standard technologies that may be available or known now or at any time in the future. Likewise, where this document refers to technologies that would be apparent or known to one of ordinary skill in the art, such technologies encompass those apparent or known to the skilled artisan now or at any time in the future.
(83) A group of items linked with the conjunction “and” should not be read as requiring that each and every one of those items be present in the grouping, but rather should be read as “and/or” unless expressly stated otherwise. Similarly, a group of items linked with the conjunction “or” should not be read as requiring mutual exclusivity among that group, but rather should also be read as “and/or” unless expressly stated otherwise. Furthermore, although items, elements or components of the disclosed method and apparatus may be described or claimed in the singular, the plural is contemplated to be within the scope thereof unless limitation to the singular is explicitly stated.
(84) The presence of broadening words and phrases such as “one or more,” “at least,” “but not limited to” or other like phrases in some instances shall not be read to mean that the narrower case is intended or required in instances where such broadening phrases may be absent. The use of the term “module” does not imply that the components or functionality described or claimed as part of the module are all configured in a common package. Indeed, any or all of the various components of a module, whether control logic or other components, can be combined in a single package or separately maintained and can further be distributed in multiple groupings or packages or across multiple locations.
(85) Additionally, the various embodiments set forth herein are described with the aid of block diagrams, flow charts and other illustrations. As will become apparent to one of ordinary skill in the art after reading this document, the illustrated embodiments and their various alternatives can be implemented without confinement to the illustrated examples. For example, block diagrams and their accompanying description should not be construed as mandating a particular architecture or configuration.