no-blocking fabric bandwidth

Answered Question
Dec 15th, 2008

Hi every body!

I want to discuss switching performance parameters--------Mpps and fabric bandwidth.

To make my point, I use a small switch of only 4 ports(100Mb)

Ideal fabric bandwidth:

=2*(total bandwidth of port)

=2*(100+100+100+100)

=2*(400)

=800 Mbs.

Is it non-blocking fabric bandwidth?

My understanding is any fabric bandwidth that would not cause any packet drop at full load, is termed as non-blocking fabric bandwidth.

But does it have to be twice the total bandwidth? how about 500Mbs which is still higher than 400Mbs, would it be regarded as non-blocking fabric band- width?

thanks a lot!


Correct Answer by Joseph W. Doherty about 8 years 2 months ago

"If buffer is full, then packet would be dropped. Am I correct? "


Yes, because the egress port would become the bottleneck. If the other 3 ports were sending full speed to port 4, once the output queue fills, 2 out 3 packets would be dropped.


PS:

If traffic was all TCP, it would see the drops, so ports 1, 2 and 3 should slow down to about 1/3 transmission rate. Most non-TCP traffic would not slow down and you can obtain a high drop.

Correct Answer by Joseph W. Doherty about 8 years 2 months ago

Non-blocking switch fabric often is a reference to a fabric bandwidth design provide enough bandwidth that all the ports bandwith can be supported (such as your example's 800 Mbps), but non-blocking might also reference not having a "head of line" blocking architecture.


Since it's possible for multiple ports to want to send packets to the same port (e.g. ports 1, 2 and 3 all want to send to port 4), port 4 might congest. If it does, different fabric designs can queue either at input or output. The input design can make for a problem, though.


Assume ports 1 and 2 are sending to port 3 although each of ports 1 and 2 are only sending at an average of 50%. Also assume port 4 is sending almost all its traffic to port 1 but occasionally has a single packet to also send to port 3. Everytime port 4 sends a packet to port 3, that packet has to queue into the streams from ports 1 and 2. If the port 4 packet directed to port 3 delays following packets directed to port 1 (similar to a line of traffic waiting behind someone trying to make a left because there's on-coming traffic yet the road ahead is clear), you have head-of-line blocking. If it doesn't (similar to having a dedicated left turn lane), you have a non-(head-of-line)-blocking architecture.


Correct Answer by Jon Marshall about 8 years 2 months ago

Sarah


800Mbs switch fabric would allow 4 x 100Mb ports to run without any blocking.


500Mbs switch fabric would not allow 4 x 100Mb to run without blocking.


When talking about port speed as you say you need to multiply by 2 to get full duplex. So anything above 800Mbs switch fabric for 4 x 100Mbps ports would be non-blocking. Anything below might block.


It's important to understand that it only might block ie. you have 500Mbps switch fabric and 4 x 100Mbs full duplex, But if the individual ports do not transmit traffic at 100Mbps full duplex all at the same time then you may very well not get blocking. But this is not the same as when we talk of a non-blocking switch architecture.


Jon

  • 1
  • 2
  • 3
  • 4
  • 5
Overall Rating: 5 (3 ratings)
Loading.
Correct Answer
Jon Marshall Mon, 12/15/2008 - 08:54

Sarah


800Mbs switch fabric would allow 4 x 100Mb ports to run without any blocking.


500Mbs switch fabric would not allow 4 x 100Mb to run without blocking.


When talking about port speed as you say you need to multiply by 2 to get full duplex. So anything above 800Mbs switch fabric for 4 x 100Mbps ports would be non-blocking. Anything below might block.


It's important to understand that it only might block ie. you have 500Mbps switch fabric and 4 x 100Mbs full duplex, But if the individual ports do not transmit traffic at 100Mbps full duplex all at the same time then you may very well not get blocking. But this is not the same as when we talk of a non-blocking switch architecture.


Jon

sarahr202 Tue, 12/16/2008 - 06:29

Thanks Jon and Joseph!

I was thinking even in non-blocking switch fabric, there is possibility for packets being dropped.

Let revisit my example with different scenario.

The 4 -port switch with 800 Mbs fabric bandwidth.

Let say port f0/1,f0/2,f0/3 are all running full load , sending packets to port f0/4.

Though there is enough bandwidth in fabric but the size of out-put buffer at f0/4 could cause packet-drop. If buffer is full, then packet would be dropped.

Am I correct?

thanks a lot!

Correct Answer
Joseph W. Doherty Tue, 12/16/2008 - 06:47

"If buffer is full, then packet would be dropped. Am I correct? "


Yes, because the egress port would become the bottleneck. If the other 3 ports were sending full speed to port 4, once the output queue fills, 2 out 3 packets would be dropped.


PS:

If traffic was all TCP, it would see the drops, so ports 1, 2 and 3 should slow down to about 1/3 transmission rate. Most non-TCP traffic would not slow down and you can obtain a high drop.

sarahr202 Tue, 12/16/2008 - 19:30

Your reply prompted another question.

"2 out 3 packets would be dropped".

I am just curious how did you determine that?

Thanks a lot!


Joseph W. Doherty Wed, 12/17/2008 - 04:18

When you wrote "Let say port f0/1,f0/2,f0/3 are all running full load , sending packets to port f0/4. ", would imply 300 Mbps (100 Mbps * 3 ports) is being forwarded to port f0/4. Port f0/4 can only egress 100 Mbps, so what happens to the other 200 Mbps?


Initially queues will fill then overflow and begin to drop. We would then have 300 Mbps in, 100 Mbps out, so 200 Mbps is dropped. Assuming all packets were the same size (which I didn't state before, sorry), 2 out of 3 packets would be dropped. If the packets were different sizes, you should see packet drop rates roughly in the proportion of their sizes while still dropping 200 of the 300 Mbps.

Correct Answer
Joseph W. Doherty Mon, 12/15/2008 - 10:06

Non-blocking switch fabric often is a reference to a fabric bandwidth design provide enough bandwidth that all the ports bandwith can be supported (such as your example's 800 Mbps), but non-blocking might also reference not having a "head of line" blocking architecture.


Since it's possible for multiple ports to want to send packets to the same port (e.g. ports 1, 2 and 3 all want to send to port 4), port 4 might congest. If it does, different fabric designs can queue either at input or output. The input design can make for a problem, though.


Assume ports 1 and 2 are sending to port 3 although each of ports 1 and 2 are only sending at an average of 50%. Also assume port 4 is sending almost all its traffic to port 1 but occasionally has a single packet to also send to port 3. Everytime port 4 sends a packet to port 3, that packet has to queue into the streams from ports 1 and 2. If the port 4 packet directed to port 3 delays following packets directed to port 1 (similar to a line of traffic waiting behind someone trying to make a left because there's on-coming traffic yet the road ahead is clear), you have head-of-line blocking. If it doesn't (similar to having a dedicated left turn lane), you have a non-(head-of-line)-blocking architecture.


Actions

This Discussion