호우동의 개발일지

Today :

article thumbnail

스위칭

  • 스위치 구조가 라우터의 핵심인 이유
    → 패킷이 입력 포트에서 출력 포트로 실제로 스위칭(포워딩)되는 구조를 통과하기 때문

 

 


세 가지 스위칭 기술


1. 메모리를 통한 교환

메모리를 통한 패킷 전송
메모리 전송

  • CPU(라우팅 프로세서)를 직접 제어해서 입력 포트와 출력 포트 사이에 패킷 스위칭을 하는 방법
    • 가장 단순한 초기의 라우터이자 사용한 전통적인 컴퓨터
    • 입력 포트와 출력 포트는 전통적인 운영체제에서 전통적인 I/O 장치처럼 작동

  • 동작 과정
    1. 패킷이 도착하면 입력 포트는 라우팅 프로세서에게 인터럽트를 보냄
    2. 패킷을 프로세서 메모리에 복사
    3. 라우팅 프로세서는 헤더에서 목적지 주소를 추출 및 포워딩 테이블에서 적절한 출력 포트를 찾음
    4. 이후, 라우팅 프로세서는 다음 패킷을 출력 포트의 버퍼에 복사한다.

  • 메모리 대역폭이 초당 최대 B인 패킷을 메모리에 쓰거나 메모리에서 읽을 수 있는 경우
    → 전체 전달 처리량은 B/2보다 작아야 한다.
    • 전체 전달 처리량 : 패킷이 입력 포트에서 출력 포트로 전송되는 총 속도

  • 목적지 포트가 다른 경우라도 공유 시스템 버스를 통해 한 번의 하나의 메모리 읽기/쓰기 작업만 수행
    → 두 패킷을 동시에 전달할 수 없다.

  • 최근 일부 라우터는 메모리를 통해 스위칭함
    • 초기 라우터와의 주요 차이점
      • 목적지 주소를 검색하고 해당 메모리 위치에 패킷을 저장하는 것이 입력 카드에서 처리
        • 어떤 면에서는 공유 메모리 멀티프로세서와 매우 흡사

      • 라인 카드에서 패킷을 처리하여 적절한 출력 포트의 메모리로 스위칭(쓰기) 한다.

 


2. 버스를 통한 교환

버스를 통한 패킷 전송
버슬르 통한 교환

  • 입력 포트는 라우팅 프로세서의 개입 없이 공유 버스를 통해 직접 출력 포트로 패킷을 전송
    • 일반적으로 미리 준비된 입력 포트 스위치 내부 레이블(헤더)이 로컬 출력 포트를
      나타내는 패킷에게 전송되거나 버스에 패킷을 전송하여 수행됨

  • 모든 출력 포트에 패킷이 수신되지만 레이블과 매치되는 포트만 패킷을 유지
    • 레이블은 스위치 내에 버스를 통과하기 위해서만 사용 → 출력 포트에서 제거됨

  • 동시에 여러 패킷이 다른 입력 포트에 있는 라우터에 도착하는 경우
    • 한 번의 하나의 패킷만 버스를 통과할 수 있음
      → 하나를 제외한 모든 패킷은 대기해야 함
      라우터의 교환 속도는 버스 속도에 의해 제한됨
      • 모든 패킷이 하나의 버스를 건너가야 하기 때문

  • 버스를 통한 스위칭은 종종 작은 지역 및 기업 네트워크에서 작동하는 라우터에서 사용하기 충분

 


3. 상호 연결 네트워크를 통한 교환

  • 공유 버스의 대역폭 제한을 극복하는 방법 → 상호 연결 네트워크를 사용하는 것
    상호연결 네트워크
    • 멀티 프로세서 컴퓨터 구조에서 프로세서를 상호연결하는 데 사용된 것과 비슷하지만 더 복잡

  • 크로스바 스위치(crossbar switch)
    → N개의 입력 포트를 N개의 출력 포트에 연결하는 2N 버스로 구성된 상호 연결 네트워크 
    • 각 수직 버스는 교차점에서 각 수평 버스와 교차함
      ← 스위치 구조 컨트롤러에 의해 언제든지 열고 닫을 수 있음

      • 스위치 구조 컨트롤러도 로직은 스위칭 구조 자체의 일부이다.

  • 위 그림 크로스바 스위치 과정 - 패킷이 포트 A에 도착하여 포트 Y로 전달되어야 하는 경우
    1. 스위치 컨트롤러는 A와 Y 버스들과 포트 A의 교차로에서 교차점을 닫고, 버스로 패킷 전달
    2. Y 버스만이 이를 픽업
    • 중요한 점
      • A에서 Y로, B에서 X로의 패킷들은 다른 입출력 버스를 사용
        B 포트에서의 패킷은 동시에 X로 전달될 수 있음
        → 크로스바 스위치는 여러 패킷을 병렬로 전달할 수 있다.

  • 크로스바 스위치는 출력 포트로 전달되는 패킷을 출력 포트에 도달하는 것을 차단하지 않는다.
    • 차단되는 경우
      • 다른 패킷이 현재 해당되는 출력 포트로 전달되는 경우
      • 2개의 서로 다른 입력 포트에서 나오는 2개의 패킷이 동일한 출력 포트로 보내지는 경우
        ← 한 번의 하나의 패킷만 특정 버스에서 전송될 수 있기 때문

  • 좀 더 정교한 상호연결 네트워크는 다단계 스위치 구조를 사용
    • 각기 다른 입력 포트의 패킷이 동일한 출력 포트로 향해 동시에 전달을 가능하게 함
    • 라우터의 스위칭 용량은 다중 스위치 구조를 병렬로 실행하여 확장 가능
      • 해당 방식에서는 입력 포트와 출력 포트가 병렬로 작동하는 N개의 스위치 구조로 연결
        1. 입력 포트는 패킷을 K개의 작은 청크로 분해
        2. 입력 포트가 N개의 스위치 구조의 K를 통해 청크를 선택한 출력 포트로 보낸다.
        3. 이 출력 포트는 K개의 청크를 다시 원래의 패킷으로 재조합함