7

In general, links among data centers are shared (having shared network infrastructure). Thus, I can't detect the available bandwidth in between two data centers that may vary every while and through the way.

Consecutively, I am unable to throttle the network by submitting my UDP packets among such links because I worry about packet drops and message losses.

Is there any way to detect instantly and repeatedly the available bandwidth between two data centers so that I could throttle it with my packets?

1 Answer 1

7

I am unable to throttle the network by submitting my UDP packets among such links because I worry about packet drops and message losses.

At first blush, this sounds more like a design problem with the application, not the network:

  1. Networks are not reliable.
  2. UDP was never intended to transport messages reliably without adding application layer loss detection and retransmission.

If the application requires reliable messaging, many people use TCP (for unicast endpoints) or TIBCO RV (multicast endpoints). The devil is always in the details and there is no one size fits all solution.

Is there any way to detect instantly and repeatedly the available bandwidth between two data centers, So that I could throttle it with my packets?

You are essentially asking for what is traditionally called QoS.

Once you build rules to classify and prioritize your traffic, you can use QoS disciplines such as CBWFQ and LLQ to prioritize your most important traffic classes in the face of congestion (i.e low available bandwidth).

Alternatively you can use QoS to shape certain traffic classes to an average rate.

In general, UDP traffic classes are considered more loss sensitive than TCP classes. There are always exceptions to this rule of course; for instance TIBCO RV is commonly based on UDP multicast, but TIBCO includes sequence numbers to detect the need for retransmission. Depending on the applications, you may or may not need to prioritize UDP TIBCO classes over other TCP traffic.

I didn't find how to detect the available bandwidth.

It depends on the specific type of QoS, but in general:

  • QoS classes monitor the average utilization within the traffic class
  • QoS watches the interface queues for congestion and only prioritizes when the interface has a non-zero queue size (i.e. congestion).

This answer illustrates one kind of QoS configuration.

Final notes:

5
  • 1
    Firstly, I would like to thank you for your reply. I searched a lot but till now I didn't find how to detect the available bandwidth. Yes, QoS talks about limiting your sending throughput to a fixed threshold. But as you know in shared network, the bandwidth varies every while. I am not sure that QoS could help. Otherwise, clarify it much more please. Commented Jun 20, 2015 at 14:16
  • QoS is a big subject and is your only choice in situations like this.
    – Ryan Foley
    Commented Jun 20, 2015 at 14:21
  • You are right @RyanFoley is huge subject, thank you ;) Commented Jun 20, 2015 at 22:58
  • Also not sure how this answers the question of detecting/determining the available bandwidth on a link whose bandwidth may vary.
    – Nanban Jim
    Commented Oct 4, 2016 at 16:41
  • My answer is saying that you should not do that for the purpose of traffic engineering. Use QoS to automatically prioritize your traffic Commented Oct 4, 2016 at 16:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.