본문 바로가기

CS/네트워크

[Network] 프로토콜 계층(2)

반응형

프로토콜 계층이란?

이 글을 읽기 전에 알아두면 이해에 도움이 되는 내용을 따로 정리해 두었습니다. 해당 글을 먼저 읽고 오시는 걸 추천드릴게요! (이해가 되지 않거나 앞으로의 설명에 꼭 필요한 부분이 빠졌다고 생각되시는 내용은 댓글을 통해 알려주시면 수정하겠습니다)

 

[Network] 프로토콜 계층(1)

이번글은 네트워크 구조에 대해 정리해 보려고 합니다. 웹에 대해 공부를 하다보면 TCP/IP 라는 용어가 자주 등장해 그 용어 대해 이해하려고 하면 선수 지식들이 많다 보니 이번 글을 통해 초석

jminc00.tistory.com

 

호스트의 수가 늘어나면 그에 따라 네트워크도 매우 복잡해 질 수밖에 없습니다. 즉, 다양한 애플리케이션과 프로토콜, 여러 가지 종단 시스템과 종단 시스템 간의 연결, 라우터, 다양한 링크 레벨의 매체가 있을 수 있기 때문에 네트워크가 복잡해질 수 있습니다. 그렇다면 이 복잡한 네트워크를 어떻게 구조화할까요?

 

네트워크의 구조에 대한 논의를 위해 항공권 티켓을 구매하고 비행기를 이용하는 상황을 가정해보겠습니다. 

항공편을 이용하기 위해서는 일련의 과정에 대해 나열하면 다음과 같습니다. 

  • 출발 항공 측
    1. 티켓을 구입한다.
    2. 수하물을 검사한다.
    3. 비행기에 탑승한다.
    4. 활주로를 통해 비행기가 이륙한다.
    5. 목적지를 향해 비행기가 길을 찾아 이동한다.
  • 도착 항공 측
    1. 목적지를 향해 비행기가 길을 찾아 이동한다.
    2. 활주로를 통해 비행기가 착륙한다.
    3. 비행기에서 하차한다.
    4. 수하물을 찾는다.
    5. (여행이 만족스럽지 못했다는 가정하에) 티켓 에이전트에게 항의한다.

이 일련의 과정을 도식화한 그림을 보면 각 티켓, 수하물, 탑승(하차), 활주로 이륙(착륙), 비행기 라우팅 등 각 단계의 목적과 행동이 분리되어 있다는 것을 알 수 있습니다. 

항공 기능의 수평 계층화

이 일련의 과정과 유사하게 컴퓨터 네트워크도 계층화되어 있으며 각 계층은 바로 아래 계층 서비스를 이용함으로써(예. 탑승구 계층에서 이 착륙 계층의 활주로와 활주로 간의 승객 이동을 이용하는 것) 서비스를 제공합니다. 

 

계층구조는 크고 복잡한 시스템의 잘 정의된 특정 부분을 논의할 수 있다는 측면에서 중요합니다. 다시 말해 계층구조는 그 계층이 제공하는 서비스의 구현을 변경하는 것이 매우 용이하다는 것을 의미합니다. 항공편의 상황을 예로 들어 탑승구의 기능이 키 순서대로 타고 내리게 한다는 규칙으로 변하더라도 탑승구 계층은 사람을 싣고 내리는 서비스는 여전히 제공하므로 항공 시스템의 다른 계층은 영향을 받지 않습니다. 

 

정리하자면, 계층화는 계속해서 갱신되는 복잡하고 커다란 시스템의 경우, 시스템의 다른 요소에 영향을 주지 않고 서비스 구현을 변화시킨다는 점에서 이점을 갖습니다.

 

