Post

네트워크 공부 6

IPv4 프로토콜

- IPv4 프로토콜이 하는 일

  • 네트워크 상에서 데이터를 교환하기 위한 프로토콜
  • 데이터가 정확하게 전달될 것을 보장하지 않음
  • 중복된 패킷이 전달되거나 패킷의 순서가 어긋날 가능성이 있음 (악용 시 DoS 공격이 될 수 있음)
  • 데이터의 정확하고 순차적인 전달은 상위 프로토콜인 TCP가 보장함

- IPv4 프로토콜의 구조

  • Version: IP 프로토콜의 버전 (현재 4버전, IPv6는 구조가 다름)
  • IHL: IP 헤더의 길이 / 4 (헤더는 최소 20, 최대 60 바이트로, 2진수 4비트로 표현하기 위해 헤더 길이를 4로 나눈 값을 사용)
  • TOS (Type of Service): 현재는 사용되지 않음 (0으로 비워둠)
  • Total Length: 헤더와 페이로드를 합친 총 길이
  • Identification: 패킷이 쪼개지기 전 하나의 패킷이었음을 알려주는 값
  • xDM:
    • x: 사용되지 않음
    • D: 데이터를 쪼개지 않고 보내겠다고 지정하는 값 (패킷 전송 불가)
    • M: 첫 번째 패킷 뒤에 조각난 패킷이 더 온다고 알려주는 값
  • Fragment Offset: 조각난 패킷을 원래 순서대로 복구할 때 사용하는 값
  • TTL (Time to Live): 패킷이 3계층 장비를 거칠 때마다 값이 1씩 줄어들고, 0이 되면 해당 네트워크 장비가 패킷을 폐기 (TTL 값으로 상대 운영체제를 유추 가능)
  • Protocol: 상위 프로토콜을 알려주는 값 (ICMP: 01, TCP: 06, UDP: 17)
  • Header Checksum: 헤더에 오류가 있는지 확인하는 값
  • Source Address: 출발지 IP 주소
  • Destination Address: 목적지 IP 주소
  • IP Option: 최대 10개의 옵션 필드를 포함할 수 있음

ICMP 프로토콜

- ICMP 프로토콜이 하는 일

  • 네트워크 컴퓨터 상에서 운영체제 오류 메시지를 전송받는 데 주로 사용되는 프로토콜
  • ICMP는 TypeCode 값을 통해 다양한 오류 메시지를 전송

- ICMP 프로토콜의 구조

  • Type: 대분류 (주요 Type 값: 0, 3, 5, 8, 11번은 반드시 숙지)
  • Code: 세부 분류

- 주요 ICMP Type 번호 설명

  1. Type 0 (Echo Reply)

    • 핑 명령어에 대한 응답 메시지. 핑 요청(Type 8)에 대한 응답으로 사용됨
  2. Type 3 (Destination Unreachable)

    • 목적지에 도달할 수 없을 때 전송되는 메시지. 네트워크 불가, 호스트 불가, 포트 불가 등의 세부 코드가 있음
  3. Type 5 (Redirect)

    • 더 나은 경로가 있을 때 라우터가 라우팅 테이블 수정을 안내하는 메시지를 전송함
  4. Type 8 (Echo Request)

    • 핑 명령어로 대상 컴퓨터가 살아 있는지 확인하기 위한 요청 메시지
  5. Type 11 (Time Exceeded)

    • 패킷의 TTL(Time to Live) 값이 0이 되어 더 이상 전송할 수 없을 때 발생하는 메시지. 주로 트레이스라우트(Traceroute)와 관련됨

라우팅 테이블

  • 네트워크에서 데이터 패킷을 어디로 보내야 할지 결정하는 경로 정보를 저장한 테이블
  • 네트워크의 지도와 같은 역할을 하여, 목적지에 도달하기 위한 최적의 경로를 알려줌

다른 네트워크와 통신 과정

  • A가 B와 통신하는 과정

    1. A의 라우팅 테이블 확인

    2. 보낼 패킷 작성

      • 이더넷은 같은 네트워크에서만 통신 가능하므로 이더넷 헤더에는 갈수 있는 곳까지의 MAC주소를 작성함 (그래서 A의 네트워크의 게이트웨이 MAC주소를 넣음)
    3. 게이트웨이가 3계층까지 패킷을 열어봄 → 자신의 라우팅 테이블을 보고 이더넷 헤더 다시 작성
    4. 라우터가 받아서 3계층까지 패킷을 열어봄 → 자신의 라우팅 테이블을 보고 이더넷 헤더 다시 작성
    5. 게이트웨이가 받아서 3계층까지 패킷을 열어봄 → 이더넷 헤더 다시 작성

IPv4의 조각화

  • 큰 IP 패킷작은 MTU(Maximum Transmission Unit)를 가진 링크를 통해 전송되려면, 여러 개의 작은 패킷으로 조각화되어 전송되어야 함
  • 패킷을 목적지까지 전달하는 과정에서 각 라우터는 전송에 적합한 프레임으로 변환이 필요함
  • 일단 조각화되면, 최종 목적지에 도달할 때까지 재조립되지 않음이 일반적임
  • IPv4에서는 발신지뿐만 아니라 중간 라우터에서도 IP 조각화가 가능
  • IPv6에서는 IP 조각화가 발신지에서만 가능하고, 재조립은 최종 목적지에서만 가능함

- 조각화 예시

- 조각화 문제

  • 답 : 3, 960, 459

* 실습

- 라우팅 테이블 확인

- 패킷 분석

  • 모두 같은 아이디 값임
  • 첫 패킷과 마지막 패킷만 More fragments 플래그 설정됨
  • 오프셋 값 계산해서 설정되어있음