호우동의 개발일지

Today :

article thumbnail

두 호스트 사이에 네트워킹이 이뤄지는 과정

  • 두 호스트 사이에는 중계 라우터가 있다고 가정

과정

  1. 송신자 네트워크 계층은 본인의 트랜스포트 계층으로부터 세그먼트를 얻는다.
  2. 각 세그먼트를 데이터그램으로 캡슐화하고, 인접한 라우터에게 데이터그램을 전송
  3. 수신 호스트의 네트워크 계층은 트랜스포트 계층 세그먼트를 추출 후,
    본인의 트랜스포트 계층가지 전달

  4. 네트워크 제어 평면에 의해 출발지 ~ 목적지 호스트까지 전송되도록 함
    이때 로컬 포워딩, 라우터 별 포워딩 등을 대응시킴

의미

  • 각 라우터 데이터 평면 역할
    → 입력 링크에서 출력 링크로 데이터그램을 전달하는 것

  • 네트워크 제어 평면의 근본적인 역할
    → 데이터그램이 출발지 ~ 목적지까지 전달되게끔 로컬, 라우터별 포워딩을 대응시킨 것


라우터 프로토콜 스택

라우터 프로토콜 스택
라우터 프로토콜 스택

  • 트랜스포트 계층과 애플리케이션 계층을 지원하지 않음
    → 프로토콜 스택에서 네트워크 계층의 상위 계층은 존재 X

 

 


포워딩과 라우팅 : 데이터 평면과 제어 평면


네트워크 계층의 주요 기능

  • 네트워크 계층의 근본적 역할 → 송신 ~ 수신 호스트로 패킷을 전달하는 것
  • 포워딩(전달)과 라우팅 2가지가 주요 기능

 

포워딩(전달)

  • 패킷이 라우터 입력 링크에 도달했을 때
    → 라우터는 그 패킷을 적절한 출력 링크로 이동시켜야 함
    • 예시
      • 송신 호스트에서 R1 라우터에 도착했을 때
        → 수신 호스트로 가기 위한 경로상에 있는 라우터로 전달돼야 함

  • 데이터 평면에서 실행되는 포워딩의 기능
    • 패킷이 라우터에서 나갈 때 막힐 수도 있음
      • 패킷이 악의가 있는 호스트로부터 보일 수 있음

    • 복제되어 여러 링크로 전송될 수 있음.

 

라우팅

  • 패킷을 전송할 때 네트워크 계층은 패킷 경로를 결정
    → 이러한 경로를 계산하는 알고리즘을 라우팅 알고리즘이라고 함

  • 패킷 전송 라우팅은 네트워크 계층의 제어 평면에서 실행됨

 


포워딩과 라우팅의 차이점

  • 포워딩(forwarding)
    • 매우 짧은 시간 단위를 갖는다.
      → 대표적으로 하드웨어에서 실행됨

  • 라우팅(routing)
    • 네트워크 전반에 걸쳐 출발지에서 목적지까지 데이터그램 종단 경로를 결정
    • 라우팅은 보통 긴 시간(보통 초) 단위를 갖는다.
      → 대표적으로 소프트웨어에서 실행됨

 

예시를 통해 차이점 명확하게 구분하기

  • 가정 : 부산에서 서울까지 여행한다고 가정
  • 여행 동안에 운전자는 많은 교차로를 지난다.
    • 포워딩 ← 한 교차로를 지나는 과정
    • 차가 하나의 도로에서 교차로로 들어서면, 다음에 어떤 도로로 갈지 결정

  • 여행을 시작하기 전 운전자는 부산에서 서울까지 지도를 살펴보는데,
    일련의 교차로에 연결된 도로에서 이용 가능한 경로를 선택한다.
    • 라우팅 ← 부산에서 서울까지 여행을 계획하는 과정