Router

youngwiki
Pinkgo (토론 | 기여)님의 2025년 4월 10일 (목) 06:53 판 (Input port function)

상위 문서: Network Layer

개요

라우터(router)는 netwrok layer에서 가장 핵심적인 장치라 해도 과언이 아니다. 특히, SDN 관점에서 라우터는 컴퓨터 네트워크에서 데이터그램(datagram)을 목적지까지 전달하기 위해 경로를 선택하고 전달을 수행(forwarding)하는 네트워크 장비이다. 해당 문서에서는, 라우터의 forwarding 기능에 주목하여 라우터의 구조와, 패킷을 입력 링크(link)에서 적절한 출력 링크로 전달하는 과정에 주목하여 서술한다.

Structure of router

Figure 1에서 볼 수 있듯이, 라우터는 control plane과 data plane으로 나뉘어 구현된다. Control plane(routing)은 보통 소프트웨어적으로 구현되며, 해당 작업에는 보통 수 밀리초가 소요된다. Data plane(forwarding)은 보통 하드웨어적으로 구현되어 보통 수 나노초가 소요된다. 라우터은 일반적으로 네 가지의 구성 요소로 이루어져 있다고 할 수 있다.
먼저, 입력 포트(input port)이다. 이때 'port'라는 용어는 물리적인 입력/출력 인터페이스를 의미하며, applicaton layer의 socket이나, transport layer의 port 번호 등의 개념과는 완전히 구분되는 개념이다. 입력 포트는 아래와 같은 여러 핵심적인 기능을 수행한다.

  1. physical layer 기능: 수신되는 physical 링크를 라우터에서 종료시킨다.
  2. link layer 기능: 수신 링크의 반대편에 있는 link layer와 상호 운용하기 위한 기능이다.
  3. Look up 기능: Forwarding table을 참조하여 도착한 패킷이 switching fabric을 통해 어떤 출력 포트로 전달되어야 하는지를 결정한다.
  4. Control 패킷 처리: Routing 프로토콜 정보를 담은 control packet 등은 입력 포트에서 라우팅 프로세서로 전달된다.

두 번째로는 Switching fabric이 있다. Switching fabric은 입력 포트와 출력 포트를 연결하는 장치로, 일종의 '라우터 안의 네트워크'처럼 작동한다.
세 번째로는 출력 포트(output port)가 있다. 출력 포트는 switching fabric으로부터 수신한 패킷을 저장하고, link/physical layer 기능을 수행해 적절한 출력 링크로 해당 패킷을 전송한다.
마지막으로, 라우팅 프로세서(routing processor)는 control plane 기능을 수행한다.[1] 전통적인 라우터에서는 routing 프로토콜을 실행하거나, forwarding table을 계산하는 등의 작업을 한다. 하지만 SDN 라우터에서는 라우팅 프로세서가 remote controller와 통신하여 해당 controller가 계산한 forwarding table을 받아 입력 포트에 설치하는 등의 작업을 수행한다. 또한 네트워크 관리 기능도 한다.

Input port function

Figure 2는 입력 포트에 대한 더욱 자세한 이미지를 제공한다. 위 문단에서 다뤘듯이, 입력 포트에는 physical/link layer의 기능에 해당하는 line-termination과 data link processing과 같은 기능을 수행하는 부분도 존재하지만, 해당 문서에서는 입력 포트가 제공하는 look up 기능에 초점을 맞춘다. 입력 포트에서 조회되는 lookup은 라우터 동작의 핵심이다. 해당 과정에서 라우터는 forwarding table을 조회(lookup)하여 도착한 패킷이 어떤 출력 포트로 전달될 지를 결정한다.[2]
Forwarding table은 라우팅 프로세서로부터 별도의 bus를 통해 line card로 복사된다.[3] 이렇게 각 line card에 forwarding table의 복사본이 존재한다면, 각각의 입력 포트가 자체적으로 forwarding 결정을 내릴 수 있게 되고, 매 패킷마다 라우팅 프로세스를 호출하지 않아도 되므로 그 효율성이 증대된다. 이런 방식을 decentralized switching이라고 하며, 이는 figure 1의 라우팅 프로세스와 입력 포트 사이의 점선에 잘 나타나 있다.

이때 forwarding table을 이용하여 lookup을 진행하는 것은 기본적으로 패킷의 헤더 필드와 forwarding table을 비교하는 것이다. 이때 forwarding 방식은 destination-based forwardinggeneralized forwarding로 나뉘어진다.

각주

  1. 위의 세 구성 요소들은 data plane에 속한다.
  2. Forwarding table은 라우팅 프로세서가 다른 라우터들과 상호작용하여 계산하거나, remote SDN controller로부터 수신한다.
  3. line card는 많은 포트가 모여있는 하드웨어 장치이다.