OSI 7계층에서 3계층을 맡고있는 네트워크 계층에 대해서 정리해보도록 하겠습니다.
❗ 네트워크 계층은 중간 라우터를 통한 라우팅을 포함하여 패킷 포워딩을 담당합니다.
Transport Layer에서도 설명을 해놨지만, 기본적으로 IP 서비스 모델은 호스트들 간에 논리적인 통신을 제공하는 최선형 전달 서비스(best-effot delivery service)라고 부릅니다.
이러한 이유 때문에 비신뢰적인 서비스(unreliable service)라고 불리기도 합니다.
사실, 앞부분에서 공부할 때 IP는 왜 이러한 특징을 가지고 있는지에 대해서 궁금증이 있었습니다.
해당 부분을 정리하면서 왜 이러한 특징을 가질 수 밖에 없는지 정리하는 방향으로 진행해 나가겠습니다.
네트워크 계층는 다른 위의 계층들과는 다르게 네트워크의 라우터마다 네트워크 계층의 일부가 존재하다는 것을 알 수 있습니다.
네트워크 계층은 크게 두 가지로 나누어서 설명할 수 있습니다.
각 라우터의 데이터 평면 역할은 입력 링크에서 출력 링크로 데이터그램을 전달하는 것입니다.
네트워크 제어 평면 역할은 데이터그램이 송신 호스트에서 목적지 호스트까지 로컬(local), 퍼 라우터(per-router) 포워딩을 조정하는 것입니다.
먼저, 데이터 평면과 제어 평면을 나눠서 살펴보기 전에 네트워크 계층의 근본적 역할에 대해서 살펴 보겠습니다.
네트워크 계층의 중요 기능은 크게 두 가지로 나누어 집니다.
네트워크 라우터에서 필수 불가결한 요소는 포워딩 테이블(fowarding table)입니다.
라우터는 도착하는 패킷의 헤더 필드 값을 조사하여 패킷을 포워딩 합니다.
라우팅 알고리즘은 라우터의 포워딩 테이블의 내용을 결정합니다.
이것은 라우팅 메시지를 교환하며 이루어지며 라우터마다 어느 라우터로 보낼지 결정하는 역할을 수행합니다.
네트워크 계층의 경우 라우팅 메시지를 통해서 계산하여 포워딩 테이블을 계산과 분배하는 작업을 하는 원격 제어 부분(컨트롤러)과 포워딩만을 하는 라우터로 나누어서 생각하면 됩니다.
즉, 제어 평면과 데이터 평면을 구분해서 생각하면 됩니다.
그림에서 보여지는 제어 평면적 접근 SDN(software definced networking)의 중심을 통해서 포워딩 테이블과 다른 라우팅 정보들을 포함한 메시지를 교환함으로써 소통을 할 수 있습니다.
네트워크 서비스 모델에서 제공하는 서비스들을 살펴보자.
패킷을 포워딩 할 때 쓰이는 용어가 두 가지가 있는데 혼동되어 사용되기도 하기 때문에 주의를 해야 합니다.
링크 계층 스위치(link-layer switch)라고 불리는 일부 패킷 스위치는 링크 계층 프레임의 필드 값에 근거하여 포워딩을 결정합니다.
라우터(router)라고 불리는 다른 패킷 스위치는 네트워크 계층 필드 값에 근거하여 포워딩을 결정합니다.
라우터와 스위치는 패킷 교환기입니다.
라우터와 스위치의 차이는 무엇을 인식하는가에 따라서 구분할 수 있습니다.
이것을 가능케 해주는 것이 캡슐화입니다.
이 부분에 대해선 여기까지 다루겠습니다.
여기서 한 가지 더 알아둘 점은 이전부터 쓰였던 페이로드에 대한 개념은 여기서 나오는 것입니다.
페이로드는 일반적으로 그 계층 상위로부터의 패킷을 의미합니다.
여기서부턴 이제 데이터 평면위주로 알아볼 것입니다.
이 부분에 관련해서는 다른 페이지에 정리를 해두겠습니다.
이 부분과 관련해서도 다른 페이지에 정리를 해두겠습니다.
결국 네트워크 계층에서는 포워딩과 라우팅을 수행하는 과정만으로 작업량이 상당합니다. 이 작업에 병행해서 데이터의 무결성까지 보장하는 것은 상당히 힘들 것이라고 생각됩니다.
실제로 네트워크 계층에서의 라우터는 라우터에 도착한 패킷을 IP주소를 확인하기 위해서 데이터그램까지 확인하는 과정 즉, 프레임의 페이로드에 들어있는 데이터그램을 확인하는 작업이 요구됩니다. 이러한 작업이 모든 라우터에서 수행이 될 경우 엄청난 지연이 동반될 것이라고 판단되어 집니다.
Reference