📚 네트워크 · 패킷 분석 › 01. TCP/IP 구조 이해 — 22편
이전 글: 21. OSI 7계층 · 다음 글: 23. OSI 7계층과 TCP/IP 4계층 — 계층으로 읽는 패킷

1. 개념

TCP/IP 4계층은 인터넷에서 실제로 쓰이는 프로토콜 묶음(TCP/IP 프로토콜 스위트)을 기능별로 나눈 모델입니다. 21. OSI 7계층이 "기능을 분류하기 위한 참조 모델"이라면, TCP/IP 모델은 실제로 구현되어 동작하는 스택의 구조입니다.

호스트 요구사항을 정의한 RFC 1122는 계층을 다음 네 개로 설명합니다. 교재에 따라 이름이 조금씩 다르고, 네트워크 접근 계층을 물리·데이터링크로 나눠 5계층으로 설명하기도 합니다.

  1. 네트워크 접근 계층(Link / Network Access)
  2. 인터넷 계층(Internet)
  3. 전송 계층(Transport)
  4. 응용 계층(Application)

OSI 계층과의 대응 관계는 23. OSI 7계층과 TCP/IP 4계층 — 계층으로 읽는 패킷에서 다룹니다. 이 글은 TCP/IP 각 계층이 무엇을 하고, 운영체제 어디에서 동작하는지에 집중합니다.


2. 동작 원리

각 계층은 담당하는 주소와 책임이 명확하게 나뉩니다.

계층담당 질문사용하는 주소대표 프로토콜
응용무엇을 주고받는가도메인, URLHTTP, DNS, SSH, SMTP, DHCP
전송어느 프로세스(서비스)에게, 얼마나 신뢰성 있게포트 번호TCP, UDP
인터넷어느 호스트에게, 어떤 경로로IP 주소IPv4, IPv6, ICMP
네트워크 접근같은 링크 안에서 어느 NIC에게MAC 주소Ethernet, Wi-Fi, ARP

이 계층 구분은 운영체제 구조와도 대응합니다. 응용 계층은 사용자 공간의 프로그램이, 전송·인터넷 계층은 커널의 네트워크 스택이, 네트워크 접근 계층은 커널 드라이버와 NIC 하드웨어가 처리합니다.

[사용자 공간]  웹 브라우저, sshd, nginx      ← 응용 계층
      ↓ 소켓(socket) API: connect(), send()
[커널]         TCP / UDP                    ← 전송 계층
      ↓
[커널]         IP, 라우팅 테이블 조회          ← 인터넷 계층
      ↓
[드라이버·NIC] Ethernet 프레임, ARP          ← 네트워크 접근 계층
      ↓
[케이블·전파]  신호 전송

응용 프로그램은 소켓 API로 "이 IP·포트로 데이터를 보내 달라"고 요청할 뿐, 아래 계층의 헤더를 직접 만들지 않습니다. 이 분업 덕분에 웹 브라우저는 유선인지 무선인지 몰라도 동작합니다.


3. 주요 특징

  • 인터넷 계층은 "최선형(best effort)" 입니다. IP는 전달을 보장하지 않으며, 손실·순서 뒤바뀜·중복을 복구하는 일은 전송 계층(TCP) 또는 응용 계층의 몫입니다.
  • 전송 계층이 포트를 도입하면서 한 호스트 안의 여러 서비스를 구분할 수 있게 됩니다. 포트 체계는 51. 포트 번호 체계 — Well-known·Registered·임시 포트에서 다룹니다.
  • ICMP는 IP와 같은 인터넷 계층에 속하지만 IP 패킷 안에 담겨 전송됩니다. ARP는 IP 헤더 없이 이더넷 프레임에 직접 담깁니다. 이 차이는 필터·로그에서 중요합니다(ARP는 IP 기반 방화벽 로그에 남지 않음).
  • 하나의 계층 문제는 위 계층 전체를 멈춥니다. 링크가 끊기면 IP도, TCP도, HTTP도 동작하지 않으므로 장애 점검은 아래 계층부터 올라가는 것이 효율적입니다.

