PortDock

산업 통신 pcap 해석기

Wireshark·pktmon 으로 뜬 .pcap·.pcapng 를 끌어 놓으면 Modbus TCP·MC(3E·4E)의 요청·응답 짝, 응답 시간, 무응답, 예외·종료 코드를 연결·장치별로 보여 줍니다.

예시 캡처 내려받기 (.pcapng, 10KB)직접 만든 합성 파일 — Modbus TCP 예외·무응답, MC 종료 코드 C059 가 들어 있습니다. 캡처가 없을 때 결과 모양을 먼저 보세요.

파일은 이 브라우저 안에서만 처리하고 어디에도 올리지 않습니다. IP 주소는 화면에만 보이고, CSV 에는 고를 때만 들어갑니다.

자주 묻는 것

어떤 파일을 읽나요?

Wireshark·tcpdump·dumpcap·pktmon(etl2pcap 으로 바꾼 것)이 저장한 .pcap(마이크로초·나노초, 두 바이트 순서)과 .pcapng(여러 인터페이스, EPB·SPB)를 읽습니다. 링크는 이더넷(VLAN 포함)·Linux cooked(SLL·SLL2, tcpdump -i any)·Raw IP·루프백입니다. IPv4 의 TCP 와 UDP(MC 만)를 풀고, IPv6 는 개수만 셉니다. .gz 로 압축한 파일은 먼저 풀어 주세요.

Modbus·MC 가 아닌 통신은 어떻게 하나요?

풀지도, 보여 주지도 않습니다. 결과에는 «산업 통신이 아닌 패킷 N개» 처럼 개수만 남습니다. 웹·DNS·파일 공유처럼 다른 통신이 섞인 캡처라도 그 내용은 화면·CSV 어디에도 나오지 않습니다.

응답 시간은 어떻게 재나요?

요청 프레임의 마지막 바이트가 잡힌 시각부터 응답 프레임의 마지막 바이트가 잡힌 시각까지입니다. 캡처한 PC 가 본 시각이라, 미러 포트·허브에서 뜨면 장비 사이의 시간에 가깝고, 클라이언트 PC 에서 뜨면 그 PC 쪽 시간입니다. 중앙값·95% 는 가장 가까운 순위로 고릅니다.

짝은 어떻게 맞추나요?

Modbus TCP 는 트랜잭션 ID 로, MC 4E 는 일련번호로 맞춥니다. MC 3E 는 번호가 없어서 연결 안에서 먼저 보낸 요청부터 맞춥니다. 무응답 기준 시간이 지난 요청은 무응답으로 치고, 그 뒤에 온 응답은 «짝 없는 응답» 으로 셉니다.

«무응답» 이면 장비가 답하지 않은 건가요?

꼭 그렇지는 않습니다. 미러 포트가 바쁘면 캡처가 패킷을 빠뜨릴 수 있고(Wireshark 위키 «lose packets»), 캡처를 시작하기 전·끝난 뒤의 패킷은 없습니다. 캡처가 끝나 판단할 수 없는 요청은 «캡처 끝» 으로 따로 셉니다. 결과 위의 «빠진 바이트·재전송» 수도 함께 보세요.

pktmon 파일에 같은 패킷이 여러 번 있습니다

pktmon 은 한 패킷을 네트워크 스택의 여러 지점에서 잡고, etl2pcap 은 그것을 구분하지 않고 모두 씁니다(Microsoft 문서). «겹친 패킷 빼기» 를 켜 두면 IP ID·길이·순서 번호가 같고 50ms 안에 다시 잡힌 패킷을 하나로 칩니다. etl2pcap 에 --component-id 로 한 지점만 뽑으면 처음부터 깨끗합니다.

가이드

함께 쓰는 도구

근거

Wireshark 는 Wireshark Foundation 의 상표이며, PortDock 은 Wireshark·Microsoft·미쓰비시 전기와 제휴 관계가 아닙니다. 이 도구는 장비 통신의 모니터·시험·문제 찾기를 돕는 것이며, 남의 통신을 가로채는 기능은 없습니다.