이러한 이유 때문에, 네트워크 프로토콜의 설계 구조를 제공하기 위해 네트워크 설계자는 프로토콜을 계층으로 조직합니다. 항공 시스템 구조에서 각각의 기능이 한 계층에 속하는 것처럼 각 프로토콜은 한 계층에 속합니다. (트랜스 포트 계층의 프로토콜을 링크 계층에 적용하지 않는다는 말입니다!) 또한 각 계층은 그 계층 내부에서 어떤 동작을 수행하거나, 직접 하위 계층의 서비스를 사용할 수 있습니다. 

인터넷 프로토콜 스택

위의 이미지는 인터넷 프로토콜 스택으로 5개의 프로토콜 계층이 5개로 분리되어 각자의 역할을 수행하고 있음을 알 수 있습니다. 그럼 각 계층의 역할에 대해 알아보겠습니다.

 

1. 애플리케이션 계층(Application Layer)

 

애플리케이션 계층은 최상위 계층으로, 애플리케이션 계층은 네트워크 애플리케이션과 애플리케이션 계층 프로토콜이 있는 곳이며, 사용자 또는 애플리케이션이 네트워크에 접속할 수 있게 해주는 계층입니다. (예를 들어, 페이스북, 인스타그램, 네이버 등 다양한 서비스 등을 포함합니다.) 

 

 

인터넷의 애플리케이션 계층은 HTTP(웹 문서 요청과 전송 제공), SMTP(전자메일 전송 제공), FTP(두 종단 시스템 간의 파일 전송 제공) 같은 많은 프로토콜을 포함합니다. 

 

해당 계층의 프로토콜은 다른 종단 시스템에 있는 애플리케이션과 정보 패킷을 교환하는 데 사용됩니다. 

 

2. 트랜스포트 계층(Transport Layer)

 

트랜스포트 계층은 애플리케이션 계층의 '비서'역할을 담당하는 계층입니다. 비서는 마스터의 업무에 차질이 생기지 않도록 마스터의 업무 외에 업무를 모두 수행하는 역할을 담당합니다. 트랜스포트 계층도 이와 유사한데 두 종단 시스템의 애플리케이션끼리 데이터를 주고받을 때 데이터의 손실이 발생하지 않았는지 체크하고 손실이 발생했다면 재전송을 요청하는 등 애플리케이션 계층으로 데이터를 전송하는데 문제가 없도록 관리합니다. 

 

트랜스포트 계층에서는 TCP와 UDP라는 두 가지 트랜스포트 프로토콜이 있으며 트랜스포트 계층 밑에 있는 네트워크 계층에서 데이터를 받고 애플리케이션 계층으로 데이터를 전달합니다. 

 

TCP는 연결 지향 서비스, UDP는 비연결지향 서비스라는 측면에서 차이가 있습니다. 연결지향 서비스는 목적지의 애플리케이션 계층 메시지 전달을 보장하고 흐름을 제어합니다. (송신자/수신자의 속도 일치) 즉, TCP는 데이터가 깨졌다던지 데이터가 제대로 전송이 되었다는 응답이 오지 않는 상황이 발생하면 반드시 재전송을 요청한다는 점에서 비연결 지향형과 차이가 있습니다. 비연결 지향형은 데이터가 깨졌을 때 재전송을 요청하지 않습니다. 예를 들어 동영상을 전송하는 경우에 TCP를 사용한다면 데이터 손실이 발생했을 때 다음 데이터를 재전송 요청을 하게 되고 사용자 입장에서는 동영상이 끊기는 상황이 자주 발생해 불편함을 느낄 수 있습니다. 때문에 동영상을 전송하는 경우는 UDP를 사용함으로써, 데이터가 손실되더라도 이후에 전송되는 패킷으로 대체하는 방법을 사용해 사용자의 불편함을 개선할 수 있습니다.(실제로 패킷이 손실되는 정도는 사람이 거의 느끼지 못한다고 합니다!)

 

3. 네트워크 계층

 

