netcat 소스 파일의 패킷 구분 기호

netcat 소스 파일의 패킷 구분 기호

netcat에게 파일에서 패킷당 보낼 바이트 수를 알려주는 구분 기호나 방법이 있습니까? 가능한 한 빨리 전송되어야 하기 때문에 스크립트에서 netcat을 여러 번 호출하는 것은 허용되지 않습니다.

mnc(멀티캐스트 netcat)를 사용하여 바이너리 데이터가 포함된 UDP 패킷을 파일로 캡처하고 다음과 같이 재생해 보았습니다.

# 멀티캐스트 패킷을 230.250.5.1 12340으로 보내는 프로그램을 시작합니다.>

# mnc 패킷 캡처를 시작합니다:

 $mnc -l -i eth1 -p 12340 230.250.5.1 >capturefile

... # netcat을 사용하여 데이터 패킷을 재생하고 230.250.5.1 12345로 보냅니다.

 $netcat -c -w 1 -u -s 10.20.30.40 230.250.5.1 12345 <capturefile

캡처파일에 내가 보내려는 패킷이 있는 것 같습니다.

netcat으로 재생하면 패킷이 연결됩니다. 패킷 캡처 중에 UDP 패킷 크기는 208이고 Wireshark는 패킷 크기를 250으로 표시하며 여기에 이더넷 바이트가 포함된 것으로 가정합니다. 재생 시 Wireshark는 패킷 크기가 1016임을 보여줍니다.

답변1

이것이 불가능할 수도 있지만 socat대신 사용하는 경우 다음을 netcat사용하여 고정 블록 크기를 쉽게 설정할 수 있습니다 -b.

socat -b 208 - udp4:230.250.5.1:12345 <capturefile

가변 길이 데이터가 있는 경우 tcpdump및 파일 형식 사용 tcpreplay을 고려할 수 있습니다 pcap.

관련 정보