I don’t like to correct my friends in public, but if someone says “I still believe that flow-based technologies will exceed the capabilities of packet-based technologies” (see Network Break 53), it’s time to revisit the networking fundamentals.
What is a flow?
According to Wikipedia (but what do they know…):
In packet switching networks, traffic flow, packet flow or network flow is a sequence of packets from a source computer to a destination, which may be another host, a multicast group, or a broadcast domain.
But maybe there’s something beyond packet-switching networks? Sure, you have three fundamental options:
- Frequency-division multiplexing (which includes radio and xWDM)
- Time-division multiplexing (SONET, SDH, T1, E1…)
- Statistical multiplexing (cells, frames, packets, datagrams…).
There are no flows (apart from bit streams) in frequency- or time-division multiplexing, so we’re left with statistical multiplexing, and if we call whatever we’re switching “packet” every non-(F|T)DM system is a packet-switching system.
It’s all packet-based
Every single device operating at layers 2-4 (TDM and FDM work on layer 1) that I’ve seen in my life does the same thing:
- Receive a packet;
- Inspect the packet header and extract the relevant fields;
- Perform forwarding table (or TCAM) lookup to find the output port(s);
- Send the packet to output queue(s).
I still haven’t seen an OpenFlow-based or any other flow-based system that would do anything fundamentally different.
Flow-based technologies that are envisioned today thus cannot exceed the packet-based technologies because every flow-based system switches packets, and I sincerely hope the claim I quoted above wasn't meant to be along the lines of “virtual circuit switching will exceed the capabilities of connectionless switching”, because we’ve seen too many times how well that worked.