TCP 패킷 손실을 수동적으로 모니터링하는 방법 (리눅스) 보고서를 생성하는 도구를 원합니다. SF에서

컴퓨터와의 TCP 연결에서 패킷 손실을 수동으로 모니터링하려면 어떻게해야합니까?

기본적으로 필자는 백그라운드에 앉아 TCP ack / nak / re-transmits를보고 피어 IP 주소가 “상실”하여 막대한 손실을 겪는 보고서를 생성하는 도구를 원합니다.

SF에서 찾은 이와 같은 대부분의 질문은 iperf와 같은 도구를 사용하는 것이 좋습니다. 그러나 내 컴퓨터의 실제 응용 프로그램과의 연결을 모니터링해야합니다.

이 데이터는 Linux TCP 스택에 그대로 있습니까?



답변

일반적으로 문제의 규모에 netstat -s따라 총 재전송 횟수를 추적합니다.

# netstat -s | grep retransmitted
     368644 segments retransmitted

grep을 segments더 자세히 볼 수 있습니다.

# netstat -s | grep segments
         149840 segments received
         150373 segments sent out
         161 segments retransmitted
         13 bad segments received

더 심층적 인 다이빙을하려면 Wireshark를 시작해야 할 것입니다.

Wireshark tcp.analysis.retransmission에서 흐름 별 재전송을 볼 수 있도록 필터를 설정하십시오 .

그것이 내가 생각해 낼 수있는 가장 좋은 옵션입니다.

다른 막 다른 골목 탐험 :

  • netfilter / conntrack 도구가 재전송을 유지하지 않는 것 같습니다
  • stracing netstat -s은 단지 인쇄 중임을 보여주었습니다./proc/net/netstat
  • / proc / net / tcp의 열 9가 유망 해 보였지만 불행히도 사용되지 않은 것으로 보입니다.

답변

이 통계는 / proc / net / netstat에 있으며 collectl나중에 재생할 수 있도록 대화식으로 또는 디스크에 기록 된 상태를 모니터링합니다.

[root@poker ~]# collectl -st
waiting for 1 second sample...
#<------------TCP------------->
#PureAcks HPAcks   Loss FTrans
        3      0      0      0
        1      0      0      0

당신은 다음을 참조 나란히 네트워크 트래픽하려는 경우 물론, 단지 포함 n하여 -s:

[root@poker ~]# collectl -stn
waiting for 1 second sample...
#<----------Network----------><------------TCP------------->
#  KBIn  PktIn  KBOut  PktOut PureAcks HPAcks   Loss FTrans
      0      1      0       1        1      0      0      0
      0      1      0       1        1      0      0      0


답변

ss도구를 사용하여 자세한 TCP 통계를 얻을 수 있습니다 .

$ /sbin/ss -ti

데비안 apt-get install iproute에서 바이너리를 얻는 데 사용 하십시오.


답변

University of North Carolina (UNC)의 일부 사람들은 정확히 이것을 조사하기 위해 유틸리티를 구축 한 것 같습니다.

방법론

TCP는 수정이 필요한 레거시 프로토콜의 전형적인 예입니다. 불행히도, TCP의 손실 감지 / 복구 메커니즘과 같은 기본적인 평가는 포괄적이지 않습니다. 우리의 목표는 TCP 손실과 TCP 성능에 미치는 영향을 완전히 현실적으로 평가하는 것입니다.

필자는 실제 TCP 연결에 대한 수동 분석을 사용하여 분석에서 필요한 수준의 세부 사항과 사실감을 얻습니다.

http://www.cs.unc.edu/~jasleen/Research-passivetcp.htm#Tool

수단

이 도구의 목적은 tcpanaly, tcpflows, LEAST 및 Mystery와 같은 이전 도구에서 제공 한 것보다 시퀀스에서 벗어난 세그먼트를 식별하고 특성화하는 데보다 완전하고 정확한 결과를 제공하는 것입니다. 우리의 방법론은 패킷 추적에서 OOS (out-of-sequence)로 나타나는 각 세그먼트를 시간 초과, 중복 ACK, 부분 ACK, 선택적 ACK 또는 암시 적 복구 중 하나로 트리거되는 네트워크 순서 변경 또는 TCP 재전송 범주 중 하나로 분류합니다. 또한, 각각의 재전송은 또한 그것이 필요한지 여부에 대해 평가된다.

나는 그것이 생산 품질이라고 말하지 않을 것입니다. 이전에는 빠른 perl 스크립트를 작성하여 ip / port / ack 튜플을 메모리에 저장 한 다음 pcap 출력 스캔에서 중복 된 데이터를보고했습니다. 이는보다 철저한 분석을 제공하는 것 같습니다.


답변

dropwatch유틸리티 를보고 싶을 수도 있습니다 .


답변

분명히 오래된 sar 은 CPU, 메모리, 디스크 I / O 등과 같은 문제를 조사 할 때 흥미로울 수있는 다른 모든 시스템 통계와 함께 재전송 (및 기타 TCP 통계)을 수집 할 수 있습니다.

sysstat 패키지를 설치하고 스위치 -S SNMP를 사용하여 이러한 특정 통계를 활성화해야 할 수 있습니다. RHEL / OracleLinux에서 /etc/cron.d/sysstat에서 구성됩니다. 여기서 / usr / lib64 / sa / sa1이 호출됩니다. 기본적으로 5 분마다 조정되지만 조정할 수도 있습니다.

이 데이터를 분석하려면 다음을 사용하십시오.

  • sar (명령 줄, 텍스트 기반)
  • sadf는 http://sebastien.godard.pagesperso-orange.fr/matrix.html 에 따라 SVG를 만듭니다 .
  • ksar (좋은 그래프를 작성하고 Java에서 실행할 수 있습니다-올바르게 호출하면 sf.net 및 github에서 선택할 수있는 여러 가지 클론이 있습니다)
  • http://www.sargraph.com (PHP를 기반으로 프로그래밍 언어가 아닌 응용 프로그램, 마음에 드는 경험이없는 PHP 기반)

답변