학교공부/[컴퓨터 네트워크]

[컴퓨터 네트워크] - Protocol layers와 Encapsulation

윈디개 2025. 4. 12. 17:36

 지난 정리글에서는 보안과 역사에 대해서 정리했다. 이번 글에서는 protocol의 계층들에 대해서 정리해보려고 한다.

 

 protocol은 앞서 Network에서 사용하는 규칙이라고 했는데, Network에서는 5계층이 존재한다. 이 5계층에 대해 정리하기 전에 이와 비슷한 구조를 가진 비행기 여행으로 예시가 있다.

 

비행기로 여행을 가려면, 위의 순서로 진행된다.

  1. 티켓을 구매하고,
  2. 짐을 부치고,
  3. 게이트를 통과하고,
  4. 이륙장에서 이륙하고
  5. 비행기가 목적지 경로를 설장한 뒤 이동한다. 

비행기가 목적지에 다다르면, 위 과정과 반대로

  1. 비행기가 목적지에 도착하면,
  2. 이/착륙장에서 착륙하고
  3. 출국장 게이트를 통과하고,
  4. 짐을 다시 찾고
  5. 티켓을 판매하진 않지만 여기서는 비행중 피드백을 작성하는 것이라고 했다.

즉, 반대 과정과 정확히 Mapping이 된다. 그럼, 이 비행기 여행 과정의 mapping들을 어떻게 표현할까?

  1. ticket관련 - ticekting service(1-5)
  2. baggage 관련 - baggage service(2-4)
  3. gate 관련 - gate service(3-3)
  4. runway 관련 - runway service(4-2)
  5. routing 관련 - routing service(5-1)

괄호 안 번호는 처음 것이 이륙과정, 뒤에 것이 착륙과정 번호로 대응되는 것들을 적어 준 것이다. 즉, 각 계층은 논리적으로 연결돼 있고, 각 계층에서는 그것들과 관련된 그들만의 서비스를 제공한다. 그렇지만, 그 전의 계층에 의존한 채로 일을 처리한다. 전 계층에 의존한 채로 일을 처리한다는 개념은 앞으로도 계속 등장할 예정이니 꼭 기억해 두어야 한다.


 

1. Protocol Layers

 그렇다면 인터넷도 5계층으로 나눠져 있다고 했는데, 왜 5계층, 즉 layering 방식을 택했을까? 이런 layer 방식을 선택하면 시스템의 유지 및 보수가 쉬워지기 때문이다. 예를 들어, 5계층에서 3계층에 대해서 지금보다 더 좋은 방법이 나왔다고 가정하자. 그럼 layer 방식에서는 3계층만 더 좋은 버전으로 바꿔주면 된다. 그렇지만 계층 구조로 되어 있지 않았다면? 고치지 않아야 할 부분도 포함에 전체적으로 수정을 해줘야 될 것이다. 그렇기 때문에 internet에서는 layering 방식을 선택했다.

 

 그럼 이제 진짜 계층형식 Inernet Protocol을 살펴보자. 5계층으로 나눠진 Internet은 다음 그림과 같다.

인터넷의 5계층

 

각 계층에 대해서는 앞으로 차차 자세히 설명할 예정이니 이번에는 간단히 무슨 일만 하는지 정리하고 넘어가보자.

  • application: 우리가 인터넷을 사용하는 이유 그 자체 ex)HTTP(배울 것), IMAP, SMTP, DNS(배울 것) - 전송단위: 메세지
  • transport: process-process 데이터 이동 담당 ex) TCP, UDP - 전송단위: segment
  • network: datagram의 routing 담당 ex) IP - 전송단위: datagram
  • link: 인접한 네트워크로의 데이터 이동 ex) Ethernet, WiFi, PPP - 전송단위: frame
  • physical: 물리적 네트워크에서 실제 전송 - 전송단위: bit

 

 여기서 apllcation이 그 이전 layer인 transport에 의존한다는 예시를 들어보자. 예를들어 application의 HTTP에서 구글을 검색했다고 가정해보자. 그럼 결과적으로 구글의 페이지가 나올 것이다. 이 때, 구글 페이지는 우리가 누가 보내줬을까? 현재 위치에서 가장 가까운 Google의 content provider가 제공을 해줬을 것이다. 즉 google의 서버에서 데이터를 보내서 우리에게 google 페이지가 보이는 이것이 transport 계층이 하는 일이고 이를 통해 우리가 google 페이지를 볼 수 있게 되는 것이다.

 

 추가적으로 link 계층에서의 데이터 이동을 다음 그림을 통해 확인해보자.

A에서 B로의 데이터 이동

 

 위 그림은 A에서 B로 데이터를 전송한다고 가정했을 때, A와 B사이의 여러 network(파란색 원)를 표시한 것이고 실제 데이터 이동경로(빨간색)을 그림으로 나타낸 것이다. 이 때, link계층에서는 파란색 원 내부에서 전송될 때, 만약, Ethernet으로 이루어진 network라면 다음 계층으로 전달을 위해 Ethernet frame으로 만들어진 패킷을 전송하게 되는 것이다. 만약 다음 네트워크에서는 PPP로 이루어져 있으면 PPP로 만들어 패킷을 전송하게 되고 그렇게 목적지까지 도착하게 되는 것이다. 여기서도 network계층이 link계층에 의존한다는 것을 확인 할 수 있다.

 

 즉 다시 정리하면, 위 그림에서 network계층은 IP주소를 기반으로 A에서 B까지의 전체 경로를 책임지고, link계층은 netowrk 내부에서 다음 hop까지의 데이터 이동을 책임지게 된다. 그래서 전체 이동을 위해선 link계층의 도움이 필요하기 때문에 의존한다고 볼 수 있는 것이다.

 

ps. 5계층을 만들 때 참고한 ISO 모델


2. Encapsulation

 Encapsulation은 network에 있어서 중요한 부분이다. 각 계층에 맞게 encapsulation을 진행해 다음 계층으로 전달하고, 목적지에 도착했을 때는, encapsulation 반대로 각 계층에서 옳게 된 목적지로 왔는지 확인하고 encapsulation 헤더를 제거한 뒤 다음 계층에 전달해준다.

Encapsulation과 Decapsulation 과정

 

 위 그림처럼, Encapsulation은 상위계층에서 자신만의 헤더를 보내고자 하는 Message에 차례차례 붙이고 하위계층으로 전달해 준다. 그리고 목적지에 도착했을 때, 반대로 Decapsulation 과정을 거쳐 하위계층에서 올바른 도착지에 맞는지 헤더를 통해 확인한 뒤 헤더를 떼고 상위계층으로 패킷을 전달해준다. 

 

 결국, 각 계층에서의 관점으로만 보면, application은 실제 메세지만 전달하고 실제 메세지만 받은 것이고, transport계층은 메세지와 transport 헤더가 붙은 segment를 주고 받은 것이고 나머지 계층도 똑같이 본인이 상위계층에서 받은 것을 그대로 전달하게 된 것이다. 

 

 즉 실제 데이터는 다음그림과 같이 전송된다.

실제 데이터의 encapsulation과 전달 과정

 


여기까지 전체적인 Internet과 관련해 1장의 Introduction을 마쳤다. 다음 글부터는 Application에 대해서 배운 것들에 대해 정리해보려고 한다.