해킹 입문자를 위한 TCP/IP 이론과 보안 카테고리의 글은 해킹 입문자를 위한 TCP/IP 이론과 보안 교재의 내용을 학습한 내용입니다.
이번에는 전송 데이터의 구성을 알아보겠다.
지금은 과거처럼 많이 주고받지 않는 편지로 예시를 들어보면 편지지와 편지 봉투로 나눌 수 있다.
이때 편지지는 실제 정보를 담는 부분, 편지 봉투는 편지의 주소 정보를 담는 부분이다.
이를 운영체제에 빗대면 편지는 데이터data, 편지지를 페이로드payload, 편지 봉투를 헤더header라고 한다.
페이로드는 편지지와 같이 사용자가 상대방에게 전송하고자 하는 실제 정보가 담긴 공간이고, 헤더는 편지 봉투와 같이 보내는 사람의 주소(출발지 주소)와 받는 사람의 주소(도착지 주소)가 담긴 공간이다.
운영체제가 전송하는 데이터 구성은 다음과 같다.
| 페이로드 | 헤더1 | 헤더2 | 헤더3 |
이 구조에 대해 좀 더 이해하기 쉽게 설명해보겠다.
운영체제는 전송하고자 하는 페이로드를 생성하고 페이로드에 상대방에게 보내고자 하는 내용을 담는다. 이처럼 페이로드만으로 이뤄진 데이터 전송 단위를 메시지message라고 부른다. 즉, 편지지만 있는 상태다.
메시지를 생성하면 다음처럼 첫 번째 헤더가 붙는다 첫 번째 헤더에 담긴 핵심 정보를 출발지 포트 번호와 목적지 포트 번호다. 이러한 전송 단위를 페이로드의 속성에 따라 데이터그램datagram 또는 세그먼트segment라고 부른다.
| UDP/TCP 페이로드 | 데이터그램 또는 세그먼트 헤더 |
이러한 전송 단위의 차이는 UDP 방식과 TCP 방식의 차이점에 기인한다. 단편화Fragmentation라는 개념이다.
단편화란 데이터를 분할한다는 의미다. 다시 말해, 생성한 페이로드 영역을 여러 개로 조각낸 뒤 전송하는 기법이다. 이를 통해 전송의 효율성과 데이터의 기밀성을 위해 사용한다.
단편화는 TCP 방식에만 있고 단편화가 없는 UDP 속성의 페이로드 앞에 붙는 헤더는 데이터그램, TCP 속성의 페이로드 앞에 붙는 헤더는 세그먼트라고 한다.
결론적으로 버퍼링과 단편화 유무에 따라 UDP 방식과 TCP 방식을 구분한다.
| 구분 | UDP 방식 | TCP 방식 |
| 페이로드 크기 | 512바이트 미만 | 512바이트 이상 |
| 버퍼링 | 없음 | 있음 |
| 단편화 | 없음 | 있음 |
| 전송 단위 | 데이터그램 | 세그먼트 |
이어지는 설명은 특별한 언급이 없다면 데이터그램 전송 단위를 기준으로 설명한다.
데이터그램 헤더에서 핵심은 포트 번호다.
상대방 운영체제에서는 데이터그램 헤더에 담긴 포트 번호를 통해 페이로드의 내용이 어떤 종류의 서비스에 해당하는지를 판단할 수 있다.
목적지 포트 번호에는 대표적으로 22번(SSH), 80번(HTTP), 21번(FTP) 등이 있고 출발지 포트 번호에는 1024번 이후의 포트가 있다.
사용자가 어떤 웹사이트에 접속한다면 운영체제에서는 임의의 1024번 이후 포트 번호를 출발지 포트 번호로 할당하고, 목적지 포트 번호에는 웹에서 사용하는 80번 포트 번호를 할당한다.
데이터그램을 완성하면 새로운 헤더가 붙는다. 이러한 데이터 전송 단위를 패킷packet이라고 부른다.
| UDP 페이로드 | 데이터그램 헤더 | 패킷 헤더 |
패킷 헤더Packet Header는 출발지 IP 주소와 목적지 IP 주소가 핵심 정보이다.
사용자가 웹 브라우저의 주소창에 도메인 네임을 입력하면 DNS 서비스에 의해 IP 주소로 변화된 뒤 패킷 헤더의 목적지 IP 주소 항목에 담긴다.
라우터가가 처리하는 패킷이 위와 같은 형태로 라우터 운영체제가 패킷 헤더 부분을 참조해 라우터 기능을 수행한다는 것만 간단히 알아두자
패킷을 완성하면 다음과 같이 마지막 헤더가 패킷 헤더 앞에 붙는다.
| UDP 페이로드 | 데이터그램 헤더 | 패킷 헤더 | 프레임 헤더 |
이러한 데이터 전송 단위를 프레임frame이라고 부르며, 패킷 앞에 붙는 세 번째 헤더를 프레임 헤더Frame Header라고 부른다. 프레임 헤더에는 맥 주소가 담기고, 스위치 장비가 스위칭 기능을 수행할 때 참조하는 부분도 프레임 헤더다.
프레임 헤더는 스위칭 통신 영역과 라우팅 통신 영역에 있을 때 담는 정보가 다르다. LAN 영역에 있는 경우에는 맥 주소가 있지만, WAN 영역에 있으면 다른 무언가로 채워진다.
하지만 데이터그램 헤더와 패킷 헤더의 주소는 변하지 않는다.
| 구분 | LAN 영역 | WAN 영역 |
| 데이터그램 헤더 | 출발지 · 목적지 포트 번호 | 출발지 · 목적지 포트 번호 |
| 패킷 헤더 | 출발지 · 목적지 IP 주소 | 출발지 · 목적지 IP 주소 |
| 프레임 헤더 | 출발지 · 목적지 맥 주소 | WAN 프로토콜에 대한 정보 |
또한 패킷 헤더에서 출발지 IP 주소의 네트워크 ID와 목저지 IP 주소의 네트워크 ID가 다르다면 프레임 헤더의 목적지 맥 주소는 라우터의 맥 주소를 의미한다.
프레임 단위를 생성한 데이터는 비트Bit로 변환한다.
메시지 단위에서 시작해 비트 단위까지 변환하는 일련의 데이터 전송 단위를 정리하면 다음과 같다.
| 데이터 전송 단위 | 주요한 헤더 정보 | 비고 |
| 메시지 | 페이로드 | |
| 데이터그램/세그먼트 | 출발지 · 목적지 포트 번호 | |
| 패킷 | 출발지 · 목적지 IP 주소 | 데이터 전송 단위의 총칭 |
| 프레임 | 출발지 · 목적지 맥 주소 | LAN 영역에 있는 경우 |
경우에 따라서는 일련의 데이터 전송 단위 전체를 단순히 패킷으로 총칭하기도 한다.
더불어, 생성한 페이로드 앞에 일련의 헤더를 붙이는 과정을 인캡슐레이션encapsulation이라고 한다.
마찬가지로 일련의 헤더를 떼는 과정을 디캡슐레이션decapsulation이라고 한다.
즉 운영체제가 데이터를 송신하는 과정은
메시지 → 데이터그램 → 패킷 → 프레임 → 비트로 변환하는 일련의 인캡슐레이션이고,
데이터를 수신하는 과정은
비트 → 프레임 → 패킷 → 데이터그램 → 메시지로 변환하는 일련의 디캡슐레이션이다.
일련의 인캡슐레이션 과정은 객체 지향 언어 기법에서 사용하는 정보 은폐 기법을 의미하기도 한다.
다시 말해, 라우터는 오직 패킷 헤더만 읽을 수 있을 뿐 세그먼트/데이터그램 헤더 이하는 읽을 수 없다.
스위치 또한 오직 프레임 헤더만 읽을 수 있을 뿐 패킷 헤더 이하는 읽을 수 없다.
'NetWork > 해킹 입문자를 위한 TCP IP 이론과 보안' 카테고리의 다른 글
| TCP/IP 방식의 계층적 구조 (0) | 2026.03.19 |
|---|---|
| UDP 방식과 TCP 방식 (0) | 2025.11.13 |
| DNS 캐시 테이블의 이해 (0) | 2025.11.13 |
| ARP 캐시 테이블의 이해 (1) | 2025.11.12 |
| DHCP 서비스 · DNS 서비스 · 물리적 주소의 의미 (2) | 2025.11.12 |