How it works

Q4S is an application level protocol, which must run in parallel with the protocols used for application data (so can be used to control any other flows of application data).


Q4S protocol provides a mechanism to measure quality and raise alerts if requirements are being violated.  Q4S measures the Quality of a connection which defined by four fundamental network parameters (latency, jitter, bandwidth and packet loss). Any other “derived” communication parameter depends on factors different from network (such as throughput, which depends on TCP transmission window size). Q4S only measures the 4 fundamental network parameters.

In detail, Q4S provides:

  • A way to negotiate the flow requirements. Not all the services require the same parameters from the network, and each direction can have different requirements.
  • A way to measure those parameters e2e, with low resources usage and different responsiveness in each direction depending on requirements.
  • A way to “cry for help” if those parameters are below (or critically close) the limits, Q4S report the cause and the direction affected (forward or reverse)
    • If cry because of packet loss, perhaps it is better adapt to the situation ( reduce bitrate or, in media streaming, reduce fps, or resolution)
    • If cry because of delay or jitter, perhaps can be solved using priorization or change of traffic mode at access node, or perhaps the server processing may change to a faster mode ( for example changing a video encoder features).

Q4S does not force any particular action when “cries”. There is a specific “ALERT”message in that case and that’s all. The decision about what to do when alert is raised is out of scope of Q4S.

The Q4S session flowchart is shown in the following figure. If any of the measurements (for example, bandwidth) is not needed, then can be skipped


A possible Q4S stack implementation runs in parallel to the application and send the Alerts to the “user” of the Q4S stack, which should be a kind of “actuator” in charge of request changes on application side (the video codec, the video game , etc. ) or over the network, if network provider offers a kind of API for nework quality upgrade. .


Neither the logic of the actuator nor the type of actions invoked by actuator is in the scope of Q4S. Therefore, is completely free and customizable based on the possibilities of the application and/or the network provider.