※"컴퓨터 네트워킹 하향식 접근 8판" 책을 간단하게 정리한 내용의 글입니다.※
4.2 라우터 내부에는 무엇이 있을까?
< 포워딩과 라우팅 >
- 포워딩(Forwarding)
패킷이 라우터의 입력 링크에 도달했을 때, 그 패킷을 적절한 출력 링크로 이동시키는 것을 포워딩이라고 한다. 이는 포워딩 테이블을 기반으로 이루어진다. - 라우팅(Routing)
네트워크 전체에서 송신자에서 수신자로 패킷이 도달하기 위해 최적의 경로를 찾는 과정을 라우팅이라고 한다.
포워딩은 단기적 작업이고, 라우팅을 장기적 관점이다. 라우팅 시에 라우팅 알고리즘에 의해 네트워크 내의 라우팅 테이블을 작성하거나 갱신한다.
< 라우터의 네 가지 요소 >
- 입력 포트
네트워크 외부로부터 패킷을 수신하고 라우터 내부로 전달한다.
들어오는 링크 반대편에 있는 링크 계층과 상호 운용하기 위해 필요한 링크 계층 기능을 수행한다.
가장 중요한 것은 입력 포트에서 검색 기능(Lookup)을 수행하는 것으로, 입력 포트의 포워딩 테이블을 참조하여 패킷의 목적지 주소를 기반으로 스위치 구조를 통해 적합한 출력 포트를 결정한다.
제어 패킷(예: 라우팅 프로토콜 메시지)은 입력 포트에서 라우팅 프로세서로 전달되어 제어 기능에서 사용된다. - 스위치 구조(Switching Fabric)
라우터의 입력 포트와 출력 포트를 연결한다. 스위치 구조는 라우터 내부에 포함되어 있다.
스위치 구조 설계 방식에는 메모리 기반, 버스 기반, 크로스바 기반이 있고, 아래에서 이에 대해 다룬다. - 출력 포트
스위치 구조에서 수신한 패킷을 저장(버퍼링)하고 필요한 링크 계층 및 물리 계층 기능을 수행하여 출력 링크로 패킷을 전송한다. - 라우팅 프로세서
라우팅 프로세서는 제어 평면 기능을 수행한다. 라우터의 경로 설정 및 관리를 담당한다. 기존의 라우터와 SDN 라우터의 동작이 다르다.- 기존 라우터
라우터 프로세서가 라우팅 프로토콜을 실행한다.
라우팅 프로토콜을 실행하고 라우팅 테이블과 연결된 링크 상태 정보를 유지 관리하며 라우터의 포워딩 테이블을 계산한다. - SDN 라우터
원격 컨트롤러와 통신하여 원격 컨트롤러에서 계산된 포워딩 테이블 엔트리를 수신하고 라우터의 입력 포트에 이러한 엔트리를 설치한다.
- 기존 라우터
입력 포트와 출력 포트, 스위치 구조는 라우터의 성능을 결정짓는 핵심 요소로, 고속 처리를 위해 거의 대부분 하드웨어로 최적화되어서 구현되어 있다.
< 목적지 기반 포워딩과 일반화된 포워딩 >
- 목적지 기반 포워딩
포워딩 시에 최종 목적지만을 고려해서 출력 포트를 결정하는 포워딩 방식으로, 가장 간단하고 표준적인 방법이다.
입력 포트는 패킷의 목적지 IP 주소를 확인하고 이를 바탕으로 포워딩 테이블을 조회하여 출력 포트를 결정한다. - 일반화된 포워딩
포워딩 시에 최종 목적지뿐만 아니라 출발지나 여러 다른 임의의 정보를 토대로 출력 포트를 결정하는 포워딩 방식이다.
보다 복잡한 정책 기반 포워딩을 지원한다.