다양한 기록

라우터 내부, switching fabric 본문

네트워크

라우터 내부, switching fabric

라구넹 2024. 5. 6. 17:23

라우팅(컨트롤 플레인) -> 소프트웨어로 처리

포워딩(데이터 플레인) -> 하드웨어로 처리

 

인풋 큐에 들어온 데이터 그램을 어디로 보내야 할지 어떻게 판단하는가

1. IP 주소만 보고 판단 (Destination-based forwarding)

2. IP 헤드 정보를 보고 판단 (Generalized forwarding)

 

Destination-based forwarding

포워딩 테이블로 목적지 주소를 출력 링크에 매핑

 

Longest prefix matching

어떤 IP 주소가 있을 때 테이블에 있는 IP 주소중 가장 길게 일치하는 쪽으로 포워딩

ex)

00000000 00000000 00000??? ????????   | 0

00000000 00000000 00001000 ????????  |  1

00000000 00000000 00001100 ????????   |  2

 

이 경우, 00000000 00000000 00001100 00001010은

2번 출력 링크로 포워딩됨


Switching Fabric

인풋 버퍼의 패킷은 적절한 아웃풋 버퍼로 전송

 

switing rate: 입력에서 출력으로 패킷이 전송될 수 있는 속도

 

 

메모리를 통한 스위칭

- 일반적인 컴퓨터.. 소프트웨어로 처리해서 느림( 메모리-CPU 간 지연) 

 

버스를 통한 스위칭

- 하드웨어로 구현되고(펌웨어 사용) 길을 공유함

- 동시 전송이 어려움. 수십개 정도는 감당 가능하지만, 포트가 많아질 경우 사용하기 힘듦.

 

인터커넥션 네트워크를 통한 스위칭

crossbar, 대형 네트워크에서 사용. 스위치가 중간에서 전달해줌

인풋과 아웃풋을 cross해서 어느정도 충돌이 있어도 버스 방식보다 대규모 네트워크에서 유리함

 

 * banyan 네트워크

기본 인터커넥션은 굉장히 복잡한데, 경로를 줄이고 좀 더 효율적 네트워크를 구성한다.


인풋 포트 큐잉

- 스위칭이 인풋 포트에 오는 속도보다 느린 경우

- HOL (Head-of-the-Line) bloking: 큐의 front에 위치한 데이터그램이 못나가서 뒤쪽 데이터그램이 나가지 못하는 경우

ex) 1번 아웃풋 포트로 나가야 하는 패킷이 다른 인풋 포트들의 큐의 front에 동시에 있으면, 둘이 동시에 나갈 수 없음

그 결과, 둘 중 하나의 큐는 출력이 밀리게 됨

 

 

아웃풋 포트 쪽 문제

- 혼잡에 의해 데이터그램이 나가질 못해서 버퍼에 쌓이다가 손실될 수 있음(아웃풋 포트 큐잉)

- 어느 패킷을 먼저 다음 링크에 보낼 것이냐? --- 스케줄링

 

버퍼의 사이즈

대역폭 C, 동시에 보낼 수 있는 패킷 수 N이면

RTT*C / √N