산업 통신 pcap 해석기
Wireshark·pktmon 으로 뜬 .pcap·.pcapng 를 끌어 놓으면 Modbus TCP·MC(3E·4E)의 요청·응답 짝, 응답 시간, 무응답, 예외·종료 코드를 연결·장치별로 보여 줍니다.
자주 묻는 것
어떤 파일을 읽나요?
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 로 한 지점만 뽑으면 처음부터 깨끗합니다.
가이드
함께 쓰는 도구
- Modbus 프레임 해석기 — 프레임 하나를 칸마다 풀기
- MC 프로토콜(SLMP) 프레임 해석기 — MC 프레임 칸마다 풀기·요청 만들기
- PortDock TCP — Wireshark 없이 HMI–PLC 통신 보기 — 중계(모니터) 모드
- PortDock Modbus Slave — 장비 없이 응답 시간·무응답을 일부러 만들어 시험
- PortDock PLC Simulator — PLC 없이 MC 프로토콜 시험
근거
- Wireshark Wiki — CaptureSetup/Ethernet — 스위치·미러 포트·탭, 미러 포트의 패킷 손실
- Microsoft — pktmon etl2pcap — pcapng 변환, 여러 구성 요소의 같은 패킷, --component-id
- tcpdump — pcap-savefile(5) — pcap 형식(마이크로초·나노초 매직)
- IETF — PCAP Next Generation (pcapng) Capture File Format — SHB·IDB·EPB·SPB, if_tsresol
- Modbus Messaging on TCP/IP Implementation Guide V1.0b — MBAP 머리·트랜잭션 ID
- SLMP Reference Manual SH(NA)-080956ENG — 3E·4E 머리, 4E 일련번호, 종료 코드
Wireshark 는 Wireshark Foundation 의 상표이며, PortDock 은 Wireshark·Microsoft·미쓰비시 전기와 제휴 관계가 아닙니다. 이 도구는 장비 통신의 모니터·시험·문제 찾기를 돕는 것이며, 남의 통신을 가로채는 기능은 없습니다.