호우동의 개발일지

Today :

article thumbnail

입력 포트 처리

입력 포트 처리
입력 포트 처리

  • 입력 포트의 라인 종단 기능과 링크 계층 처리
    → 라우터의 개별 입력 링크와 관련된 물리 계층 및 데이터 링크 계층을 구현

  • 입력 포트에서 수행되는 검색 ← 라우터 동작의 핵심
    • 포워딩 테이블을 사용하여 도착 패킷이 스위치 구조를 통해 전달되는 출력 포트를 검색

 


포워딩 테이블의 사용 및 갱신

  • 포워딩 테이블은 라우팅 프로세서에서 계산되거나 갱신됨 또는 원격 SDN 컨트롤러에서 수신됨
    • 위의 라우팅 프로세서는 다른 네트워크 라우터의 라우팅 프로세서와 상호작용하기
      위해 라우팅 프로토콜을 사용한다.

  • 포워딩 테이블은 라우팅 프로세서에서 입력 라인 카드로 복사된다.
  • 각 라인 카드에서 위와 같은 섀도 복사본을 사용할 때의 이점
    → 패킷 단위로 중앙 집중식 라우팅 프로세서를 호출하지 않게 됨
    → 병목 현상을 피할 수 있다.

 


목적지 기반 전송

  • 목적지 기반 전송 : 입력 패킷을 스위칭할 출력 포트가 각 패킷의 목적지 주소를 기반으로 함
    • 가장 간단한 경우
  •  

32비트 IP 주소일 경우의 문제점과 해결방안

  • 이 경우, 포워딩 테이블을(억지로 구현한다면) 모든 가능한 목적지 주소마다 하나의 엔트리 필요
    → 40억 개 이상의 가능한 주소가 있어야 함 → 이러한 옵션은 사실상 불가능

  • 가정
    • 라우터 0 ~ 3까지의 4개의 링크가 있음
    • 패킷을 아래와 같이 링크 인터페이스로 전달한다.

3개의 라우터와 범위
3개의 라우터와 범위

  • 위 그림에서는 라우터의 포워딩 테이블에 40억 개의 엔트리까지는 필요 X
    → 아래 그림처럼 4개의 엔트리를 갖는 포워딩 테이블이면 충분함
    프리픽스
    프리픽스
    • 포워딩 테이블에서 라우터는 패킷 목적지 주소의 프리픽스(prefix)를 테이블의 엔트리와 매치
    • 매치되는 엔트리가 존재하는 경우
      → 라우터는 패킷을 그 매치에 연관된 링크를 보냄

      • 예시
        • 패킷의 목적지 주소 : 11001000 00010111 00010110 10100001
          → 주소의 앞 21개의 비트 프리피긋가 첫 번째 엔트리와 매치
          → 이 패킷을 링크 인터페이스 0으로 보냄

        • 패킷의 목적지 주소가 그 어느 것과도 매치되지 않는 경우
          → 링크 인터페이스 3으로 보냄

  • 다수의 매치가 생기는 경우 → 최장 프리픽스 매치 규칙을 사용
    • 테이블에서 가장 긴 매치 엔트리를 찾고, 여기에 연관된 링크 인터페이스로 패킷을 보냄
    • 예시
      • 패킷의 목적지 주소 : 11001000 00010111 00011000 10101010
        • 처음 24비트는 고정 링크 인터페이스 1에 매치
        • 처음 21비트는 고정 링크 인터페이스 2에 매치
        • 최장 프리픽스 매치 규칙에 따라 링크 인터페이스 1로 패킷을 보낸다.

 


검색을 위한 하드웨어 로직 및 메모리 설계

  • 하드웨어 로직은 포워딩 테이블을 검색하여 가장 긴 프리픽스와 매치되는 것을 찾는 것
    • But, GB전송률에서 이 검색은 나노초 단위로 수행되어야 함
      → 하드웨어에서의 검색과 함께 대형 테이블을 통한 단순 선형 검색 이외의 기술이 필요

      • 빠른 검색 알고리즘이 필요하다는 뜻

  • 메모리는 내장형 DRAM과 빠른 SRAM 메모리가 있는 설계가 필요
    • 메모리 접속 시간에 특별한 주의를 기울여야 하기 때문
    • TCAM도 검색을 위해 자주 사용됨
      • 이를 사용하면 32비트 IP 주소가 메모리에 제공
      • 이 주소는 일정시간 동안 해당 주소에 대한 포워딩 테이블 엔트리의 내용을 반환
        • 시스코 시리즈 라우터 및 스위치는 백만 TCAM 포워딩 테이블 엔트리 이상을 수용 가능


입력 포트 처리에서의 기타 조치

  • 검색을 통해 패킷의 출력 포트가 결정되면 패킷을 스위치 구조로 보낼 수 있다.
    • 일부 설계에서는 다른 입력 포트로부터 패킷이 현재 구조를 사용하고 있는 경우,
      패킷이 스위칭 구조에 들어가는 것을 일시적으로 차단
      • 차단된 패킷은 입력 포트에 대기한 다음 나중에 교체하도록 예약됨

  • 입력포트 처리에서 ‘검색’이 가장 중요한 기능이긴 하지만 다른 많은 조치도 취해야 함
    1. 물리 및 링크 계층 처리가 되어야 함
    2. 패킷의 번호, 체크섬, TTL(time-to-live) 필드를 확인하고, 이후 두 필드를 다시 사용해야 함
    3. 네트워크 관리에 사용되는 카운터(수신된 IP데이터그램 수)를 갱신해야 함

 

매치 플러스 액션(match plus action)

  • 매치 : 목적지 IP 주소를 찾았을 때를 뜻함
  • 액션 : 패킷을 스위치 구조로 지정된 출력 포트로 전송하는 것
  • 라우터뿐만 아니라 많은 네트워크 장치에서 일반적으로 매치 플러스 액션을 사용
    • 매우 효과적이고 일반적인 개념이며, 포워딩 개념의 핵심

 

 


출력 포트 처리

출력포트 처리
출력 포트 처리

  • 출력 포트 처리는 출력 포트의 메모리에서 저장된 패킷을 가져와서 출력 링크를 통해 전송
    • 출력 포트 처리에서 수행되는 것
      • 전송을 위한 패킷 선택(스케줄링)
      • 큐 제거
      • 필요한 링크 계층 및 물리 계층 전송 기능 수행