In an initiator agent, a method for determining performance of a network link between the initiator agent and a target agent, the method comprising:
- creating a measurement packet group containing a set of measurement packets, each measurement packet in the measurement packet group containing a respective measurement packet identity relative to other measurement packets in the measurement packet group and containing at least one measurement performance metric associated with the initiator agent, by, for each measurement packet:
- calculating a measurement sequence number for that measurement packet that indicates the measurement packet identity relative to a total number of measurement packets to be created within the measurement packet group;
- inserting the measurement sequence number for that measurement packet into the measurement packet;
- and
- inserting a measurement group count into the measurement packet, the measurement group count indicating the total number of measurement packets to be created within the measurement packet group, the measurement sequence number and measurement group count allowing the target agent to compute a packet loss metric of measurement packets within the measurement packet group;
- forwarding each measurement packet in the measurement packet group to a target agent over a communications network supporting communication between the initiator agent and the target agent;
- repeating creation of each measurement packet and forwarding of each measurement packet in a sequence for each measurement packet of the measurement packet group, such that measurement packets in the measurement packet group are forwarded to the target agent in a sequence;
- receiving a response packet group containing a set of response packets from the target agent, each response packet containing at least one target performance metric calculated by the target agent using the measurement performance metric in a corresponding measurement packet of the measurement packet group, wherein receiving comprises, for each response packet:
- identifying a response sequence number within that response packet;
- and identifying a response, group count within that response packet, the response, group count indicating the total number of response packets to be created within the response packet, group for transmission to the initiator agent;
- and
- calculating at least one network link metric from the at least one target performance metric in each response packet of the response packet group, the at least one network link metric identifying a packet latency and packet loss rate between the initiator agent and target agent, wherein calculating comprises:
- identifying a completion event for receipt of the response packet, group, and in response to identifying the completion event, determining at least one packet loss metric of packets lost in transmission between the initiator agent and target agent based upon received response sequence numbers and a total number of packets in a packet group identified by the response group count;
- wherein creating a measurement packet group comprises:
- for each measurement packet, inserting an amount of payload data into the measurement packet;
- and
- wherein each response packet in the response packet group includes a copy of the payload data within a corresponding measurement packet of the measurement packet group, and wherein the method comprises:
- repeating creation of each measurement packet, forwarding of each measurement packet of the measurement packet group receiving a response packet group and calculating at least one network link metric in a sequence of multiple iterations, and for each measurement packet group in each iteration in the sequence of iterations, adjusting the amount of payload data inserted into the measurement packet sequence group to identify how the calculated at least one network link metric changes based on the adjusted amount of payload data, at least one of the amounts of payload data inserted into the measurement packet causing an overall size of the measurement packet to substantially reflect application level traffic between the initiator agent and the target agent.