컴퓨터가 두 대 있어요.
첫 번째는 워크스테이션입니다. 딥러닝 코드를 실행하고 유선 연결을 통해 AP에 연결합니다.
두 번째는 로봇으로서의 컴퓨터이다. 다른 센서의 영상 및 기타 정보를 전송하고 LAN 카드를 통해 AP에 연결합니다.
터미널에서 명령어를 이용하여 실시간으로 주고받는 패킷의 데이터 크기를 알고 싶습니다.
네트워크를 통해 서로 전송되는 데이터를 어떻게 측정합니까?
노트:로컬 무선 LAN만 사용합니다(인터넷 없음).
답변1
더 나은 것을 모르더라도 tcpdump가 좋은 시작이라고 말하고 싶습니다.
tcpdump -s0 -ni <WIFI-DEVICE> host <ROBO-IP> -w data.pcap
Linux 시스템과 로봇 사이의 모든 데이터를 data.pcap에 씁니다.
여기에서 데이터를 분석할 수 있습니다.
- scapy(python-lib)
- 라인샤크
data.pcap 파일을 건너뛸 수 있습니다.
- Wireshark를 직접 사용하거나(Linux 호스트에서는 X 필요)
- 표준 출력에 직접 쓰기
tcpdump -s0 -ni <WIFI-DEVICE> host <ROBO-IP> -w -
그런 다음 stdin에서 패킷을 읽고 분석하는 프로그램이 필요합니다.
tcpdump -s0 -ni <WIFI-DEVICE> host <ROBO-IP> -w - | <ANALYZER_PROG>
이 ANALYZER_PROG는 scapy로 작성할 수 있습니다.
scapy 솔루션의 경우 스택 오버플로도 검색합니다.
화타이
답변2
iftop
이 기능을 제공하세요. Ubuntu에서는 다음 명령을 사용하여 설치할 수 있습니다.
sudo apt-get install -y iftop
특정 서버의 트래픽을 모니터링하려면 -f filter code
다음을 사용할 수 있습니다.
iftop -f 'host <HOSTNAME/IP ADDRESS>'
다음과 같은 내용이 표시됩니다.
12.5Kb 25.0Kb 37.5Kb 50.0Kb 62.5Kb
+---------------+----------------+----------------+----------------+----------------
10.184.240.3 => 10.184.125.147 10.0Kb 8.00Kb 11.6Kb
<= 2.75Kb 2.29Kb 2.86Kb
------------------------------------------------------------------------------------
TX: cum: 58.0KB peak: 54.2Kb rates: 10.0Kb 8.00Kb 11.6Kb
RX: 14.3KB 10.2Kb 2.75Kb 2.29Kb 2.86Kb
TOTAL: 72.3KB 64.4Kb 12.8Kb 10.3Kb 14.5Kb
물론 매뉴얼에서 이 명령에 대한 다양한 플래그에 대해 읽을 수 있습니다.