스위칭
- 스위치 구조가 라우터의 핵심인 이유
→ 패킷이 입력 포트에서 출력 포트로 실제로 스위칭(포워딩)되는 구조를 통과하기 때문
세 가지 스위칭 기술
1. 메모리를 통한 교환
- CPU(라우팅 프로세서)를 직접 제어해서 입력 포트와 출력 포트 사이에 패킷 스위칭을 하는 방법
- 가장 단순한 초기의 라우터이자 사용한 전통적인 컴퓨터
- 입력 포트와 출력 포트는 전통적인 운영체제에서 전통적인 I/O 장치처럼 작동
- 동작 과정
- 패킷이 도착하면 입력 포트는 라우팅 프로세서에게 인터럽트를 보냄
- 패킷을 프로세서 메모리에 복사
- 라우팅 프로세서는 헤더에서 목적지 주소를 추출 및 포워딩 테이블에서 적절한 출력 포트를 찾음
- 이후, 라우팅 프로세서는 다음 패킷을 출력 포트의 버퍼에 복사한다.
- 메모리 대역폭이 초당 최대 B인 패킷을 메모리에 쓰거나 메모리에서 읽을 수 있는 경우
→ 전체 전달 처리량은 B/2보다 작아야 한다.전체 전달 처리량
: 패킷이 입력 포트에서 출력 포트로 전송되는 총 속도
- 목적지 포트가 다른 경우라도 공유 시스템 버스를 통해 한 번의 하나의 메모리 읽기/쓰기 작업만 수행
→ 두 패킷을 동시에 전달할 수 없다. - 최근 일부 라우터는 메모리를 통해 스위칭함
- 초기 라우터와의 주요 차이점
- 목적지 주소를 검색하고 해당 메모리 위치에 패킷을 저장하는 것이 입력 카드에서 처리
- 어떤 면에서는 공유 메모리 멀티프로세서와 매우 흡사
- 어떤 면에서는 공유 메모리 멀티프로세서와 매우 흡사
- 라인 카드에서 패킷을 처리하여 적절한 출력 포트의 메모리로 스위칭(쓰기) 한다.
- 목적지 주소를 검색하고 해당 메모리 위치에 패킷을 저장하는 것이 입력 카드에서 처리
- 초기 라우터와의 주요 차이점
2. 버스를 통한 교환
- 입력 포트는 라우팅 프로세서의 개입 없이 공유 버스를 통해 직접 출력 포트로 패킷을 전송
- 일반적으로 미리 준비된 입력 포트 스위치 내부 레이블(헤더)이 로컬 출력 포트를
나타내는 패킷에게 전송되거나 버스에 패킷을 전송하여 수행됨
- 일반적으로 미리 준비된 입력 포트 스위치 내부 레이블(헤더)이 로컬 출력 포트를
- 모든 출력 포트에 패킷이 수신되지만 레이블과 매치되는 포트만 패킷을 유지
- 레이블은 스위치 내에 버스를 통과하기 위해서만 사용 → 출력 포트에서 제거됨
- 레이블은 스위치 내에 버스를 통과하기 위해서만 사용 → 출력 포트에서 제거됨
- 동시에 여러 패킷이 다른 입력 포트에 있는 라우터에 도착하는 경우
- 한 번의 하나의 패킷만 버스를 통과할 수 있음
→ 하나를 제외한 모든 패킷은 대기해야 함
→ 라우터의 교환 속도는 버스 속도에 의해 제한됨- 모든 패킷이 하나의 버스를 건너가야 하기 때문
- 모든 패킷이 하나의 버스를 건너가야 하기 때문
- 한 번의 하나의 패킷만 버스를 통과할 수 있음
- 버스를 통한 스위칭은 종종 작은 지역 및 기업 네트워크에서 작동하는 라우터에서 사용하기 충분
3. 상호 연결 네트워크를 통한 교환
- 공유 버스의 대역폭 제한을 극복하는 방법 → 상호 연결 네트워크를 사용하는 것
- 멀티 프로세서 컴퓨터 구조에서 프로세서를 상호연결하는 데 사용된 것과 비슷하지만 더 복잡
- 멀티 프로세서 컴퓨터 구조에서 프로세서를 상호연결하는 데 사용된 것과 비슷하지만 더 복잡
크로스바 스위치(crossbar switch)
→ N개의 입력 포트를 N개의 출력 포트에 연결하는 2N 버스로 구성된 상호 연결 네트워크- 각 수직 버스는 교차점에서 각 수평 버스와 교차함
← 스위치 구조 컨트롤러에 의해 언제든지 열고 닫을 수 있음
- 스위치 구조 컨트롤러도 로직은 스위칭 구조 자체의 일부이다.
- 스위치 구조 컨트롤러도 로직은 스위칭 구조 자체의 일부이다.
- 각 수직 버스는 교차점에서 각 수평 버스와 교차함
- 위 그림 크로스바 스위치 과정 - 패킷이 포트 A에 도착하여 포트 Y로 전달되어야 하는 경우
- 스위치 컨트롤러는 A와 Y 버스들과 포트 A의 교차로에서 교차점을 닫고, 버스로 패킷 전달
- Y 버스만이 이를 픽업
- 중요한 점
- A에서 Y로, B에서 X로의 패킷들은 다른 입출력 버스를 사용
→ B 포트에서의 패킷은 동시에 X로 전달될 수 있음
→ 크로스바 스위치는 여러 패킷을 병렬로 전달할 수 있다.
- A에서 Y로, B에서 X로의 패킷들은 다른 입출력 버스를 사용
- 크로스바 스위치는 출력 포트로 전달되는 패킷을 출력 포트에 도달하는 것을 차단하지 않는다.
- 차단되는 경우
- 다른 패킷이 현재 해당되는 출력 포트로 전달되는 경우
- 2개의 서로 다른 입력 포트에서 나오는 2개의 패킷이 동일한 출력 포트로 보내지는 경우
← 한 번의 하나의 패킷만 특정 버스에서 전송될 수 있기 때문
- 차단되는 경우
- 좀 더 정교한 상호연결 네트워크는 다단계 스위치 구조를 사용
- 각기 다른 입력 포트의 패킷이 동일한 출력 포트로 향해 동시에 전달을 가능하게 함
- 라우터의 스위칭 용량은 다중 스위치 구조를 병렬로 실행하여 확장 가능
- 해당 방식에서는 입력 포트와 출력 포트가 병렬로 작동하는 N개의 스위치 구조로 연결
- 입력 포트는 패킷을 K개의 작은 청크로 분해
- 입력 포트가 N개의 스위치 구조의 K를 통해 청크를 선택한 출력 포트로 보낸다.
- 이 출력 포트는 K개의 청크를 다시 원래의 패킷으로 재조합함
- 해당 방식에서는 입력 포트와 출력 포트가 병렬로 작동하는 N개의 스위치 구조로 연결