레이어2 스위치는 처리가 단순해서 처음부터 데이터 플레인에서 전송 처리가 가능했다. 요컨대, 컨트롤 플레인의 주요 역할은 제어 패킷 처리와 MAC 주소 테이블의 관리이고, 데이터 패킷 전송 처리에 전혀 관여할 필요가 없다.
반면에 초기 레이어3 스위치는 패킷 전송 처리를 모두 데이터 플레인으로 구현할 수 없었으므로 플로우의 최초의 패킷은 컨트롤 플레인에서 소프트웨어로 처리하고, 그 결과를데이터 플레인에 기록하여 이후의 패킷은 하드웨어로 처리하는 방식(플로우 캐시 방식)이 당시는 주루였다. 하지만, 예를 들어 웹 브라우저가 복수의 HTTP 세션을 동시에 연결하는 등 스위치를 지나는 플로우의 수와 변동은 계속 증가하기만 했다.
이 때문에, 플로우 캐시 방식의 스위치에서는 컨트롤 플레인이 처리해야만 하는 패킷이 늘어났다. 또한, 플로우 캐시의 크시는 제한되어 있으므로 넘칠 경우에는 소프트웨어로 처리하게 된다.
CPU에는 제어 패킷 처리와 각종 테이블을 유지 관리하는 본업이 있으므로, 데이터 패킷 처리로 부하가 걸리면 스위치의 동작이 불안정해지고, 네트워크 전체에 나쁜 영향을 미칠 수 있다.
본 특징을 시작할 때 언급한 1U의 LAN 스위치는 1초에 10억 패킷을 처리할 수 있다. 그러므로 이론상으로는 1초에 10억이라는 새로운 플로우가 유입, 즉 CPU가 처리하고 데이터 플레인에 기록해야만 하는 상황이 발생할 수 있다. 이는 극단적인 상황이지만, 이보다 훨씬 플로우가 적어도 일단 CPU의 처리 능력을 넘어서면 악순환이 이어지게 된다.
그래서 레이어3의 전송 처리에 필요한 정보를 미리 데이터 플레인에 기록해 둠으로써 플로우의 최초 패킷을 포함한 전체를 하드웨어로 처리할 수 있는 스위치가 생겨났다. 이런 방식을 FIB(Forwarding Information Base) 방식으로 부른다. 플로우가 아니라 라우팅 테이블을 데이터 플레인에 기록하므로 플로우 수에 의한 제한은 없어진다.
네트워크가 정상 상태라면 이런 스위치의 컨트롤 플레인은 제어 패킷만 송수신하고, 데이터 패킷은 새로운 플로우라도 모두 하드웨어로 처리된다. 다시 말해 컨트롤 플레인의 CPU는 패킷 처리에서 수천 배의 능력을 가진 데이터 플레인(포워딩 엔진: 이하 FE로 줄임)에 처리를 맡기고, 제어에만 전념할 수 있다.
이를 응용하여 이중화, 즉 데이터 플레인이 데이터 패킷을 계속 처리하는 동안에 컨트롤 플레인의 전환을 완료함으로써 정지 시간을 매우 짧게 할 수도 있게 되었다.
데이터 플레인이 진화함에 따라, 현재 스위치 대부분은 필터링이나 QoS 등의 기능을 병용해도 성능과 안정성이 손상되지 않게 되었다. 예를 들어 HTTP인지 아닌지 판별하여 패킷을 폐기하거나 우선 제어하는 처리도 모두 데이터 플레인이 한다.
LAN 스위치는 기존 라우터 등과 달리, 데이터 플레인에 구현되어 있는 범위의 처리라면 복수의 다른 기능을 동시에 활성화해도 처리 능력이 떨어지지 않는다. 결국, 데이터, 즉 패킷이 계속 공급되면 항상 ‘최대 성능’이 나오는 것이 LAN 스위치의 큰 특징이다. 데이터 플레인이 처리 가능한 기능의 범위는 계속 확대되어, 예를 들어 IPv4는 하드웨어 처리를 하고 IPv6은 컨트롤 플레인에서 소프트웨어 처리를 하는 제품도 과도기에는 있었지만, 현재는 IPv6도 데이터 플레인으로 구현, 즉 하드웨어화를 완료했다.
대형 LAN 스위치에서는 서브시스템(모듈)에도 CPU와 데이터 플레인을 탑재하여 1대의 기기 안에서 분산 처리하는 것이 일반적이다. 이에 따라, 한 CPU의 과부하를 막고 확장성을 확보하도록 디자인 되어 있다. 단, 집중제어가 필요한 제어 프로토콜에 관해서는 마스터가 되는 CPU가 가진 정보를 확실하게 서브시스템의 CPU에 전달하는 것이 필수이다.
데이터 플레인의 병렬 분산 처리는 구체적인 예를 들어 설명하겠다. 집필 시점에서 가장 고성능인 LAN 스위치 중 하나는 최대 768개의 10기가비트 인터페이스에 대해서 192개의 FE를 가지고 1초에 115억 패킷을 처리할 수 있다. FE에는 LAN 스위치처럼 각각 레이어2 및 레이어3 제어 테이블과 필터링 등의 처리 내용이 기록되어 있다. 이 경우에는 하나의 FE가 4개의 인터페이스르 담당함으로써 병렬 분산 처리를 실현한다. 어떤 FE로 들어온 패킷은 대부분 다른 FE에서 송신되므로 백플레인의 크로스바 스위치도 병렬로 동작하며, 모든 FE에 최대 부하가 가해진 상태라도 충분한 대역을 제공하여 LAN 스위치 내부에서 막히지 않게 되었다.
패킷은 같은 플로우에 속해 있더라도 각각 도착지 주소가 기록되어 있다. 그러므로 복수의 CPU를 이용해 별렬처리하는 컴퓨터처럼 LAN 스위치에서도 패킷을 병렬처리할 수 있게 되었다. 일반적으로 컴퓨터의 병렬처리는 단순하게 병렬화 할 수 있는 것은 적고, 처리 대상을 계산 노드나 스레드로 나누거나 기계어 수준에서 명령의 의존관계를 해석하여 동시에 실행하는 등의 기법이 필요하다.
반면에 LAN 스위치의 처리 대상이 각각의 패킷에는 기본적으로 의존관계가 없으므로 LAN 스위치는 수신한 패킷을 그대로 병렬로 처리할 수 있다. 이 때문에 FE 수에 비례한 성능을 실현할 수 있다.