Post

네트워크 세부적으로 살펴보기

네트워크 세부적으로 살펴보기

이번에 살펴볼 개념은 크게 세 가지이다. 바로 통신 과정에서 정보를 올바르게 주고받기 위해 합의된 규칙이나 방법을 의미하는 프로토콜, 통신이 일어나는 구조를 계층화한 네트워크 참조 모델, 통신 과정에서 이루어지는 캡슐화(역캡슐화)이다.

1. 프로토콜

현대 인터넷에서 호스트 간 메세지를 교환하는 방법으로 사용되는 패킷 교환 방식은 택배를 주고 받는 행위와 닮아있다. 송신자가 택배를 발송하고 수신자가 택배를 문제없이 받는 과정에 패킷 교환 방식을 빗대어 보면 아래와 같다.

  1. 선물할 책(페이로드)를 택배 상자에 담는다.
  2. 배송 주소 등 택배 기사가 읽을 메세지(헤더)를 작성하고 첨부한다.
  3. 택배 기사(네트워크 장비)를 통해 발송한다.

영수(수신지 호스트)가 책을 택배로 보낼 때 택배가 병철(송신지 호스트)에게 올바르게 배송되려면 택배 기사님이 택배 송장에 적힌 메세지를 이해할 수 있어야 한다. 그리고 병철이가 본인에게 온 택배가 맞는지 아닌지 판단하려면 병철이도 송장의 내용을 이해할 수 있어야 한다. 다시 말해, 언어가 통해야 한다. 만약 수신지, 수신자, 발송자(송신자) 등의 정보가 택배 기사님이 이해할 수 없는 언어로 적혀 있다면 택배를 제대로 배송할 수 없다.

조금 더 나아가 택배 배송 과정에 여러 명의 택배 기사가 필요하다면 택배 기사끼리 주고받는 언어도 서로 통해야 한다. 네트워크에서 이러한 언어의 역할을 하는게 바로 프로토콜이다. 언어가 정보를 주고받기 위해 사회적으로 합의된 의사소통 방식이라면, 프로토콜은 노드 간에 정보를 올바르게 주고받기 위해 합의된 규칙이나 방법을 의미한다.

택배 예시처럼 네트워크에서도, 서로 다른 통신 장치들이 정보를 주고받으려면 프로토콜이 통해야 한다. 우리 모두가 인터넷을 이용할 수 있는 것도, 이메일을 주고받을 수 있는 것도, 파일을 주고받을 수 있는 것도 모두 상대 호스트와 동일한 프로토콜을 사용하기 때문이다.

IP는 패킷을 수신지까지 전달하기 위해 사용되는 프로토콜이다.

IP 주소를 MAC 주소로 대응하기 위해서 ARP 라는 규칙으로 정보를 주고받아야 한다.

ARP는 192.168.1.1 과 같은 형태의 ‘IP 주소’를 A1:B2:C3:D4:E5:F6 과 같은 형태의 ‘MAC 주소’로 대응하기 위해 사용되는 프로토콜이다.

중요한 점은 모든 프로토콜에는 저마다의 목적과 특징이 있다는 점이다. 프로토콜마다 목적과 특징이 다르기에 이에 부합하는 헤더의 정보가 달라질 수 있다.


2. 네트워크 참조 모델

네트워크로 메세지를 송수신하는 것과 비슷한 택배의 예시를 다시 살펴보면, 선물할 책을 보내는 과정을 정확하게 반대로 한 게 영수가 택배를 받는 과정과 같다는 걸 알 수 있다.

다시 말해 택배를 주고받는 과정에는 정형화된 순서가 있다. 네트워크도 마찬가지로 정보를 주고받을 때 정형화된 여러 단계를 거친다.

이 과정을 계층으로 표현할 수 있는데, 통신이 일어나는 각 과정을 계층으로 나눈 구조를 네트워크 참조 모델 또는 네트워크 계층 모델이라 한다.

이와 같이 통신 과정을 계층으로 나눈 이유는 크게 두 가지이다.


첫째, 네트워크 구성과 설계가 용이하다.

각 계층이 수행해야 할 역할이 정해져 있어 계층의 목적에 맞게 프로토콜과 네트워크 장비를 구성할 수 있다.

물론 모든 프로토콜이나 네트워크 장비가 참조 모델과 완벽하게 들어맞는 것은 아니다. 때로는 명확하게 구분되지 않을 수도 있다.


둘째, 네트워크 문제 진단과 해결이 용이하다.

통신 과정에서 문제가 발생하더라도 문제의 원인을 계층별로 진단하는게 수월해진다. 가령 잘되던 인터넷이 갑자기 안 되면 가장 먼저 최하위에 있는 1계층에서 발생한 문제인지 판단하기 위해 케이블 등 유무선 매체의 접속 상태를 확인해 볼 수 있다. 이상이 없다면 다음 2계층에서 발생한 문제인지 판단하기 위해 정보가 수신지까지 제대로 전달되었는지 진단해본다.

이렇듯 네트워크를 계층별로 진단하면 문제 발생 지점을 추측할 수 있어, 문제 진단과 해결이 수월하다는 장점이 있다.

이런 네트워크 모델로는 OSI 모델TCP/IP 모델이 있는데 이 것에 대해서는 다음의 글을 참고하자.


3. 캡슐화와 역캡슐화

패킷은 송신 과정에서 캡슐화가 이루어지고, 수신 과정에서 역캡슐화가 이루어진다.

(1) 캡슐화

송신 과정에서 헤더 및 트레일러를 추가해 나가는 과정을 캡슐화라고 부른다. 혹은 영문 그대로 인캡슐레이션이라고도 부른다.

(2) 역캡슐화

수신하는 과정에서 헤더 및 트레일러를 각 계층에서 확인한 뒤 제거한다. 이를 역캡슐화라고 한다. 영문 그대로 디캡슐레이션이라고도 부른다.


4. PDU

각 계층에서 송수신되는 메세지의 단위를 PDU$^{Protocol\ Data\ Unit}$라고 한다. 즉, 상위 계층에서 전달받은 데이터에 현재 계층의 프로토콜 헤더 및 트레일러를 추가하면 현재 계층의 PDU가 된다. OSI 모델의 각 계층에서의 PDU를 정리해보면 다음과 같다.

  • 응용, 표현, 세션 : 데이터
  • 전송 : 세그먼트, 데이터그램
  • 네트워크 : 패킷
  • 데이터 링크 : 프레임
  • 물리 : 패킷

PDU는 주로 전송 계층 이하의 메세지를 구분하기 위해 사용한다. 전송 계층보다 높은 계층에서는 일반적으로 데이터 혹은 메세지로만 지칭하는 경우가 많다.

This post is licensed under CC BY 4.0 by the author.