티스토리 뷰

인터넷은 여러 요소들로 이루어진 매우 복잡한 시스템이다.

그런데 이렇게 아주 복잡하다면 네트워크 구조를 어떻게 조직해야 할까

❓❔❓

 

우리는 이러한 복잡한 구조를 쉽게 파악하기 위해

"계층화"

라는 개념을 이용한다.

 


항공 시스템을 통한 계층화의 이해

우선 이해하기 쉽게 항공 시스템을 살펴보자.

 

아래는 항공 여행 과정을 계층화해서 나타낸 것이다.

  • 티켓, 수하물, 게이트, 이륙/착륙, 비행기 라우팅 총 5개의 층으로 나눌 수 있다.

각 계층은

  1. 그 계층에서 어떤 동작을 취하고
  2. 그 계층 바로 아래 계층 서비스를 이용함으로써 서비스를 제공한다.
예)
티켓 계층에서 티켓을 구입하고
수화물 계층에서 티켓을 구매한 승객을 대상으로 수하물 전송 서비스를 제공한다.

 

항공 여행 과정의 계층화

 


계층화의 필요성

위의 항공 여행 과정을 통해 살펴봤듯이 계층구조는 크고 복잡한 시스템의 잘 정의된 특정 부분을 논의할 수 있게 해준다.

이렇듯 단순화는 매우 중요하다.

 

시스템이 계층 구조를 가짐으로 생기는 이점

  • 그 계층이 제공하는 서비스의 구현을 변경하는 것이 매우 쉽다.
  • 한 계층이 상위 계층에 같은 서비스를 제공하고 하위 계층의 서비스를 이용하는 한, 어떤 한 계층의 구현이 변하더라도 시스템의 나머지 부분은 변하지 않는다.
    • 시스템의 다른 요소에 영향을 주지 않고 서비스 구현을 변화시키는 능력은 계층화의 또 다른 중요한 이점이다.

 


인터넷 프로토콜(TCP/IP 5계층 모델)

항공 시스템 구조에서 각각의 기능이 한 계층에 속하는 것처럼 각 프로토콜은 한 계층에 속한다.

 

프로토콜

  • 컴퓨터끼리의 대화를 통신이라고 하며 이 때 컴퓨터가 하는 언어를 프로토콜이라고 한다.
  • 컴퓨터들은 약속된 대로 대화해야 하며 프로토콜이 같아야 통신이 가능하다.
  • 같은 계층 간의 정해진 약속이다.

즉 프로토콜이란 컴퓨터끼리 통신하기 위해 필수인 서로 간의 통신을 위한 규약이나 통신 방식에 대한 약속이다.

 

각 계층은

  1. 그 계층 내부에서 어떤 동작을 수행하거나
  2. 직접 하위 계층의 서비스를 사용한다.

 

이러한 다양한 계층의 프로토콜을 모두 합하여 프로토콜 스택이라고 한다.

인터넷 프로토콜 스택은 5개 계층으로 구성된다.

🟡 TCP/IP 5계층 모델이라고 한다.

 

5개 계층의 인터넷 프로토콜 스택


애플리케이션 계층

한 종단 시스템에 있는 애플리케이션이 다른 종단 시스템에 있는 애플리케이션과 정보 패킷을 교환하는 데 이 프로토콜을 사용한다.

 

✖️애플리케이션 계층에서의 이 정보 패킷을 메시지(message)라고 부른다.

 

인터넷 애플리케이션 계층은 다음과 같은 프로토콜을 포함한다.

  • HTTP: 웹 문서 요청과 전송을 위해 제공
  • SMTP: 전자메일 전송을 제공
  • FTP: 두 종단 시스템 간의 파일 전송 제공

 

"www.naver.com"을 주소창에 입력하게 되면

클라이언트는 DNS 서버에게 아이피주소를 요청하게 되고

DNS 서버는 아이피 주소를 제공한다.

그리고 트랜스포트 계층으로 데이터를 전달한다.

 

 


트랜스포트 계층

클라이언트와 서버 간에 애플리케이션 계층 메시지를 전송하는 서비스를 제공한다.

 

