본문 바로가기
카테고리 없음

[IT 인프라 기초] 데이터 캡슐화 심화, ARP와 Spoofing 보안 위협, 그리고 이더넷 CSMA/CD 완벽 정리

by Lsung 2026. 8. 13.

1. 소켓(Socket)과 포트 번호(Port Number)의 본질

① 메모장과 WinSCP의 결정적 차이: 소켓(Socket)

  • 일반 프로그램(메모장 등)과 네트워크 프로그램(WinSCP, 크롬 등)을 구분하는 기준은 소켓(Socket)의 사용 여부입니다.
  • 네트워크를 사용하는 프로그램은 실행 시 운영체제(OS)로부터 소켓이라는 가상의 통신 통로를 부여받아 열어야만 데이터를 주고받을 수 있습니다.

② 포트 번호(Port Number)의 할당 규칙

소켓이 열리면 프로그램 구분을 위한 고유 번호인 포트 번호가 할당됩니다. 이는 데이터베이스의 기본키(Primary Key)처럼 컴퓨터 내부에서 프로세스를 식별하는 유일한 값입니다.

  • 서버 포트 (Well-Known Ports: 0 ~ 1023)
    • 전 세계적으로 약속된 고정 공인 포트입니다.
    • 예: FTP 서버(vsFTPd)는 21번, 웹 서버(HTTP)는 80번.
    • 서버 프로그램은 언제 요청이 들어올지 모르기 때문에 시스템 리소스를 차지하더라도 항상 켜져 대기하는 데몬(Daemon/윈도우의 '서비스') 형태로 동작하며, 포트 번호가 고정되어 있습니다.
  • 클라이언트 포트 (Dynamic Ports: 1024 ~ 65535)
    • WinSCP, 브라우저 같은 클라이언트 프로그램은 실행될 때 OS가 자동으로 남는 번호(예: 4230)를 임시 할당해 줍니다. 고정되어 있지 않으며, 프로그램이 종료되면 회수됩니다.

 


2. 레이어별 패킷 생성과 캡슐화/역캡슐화 상세 흐름

송신 컴퓨터(WinSCP: 1.1.1.2, MAC: A)에서 수신 컴퓨터(vsFTPd: 1.1.1.3, MAC: B)로 메시지를 보낼 때, 컴퓨터 내부 레이어(OS 영역)에서 일어나는 물리적/논리적 과정입니다.

Code
[송신측: WinSCP (1.1.1.2 / MAC: A)]
 
1. APP 계층 (WinSCP)
- 전송할 데이터 알맹이인 '메시지(Message)' 생성
- 소켓을 통해 TCP 계층으로 전달
 
2. TCP 계층 (포트 식별)
- 메시지(M)에 출발지 포트(4230)와 목적지 포트(21) 헤더를 붙여 '세그먼트(Segment)' 생성
- 이 세그먼트가 실질적으로 상대 프로그램에 배달될 정보단위가 됨
 
3. IP 계층 (컴퓨터 주소 식별)
- 세그먼트(S)에 출발지 IP(1.1.1.2)와 목적지 IP(1.1.1.3) 헤더를 붙여 '데이터그램(Datagram)' 생성
- 이 단계를 통해 전 세계 네트워크에서 목적지 컴퓨터의 위치를 식별함
 
4. Ethernet 계층 (물리적 인접 장비 식별)
- 데이터그램(D)에 출발지 MAC 주소(A)와 목적지 MAC 주소(B) 헤더를 붙여 '프레임(Frame)' 생성
- 이 프레임이 랜카드를 통해 전기 신호(Physical)로 변환되어 선로로 방출됨
      
코드 접기 17줄
  • 페이로드(Payload)와 오버헤드(Overhead):
    • 택배를 보낼 때 상자(헤더)를 트럭(이더넷)에 싣는 과정과 같습니다. 이더넷 입장에서는 IP 데이터그램이 '짐(Payload)'이 되고, 이더넷 헤더는 '상자/수레(Overhead)'가 됩니다.
  • 역캡슐화(Decapsulation):
    • 수신측(1.1.1.3) 이더넷 카드가 전기 신호를 받아 프레임을 수신한 뒤, MAC 주소 확인 ➡️ IP 주소 확인 ➡️ 포트 번호(21) 확인 과정을 거치며 헤더를 차례로 벗겨내고, 최종 메시지만 vsFTPd 데몬에 정확히 전달합니다.

 


