1. 문서 제목
- 네트워크 계층 구조: 캡슐화, IP, MAC, Port까지 한 번에 정리
2. 기술 개요 요약
네트워크 계층 모델은 복잡한 통신 과정을 역할별로 나누어 이해하기 위한 구조다. OSI 7계층은 설명과 학습에 유용한 참조 모델이고, TCP/IP 모델은 실제 인터넷 프로토콜 스택에 더 가깝다. 실무와 면접에서는 7계층 이름을 외우는 것보다 HTTP, DNS, TCP, UDP, IP, MAC, Port가 각각 어떤 책임을 갖는지 연결해서 설명하는 것이 중요하다.
브라우저가 서버에 요청을 보낼 때 HTTP 요청은 전송 계층에서 TCP 세그먼트가 되고, 네트워크 계층에서 IP 패킷, 데이터링크 계층에서 프레임으로 캡슐화된다. 이 과정에서 IP 주소는 목적지 호스트를 찾고, MAC 주소는 같은 링크 안의 다음 장비를 찾고, Port 번호는 호스트 안의 프로세스를 구분한다.
3. 핵심 기능/개념 정리
3-1. OSI 7계층
| 계층 | 이름 | 책임 | 대표 키워드 |
|---|---|---|---|
| 7 | 응용 계층 | 사용자 서비스의 요청/응답 규칙 | HTTP, DNS, SMTP |
| 6 | 표현 계층 | 데이터 표현, 인코딩, 압축, 암호화 관점 | JSON, UTF-8, TLS 일부 관점 |
| 5 | 세션 계층 | 통신 세션의 시작, 유지, 종료 | 세션 관리 |
| 4 | 전송 계층 | 프로세스 간 전송, 신뢰성, 흐름/혼잡 제어 | TCP, UDP, Port |
| 3 | 네트워크 계층 | 목적지 호스트까지 경로 선택과 전달 | IP, Router, ICMP |
| 2 | 데이터링크 계층 | 같은 링크 안에서 프레임 전달 | Ethernet, MAC, Switch, ARP |
| 1 | 물리 계층 | 비트를 전기/무선/광 신호로 전달 | Cable, Wi-Fi, Hub |
3-2. TCP/IP 모델과 OSI 매핑
| TCP/IP 계층 | OSI 대응 | 설명 | 대표 프로토콜 |
|---|---|---|---|
| Application | OSI 7, 6, 5 | 애플리케이션 프로토콜과 데이터 표현 | HTTP, DNS, SMTP |
| Transport | OSI 4 | 프로세스 간 전송 | TCP, UDP |
| Internet | OSI 3 | 호스트 간 패킷 전달 | IP, ICMP |
| Link | OSI 2, 1 | 같은 링크 안의 전달과 물리 신호 | Ethernet, Wi-Fi, ARP |
RFC 1122는 인터넷 호스트 요구사항을 설명하면서 link layer, IP layer, transport layer를 다루고, companion 문서인 RFC 1123은 application/support protocols를 다룬다. 따라서 TCP/IP 모델은 실제 인터넷 프로토콜 스택을 설명하는 데 더 자주 사용된다.
3-3. 주요 프로토콜 위치
| 프로토콜/기술 | 계층 | 역할 |
|---|---|---|
| HTTP | 응용 계층 | 리소스 요청/응답 의미와 형식 |
| DNS | 응용 계층 | 도메인 이름을 IP 주소로 변환 |
| TLS | 응용/표현 계층 관점에서 설명 가능 | 암호화, 무결성, 인증 |
| TCP | 전송 계층 | 연결 지향, 순서 보장, 재전송, 흐름/혼잡 제어 |
| UDP | 전송 계층 | 비연결 데이터그램 전송 |
| IP | 네트워크 계층 | 목적지 IP까지 패킷 전달 |
| ARP | 링크 계층과 IP 계층 사이에서 설명 | 같은 네트워크 안에서 IP에 대응하는 MAC 조회 |
| Ethernet | 데이터링크 계층 | 프레임 단위 전달 |
ARP는 IPv4에서 사용하는 주소 해석 프로토콜이다. IPv6에서는 같은 역할을 Neighbor Discovery Protocol(NDP)이 수행하므로, "IP와 MAC 매핑은 항상 ARP"라고 일반화하지 않는다.
3-4. IP, MAC, Port 차이
| 구분 | 역할 | 범위 | 비유 |
|---|---|---|---|
| IP 주소 | 목적지 호스트를 찾음 | 네트워크 계층 | 건물 주소 |
| MAC 주소 | 같은 링크 안에서 다음 장비를 찾음 | 데이터링크 계층 | 같은 건물 안 배송 지점 |
| Port 번호 | 호스트 안의 프로세스를 찾음 | 전송 계층 | 사무실/부서 번호 |
3-5. 캡슐화와 데이터 단위
| 계층 | 데이터 단위 | 붙는 정보 |
|---|---|---|
| 응용 계층 | Message | HTTP header/body 등 |
| 전송 계층 | Segment(TCP) / Datagram(UDP) | Port, sequence number 등 |
| 네트워크 계층 | Packet / Datagram | Source/Destination IP |
| 데이터링크 계층 | Frame | Source/Destination MAC |
| 물리 계층 | Bits/Signal | 전기/무선/광 신호 |
4. 사용 예시 및 코드 스니펫
4-1. 웹 요청 흐름
1. 브라우저가 URL을 해석한다.
2. DNS로 도메인을 IP 주소로 변환한다.
3. HTTPS라면 443 포트로 TCP 연결을 준비한다.
4. TCP 3-way handshake로 연결을 수립한다.
5. TLS handshake로 암호화와 서버 인증을 수행한다.
6. HTTP 요청을 보낸다.
7. 서버가 HTTP 응답을 보낸다.
8. 브라우저가 HTML, CSS, JavaScript를 처리한다.
4-2. 캡슐화 흐름
HTTP Request
-> TCP Segment
-> IP Packet
-> Ethernet Frame
-> Bits/Signals
수신 측에서는 반대로 각 계층의 헤더를 확인하고 제거하면서 원래 HTTP 메시지를 복원한다. 이를 역캡슐화라고 한다.
4-3. 계층별 질문 답변 예시
Q. HTTP와 TCP의 차이는?
A. HTTP는 응용 계층에서 요청과 응답의 의미를 정의하고,
TCP는 전송 계층에서 그 데이터를 신뢰성 있게 전달한다.
Q. IP와 TCP의 차이는?
A. IP는 목적지 호스트까지 패킷을 전달하고,
TCP는 호스트 안의 프로세스 간 신뢰성 있는 전송을 담당한다.
5. 실제 사용 시 주의점 / Best Practice
5-1. 계층 모델은 절대적 구현 경계가 아니라 설명 모델이다
OSI 7계층은 학습과 설명에 유용하지만 실제 인터넷 구현은 TCP/IP 모델로 보는 편이 자연스럽다. TLS처럼 어느 계층으로 설명하느냐가 문맥에 따라 달라지는 기술도 있다.
5-2. HTTP는 데이터를 직접 운반하지 않는다
HTTP는 요청/응답의 의미와 형식을 정의한다. 실제 전달은 TCP 또는 QUIC, IP, Ethernet 같은 하위 계층이 맡는다.
5-3. TCP 신뢰성은 handshake만으로 끝나지 않는다
3-way handshake는 연결 수립과 초기 시퀀스 번호 동기화에 해당한다. 실제 데이터 전송 중 신뢰성은 sequence number, ACK, retransmission, flow control, congestion control이 함께 제공한다.
5-4. IP, MAC, Port를 섞어 말하지 않는다
IP는 목적지 호스트, MAC은 같은 링크 안의 다음 장비, Port는 호스트 내부 프로세스를 구분한다. 면접에서 이 세 개가 섞이면 네트워크 기초가 흔들려 보인다.
5-5. 면접 답변으로 압축하기
OSI 7계층은 네트워크 통신 과정을 역할별로 나눈 참조 모델이고, TCP/IP 모델은 실제 인터넷 프로토콜 스택에 더 가깝습니다. HTTP와 DNS는 응용 계층, TCP와 UDP는 전송 계층, IP는 네트워크 계층, Ethernet과 MAC은 데이터링크 계층에서 설명할 수 있습니다. 데이터는 상위 계층에서 하위 계층으로 내려가며 HTTP 메시지, TCP 세그먼트, IP 패킷, 프레임으로 캡슐화됩니다. IP 주소는 목적지 호스트를 찾고, MAC 주소는 같은 네트워크 안의 다음 장비를 찾으며, Port 번호는 호스트 안의 프로세스를 구분합니다.
검증 메모
- TCP/IP 계층 설명은 RFC 1122, RFC 1123, IP/TCP/UDP/HTTP RFC를 기준으로 확인했다.
- TLS는 문맥에 따라 계층 설명이 달라질 수 있다는 caveat을 유지했다.
- ARP는 IPv4 기준이며 IPv6에서는 NDP를 사용한다는 보완을 추가했다.
6. 참고자료 / 공식 문서 출처
- RFC 1122: Requirements for Internet Hosts — Communication Layers
https://datatracker.ietf.org/doc/html/rfc1122 - RFC 1123: Requirements for Internet Hosts — Application and Support
https://www.rfc-editor.org/info/rfc1123/ - RFC 791: Internet Protocol
https://datatracker.ietf.org/doc/html/rfc791 - RFC 768: User Datagram Protocol
https://www.rfc-editor.org/info/rfc768/ - RFC 9293: Transmission Control Protocol
https://datatracker.ietf.org/doc/html/rfc9293 - RFC 9110: HTTP Semantics
https://datatracker.ietf.org/doc/html/rfc9110
'CS > Network' 카테고리의 다른 글
| [Nework] TCP 3-way Handshake, 4-way Handshake, TIME_WAIT 정리 (0) | 2026.07.11 |
|---|---|
| [Network] HTTPS, TLS, CA 인증서, Let's Encrypt 정리 (0) | 2026.07.11 |
| (TIR+4) ③ 브라우저는 OS의 프로토콜 스택에 메시지 송신을 의뢰한다 (0) | 2020.11.18 |
| (TIR+3) ② OS에 HTTP 메시지를 송신하기 위해 웹 서버의 IP 주소를 DNS 서버에 조회한다 (0) | 2020.11.16 |
| (TIR+2) ① 브라우저는 웹 서버에 보내는 메시지를 작성하기 위해 URL을 해독한다 (0) | 2020.09.21 |
댓글