본문 바로가기
네트워크

4.2 라우터 내부

by 학식러 2023. 3. 26.

 

 

-라우터의 구조

 

 

 

 

 

4.2.1 입력 포트 처리 및 목적지 기반 전송

 

입력 포트의 맨 왼쪽 박스와 출력 포트의 맨 오른쪽 박스는 라우터로 들어오는 입력 링크로, 물리계층 기능을 수행한다,

 

들어오는 링크의 반대편에 있는 링크 계층과 상호 운용하기 위해 필요한 링크 계층 기능을 수행한다. 이것은 입력 및 출력 포트에서 미들박스로 표시된다.

 

 

-입력 포트에서 수행되는 검색은 라우터 동작의 핵심이다

 

-라우터는 포워딩 테이블을 사용하여 도착 패킷이 스위치 구조를 통해 전달되는 출력 포트를 검색한다

 

-포워딩 테이블은 라우팅 프로세서에서 계산되거나 갱신되거나 원격 SDN컨트롤러에서 수신된다

 

-포워딩 테이블은 라우틍 프로세서에서 그림과 같이 입력 라인 카드로 복사된다

 

-각 라인 카드에서 섀도 복사본을 사용하면 패킷 단위로 중앙 집중식 라우팅 프로세서를 호출하지 않게 되어서 병목 현상을 피할 수 있다.

 

 

 

-포워딩 테이블

32비트 IP주소의 경우, 포워딩 테이블을 억지로 구현한다면 모든 가능한 목적지 주소마다 하나의 엔트리가 필요할 것이다. 따라서 40억 개 이상의 가능한 주소가 있어야 하므로 이 옵션은 불가능하다.

 

예시) 라우터 0에서 3까지의 4개의 링크가 있으며 그 패킷을 다음과 같이 링크 인터페이스로 전달

40억개가 아닌 4개의 엔트리를 갖는 포워딩 테이블이면 된다.

 

 

-프리픽스 포워딩 테이블

이런 형식의 포워딩 테이블에서 라우터는 패킷의 목적지 주소의 프리픽스를 테이블의 엔트리와 매치한다.

 

예시에서 첫번째 패킷의 목적지 주소 앞 21개의 비트 프리픽스가 테이블의 첫번째 엔트리와 매치되므로 라우터는 이 패킷을 링크 인터페이스 0번으로 보낸다.

 

두번째 예시에서 처음 24비트는 테이블에 있는 두번째 엔트리에 매치되고, 주소의 처음 21비트는 세번째 엔트리에 매치된다. 이렇게 다수의 매치가 있을 때 라우터는 최장 프리픽스 매치 규칙을 사용한다.

 

즉, 테이블에서 가장 긴 매치 엔트리를 찾고, 여기에 연관된 링크 인터페이스로 패킷을 보낸다는 의미이다.

 

 

검색은 나노초 단위로 수행되어야 하기 때문에  대형 테이블을 통한 단순 선형 검색 이외의 기술이 필요하다.

 

메모리 접속 시간에 특별한 주의를 기울여야 하므로 내장현 DRAM과 빠르 SRAM 메모리가 있는 설계가 필요하다. 실제로, TCAM도 검색을 위해 자주 사용된다.

 

검색을 통해 패킷의 출력 포트가 결정되면 패킷을 스위치 구조로 보낼 수 있다. 일부 설계에서는 다른 입력 포트로부터 패킷이 현재 구조를 사용하고 있다면 패킷이 스위칭 구조에 들어가는 것을 일시적으로 차단할 수 있다.

 

 

4.2.2 스위칭

 

input링크로 온 것을 output링크로 보내는 것

 

-세가지 스위칭 기술

1. 메모리를 통한 교환 :

초기의 라우터는 라우터 프로세서를 직접 제어해서 입력 포트와 출력 포트 사이에서 패킷을 스위칭하는 전통적인 컴퓨터다. 입력 포트와 출력 포트는 전통적인 운영체제에서 전톡적인 I/O장치처럼 작동한다.

 

패킷이 도착하면 입력 포트는 라우팅 프로세서에게 인터럽트를 보내 패킷을 프로세서 메모리에 복사한다.

 

그 다음 라우팅 프로세서는 헤더에서 목적지 주소를 추출하고 포워딩 테이블에서 적절한 출력 포트를 찾은 다음 패킷을 출력 포트의 버퍼에 복사한다.

 

 

 

2. 버스를 통한 교환 :

입력 포트는 라우팅 프로세서의 개입 없이 공유 버스를 통해 직접 출력 포트로 패킷을 전송한다.

 

일반적으로 미리 준비된 입력포트 스위치 내부 레이블이 로컬 출력포트를 나타내는 패킷에게 전송되거나 버스에 패킷을 전송하여 수행된다.

 

동시에 여러 패킷이 다른 입력 포트에 있는 라우터에 도착하면 한 번에 하나의 패킷만 버스를 통과할 수 있기 때문에 하나를 제외한 모든 패킷이 대기해야 한다.

 

모든 패킷이 하나의 버스를 거너가야 하므로, 라우터의 교환 속도는 버스 속도에 의해 제한된다.

 

 

 

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

 

버스에 비해서는 길이 많아서 동시에 보낼 수 있다.

 

멀티 프로세서를 위해 만든 것이지만 라우터에서 사용한 것이다.

 

충돌하지 않는 길을 많이 만드는 것이 속도를 높이는데 도움이 되기 때문에

multistage로 만듦, 병렬성을 이용(쪼개서 이용)

 

 

-입력 큐잉

스위치 구조가 입력 포트보다 느리면 큐잉이 일어난다.

 

HOL(Head-of-the-line) : 그림을 보면 원래라면 초록색은 바로 지나갈 수 있는데 앞에 빨간색 패킷이 기다리고 있어서 같이 기다리고 있다. 이런 현상을 HOL차단이라고 한다.

 

 

-출력 큐잉

 

링크 전송율보다 데이터그램이 스위치 구조에 더 빨리 도착할 때 발생한다.

 

Scheduling discipline : 큐에 있는 어떤 데이터그램을 전송하기로 선택할 것인가

-> 망 중립성의 문제가 생김

 

 

 

-얼마나 많은 버퍼가 요구되는가?

링크 용량 : C

평균 왕복 시간 : RTT

독립적인 TCP의 흐름 : N

B = RTT x C / 루트N

 

그러나 버퍼가 크면 delay가 길어진다.

댓글