[zeromq-dev] QoS support
steven.mccoy at miru.hk
Wed Nov 11 09:44:36 CET 2009
2009/11/11 Martin Sustrik <sustrik at 250bpm.com>
> AFAIU what you are saying is that there's sense in tagging packets by
> different TOSes depending on the message contained in the packet, right?
There are many types of Quality of Service:
1, Packet level tagging with the ToS bits. Only used for determining
traffic precedence at gateways, such as VoIP in preference to HTTP in order
to maintain low latency.
Many OS stacks, NICs, switches, etc, completely ignore ToS as it is slower
to process the bits than perform best effort for every packet. There's been
a long conversation on LKML about this.
Adding a host firewall to tag and interpret ToS tags is going to introduce
additional latencies for every packet.
There may be a fundamental problem with retransmission handling at the
transport layer depending on which protocol is being used. Similarly with
an ordered transport what happens if you send a high latency message
followed by a low latency message.
2, Interpretation of quality to mean the age of the data, i.e. realtime,
delayed, or conflated.
3, Traffic priority at the application level, individual messages in a
stream are tagged with different priorities and each receiving application
needs to filter the incoming stream to the different priority queues.
4, Traffic priority at the receiving application, the receiver tags certain
topics with different priorities based on it's interest and filters the
incoming stream appropriately.
5, Priority streams, if you have 3 priority levels create 3 transports
using 3 known ports and have routers prioritise at the port level.
So the question of choice is dependent on whether every application using
the internet routes is under your control to set the ToS bits and how do you
expect it to perform better than simply prioritizing separate transports.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the zeromq-dev