소개
이 랩에서는 Wireshark 의 명령줄 도구인 Tshark 를 사용하여 TCP 패킷 손실을 분석하는 방법을 배우게 됩니다. 실제 터미널 명령을 통해 네트워크 트래픽 캡처, 재전송 식별, 손실 통계 해석을 연습할 것입니다.
이 연습은 패킷 손실 패턴을 감지하고 네트워크 성능 지표를 이해하도록 안내합니다. 정상적인 전송과 시뮬레이션된 손실 시나리오 모두에 대한 실습 경험을 통해 실제 TCP 연결 문제를 해결할 수 있습니다.
-f "tcp"를 사용하여 TCP 캡처
이 단계에서는 Wireshark 의 캡처 필터 옵션 -f "tcp"를 사용하여 TCP 트래픽을 캡처하는 방법을 배우게 됩니다. TCP (Transmission Control Protocol, 전송 제어 프로토콜) 는 인터넷의 핵심 프로토콜 중 하나로, 안정적인 데이터 전송을 담당합니다. 이 필터는 TCP 패킷만 캡처하도록 보장합니다. 이는 연결 설정 (3-way handshake, 쓰리웨이 핸드셰이크), 재전송, 흐름 제어와 같은 TCP 관련 동작에 집중하고 다른 네트워크 트래픽에 방해받지 않으려는 경우 특히 유용합니다.
먼저, Xfce 데스크톱의 터미널 아이콘을 클릭하거나 단축키
Ctrl+Alt+T를 사용하여 LabEx VM 에서 터미널을 엽니다. 터미널은 이 네트워크 분석에 필요한 모든 명령을 실행하는 곳입니다.캡처 파일을 저장할 기본 작업 디렉토리로 이동합니다.
cd ~/project이 디렉토리는 랩 작업을 위해 특별히 생성되었으며, 파일을 정리하고 시스템 파일과 분리합니다.
다음 명령을 실행하여 TCP 패킷 캡처를 시작합니다.
sudo tshark -f "tcp" -w tcp_capture.pcap각 부분이 무엇을 하는지 자세히 살펴보겠습니다.
sudo는 패킷 캡처에 필요한 관리자 권한을 제공합니다.tshark는 Wireshark 의 명령줄 버전입니다.-f "tcp"는 tshark 에게 TCP 패킷만 캡처하도록 지시합니다.-w tcp_capture.pcap는 캡처된 패킷을 tcp_capture.pcap 이라는 파일에 저장합니다.
tshark 가 실행되는 동안 다른 터미널 탭/창 (Ctrl+Shift+T) 을 열고 일부 TCP 트래픽을 생성합니다. curl 을 사용하여 간단한 웹 요청을 수행합니다.
curl -I https://www.labex.io-I플래그는 curl 에게 HTTP 헤더만 가져오도록 지시합니다. 이는 불필요한 데이터를 다운로드하지 않고 분석에 충분한 트래픽을 생성합니다.충분한 패킷을 캡처하기 위해 약 5-10 초 동안 기다린 후, tshark 가 실행 중인 터미널에서
Ctrl+C를 눌러 캡처를 중지합니다. 다음과 유사한 출력이 표시됩니다.Capturing on 'eth1' 10 packets captured이는 세션 동안 캡처된 TCP 패킷 수를 확인합니다.
디렉토리의 파일을 나열하여 캡처 파일이 성공적으로 생성되었는지 확인합니다.
ls -lh tcp_capture.pcap-lh옵션은 파일 크기를 사람이 읽을 수 있는 형식 (KB 또는 MB 등) 과 기타 세부 정보와 함께 표시합니다. 이는 다음 단계로 이동하기 전에 캡처가 제대로 저장되었는지 확인하는 데 도움이 됩니다.
-Y "tcp.analysis.retransmission"을 사용하여 재전송 확인
이 단계에서는 전송자가 전송된 패킷에 대한 응답 (acknowledgment, ACK) 을 받지 못하고 다시 보내야 할 때 발생하는 TCP 재전송을 검사합니다. 이는 빈번한 재전송이 종종 네트워크 혼잡, 패킷 손실 또는 기타 연결 문제를 나타내기 때문에 중요한 네트워크 문제 해결 기술입니다.
시작하기 전에, 무엇을 찾고 있는지 이해해 봅시다.
- 재전송은 TCP 가 예상 시간 내에 ACK (응답) 을 받지 못할 때 발생합니다.
- Wireshark/tshark는 "tcp.analysis.retransmission" 특수 필터를 사용하여 이를 식별할 수 있습니다.
- 먼저 기존 캡처를 확인한 다음, 시뮬레이션된 네트워크 문제로 새 캡처를 생성합니다.
먼저, 캡처 파일이 저장된 프로젝트 디렉토리에 있는지 확인합니다.
cd ~/project이전에 생성한 캡처 파일에서 재전송이 있는지 분석해 보겠습니다. 이 명령은 다음과 같이 구성됩니다.
-r은 저장된 캡처 파일에서 읽습니다.-Y는 재전송만 표시하도록 표시 필터를 적용합니다.
tshark -r tcp_capture.pcap -Y "tcp.analysis.retransmission"첫 번째 캡처 동안 네트워크 연결이 안정적이었다면, 다음과 같은 내용이 표시될 것입니다.
0 packets captured이는 정상적인 현상이며, 해당 캡처 기간 동안 재전송이 필요한 패킷이 없음을 나타냅니다.
재전송을 더 잘 이해하기 위해, 의도적으로 네트워크 혼잡을 유발하면서 새 캡처를 생성합니다. 두 개의 터미널 창을 엽니다.
첫 번째 터미널에서 TCP 트래픽 캡처를 시작합니다.
sudo tshark -f "tcp" -w retransmission_capture.pcap두 번째 터미널에서 재전송을 유발할 수 있는 느린 다운로드를 실행합니다.
curl --limit-rate 10k https://www.labex.io몇 초 후에
Ctrl+C를 사용하여 두 프로세스를 모두 중지합니다.이제 재전송에 대한 새 캡처 파일을 검사합니다.
tshark -r retransmission_capture.pcap -Y "tcp.analysis.retransmission"이번에는 재전송된 패킷이 나열되어 시퀀스 번호와 타이밍 세부 정보를 표시하여 네트워크 성능 문제를 진단하는 데 도움이 됩니다.
-z tcp,tree 를 사용하여 손실 통계 요약
이 단계에서는 Wireshark 의 강력한 통계 기능을 -z tcp,tree 옵션과 함께 사용하는 방법을 배우게 됩니다. 이 명령은 캡처된 데이터의 모든 TCP 스트림에 대한 구조화된 개요를 제공하여 TCP 대화를 분석하고 패킷 손실 패턴을 식별하는 데 도움이 됩니다.
시작하기 전에, TCP 대화 통계가 무엇을 보여주는지 이해해 봅시다.
- 트리 뷰는 호스트 쌍 간의 통신을 표시합니다.
- 각 방향으로 전송된 프레임 (패킷) 및 바이트 수를 계산합니다.
- 문제가 있을 수 있는 불균형 트래픽을 식별하는 데 도움이 됩니다.
먼저, 캡처 파일이 저장된 프로젝트 디렉토리에 있는지 확인합니다.
cd ~/project이제 초기 캡처에서 기본 TCP 통계를 분석해 보겠습니다. 이 명령은 캡처 파일을 읽고 대화 트리를 생성합니다.
tshark -r tcp_capture.pcap -z tcp,tree출력은 모든 TCP 대화의 구조화된 테이블을 표시합니다. 다음 열에 주의하십시오.
<-는 컴퓨터로 들어오는 트래픽을 보여줍니다.->는 컴퓨터에서 나가는 트래픽을 보여줍니다.Total은 양방향을 요약합니다.
====================================================== TCP Conversations Filter:<No Filter> | <- | | -> | | Total | | Frames Bytes | | Frames Bytes | | Frames Bytes | ======================================================이제 재전송 캡처를 구체적으로 검사해 보겠습니다. 패킷이 손실되어 다시 보내야 할 때 재전송이 발생합니다.
tshark -r retransmission_capture.pcap -z tcp,tree프레임 수가 다른 대화보다 현저히 높은 대화를 찾으십시오. 이는 종종 재전송 문제를 나타냅니다.
가장 정확한 분석을 위해, 이전 재전송 필터와 결합할 수 있습니다. 이는 대화 트리에서 재전송된 패킷만 표시합니다.
tshark -r retransmission_capture.pcap -Y "tcp.analysis.retransmission" -z tcp,tree이는 어떤 대화에서 패킷 손실이 발생하는지 정확히 파악하는 데 도움이 됩니다.
-q 옵션으로 조용한 출력 설정
이 단계에서는 Wireshark 의 -q 옵션을 사용하여 패킷 분석을 단순화하는 방법을 살펴봅니다. 대규모 네트워크 캡처 작업 시, 모든 개별 패킷을 볼 필요는 없으며, 중요한 통계만 원하는 경우가 많습니다. -q (quiet, 조용함) 옵션은 자세한 패킷 목록을 숨기고 요약 데이터만 표시하여 이를 돕습니다.
먼저, 캡처 파일이 저장된 작업 디렉토리로 이동합니다.
cd ~/project이제 TCP 캡처 파일을 조용한 모드로 분석합니다. 이 명령은 파일을 읽지만 TCP 대화 통계만 표시합니다.
tshark -r tcp_capture.pcap -q -z tcp,tree-q옵션이 무엇을 하는지 이해하기 위해, 이 옵션 없이 동일한 명령을 실행해 보겠습니다. 이 버전이 통계 전에 모든 개별 패킷을 어떻게 표시하는지 확인하십시오.tshark -r tcp_capture.pcap -z tcp,tree조용한 옵션을 이전 재전송 필터와 결합할 수 있습니다. 이렇게 하면 재전송 통계만 깔끔하게 볼 수 있습니다.
tshark -r retransmission_capture.pcap -Y "tcp.analysis.retransmission" -q -z tcp,tree출력 형식은 다음과 같이 패킷 세부 정보 없이 대화 통계만 표시합니다.
====================================================== TCP Conversations Filter:tcp.analysis.retransmission | <- | | -> | | Total | | Frames Bytes | | Frames Bytes | | Frames Bytes | ======================================================
요약
이 랩에서는 Tshark 를 사용하여 실질적인 네트워크 문제 해결 기술을 통해 TCP 패킷 손실을 분석하는 방법을 배웠습니다. 특정 필터를 사용하여 TCP 트래픽을 캡처하고, 재전송을 식별하고, 네트워크 성능을 평가하기 위한 연결 통계를 생성했습니다.
이 연습에서는 포괄적인 TCP 스트림 분석을 위한 -z tcp,tree 및 효율적인 통계 보고를 위한 -q와 같은 Tshark 의 고급 기능을 사용하는 방법을 보여주었습니다. 이러한 기술을 통해 실제 네트워크 환경에서 패킷 손실 문제를 신속하게 진단하고 해결할 수 있습니다.


