와이어샤크를 통한 프로토콜 분석

0

network

목록 보기
35/39

Wireshark를 이용한 패킷 분석 실습


1. Wireshark 실습 개요

이번 강의에서는 Wireshark를 활용하여 다양한 패킷을 직접 분석하면서, 지금까지 배운 프로토콜과 네트워크 동작 방식을 복습합니다.

사용할 패킷 캡처 파일 목록:
1. IPv4 Fragmentation (IP 버전 4 단편화 및 ICMP)
2. IPv6 Fragmentation (IP 버전 6 단편화 및 UDP)
3. TCP 3-Way Handshake (TCP 연결 수립)
4. TCP Connection Close (TCP 연결 종료)
5. TCP Retransmission (TCP 재전송 및 빠른 재전송)
6. HTTP Request & Response (HTTP 요청 및 응답)


2. IPv4 단편화 및 ICMP 분석

2.1 패킷 캡처 파일: IPv4_Fragmentation.pcap

Wireshark에서 해당 파일을 열어보면 1번~14번 패킷이 포함되어 있습니다.

2.2 IP 주소 확인

  • 1~7번 패킷: 10.0.0.1 → 10.0.0.2
  • 8~14번 패킷: 10.0.0.2 → 10.0.0.1
  • ICMP 요청/응답 메시지 포함 (7번, 14번 패킷)

2.3 IP 단편화 확인

IP 헤더 주요 필드:

  • Identification 필드 (식별자): 동일한 데이터에서 단편화된 패킷들은 같은 식별자 값을 가짐.
  • More Fragments(MF) 비트:
    • 1번~6번 패킷: MF = 1 (더 단편화된 패킷이 있음)
    • 7번 패킷: MF = 0 (더 이상 단편화되지 않음)
  • Fragment Offset 필드:
    • 첫 번째 패킷: Offset = 0
    • 두 번째 패킷: Offset = 1480
    • 세 번째 패킷: Offset = 2960
    • … (단편화된 패킷들의 바이트 오프셋 확인 가능)

2.4 ICMP 메시지 분석

  • 7번 패킷: ICMP Echo Request (Type: 8, Code: 0)
  • 14번 패킷: ICMP Echo Reply (Type: 0, Code: 0)

3. IPv6 단편화 및 UDP 분석

3.1 패킷 캡처 파일: IPv6_Fragmentation.pcap

IPv6 단편화는 확장 헤더(Extension Header)를 이용하여 수행됨.

3.2 IPv6 주소 확인

IPv6 주소는 128비트, 16진수로 표현되며 압축 표기법 사용 가능:

  • 예: 2001:db8::1 (::은 연속된 0 생략)

3.3 IPv6 단편화 분석

IPv6에서는 단편화 정보가 Fragment Extension Header에 포함됨.

  • Identification 필드: 단편화된 패킷끼리는 같은 값.
  • Fragment Offset 필드: 단편화된 데이터의 위치 정보.
  • More Fragments 비트:
    • 값이 1: 단편화된 패킷이 더 존재함.
    • 값이 0: 마지막 단편화된 패킷.

3.4 UDP 패킷 확인

UDP는 TCP와 달리 연결 설정 없이 데이터 전송이 가능하며 헤더가 간단함.

  • 주요 필드: Source Port, Destination Port, Length, Checksum

4. TCP 3-Way Handshake 분석

4.1 패킷 캡처 파일: TCP_3Way_Handshake.pcap

TCP는 신뢰성 있는 연결을 위해 연결을 수립(3-Way Handshake)해야 함.

4.2 3-Way Handshake 과정

  1. SYN (1번 패킷)

    • 클라이언트 (192.168.0.1) → 서버 (10.10.10.1)
    • SYN 비트 설정됨.
    • 랜덤한 초기 순서 번호(Initial Sequence Number, ISN) 사용.
  2. SYN-ACK (2번 패킷)

    • 서버 (10.10.10.1) → 클라이언트 (192.168.0.1)
    • SYNACK 비트 설정됨.
    • 클라이언트의 ISN에 1을 더한 값으로 ACK 응답.
  3. ACK (3번 패킷)

    • 클라이언트 (192.168.0.1) → 서버 (10.10.10.1)
    • ACK 비트 설정됨.
    • 서버의 ISN + 1 값을 ACK 응답.

결과: TCP 연결 수립 완료!


5. TCP 연결 종료 분석

5.1 패킷 캡처 파일: TCP_Connection_Close.pcap

TCP 연결 종료는 4-Way Handshake를 통해 수행됨.

5.2 4-Way Handshake 과정

  1. FIN (1번 패킷)

    • 서버가 연결 종료 요청 (FIN 비트 설정).
  2. ACK (2번 패킷)

    • 클라이언트가 ACK 응답 (FIN에 대한 응답).
  3. FIN (3번 패킷)

    • 클라이언트도 연결 종료 요청 (FIN 비트 설정).
  4. ACK (4번 패킷)

    • 서버가 ACK 응답 (FIN에 대한 응답).

결과: TCP 연결 종료 완료!


6. TCP 재전송 및 빠른 재전송 분석

6.1 패킷 캡처 파일: TCP_Retransmission.pcap

  • 패킷 손실로 인해 재전송(Retransmission) 또는 빠른 재전송(Fast Retransmission)이 발생하는 경우.

6.2 분석 과정

  1. 일반적인 TCP 재전송

    • 패킷 유실로 인해 특정 패킷을 다시 전송.
    • Wireshark에서 TCP Retransmission 필터로 확인 가능.
  2. 빠른 재전송 (Fast Retransmission)

    • 동일한 ACK3번 반복될 경우, 빠른 재전송 실행.
    • Wireshark에서 TCP Fast Retransmission 필터로 확인 가능.

결과: TCP의 신뢰성 있는 전송을 위한 오류 제어 메커니즘 확인!


7. HTTP 요청 및 응답 분석

7.1 패킷 캡처 파일: HTTP_Request_Response.pcap

HTTP는 클라이언트-서버 모델을 기반으로 동작하며, 요청과 응답 메시지를 분석할 수 있음.

7.2 HTTP 요청(Request) 분석

  1. GET 요청 (1번 패킷)

    • GET / HTTP/1.1
    • Host: www.example.com
    • 요청한 리소스: / (루트 페이지)
  2. Referer 헤더 확인 (3번 패킷)

    • Referer: https://www.previous-site.com
    • 사용자가 어떤 페이지에서 이동했는지 확인 가능.

7.3 HTTP 응답(Response) 분석

  1. 200 OK (2번 패킷)

    • HTTP/1.1 200 OK
    • Content-Type: text/html
    • 서버가 정상적으로 HTML 페이지를 응답.
  2. HTML 컨텐츠 포함

    • 실제 HTML 페이지 소스 코드가 포함됨.

결과: HTTP 요청 및 응답 분석 완료!


8. 결론

  • Wireshark를 통해 패킷의 동작과 프로토콜을 직접 확인할 수 있음.
  • IPv4/IPv6, TCP, UDP, HTTP 등의 패킷을 분석하면서 네트워크의 동작 원리를 이해.
  • 네트워크 문제 해결 및 보안 분석 시 Wireshark 활용 가능.

🚀 다음 실습에서 더 깊이 있는 패킷 분석을 진행해보자!

0개의 댓글