4. 예시

실습 예시: 본인 소유 VM에서 계층별로 상태를 확인하는 명령입니다. 명령은 Rocky Linux와 Ubuntu가 같으며, curl이 없으면 설치합니다(Rocky: sudo dnf install -y curl, Ubuntu: sudo apt install -y curl).

계층확인할 것명령 예시
네트워크 접근링크 상태, MAC, ARP 캐시ip link show, ip neigh show
인터넷IP 주소, 라우팅, 도달성ip addr show, ip route show, ping -c 2 192.168.10.1
전송열린 포트, 연결 상태ss -tulpn, ss -tan
응용서비스 응답curl -sI http://192.168.10.50/

아래에서 위로 점검하는 순서를 흐름으로 표현하면 다음과 같습니다.

링크 UP 인가? (ip link)       ─ 아니오 → 케이블·가상 NIC 연결 확인
      ↓ 예
IP·게이트웨이가 맞는가? (ip addr / ip route) ─ 아니오 → 주소·경로 설정 확인
      ↓ 예
포트가 열려 있는가? (ss)       ─ 아니오 → 서비스 기동·방화벽 확인
      ↓ 예
응용 응답이 정상인가? (curl)   ─ 아니오 → 응용 로그 확인

ss -tan 출력 예시(값은 환경마다 다름):

State   Recv-Q Send-Q  Local Address:Port    Peer Address:Port
LISTEN  0      128           0.0.0.0:22           0.0.0.0:*
ESTAB   0      0       192.168.10.20:51514  192.168.10.50:80

한 줄 안에 인터넷 계층 정보(IP)와 전송 계층 정보(포트·상태)가 함께 나타납니다.


5. 보안 관점

  • 계층마다 신뢰 근거가 다릅니다. MAC(네트워크 접근)과 IP(인터넷)는 송신자가 적어 넣는 값이라 위조가 가능합니다. TCP는 3-Way Handshake가 성립해야 연결이 되므로, 성립한 TCP 연결의 출발지 IP는 단순 패킷의 출발지 IP보다 신뢰도가 높습니다(41. TCP 3-Way Handshake — 연결이 성립했다는 증거).
  • UDP 기반 응용은 전송 계층에 연결 절차가 없으므로 출발지 위조를 이용한 반사·증폭 공격에 악용될 수 있습니다.
  • 응용 계층 암호화(TLS) 는 내용은 숨기지만, 아래 계층의 IP·포트·패킷 크기·시간 정보는 여전히 보입니다.

6. SOC 관점

흔적이 남는 곳

  • 네트워크 접근: 스위치·DHCP·NAC 로그, pcap의 Ethernet 헤더
  • 인터넷·전송: 방화벽 로그, NetFlow, IDS 이벤트의 5-tuple(출발지·목적지 IP, 출발지·목적지 포트, 프로토콜)
  • 응용: 웹·DNS·메일 서버 로그, 프록시 로그

관제자가 확인할 질문

  • 이 경보의 근거는 어느 계층의 정보인가? IP만 있는가, 응용 내용까지 있는가?
  • 출발지 IP를 신뢰할 수 있는 근거(TCP 연결 성립 여부)가 있는가?
  • 장애인지 공격인지 판단하기 전에, 아래 계층(링크·경로)의 이상은 배제했는가?

오탐 주의


7. 핵심 정리

  • TCP/IP 4계층은 네트워크 접근·인터넷·전송·응용 계층으로 이루어진 실제 인터넷 스택의 구조입니다.
  • 각 계층은 MAC → IP → 포트 → 응용 데이터 순으로 서로 다른 주소와 책임을 가집니다.
  • 응용은 사용자 공간, 전송·인터넷은 커널, 네트워크 접근은 드라이버·NIC에서 처리됩니다.
  • 장애와 이상 징후는 아래 계층부터 위로 점검하면 원인을 빠르게 좁힐 수 있습니다.
  • 관제에서는 경보의 근거가 어느 계층 정보인지, 그 정보를 얼마나 신뢰할 수 있는지를 함께 판단합니다.
profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글