인터넷에는 다음과 같은 트랜스포트 프로토콜이 있다.

  • TCP: 애플리케이션에게 연결지향형 서비스를 제공한다.
    • 이 서비스는 목적지로의 애플리케이션 계층 메시지 전달 보장과 흐름제어를 포함
    • 긴 메시지를 짧은 메시지로 나누고 혼잡제어 기능을 제공하여, 네트워크가 혼잡할 때 출발지의 전송속도를 줄이도록 한다.
  • UDP: 애플리케이션에 비연결형 서비스를 제공한다.
    • 이 서비스는 신뢰성, 흐름제어, 혼잡제어를 제공하지 않는 아주 간단한 서비스다.

 

✖️트랜스포트 계층 패킷을 세그먼트(segment)라고 한다.

 

통신하기 쉽게 HTTP 메세지를 패킷으로 분해하고 
분해된 데이터를 판별하기 위해 일련번호를 부여한다.
그리고 네트워크 계층으로 데이터를 전달한다.


네트워크 계층

한 호스트에서 다른 호스트로 데이터그램을 라우팅하는 책임을 진다.

 

  1. 트랜스포트 계층 프로토콜은 트랜스포트 계층 세그먼트와 목적지 주소를 네트워크 계층으로 전달한다.
  2. 네트워크 계층은 목적지 호스트의 트랜스포트 계층으로 세그먼트를 운반하는 서비스를 제공한다.

 

종단간의 데이터를 전달한다.

이 과정에서 길을 찾는 과정을 라우팅이라고 한다.

IP 주소를 포함한 헤더를 붙여 캡슐화하여 링크 계층으로 내려 보낸다.

 


링크 계층

네트워크 기기 간 데이터 전송 및 물리 주소를 결정한다.

 

  • 각 노드에서 네트워크 계층은 데이터그램을 아래 링크 계층으로 보내고, 링크 계층은 그 데이터그램을 경로상의 다음 노드에 전달한다. 다음 노드에서 링크 계층은 그 데이터그램을 상위 네트워크 계층으로 보낸다.
  • 링크 계층 프로토콜의 예로는 이더넷, 와이파이 그리고 케이블 접속 네트워크의 DOCSIS 프로토콜을 들 수 있다.

 

✖️링크 계층 패킷을 프레임(frame)이라고 한다.

 

인접한 네트워크 노드끼리 데이터를 전송하는 기능과 절차를 제공한다.

 


물리 계층

물리적인 연결과 전기 신호 변환/제어를 담당한다.

 

  • 링크 계층의 기능이 전체 프레임을 한 네트워크 요소에서 이웃 네트워크 요소로 이동하는 것이라면, 물리 계층의 기능은 프레임 내부의 각 비트를 한 노드에서 다음 노드로 이동하는 것이다.
  • 이 계층의 프로토콜들은 링크에 의존하고 더 나아가 링크의 실제 전송매체(꼬임쌍선, 단일 모드 광케이블)에 의존한다.

 

전송하고자 하는 데이터를 전기 신호로 바꾸어 상대 컴퓨터에게 전송햔다.

 


이렇게 위에서 아래로 이동하는 과정에서

필요한 데이터를 추가해 나가는 캡슐화가 이루어지고,

아래에서 위로 이동하는 과정에서

캡슐화가 진행된 순서의 반대로 역캡슐화가 이루진다.

 


OSI 모델

지금까지 살펴본 인터넷 프로토콜 5계층과 다르게 컴퓨터 네트워크가 7계층으로 구성된다고 제안하는 OSI 모델 또한 존재한다.

 

  • 앞서 살펴본 5계층에 추가로 프레젠테이션 계층과 세션 계층을 제공한다.
  • 프레젠테이션 계층의 역할은 애플리케이션들이 교환되는 데이터의 의미를 해석하도록 하는 서비스를 제공하는 것이다.
  • 세션 계층은 데이터 교환의 경계와 동기화를 제공한다. 이에는 체킹포인트와 회복 방법을 세우는 수단을 포함한다.

 

7개 계층의 OSI 참조모델

 

그렇다면 이 2개 계층이 제공하는 서비스는 중요하지 않기 때문에 인터넷 프로토콜 스택에 없는 것일까

❓❔❓

해당 2개 계층의 서비스가 중요하다면 그 기능을 애플리케이션에 넣는 것은

애플리케이션 개발자에 달려 있다.

 


TCP/IP 5계층 모델 정리

🔴 추가로 산업 표준 네트워크 통신 모델은 TCP/IP 모델이다.

🟢 TCP/IP Updated 모델은 현재 전 세계 표준으로 적용되고 있다.

 

TCP/IP Updated 모델