3. ARP(Address Resolution Protocol) 작동 원리와 Spoofing 공격

① 상대방의 MAC 주소는 어떻게 알아낼까? (ARP)

프로그램을 실행해 접속할 때 목적지 IP(1.1.1.3)는 알고 시작하지만, 물리적 전송을 위한 목적지 MAC 주소는 처음에는 알지 못합니다. 이때 MAC 주소를 알아내기 위해 ARP를 사용합니다.

  1. ARP 요청 (Broadcast): 같은 네트워크 안의 모든 컴퓨터에 *"IP가 1.1.1.3인 컴퓨터는 MAC 주소를 응답해 주세요!"*라고 소리칩니다. (모든 컴퓨터가 수신함)
  2. ARP 응답 (Unicast): 대상 컴퓨터(1.1.1.3)가 자신의 MAC 주소(B)를 요청자에게 직접 알려줍니다.
⚠️ 라우터의 ARP 차단 규칙: ARP 요청은 네트워크 전체를 울리는 브로드캐스트(Broadcast) 신호입니다. 대역폭 낭비를 막기 위해 라우터(공유기, 방화벽)는 ARP 패킷이 외부 네트워크로 넘어가지 못하도록 차단합니다. 따라서 ARP는 오직 동일한 네트워크 대역 안에서만 작동합니다.

② ARP Spoofing (스푸핑) 보안 공격의 본질

  • 공격 시나리오: 송신자(1.1.1.2)가 브로드캐스트로 *"IP 1.1.1.3인 사람 MAC 주소가 뭐야?"*라고 물었을 때, 공격자(1.1.1.4)가 가로채서 **"내가 1.1.1.3인데 내 MAC 주소는 C야"**라고 거짓 응답을 보냅니다.
  • 결과: 송신자는 속아서 모든 중요 데이터 프레임을 공격자(C)에게 보내게 되며, 공격자는 이를 도청(Sniffing)하거나 변조할 수 있게 됩니다.

 


4. 네트워크 토폴로지와 이더넷의 CSMA/CD 프로토콜

① 물리적 네트워크 연결 모양 (Topology)

  • Ring (링형): 고가용성(안정성)을 보장하기 위해 주로 군용이나 의료 장비(MRI 등)에서 FDDI 듀얼 링 구조로 사용됩니다. 한쪽 링이 끊어져도 반대쪽 반시계방향 링으로 즉시 백업 통신이 가능하지만 가성비가 떨어집니다.
  • Star (스타형): 중앙 허브/스위치를 중심으로 연결되는 구조입니다. 중앙 장비가 고장 나면 전체가 마비되므로 백업 라인이나 위성 장비를 두어 보완하며, 비용이 비쌉니다.
  • Bus (버스형): 하나의 공유 회선에 여러 장비가 정거장처럼 매달려 있는 구조입니다. 구조가 단순하고 장비 제조 비용이 가장 저렴하여 이더넷(Ethernet) 표준의 모태가 되었습니다.

② 이더넷의 핵심 통신 규약: CSMA/CD

버스형 구조인 이더넷 환경에서 데이터 충돌 없이 통신하기 위해 사용하는 핵심 프로토콜입니다.

  • CS (Carrier Sense - 신호 감지): 패킷(프레임)을 보내기 전에 현재 네트워크 선로에 다른 전기 신호(캐리어)가 흐르고 있는지 먼저 살핍니다.
  • MA (Multiple Access - 다중 접속): 선로가 비어있음이 확인되면, 데이터를 멀티플 액세스 방식으로 방출합니다. 버스형이므로 이 패킷은 망에 연결된 모든 컴퓨터(B, C, D)를 거쳐 흘러가며, 각 컴퓨터는 헤더의 목적지 주소를 확인하여 자기 것이 아니면 버리고 자기 것이면 취합니다.
  • CD (Collision Detection - 충돌 감지): 만약 두 컴퓨터가 동시에 데이터를 보내 전기 신호가 부딪쳐 깨지는 **충돌(Collision)**이 발생하면, 즉시 전송을 중단하고 시그널이 가라앉을 때까지 무작위 시간 동안 대기(Backoff)한 후 재전송을 시도합니다.