업데이트:

4 분 소요

네트워크 프로토콜과 관련된 개념 정리

IP 헤더 필드

Protocol (8비트)

  • 설명: 상위 계층 프로토콜 정보를 저장하며, IP 패킷에 실려 있는 데이터의 프로토콜 유형을 나타낸다.
  • 예시: TCP(6), UDP(17), ICMP(1) 등의 프로토콜 번호를 사용한다.

Service Type (Type of Service, ToS)

  • 설명: 데이터의 품질 요구 사항을 포함하며, 우선순위와 서비스 품질(QoS)을 지정한다.
  • 구성 요소:
    • 우선순위 비트
    • 지연, 처리량, 신뢰성 등의 요구 사항을 표시하는 비트

Identification

  • 설명: 전송되는 데이터그램의 고유 식별 번호이다.
  • 역할: IP 단편화가 발생할 경우, 원본 데이터그램을 식별하고 재조립하기 위해 모든 단편에 동일한 Identification 번호를 부여한다.

Flags

  • 설명: 단편화 관련 제어 정보를 포함하는 3비트 필드이다.
  • 구성 요소:
    • Reserved: 예약 비트로 항상 0이다.
    • DF (Don’t Fragment): 1이면 단편화를 하지 않음을 나타낸다.
    • MF (More Fragments): 1이면 뒤에 더 많은 단편이 있음을 나타낸다.

Fragmentation Offset

  • 설명: 단편화된 패킷의 원본 데이터에서의 위치를 나타낸다.
  • 역할: 수신 측에서 단편들을 올바른 순서로 재조립하는 데 사용한다.
  • 단위: 8바이트 단위로 오프셋을 표시한다.

TTL (Time To Live)

  • 설명: 패킷의 수명을 제한하기 위한 값이다.
  • 역할: 패킷이 네트워크에서 무한 루프에 빠지는 것을 방지한다.
  • 동작 방식: 각 라우터를 지날 때마다 TTL 값이 1씩 감소하며, TTL이 0이 되면 패킷은 폐기된다.

MTU와 단편화

MTU (Maximum Transmission Unit)

  • 설명: 네트워크 매체를 통해 전송될 수 있는 최대 데이터 크기이다.
  • 역할: 한 번에 전송할 수 있는 최대 IP 패킷의 크기를 결정한다.
  • 단편화 발생 조건: IP 패킷의 크기가 MTU보다 큰 경우 단편화가 필요하다.

단편화 (Fragmentation)

  • 설명: 큰 IP 패킷을 MTU 크기에 맞게 작게 분할하는 과정이다.
  • 실행 계층: 주로 3계층인 IP 계층에서 수행된다.
  • 단편화 확인 방법: IP 헤더의 Identification, Flags(MF 비트), Fragmentation Offset 필드를 확인한다.

MSS (Maximum Segment Size)

  • 설명: TCP에서 한 번에 전송할 수 있는 최대 데이터 크기(페이로드)를 의미한다.
  • 계산 방법:
    • MSS = MTU - IP 헤더 크기 - TCP 헤더 크기
  • 예시:
    • MTU: 1500바이트
    • IP 헤더: 20바이트
    • TCP 헤더: 20바이트
    • MSS = 1500 - 20 - 20 = 1460바이트

단편화 과정

4계층 단편화

  • TCP의 경우 MSS보다 큰 데이터는 송신 측에서 분할하여 전송한다.

3계층 단편화

  • IP 계층에서 MTU보다 큰 패킷은 단편화된다.

주의점

  • UDP는 전송 계층에서 단편화를 수행하지 않으므로, IP 계층에서 단편화가 필요하다.
  • 단편화는 네트워크 성능에 부정적 영향을 미칠 수 있으므로 최소화하는 것이 좋다.

ICMP 메시지 종류

분류

  1. 오류 메시지
    • 목적지 도달 불가 (Destination Unreachable): 목적지에 도달할 수 없을 때 발생한다.
    • 시간 초과 (Time Exceeded): TTL이 0이 되어 패킷이 폐기될 때 발생한다.
    • 검사합 오류 (Checksum Error): 패킷의 오류를 검출할 때 발생한다.
    • 재지정 (Redirect): 더 나은 경로로 라우팅하도록 유도할 때 사용한다.
  2. 질의 메시지
    • 에코 요청 및 응답 (Echo Request and Reply): 연결 상태 확인을 위해 사용한다.
    • 시간 정보 요청 및 응답 (Timestamp Request and Reply): 시간 동기화를 위해 사용한다.
    • 주소 마스크 요청 및 응답 (Address Mask Request and Reply): 서브넷 마스크 정보를 획득하기 위해 사용한다.

코드 (Code) 필드

  • 설명: 각 메시지 타입 내에서 세부 사항을 나타낸다.
  • 역할: 오류의 원인이나 질의의 종류를 세분화하여 전달한다.