네트워크 계층은 "메일(mail)" 서비스와 성격이 유사합니다. 이메일을 전송하기 위해 목적지 주소와 내용을 전송하는 것처럼, 네트워크 계층도 트랜스포트 계층에서 목적지 주소와 세그먼트(네트워크 계층에서 전송하려는 데이터를 세그먼트라고 부릅니다!)를 네트워크 계층으로 전달하면, 네트워크 계층은 목적지 호스트의 트랜스 포트 계층으로 세그먼트를 운반하는 서비스를 제공합니다. 

 

네트워크 계층은 두 가지 중요한 IP 프로토콜과 라우팅 프로토콜을 갖습니다. IP에 대한 자세한 설명은 아래 링크를 참고해주세요! 

 

IP, Gateway,Subnet 이란?

1. IP 주소란? IP (Internet Protocol) 는 Internet 과 Protocol이 합쳐진 말이다. 그럼 Internet이란 뭘까? Internet 이란 이름처럼 inter + network 이다. 예를 들어서 여러개의 소규모 네트워크들이 연결되어..

jminc00.tistory.com

라우팅(길 찾기) 프로토콜이란 출발지와 목적지 사이에서 데이터그램(네트워크 계층에서 데이터를 의미합니다)이 이동하는 경로를 경정하는 역할을 담당합니다. 

 

4. 링크 계층(Link Layer)

 

인터넷의 네트워크 계층은 출발지와 목적지 간 일련의 패킷 스위치(인터넷에서는 라우터라고 부릅니다.)를 통해 데이터 그램을 라우트 합니다. 경로상의 한 노드에서 다른 노드로 패킷을 이동하기 위해 네트워크 계층은 링크 계층 서비스에 의존해야 합니다. 각 노드에서 네트워크 계층은 데이터그램을 아래 링크 계층으로 보내고 링크 계층은 그 데이터 그램을 경로상의 다음 노드에 전달합니다. 그리고 다음 노드에서 링크 계층은 그 데이터 그램을 상위 네트워크 계층으로 보냅니다. 

 

링크 계층 프로토콜의 예로는 이더넷과 와이파이를 예로 들 수 있습니다. 데이터 그램은 출발지에서 목적지로 가는데 여러 링크를 거치므로 데이터그램은 경로상의 각기 다른 링크에서 다른 링크 계층 프로토콜에 의해 처리될 수 있습니다.

 

예를 들어, 데이터그램은 하나의 링크에서는 이더넷에 의해 다루어지고 다음 링크에서는 PPP에 의해 다루어질 수 있습니다. 

 

5. 물리 계층(Physical Layer)

 

링크 계층의 기능이 전체 프레임을 한 네트워크 요소에서 이웃 네트워크 요소로 이동하는 것이라면 물리 계층의 기능은 프레임(링크 계층에서의 패킷을 부르는 말) 내부의 각 비트를 한 노드에서 다음 노드로 이동하는 것입니다. 이 계층의 프로토콜들은 링크에 의존하고 더 나아가 링크의 시제 전송 매체에 의존합니다.

 

예를 들어 이더넷은 여러 가지 물리 계층 프로토콜을 가지고 있는데 꼬임 쌍선용, 동축케이블용, 광케이블용등 각각의 경우에 비트는 다른 방식으로 링크 반대편으로 이동할 수 있습니다.

 

이상으로 프로토콜 계층에 대한 정리가 끝났습니다. 모든 계층에서 동일하게 적용되는 원리는 해당 계층과 맞닿아 있는 계층과 서로 상호작용하는데 일련의 약속(프로토콜)이 존재한다는 것입니다. 이해가 안 되거나 잘못된 내용이 있다면 댓글로 남겨주시면 감사하겠습니다!

반응형

'CS > 네트워크' 카테고리의 다른 글

[Network] 프로토콜 계층(1)  (0) 2022.10.02
HTTP 상태 코드  (0) 2022.08.25
HTTP/1.1 과 HTTP/2 의 차이점  (0) 2022.03.06
GET 과 POST의 차이  (2) 2022.01.13
IP, Gateway,Subnet 이란?  (0) 2022.01.04