3.1.4.3 Requesting Probegap Experiment

A higher-layer application or protocol requests a probegap experiment through the initiator. Unlike route check or packet pair experiments, a probegap experiment request does not complete until an error condition is encountered or until the application cancels the request. While the probegap experiment request is in effect, timestamp statistics obtained from Probegap Probe packets are constantly fed back to the application for analysis. Only after the bottleneck bandwidth estimation has been made via a packet pair experiment can data be used from a probegap experiment to estimate the instantaneous available bandwidth (see [ProbeGap]).

The initiator MUST instantiate a Probegap Session.

  • The per-session Expected Message field MUST be set to 0x06 (Probegap Probe originating from sink).

  • The Estimation Callback field MUST be set to the callback routine provided by the application, given as part of the Probegap Experiment request.

  • The Next Send Index field MUST be set to 0.

  • UDP Socket is instantiated and if this fails, the initiator MUST fail the Probegap Experiment request and the associated session object is deleted.

  • The Next Send Timestamp field MUST be set to the current timestamp of the initiator.

The Per-Probegap Session Send timer MUST be enabled and set to fire every 1 millisecond, starting immediately.

The initiator now either waits for messages to arrive or for the timer to fire to continue processing the request. The request can only be completed when the application explicitly completes it.