OSI 7계층 기반: NAT·ARP·TCP로 이해하는 네트워크 패킷 전송

0. 네트워크 기초 용어 다섯 가지 (IP, MAC, NAT, TCP, ARP)

네트워크를 구성하는 기본 개념을 정확히 이해하는 것이 중요합니다. 아래 표와 함께 각 용어의 역할과 특징을 정리합니다.

용어 역할 특징 및 예시
IP (Internet Protocol) 네트워크 계층(3계층)에서 논리 주소(IP 주소)를 사용해 호스트/네트워크를 식별하고 패킷을 목적지까지 라우팅(경로 결정) – IP 헤더: 출발지·목적지 IP, TTL, 프로토콜 번호 등 포함- 비신뢰성, 비연결성 전송
– 예시: IPv4 (192.168.0.1, 203.0.113.5), IPv6 (2001:db8::abcd)
MAC (Media Access Control) 주소 데이터링크 계층(2계층)에서 네트워크 인터페이스를 유일하게 식별하는 물리적 또는 논리적 주소 – NIC 제조 시 부여, 전 세계 중복 없음
– 6바이트(48비트) 형태 (예: AA:BB:CC:DD:EE:FF)
– 브로드캐스트 주소: FF:FF:FF:FF:FF:FF
NAT (Network Address Translation) 사설 IP(예: 192.168.x.x, 10.x.x.x)를 공인 IP(인터넷용 IP)로 변환하여 한정된 공인 IP를 여러 내부 호스트가 공유 사용하도록 지원 SNAT: 내부에서 외부로 갈 때 출발 IP/포트 변경
DNAT: 외부에서 내부로 들어올 때 목적지 IP/포트 변경
포트 포워딩: DNAT의 한 형태- 장점: 공인 IP 부족 해결, 내부 망 보호, 사설 IP 자유 사용 가능
TCP (Transmission Control Protocol) 트랜스포트 계층(4계층)에서 신뢰성 있는 연결 지향 전송 제공 – 3-way handshake로 연결 설정, 4-way handshake로 연결 해제
– 시퀀스 번호와 ACK 번호를 통해 데이터 수신 보증
– HTTP, HTTPS, SMTP, FTP 등 신뢰가 필요한 프로토콜에서 사용
ARP (Address Resolution Protocol) IP 주소(논리 주소)를 MAC 주소(물리 주소)로 변환하는 프로토콜 – 동일 네트워크(브로드캐스트 도메인) 내 “해당 IP를 가진 호스트의 MAC은 무엇인가?” 질문 및 응답
– ARP 캐시에 정보를 저장하여 재사용- 반대 개념: RARP (MAC → IP, 현재는 거의 사용 안 함)

내부 망에서 외부 망으로 패킷 전송 과정 (OSI 7계층 관점)

패킷이 내부 컴퓨터에서 외부로 전송되어 최종 목적지에 도달하기까지 과정을 OSI 7계층별로 단계적으로 살펴봅니다.

1. OSI 7계층 한눈에 보기

  1. 물리 계층 (Physical, 1계층)

전기/광 신호 등 물리적 매체를 통해 데이터 전송

  1. 데이터링크 계층 (Data Link, 2계층)

MAC 주소 기반의 프레임 전송 (예: Ethernet) 및 에러 검출/재전송

  1. 네트워크 계층 (Network, 3계층)

IP 주소 기반의 패킷 전달 및 라우팅(경로 결정)

  1. 트랜스포트 계층 (Transport, 4계층)

TCP/UDP를 이용해 포트 번호 관리, 데이터 세그먼트화, 신뢰성 보장

  1. 세션 계층 (Session, 5계층)

세션 설정, 유지, 종료 등 논리적 연결 관리

  1. 프레젠테이션 계층 (Presentation, 6계층)

데이터 인코딩/디코딩, 압축, 암호화 등 데이터 변환

  1. 애플리케이션 계층 (Application, 7계층)

최종 사용자 인터페이스 제공 (웹 브라우저, 이메일 등)

데이터 전송 흐름

  • 송신 측: 애플리케이션(7계층) → 물리 계층(1계층) (캡슐화)
  • 수신 측: 물리 계층(1계층) → 애플리케이션(7계층) (디캡슐레이션)

2. 데이터 전송 과정 순서도


2. 내부 망(컴퓨터 A)에서 패킷 생성

