Network Layer(네트워크 계층)

서정범·2023년 4월 23일
0

네트워크

목록 보기
7/26

Network Layer

OSI 7계층에서 3계층을 맡고있는 네트워크 계층에 대해서 정리해보도록 하겠습니다.

네트워크 계층은 중간 라우터를 통한 라우팅을 포함하여 패킷 포워딩을 담당합니다.

Transport Layer에서도 설명을 해놨지만, 기본적으로 IP 서비스 모델은 호스트들 간에 논리적인 통신을 제공하는 최선형 전달 서비스(best-effot delivery service)라고 부릅니다.

이러한 이유 때문에 비신뢰적인 서비스(unreliable service)라고 불리기도 합니다.

사실, 앞부분에서 공부할 때 IP는 왜 이러한 특징을 가지고 있는지에 대해서 궁금증이 있었습니다.

해당 부분을 정리하면서 왜 이러한 특징을 가질 수 밖에 없는지 정리하는 방향으로 진행해 나가겠습니다.

네트워크 계층는 다른 위의 계층들과는 다르게 네트워크의 라우터마다 네트워크 계층의 일부가 존재하다는 것을 알 수 있습니다.

네트워크 계층은 크게 두 가지로 나누어서 설명할 수 있습니다.

  • 데이터 평면
  • 제어 평면

각 라우터의 데이터 평면 역할은 입력 링크에서 출력 링크로 데이터그램을 전달하는 것입니다.

네트워크 제어 평면 역할은 데이터그램이 송신 호스트에서 목적지 호스트까지 로컬(local), 퍼 라우터(per-router) 포워딩을 조정하는 것입니다.

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

먼저, 데이터 평면과 제어 평면을 나눠서 살펴보기 전에 네트워크 계층의 근본적 역할에 대해서 살펴 보겠습니다.

네트워크 계층의 중요 기능은 크게 두 가지로 나누어 집니다.

  • 포워딩(전달): 패킷이 라우터의 입력 링크에 도달했을 때 라우터는 그 패킷을 적절한 출력 링크로 이동시켜야 합니다. 이것은 각각의 라우터 관점에서 일어나는 작업입니다.
  • 라우팅: 송신자가 수신자에게 패킷을 전송할 때 네트워크 계층은 패킷 경로를 결정 해야 합니다. 이것은 송신자와 수신자가 라우터를 통해서 데이터를 전달할 때 어떤 라우터를 통해서 전달할지 결정하는 작업입니다.
    전체적인 라우터 관점에서 일어나는 작업입니다. 이러한 경로를 계산하는 알고리즘을 라우팅 알고리즘(routing algorithm)이라고 합니다.

네트워크 라우터에서 필수 불가결한 요소는 포워딩 테이블(fowarding table)입니다.

라우터는 도착하는 패킷의 헤더 필드 값을 조사하여 패킷을 포워딩 합니다.

제어 평면과 데이터 평면

라우팅 알고리즘은 라우터의 포워딩 테이블의 내용을 결정합니다.

이것은 라우팅 메시지를 교환하며 이루어지며 라우터마다 어느 라우터로 보낼지 결정하는 역할을 수행합니다.

네트워크 계층의 경우 라우팅 메시지를 통해서 계산하여 포워딩 테이블을 계산과 분배하는 작업을 하는 원격 제어 부분(컨트롤러)과 포워딩만을 하는 라우터로 나누어서 생각하면 됩니다.

즉, 제어 평면과 데이터 평면을 구분해서 생각하면 됩니다.

그림에서 보여지는 제어 평면적 접근 SDN(software definced networking)의 중심을 통해서 포워딩 테이블과 다른 라우팅 정보들을 포함한 메시지를 교환함으로써 소통을 할 수 있습니다.

네트워크 서비스 모델

네트워크 서비스 모델에서 제공하는 서비스들을 살펴보자.

  • 보장된 전달: 패킷이 소스 호스트에서부터 목적지 호스트까지 도착하는 것을 보장합니다.
  • 지연 제한 이내의 보장된 전달: 패킷의 전달 보장뿐만 아니라 호스트간의 특정 지연 제한안에 전달합니다.
  • 순서화(in-order) 패킷 전달: 패킷이 목적지에 송신된 순서로 도착하는 것을 보장합니다.
  • 최소 대역폭 보장: 송신과 호스트 사이에 특정한 비트 속도의 전송 링크를 에뮬레이트합니다. 송신 호스트가 비트들을 특정한 비트 속도 이하로 전송하는 한, 모든 패킷이 목적지 호스트까지 전달됩니다.
  • 보안(security) 서비스: 모든 데이터그램들을 소스 호스트에서는 암호화, 목적지 호스트에서는 해독을 할 수 있게하여 전송 계층(transport layer)의 모든 세그먼트(segment)들에 대해서 기밀성을 제공해야 합니다.

패킷을 포워딩 할 때 쓰이는 용어가 두 가지가 있는데 혼동되어 사용되기도 하기 때문에 주의를 해야 합니다.

  • 포워딩
  • 스위칭

링크 계층 스위치(link-layer switch)라고 불리는 일부 패킷 스위치는 링크 계층 프레임의 필드 값에 근거하여 포워딩을 결정합니다.
라우터(router)라고 불리는 다른 패킷 스위치는 네트워크 계층 필드 값에 근거하여 포워딩을 결정합니다.

라우터스위치패킷 교환기입니다.

라우터와 스위치의 차이는 무엇을 인식하는가에 따라서 구분할 수 있습니다.

  • 라우터는 네트워크 계층에서 사용하는 하드웨어로 IP 주소를 인식합니다.
  • 스위치는 링크 계층에서 사용하는 하드웨어로 MAC 주소를 인식합니다.

이것을 가능케 해주는 것이 캡슐화입니다.

이 부분에 대해선 여기까지 다루겠습니다.

여기서 한 가지 더 알아둘 점은 이전부터 쓰였던 페이로드에 대한 개념은 여기서 나오는 것입니다.

페이로드는 일반적으로 그 계층 상위로부터의 패킷을 의미합니다.

여기서부턴 이제 데이터 평면위주로 알아볼 것입니다.

네트워크 계층: 데이터 평면

이 부분에 관련해서는 다른 페이지에 정리를 해두겠습니다.

네트워크 계층: 제어 평면

이 부분과 관련해서도 다른 페이지에 정리를 해두겠습니다.

결론

결국 네트워크 계층에서는 포워딩과 라우팅을 수행하는 과정만으로 작업량이 상당합니다. 이 작업에 병행해서 데이터의 무결성까지 보장하는 것은 상당히 힘들 것이라고 생각됩니다.

실제로 네트워크 계층에서의 라우터는 라우터에 도착한 패킷을 IP주소를 확인하기 위해서 데이터그램까지 확인하는 과정 즉, 프레임의 페이로드에 들어있는 데이터그램을 확인하는 작업이 요구됩니다. 이러한 작업이 모든 라우터에서 수행이 될 경우 엄청난 지연이 동반될 것이라고 판단되어 집니다.


Reference

profile
개발정리블로그

0개의 댓글