ARP 캐시 테이블 생성 과정

  1. ARP 캐시 확인
    • 호스트는 자신의 ARP 캐시 테이블을 확인하여 대상 IP 주소에 대한 MAC 주소 매핑이 있는지 확인한다.
    • 매핑 정보가 있다면 해당 MAC 주소를 사용하여 통신한다.
  2. ARP 요청 브로드캐스트
    • 캐시 테이블에 매핑 정보가 없다면 ARP 요청 패킷을 브로드캐스트(FF:FF:FF:FF:FF:FF)로 전송한다.
    • ARP 요청에는 송신자의 IP 주소와 MAC 주소, 그리고 대상의 IP 주소가 포함된다.
  3. ARP 응답 수신 및 캐시 테이블 업데이트
    • 대상 IP 주소를 가진 호스트는 ARP 요청을 수신하면 자신의 MAC 주소를 포함한 ARP 응답 패킷을 송신자에게 유니캐스트로 전송한다.
    • 송신자는 ARP 응답을 수신하면 해당 IP 주소와 MAC 주소의 매핑 정보를 자신의 ARP 캐시 테이블에 저장한다.
    • 이렇게 업데이트된 캐시 테이블을 통해 이후 통신에서 빠르게 MAC 주소를 확인할 수 있다.

추가로 알면 좋은 내용

IP 헤더의 기타 필드

  • Version: IP 프로토콜의 버전을 나타낸다(IPv4에서는 4).
  • IHL (Internet Header Length): IP 헤더의 길이를 32비트(4바이트) 단위로 표시한다.
  • Total Length: IP 헤더와 페이로드를 합한 전체 패킷의 길이를 바이트 단위로 나타낸다.
  • Header Checksum: IP 헤더의 오류 검출을 위한 값으로, 전송 중 헤더의 무결성을 확인한다.
  • Source IP Address: 패킷의 송신자 IP 주소이다.
  • Destination IP Address: 패킷의 수신자 IP 주소이다.

Path MTU Discovery

  • 설명: 송신 측에서 목적지까지의 경로에서 가장 낮은 MTU 값을 발견하여 단편화를 피하고 최적의 패킷 크기를 결정하는 방법이다.
  • 동작 방식:
    • 송신 측에서 DF(Don’t Fragment) 비트를 설정한 패킷을 전송한다.
    • 경로 중 MTU보다 큰 패킷이 전달되지 못하면 ICMP ‘Fragmentation Needed’ 메시지를 수신한다.
    • 이를 통해 송신 측은 패킷 크기를 조정한다.
  • 장점: 단편화를 피하여 네트워크 효율성과 성능을 향상시킨다.

TCP와 UDP의 단편화 차이

TCP

  • MSS를 기반으로 송신 측에서 패킷 크기를 조절하여 단편화를 최소화한다.
  • 흐름 제어와 혼잡 제어를 통해 전송 효율을 높인다.

UDP

  • 데이터그램의 크기가 MTU를 초과할 경우 IP 계층에서 단편화가 발생한다.
  • 단편화된 UDP 패킷은 신뢰성이 낮으며 손실되기 쉬우므로 주의가 필요하다.

IP Fragmentation의 문제점

  1. 성능 저하:
    • 단편화된 패킷은 추가적인 헤더 정보를 가지며 재조립 과정이 필요하여 처리 부담이 증가한다.
  2. 패킷 손실 위험:
    • 단편 중 하나라도 손실되면 전체 데이터그램을 재전송해야 한다.
  3. 보안 위험:
    • 단편화를 악용한 공격(IP Fragmentation Attack)이 발생할 수 있다.

ICMP와 Traceroute

Traceroute 도구

  • 네트워크 경로를 추적하기 위해 사용한다.
  • TTL 값을 증가시키며 ICMP ‘Time Exceeded’ 메시지를 수신하여 경로상의 라우터 정보를 수집한다.

동작 원리

  1. 첫 패킷의 TTL을 1로 설정하여 첫 번째 라우터에서 TTL이 만료되어 ICMP 메시지를 반환한다.
  2. TTL을 하나씩 증가시켜 다음 라우터의 정보를 얻는다.

ARP 스푸핑 및 보안 대책

ARP 스푸핑 공격

  • 공격자가 허위의 MAC 주소 정보를 ARP 캐시 테이블에 주입하여 통신을 가로채거나 중단시키는 공격이다.

대책

  1. 정적 ARP 테이블 설정:
    • 중요 호스트의 ARP 매핑을 수동으로 설정하여 변조를 방지한다.
  2. 동적 ARP 검사(DAI):
    • 스위치에서 ARP 패킷을 검사하여 유효성을 확인한다.
  3. 보안 프로토콜 사용:
    • SSH, HTTPS 등 암호화된 통신을 사용하여 민감한 정보 보호한다.