예시 상황:

  • 내부 IP: 192.168.1.10 (컴퓨터 A)
  • 목적지(외부 IP): 203.0.113.5 (원격 서버)
  • 출발 포트: 50000 (임의 할당)
  • 목적지 포트: 80 (HTTP)

(1) 상위 계층 (5~7: 세션/프레젠테이션/애플리케이션)

  • 사용자가 애플리케이션(예: 브라우저)에서 “안녕” 입력
  • 프레젠테이션 계층: UTF-8 인코딩 처리
  • 세션 계층: 세션 정보(세션 ID 등) 포함, 전송 준비

(2) 트랜스포트 계층 (4: TCP/UDP)

  • 인코딩된 데이터를 TCP 세그먼트로 변환
    • TCP 헤더에 SRC_PORT=50000, DST_PORT=80 등 기록
    • 결과: “TCP 세그먼트 (포트 정보 + 데이터)”

(3) 네트워크 계층 (3: IP)

  • TCP 세그먼트에 IP 헤더 추가
    • 예: SRC_IP=192.168.1.10, DST_IP=203.0.113.5

(4) 데이터링크 계층 (2: Ethernet) & ARP

  • 내부망 전송을 위해 이더넷 프레임 형태로 변환
  • ARP를 사용해 게이트웨이(192.168.1.1)의 MAC 주소 확인
    • 출발 MAC: 컴퓨터 A의 NIC (예: AA:BB:CC:DD:EE:FF)
    • 목적 MAC: 라우터 R1(게이트웨이)의 MAC (예: 00:11:22:33:44:55)

ARP 캐시(ARP Table) 확인 절차

  1. 전송 전, ARP 캐시에 게이트웨이 IP의 MAC이 저장되어 있는지 확인
  2. 캐시에 존재하면 해당 MAC으로 바로 프레임 생성
  3. 없으면 ARP 브로드캐스트로 MAC 요청 후 응답 받아 캐시에 저장

결국 이더넷 프레임

Ethernet 헤더(MAC 정보) + IP 패킷(TCP 세그먼트)

(5) 물리 계층 (1)

  • 이더넷 프레임을 비트 스트림(전기/광 신호)으로 변환하여 전송

3. 로컬 라우터(R1)에서 NAT 동작

내부 호스트에서 생성된 패킷은 로컬 라우터 R1을 통해 NAT 과정을 거칩니다.

  • NAT: 사설 IP(192.168.1.10)와 포트(50000)를 R1의 공인 IP와 임의 포트로 변환
    • 예시: 192.168.1.10:50000198.51.100.2:40000
    • 198.51.100.2 = R1 공인 IP, 40000 = 라우터가 새로 할당한 포트

(1) 이더넷 헤더 재생성

  • 내부망의 이더넷 헤더는 R1에서 제거
  • R1 WAN 인터페이스에서 새 이더넷(또는 PPP 등) 헤더를 생성
    • 새 출발 MAC: R1의 WAN MAC
    • 새 목적 MAC: ISP 라우터(다음 홉)의 MAC (ARP 또는 PPP 과정을 통해 획득)

4. 인터넷(라우터 간 전송) 구간

R1에서 NAT 변환 후 생성된 패킷

  • IP 헤더: SRC_IP=198.51.100.2, DST_IP=203.0.113.5

가 인터넷 상 여러 라우터를 통해 목적지 라우터(R2)로 전달됩니다.

(1) 라우터가 ‘최단 경로’를 찾는 방식

  • 라우팅 테이블라우팅 프로토콜(BGP, OSPF 등)을 사용해

목적지 IP(203.0.113.5)에 대해 최적(또는 우선순위 높은) 경로 결정

(2) 매 홉마다의 이더넷 헤더 처리

  1. 이전 이더넷 헤더 제거
  2. IP 헤더 분석 후 다음 홉 결정
  3. 새 이더넷 헤더 생성

출발 MAC: 현재 라우터의 egress(출구) 인터페이스 MAC
목적 MAC: 다음 홉 라우터의 MAC (필요 시 ARP 등으로 획득)

이 과정을 중간 라우터마다 반복하여 최종 목적지 라우터(R2)까지 패킷이 전달됩니다.


5. 원격 라우터(R2)에서 내부망(NAT 역변환)

원격 라우터 R2는 도착한 패킷을 내부망으로 전달하기 위해 NAT 역변환을 수행합니다.

  • 공인 IP: 203.0.113.5 (R2가 가진 공인 IP)
  • NAT 규칙: “203.0.113.5:80으로 들어온 트래픽은 10.0.0.20:80으로 전달”

