라우터 내부 구조
상위 레벨의 관점에서 본 일반적인 라우터 구조
입력 포트(input port)
- 여기서의 포트(port) → 물리적인 입출력 라우터 인터페이스를 의미
- 네트워크 애플리케이션 및 소켓과 관련된 소프트웨어 포트와는 명백히 다름
- 네트워크 애플리케이션 및 소켓과 관련된 소프트웨어 포트와는 명백히 다름
- 가장 중요한 기능 - 검색 기능
- 이는 가장 오른쪽 박스에서 발생
- 포워딩 테이블을 참조하여 도착된 패킷이 스위치 구조를 통해 라우터 출력 포트를 결정
→ 제어 패킷은 입력 포트에서 라우팅 프로세서로 전달된다.
- 맨 왼쪽 박스와 출력 포트의 맨 오른쪽 박스
→ 라우터로 들어오는 입력 링크로, 물리 계층 기능을 수행 - 들어오는 링크의 반대편에 있는 링크 계층과 상호 운용을 하기 위해 필요한 링크 계층 기능을 수행
- 이 링크 계층 기능은 입력 및 출력 포트에서 미들박스로 표시된다.
스위치 구조
- 스위치 구조는 라우터의 입력 포트와 출력 포트를 연결한다.
- 스위치 구조는 라우터 내부에 포함되어 있다.(네트워크 라우터의 내부 네트워크)
출력 포트(output port)
- 수신한 패킷을 저장하고 필요한 링크 계층 및 물리 계층 기능 수행하여 출력 링크로 패킷을 전송
- 스위치 구조로부터 패킷을 수신
- 링크가 양방향인 경우(양방향으로 트래픽을 전달하는 경우)
- 출력 포트는 일반적으로 동일한 링크의 입력 포트와 한 쌍을 이룸
라우팅 프로세서
- 제어 평면 기능을 수행
- 네트워크 관리 기능을 수행
기존의 라우터
- 라우팅 프로토콜을 실행
- 라우팅 테이블과 연결된 링크 상태 정보를 유지 관리
- 라우터의 포워딩 테이블을 계산
SDN 라우터
- 라우팅 프로세서는 원격 컨트롤러와 통신
- 원격 컨트롤러에서 계산된 포워딩 테이블 엔트리를 수신 후,
라우터의 입력 포트에 이러한 엔트리를 설치
- 원격 컨트롤러에서 계산된 포워딩 테이블 엔트리를 수신 후,
- 라우팅 프로세서는 원격 컨트롤러와 통신
라우터의 구성이 하드웨어로 구현되는 이유
- 라우터의 입력 포트, 출력 포트, 스위치 구조는 거의 항상 하드웨어로 구현된다.
- 가정
- 100 Gbps 입력 링크와 64바이트 IP 데이터그램이 존재
- 입력 포트는 다른 데이터그램이 도착하기 전에 데이터그램을 처리하는데 5.12ns만 가짐
- 가정에 근거한 이유
- 만약 N 포트가 라인 카드에서 결합되는 경우
→ 데이터그램 처리 파이프라인은 소프트웨어 구현에 대해 N배 더 빠르게 작동해야 함
- 만약 N 포트가 라인 카드에서 결합되는 경우
- 전달 하드웨어의 출처
- 라우터 공급 업체의 자체 하드웨어 디자인을 사용하거나 구입한 업체의 실리콘 칩으로 구현됨
데이터 평면과 라우터의 제어 기능의 관계
- 데이터 평면이 나노초(ns) 단위로 작동하는 동안,
라우터의 제어 기능은 밀리초(ms) 또는 2초 단위로 작동함
→ 따라서 이러한 제어 평면 기능은 일반적으로 소프트웨어로 구현 및 라우팅 프로세스에서 실행됨- 라우터의 제어 기능 → 라우팅 프로토콜 실행, 원격 컨트롤러와 통신 및 관리 기능 수행
- 라우팅 프로세서는 일반적으로 기존 CPU에서 실행되는 것이다.
비유를 통한 포워딩
- 가정
- 패킷 전송을 자동차가 교차로에 들어가고 나가는 것으로 비유
- 교차로가 원형 교차로
- 원형 교차로에 진입하려면 약간의 절차가 필요하다는 가정
원형 교차로 진입의 필요한 절차
목적지 기반 포워딩
- 자동차가 진입 장소에서 정차하고, 최종 목적지를 표시한다고 가정
- 지역 원형 교차로가 아닌 여행의 최종 목적지를 뜻함
- 지역 원형 교차로가 아닌 여행의 최종 목적지를 뜻함
- 입구에 있는 승무원이 최종 목적지를 검색
- 최종 목적지로 연결되는 원형 교차로 출구를 결정
- 운전자에게 어떤 원형 교차로 출구가 있는지 알려줌
- 자동차가 진입 장소에서 정차하고, 최종 목적지를 표시한다고 가정
일반화된 포워딩
- 승무원은 목적지 외에도 많은 요인을 토대로 자동차의 출구를 결정할 수 있다고 가정
- 예시 - 선택된 출구는 자동차를 출국한 국가에 따라 달라 수 있다.
- 예시 - 선택된 출구는 자동차를 출국한 국가에 따라 달라 수 있다.
- 결과
- 특정 주의 자동차는 하나의 출구만 사용
→ 느린 도로를 통해 목적지 도착 - 다른 주에서는 다른 출구를 사용할 수 있다
→ 초고속 도로를 경유하여 목적지에 도착 - 주행하기에 안전하지 않은 차는 차단되거나 회전 교차로를 통과하지 못할 수 있음
- 특정 주의 자동차는 하나의 출구만 사용
- 일반적인 포워딩 방식
→ 주어진 차량에 대해 임의의 많은 요인이 출구를 선택하는데 관여 가능
- 승무원은 목적지 외에도 많은 요인을 토대로 자동차의 출구를 결정할 수 있다고 가정
해석
- 진입로와 진입 장소 → 입력 포트(지역 발신 포트를 결정하는 검색 기능 포함)
- 원형 교차로 → 스위치 구조
- 원형 교차로 출구 도로 → 출력 포트
- 병목 현상이 발생할 수 있는 곳을 고려하는 것이 좋다.
- 다른 출입구에 다른 자동차가 들어오고, 다른 원형 교차로 출구 쪽이 가득 차 있는 경우
→ 차가 원형 교차로로 들어가면 원형 교차로 출구에서 나가려는 다른 차와 마주칠 수 있음
- 이때 다른 차의 출구도 미리 정해진 것이다.
- 다른 출입구에 다른 자동차가 들어오고, 다른 원형 교차로 출구 쪽이 가득 차 있는 경우