JSON 타이밍 출력 분석
이 단계에서는 Wireshark 가 JSON 형식으로 타이밍 정보를 기록하는 방법을 살펴봅니다. JSON (JavaScript Object Notation) 은 사람이 읽기 쉽고 기계가 구문 분석하기 쉬운 가벼운 데이터 형식입니다. 이전 단계의 패킷 캡처 및 필터링 기술을 결합하여 의미 있는 타이밍 통계를 생성합니다.
시작하기 전에 올바른 디렉토리에 있는지 확인해 보겠습니다. 프로젝트 폴더에는 필요한 모든 파일이 포함되어 있으며 작업을 정리하는 데 도움이 됩니다.
cd ~/project
이제 TCP 패킷에 대한 타이밍 데이터를 생성합니다. --print-timers 플래그는 Tshark 에게 출력에 타이밍 정보를 포함하도록 지시하고, -T json은 이를 JSON 으로 형식을 지정합니다. 나중에 분석하기 위해 이를 파일에 저장합니다.
tshark -r /usr/share/wireshark/example_captures/http.pcap -Y "tcp" --print-timers -T json > tcp_timings.json
JSON 출력의 구조를 간략하게 살펴보겠습니다. head 명령은 처음 20 줄을 표시하여 데이터를 더 처리하기 전에 데이터가 어떻게 구성되어 있는지 이해하는 데 도움이 됩니다.
head -20 tcp_timings.json
JSON 데이터를 효과적으로 사용하기 위해 강력한 명령줄 JSON 프로세서인 jq를 사용합니다. 아직 설치하지 않은 경우 이 명령으로 설정할 수 있습니다.
sudo apt-get install -y jq
이제 특정 타이밍 메트릭을 추출할 수 있습니다. 이 명령은 각 패킷에 대한 타이머 정보만 표시하도록 JSON 을 필터링하여 타이밍 데이터를 더 깔끔하게 볼 수 있도록 합니다.
jq '.[].timers' tcp_timings.json | head -10
마지막으로, 패킷 번호와 해당 처리 시간만 표시하는 보다 집중적인 요약을 만들어 보겠습니다. 이를 통해 각 패킷을 처리하는 데 걸린 시간을 명확하게 볼 수 있습니다.
jq '.[].timers | {packet_number: .packet_num, processing_time: .processing_time}' tcp_timings.json | head -5