네트워크에서 각 노드는 특정한 규칙을 통해 서로 통신하게 됩니다.
이러한 규칙을 정의한 것을 프로토콜(Protocol)이라고 합니다.
프로토콜은 복잡한 통신 시스템을 구조적으로 나누어 관리하기 위해, 계층화를 통해 여러 모듈로 분할하며 각 계층을 독립적으로 설계합니다. 이를 프로토콜 계층화라고 합니다.
프로토콜 계층화는 아래의 두 원칙을 따릅니다.
- 상반되는 두 가지 작업을 수행 (말하기 / 듣기, 암호화 / 복호화, 보내기 / 받기)
- 각 계층의 객체는 서로 동일 (평문, 암호문, 우편 등)
계층 간 논리적 연결을 통해 각 계층에서 생성된 객체가 전달됩니다.
프로토콜 계층화가 이루어지는 과정을 확인하기 위해 A와 B가 대화하는 상황을 가정해 보겠습니다.
A와 B가 만나서 대화를 합니다.
둘이 정해놓은 규칙(인사, 대화 순서 등)을 통해 대화를 합니다.
여기까진 하나의 계층을 통해 대화(통신)가 가능합니다.
계층이 하나이기 때문에 단일 계층 프로토콜입니다.
A와 B가 멀리 떨어진 곳에서 편지로 대화합니다.
작성한 편지를 아래 계층으로 보내서 암호화를 합니다.
또 아래 계층으로 보내 우편을 보냅니다.
B에서 우편을 받으면 위 계층으로 보내 복호화를 합니다.
복호화를 한 편지를 위 계층으로 보내면 최종적으로 B에게 편지가 전달됩니다.
하위 계층으로부터 서비스를 받아 상위 계층에게 전달하게 됩니다.
계층이 여러 개이므로 다중 계층 프로토콜입니다.
프로토콜에 대해 살펴보았으니 이제 두 개의 네트워크 모델을 살펴보겠습니다.
1. TCP/IP 모델
현재의 인터넷에서 사용되는 TCP/IP 모델입니다.
상위 계층이 하위 계층으로부터 서비스를 지원 받는 계층적(hierarchical) 모델입니다.
호스트 - 스위치 - 라우터 - 스위치 - 호스트로 연결된 네트워크가 있다고 가정해 봅니다.
[그림 4]처럼 데이터 통신이 이루어질 것인데,
이 때 L1, L2 통신을 홉 대 홉, L3 ~ L5 통신을 종단 대 종단 연결이라고 합니다.
각 계층은 각자 사용할 객체가 존재합니다.
물리 계층은 bit,
데이터 링크 계층은 frame,
네트워크 계층은 datagram
전송 계층은 segment,
응용 계층은 message
이런 식으로 존재하게 됩니다.
상위 계층에서 하위 계층으로 데이터를 보낼 때, 데이터에 헤더(header)를 추가해서 보내게 됩니다.
이 과정을 캡슐화(encapsulation)라고 합니다.
반대의 과정 (하위 계층에서 상위 계층으로 데이터를 보낼 때 데이터에 헤더 제거)을 역캡슐화 (decapsulation) 라고 합니다.
이제 물리 계층부터 순서대로 구성을 살펴보겠습니다.
- Physical Layer
- 데이터 링크 (L2) 계층에서 받은 frame을 bit로 바꾸어 전송 매체를 통해 다른 node로 전달합니다.
- 별도의 주소를 사용하지 않습니다.
- Data Link Layer
- 네트워크 (L3) 계층에서 받은 datagram을 frame으로 캡슐화하여 아래 계층(L1)으로 전달합니다.
- L2에서는 MAC Address라고 하는 주소를 가집니다.
- 여기까지가 hop-to-hop 연결 방식을 사용합니다. (물리적 이동)
- Network Layer
- 전송 (L4) 계층에서 받은 segment를 datagram으로 캡슐화하여 아래 계층(L2)으로 전달합니다.
- 발신지 호스트에서 목적지 호스트까지의 연결을 생성하는 end-to-end 연결 방식을 사용하며, 여기서부터 논리적 이동으로 간주됩니다.
- router가 이 계층에서 데이터를 전달하는 최적의 경로를 설정합니다.
- L3에서는 IP Address를 사용하며, L3에서 정의되는 여러 프로토콜이 존재합니다.
- IP: 인터넷 프로토콜, 데이터그램 패킷의 형식 정의
- ICMP: 인터넷 제어 메시지 프로토콜, IP가 라우팅할 때 생기는 문제를 보도하는 프로토콜 (예시: ping)
- DHCP: 동적 호스트 설정 프로토콜, 각 호스트마다 IP를 자동 할당하는 프로토콜
- Transport Layer
- 응용 (L5) 계층의 메시지를 segment로 캡슐화하여 아래 계층(L3)으로 전달합니다.
- 여기서 사용되는 두 가지의 프로토콜이 있습니다.
- TCP: 데이터를 전송하기 전 두 호스트 간 논리적 연결 생성, 흐름 제어와 오류 제어의 특성으로 인해 신뢰성을 높임
- UDP: 논리적인 연결을 사용하지 않고 사용자 데이터그램을 전송, 흐름 제어를 하지 않으므로 신뢰성이 떨어지나 오버헤드가 적음
- Application
- 사용자가 네트워크에 접속할 수 있는 수단을 제공하는 계층입니다.
- 여기서 사용되는 계층은 대표적으로 이런 것들이 있습니다.
- HTTP
- SMTP
- FTP
TCP/UDP는 위 그림으로 이해해 보기 바랍니다.
2. OSI 7계층 모델
TCP/IP 프로토콜에서 세션, 표현 계층이 추가된 것을 확인할 수 있습니다.
'데이터통신' 카테고리의 다른 글
[데이터 통신] 물리 계층 - 아날로그 전송 (0) | 2025.04.22 |
---|---|
[데이터 통신] 물리 계층 - 디지털 전송 (0) | 2025.04.22 |
[데이터 통신] 물리 계층 (0) | 2025.04.22 |
[데이터 통신] 데이터 통신과 네트워크 (0) | 2025.04.17 |
댓글