따라서 NAT 테이블을 참조해 IP 헤더의 목적지 IP/포트

203.0.113.5:80 → 10.0.0.20:80

으로 변경합니다.

(1) R2 → 내부 호스트 전송 시 이더넷 헤더

  • 내부 호스트(10.0.0.20)의 MAC 주소를 ARP(또는 기타 L2 프로토콜)로 확인
    • 예: 66:77:88:99:AA:BB
  • 새 이더넷 헤더 생성
    • 출발 MAC: R2 내부 인터페이스 MAC
    • 목적 MAC: 내부 호스트의 MAC (66:77:88:99:AA:BB)
  • 이더넷 프레임 형태로 최종 호스트(10.0.0.20)에 전달

송신할 때 수신 측 포트 번호를 알고 있어야 하는 이유

포트 번호는 트랜스포트 계층(TCP/UDP)에서 “어느 서비스(프로그램)로 전달할 것인지”를 결정하는 핵심
– 수신 측 포트 번호가 정확히 지정되지 않으면 해당 서비스(프로그램)로 데이터가 도달하지 못함
– 예: 웹 서버가 8080에서 동작 중인데 80으로 보낸다면 연결 실패

라우터가 4계층 정보를 확인하는 이유 (NAT의 경우)

– 전통적 라우팅은 3계층(IP)만 확인
NAT는 IP + 포트(4계층 정보)까지 파싱하여 IP/포트 매핑 테이블을 관리
– 최근 장비들은 Stateful Inspection 등을 통해 TCP/UDP 세션도 추적


6. 최종 호스트(H)에서 디캡슐레이션

내부 호스트(H, IP: 10.0.0.20)는 수신한 이더넷 프레임을 디캡슐레이션하여 실제 데이터를 꺼냅니다.

  1. 물리 계층 (1)

전기/광 신호 → 비트 스트림 복원

  1. 데이터링크 계층 (2, Ethernet)

Ethernet 헤더 제거 후 IP 패킷 추출

  1. 네트워크 계층 (3, IP)

IP 헤더 검사(출발지, 목적지, TTL, 체크섬 등) 후 이상 없으면 트랜스포트 계층으로 전달

  1. 트랜스포트 계층 (4, TCP)

TCP 헤더(포트, 시퀀스 번호 등) 파악 후 데이터 “안녕” 추출

  1. 세션(5) – 프레젠테이션(6) – 애플리케이션(7)

세션 정보 확인, UTF-8 디코딩, 최종 데이터 “안녕”을 애플리케이션에 전달


7. 핵심 포인트 요약

  1. NAT 과정

로컬 라우터: 사설 IP(192.168.x.x) → 공인 IP 변환
원격 라우터: 공인 IP → 내부 IP 역변환

  1. MAC 주소(2계층)의 역할

ARP를 통해 동일 브로드캐스트 도메인 내에서 MAC 확인
라우터 간 전달 시, 이전 이더넷 헤더는 제거 후 다음 홉 라우터 MAC으로 새 헤더 생성

  1. 라우터(3계층)의 역할

IP 헤더 목적지 주소 기반 라우팅
BGP, OSPF 등 동적 라우팅 프로토콜 사용 가능

  1. NAT 시 4계층 파싱

일반 라우팅은 IP(3계층)만 확인
NAT 라우터는 IP+포트(4계층) 정보로 IP/포트 매핑 관리
포트 번호가 있어야 해당 서비스(프로그램)에 정확히 전달 가능

결국 내부 호스트에서 인터넷을 거쳐 원격 호스트까지 데이터가 도달하려면:

  • NAT에 의한 IP/포트 변환
  • ARP를 통한 MAC 주소 확인
  • 라우터의 IP 기반 라우팅과 이더넷 헤더 재생성

이 필수적입니다.

특히,

  • 송신 측수신 측 포트 번호를 반드시 알아야 해당 서비스로 데이터를 전달할 수 있고,
  • NAT 라우터는 4계층 정보(TCP/UDP 포트)까지 파싱해 매핑 테이블을 관리한다

는 점이 핵심입니다.

각 계층의 역할을 정확히 이해하고, NAT 및 ARP 동작 방식을 숙지하면 네트워크 통신 구조를 더욱 명확히 파악할 수 있습니다.


참고 자료

  • https://www.youtube.com/watch?v=CjnKNIyREHA
  • https://www.youtube.com/watch?v=K9L9YZhEjC0
위로 스크롤