패킷이 도착하면 NIC가 인터럽트를 생성하고 커널이 인계받습니다. 특정 TCP 흐름에 대한 패킷 도착 시간을 측정하고 싶습니다.
Linux에서 이 작업을 어떻게 수행합니까? 이것이 tcpdump와 같은 도구의 용도입니다.
답변1
tcpdump
모든 패킷에 타임스탬프를 추가합니다. 따라서 tcpdump를 사용할 수 있어야 합니다. 그렇지 않으면 네트워크 트래픽도 모니터링하지만 멋지고 강력한 GUI를 갖춘 Wireshark를 사용해 볼 수 있습니다. 이 프로세스를 스크립트로 작성할 필요가 없다면 이 상황에서는 Wireshark가 여러분의 친구라고 말하고 싶습니다.
당신은 볼 수 있습니다http://www.howtogeek.com/104278/how-to-use-wireshark-to-capture-filter-and-inspect-packets/Wireshark 사용 방법에 대한 추가 정보.
이를 직접 측정하는 방법에 더 관심이 있다면 제안된 대로 소스 코드를 확인 tcpdump
하거나 읽어보세요. 여러분의 애플리케이션에서 사용할 수 있는 시스템 호출 목록을 제공합니다. 그러나 가장 간단한 해결책은 타임스탬프 열을 필터링할 수 있는 다른 도구를 통해 출력을 실행한 다음 필터링하는 것입니다.strace
strace
tcpdump
awk
tcpdump
또한, 사용 방법에 대한 자세한 정보를 확인할 수 있습니다.http://danielmiessler.com/study/tcpdump/
답변2
tcptrack 도구를 살펴보십시오. 이를 측정할 수도 있습니다.
답변3
같은 뜻인가요 traceroute
? 이 -p
옵션을 사용하면 프로토콜을 선택할 수 있습니다.
[root@osgiliath ~]# traceroute myserver.mydomain.com -p 443
traceroute to myserver.mydomain.com (10.11.20.30), 30 hops max, 60 byte packets
1 10.119.9.253 (10.10.10.1) 0.262 ms 0.294 ms 0.360 ms
2 10.111.225.114 (10.11.20.14) 0.326 ms 0.387 ms 0.466 ms
3 myserver.mydomain.com (10.11.20.30) 7.558 ms 7.558 ms 7.547 ms