[Network] Network Layer 1 - 네크워크 계층 Overview

chxghee·2024년 11월 8일
post-thumbnail

네트워크 계층

  1. 송신자
    송신자의 네트워크 계층은 트랜스포트 계층으로부터 세그먼트를 받아 캡슐화 해 datagrams으로 만든다.(IP헤더를 붙임)
    그리고 이 데이터 그램을 링크레이어에 전달하여 수신자에게 전송한다.

  2. 수신자
    받은 데이터그램의 IP헤더를 제거하여 트랜스포트 레이어로 세그먼트를 전달한다.

이 과정에서 라우터를 지나게 되는데,
라우터는 트랜스포트 계층과 애플리케이션 계층을 지원하지 않으므로 프로토콜 스택에서 네트워크 계층의 상위 계층은 존재하지 않는다.

  1. 라우터
    데이터그램의 IP 헤더 정보를 (혹은 더 많이) 확인한 뒤 올바른 출력 링크로 패킷을 보낸다.

각 라우터에는 다음 두개를 가진다.

  1. data plane : 입력 링크에서 출력 링크로 데이터그램을 전달한다.
  2. control plane : 데이터그램이 출발지 호스트에서 목적지 호스트까지 전달되게끔 로컬 포워딩, 라우터별 포워딩을 대응시킨다.

포워딩과 라우팅의 차이

1. 포워딩(전달)

라우터는 패킷이 도착하면 해당 패킷을 적절할 출력 링크로 보내는 것이다.

매우 짧은 시간 단위(보통 몇 나노초)를 갖기에 대표적으로 하드웨어에서 실행된다.

2. 라우팅

네트워크 전반에 걸쳐 출발지에서 목적지까지 데이터그램의 전체 경로를 결정하는 것이다.

데이터를 송신할 때 네트워크 계층은 알고리즘을 라우팅 알고리즘을 통해 패킷 경로를 결정한다.

알고리즘을 라우팅 알고리즘: 각각의 라우터의 포워딩 테이블을 작성하는 것
(시간이 오래걸려 소프트웨어에서 실행된다.)

즉 포워딩은 어느 교차로를 빠져나오지? 하는 것과 같고,
라우팅은 출발지에서 목적지로 가는 전체적인 경로의 설정이라 생각하면 된다.



Data Plane과 Control Plane

Data Plane

라우터에서 입력 링크에서 출력 링크로 데이터 그램을 전달하는 것 (포워딩)

즉, 각 라우터에서 데이터그램이 어떻게 포워딩 되는지를 담당한다.
(Local, per-router)

일반적으로는 패킷의 헤더의 IP정보와 포워딩 테이플을 매핑하여 적절한 출력 링크로 패킷을 올려보낸다.

Control Plane

전체적인 네트워크에서 패킷이 전송되는 data path를 결정하는 것 (라우팅)

전반적인 네트워크상에서 데이터가 어떻게 라우팅 되는지를 담당한다.
(network-wide logic)

  1. 전통적인 라우팅 알고리즘
    각 라우터에서 자신의 포워딩 테이블을 결정한다.
    (이웃 라우터와 주고 받은 정보를 바탕으로 테이블 생성)
  1. Software Defined Networkin (SDN)
    외부의 중앙 서버 각 라우터로 부터 정보를 수집하여 포워딩 테이블을 생성하여
    라우터에 전달한다. (중앙 서버에서 직접 구현할수 있더 좀 더 유연하다)


네트워크 서비스 모델

네트워크의 서비스 모델에는 다음의 종류가 있다.

  1. 각각의 데이터 그램에서의 서비스

    • 송신 -> 수신으로의 데이터의 전달을 보장해야 한다.
    • 제한시간 안에 데이터를 전달해야 한다.
  2. 데이터 그램의 flow에 대한 서비스

    • 순서가 맞게 도착해야 한다.
    • 최소 대역폭을 보장해야 한다.
    • 패킷 간 도착 시간 간격의 변화 제한 (타이밍)
      (실시간 비디오통신에서는 일정한 간격으로 패킷을 전달해야 한다)

하지만 네트워크 레이어는 Best Effort 서비스이다.

  1. 목적지 까지의 패킷 도착 보장 X
  2. 타이밍 보장 X
  3. 순서 보장 X
  4. 일정 수준 이상의 대역폭 보장 X

앞서 말한 서비스를 보장해 주진 못한다.
하지만 보장해 주기 위해 최선을 다해서 Best Effort 서비스이다.


그럼에도 Best-Effort 서비스 모델을 사용하는 이유

위의 서비스들을 보장해 주진 못하지만 우리는 네트워크 레이어를 통해 잘 통신을 하고 있다.

그럼에도 불구하고 Best-Effort 서비스 모델 다음과 같은 이유가 있기 때문이다.

  • 단순한 메커니즘
    간단하 때문에 인터넷이 널리 배포되고 채택될 수 있었다.

  • 충분한 대역폭
    충분한 대역폭이 제공되면, 실시간 애플리케이션(통화, 영상 스트리밍)도 대부분의 경우 "충분히 좋은" 성능을 발휘할 수 있다.

  • 분산된 애플리케이션 계층 서비스
    (데이터센터, CDN)가 클라이언트와 가까운 곳에서 서비스 제공을 가능하게 하여 효율성을 높였기 떄문이다.

  • 탄력적인 서비스의 혼잡 제어
    (TCP의 혼잡 제어)덕분에 네트워크 효율성 증가했다.

profile
다 같이 화이팅! 🙋‍♂️

0개의 댓글