TL;DR
- TCP 경로 진단은 연결의 다운로드·업로드 경로에서 패킷 손실, 재전송, 지연, 혼잡 및 TCP 설정 상태를 확인하는 기능임
- 테스트 길이는 짧음(방향별 약 10초), 보통(방향별 약 20초), 긴 길이(방향별 약 30초)로 선택 가능함
- IPv4와 IPv6 비교는 테스트를 두 번 실행하므로 데이터와 시간이 약 두 배로 듦
- 서버 측 TCP 카운터와 연결 타임라인을 통해 각 전송의 경로 상태 및 서버 전체 네트워크 이벤트를 함께 확인함
- 재전송, RTO, 혼잡 윈도우, RTT, 수신 윈도우, ECN, 경로 MTU 및 TCP 옵션을 바탕으로 네트워크 문제와 서버 측 제한을 구분함
테스트 설정
- 테스트 길이
- 짧음 — 방향별 약 10초
- 보통 — 방향별 약 20초
- 긴 길이 — 방향별 약 30초
- 진단 실행
- 중지
- 고급 설정
- 샘플링 간격
- 50ms
- 100ms
- 250ms
- 최대 다운로드
- 64MiB
- 256MiB
- 1GiB
- 4GiB
- 최대 업로드
- 32MiB
- 128MiB
- 512MiB
- 2GiB
- 업로드 건너뛰기
- 다운로드 건너뛰기
- IPv4와 IPv6 비교 — 테스트를 두 번 실행하므로 데이터와 시간이 약 두 배로 듦
- 준비 완료 상태이며, 진단 실행을 누르기 전까지 아무것도 전송되지 않음
IPv4와 IPv6
- IPv4와 IPv6 경로를 비교하는 테스트임
연결 상태
- 현재 연결에 대한 진단 결과를 표시하는 영역임
확인된 내용
- 테스트에서 확인된 문제와 상태를 표시하는 영역임
서버 운영자용
- 이 인스턴스 자체의 설정에 관한 참고 사항임
- 경로상의 장애가 아니라 서버 튜닝 및 트래픽 셰이핑에 관한 내용임
- 서버를 운영하는 담당자와 공유할 수 있는 정보임
문제 지표
- 최악의 상태부터 정렬된 문제 지표임
- 각 전송을 수행한 정확한 연결에 대한 서버 측 TCP 카운터임
- 다운로드 경로는 서버에서 사용자로 향하는 방향임
- 업로드 경로는 사용자에서 서버로 향하는 방향임
- 각 행을 클릭하면 해당 지표의 의미를 확인할 수 있음
- 지표 | 경로 | 값 | 심각도
타임라인
- 서버가 확인한 사용자 연결 목록임
- 서버에서
ss -tin으로 확인하는 것과 같은 필드를 표시함 - 마지막 요청을 전달한 연결을 표시함
- 테스트 중 서버 전체에서 발생한 TCP 이벤트임
- 서버의
/proc/net/netstat에서 수집한 카운터임 - 사용자 연결만이 아니라 서버의 모든 연결을 대상으로 하므로, 유휴 상태에 가까운 서버에서는 보조 근거로 읽고 부하가 높은 서버에서는 주의해서 해석해야 함
- 카운터 | 다운로드 중 | 업로드 중 | 의미
네트워크 경로
- 네트워크 경로의 진단 결과를 표시하는 영역임
텍스트 보고서
- 포럼 게시물, 인터넷 서비스 제공업체(ISP) 문의 또는 이슈에 붙여 넣을 수 있는 보고서임
- 현재 세션의 IP 주소와 포트 외에는 개인 데이터를 포함하지 않음
- 보고서 복사
.txt다운로드- 원시 JSON 표시
용어집
- 재전송(retransmission,
bytes_retrans,total_retrans) - 서버가 데이터를 전송했지만 확인 응답을 받지 못해 다시 전송한 경우임
- 인터넷에서는 일정 수준의 재전송이 정상이며, 0.1% 미만이 일반적인 기준임
- 1% 초과는 다운로드 경로에서 혼잡한 링크, 불량 케이블 또는 와이파이(Wi-Fi), 결함이 있는 회선 카드, 트래픽을 의도적으로 제한하는 라우터 등이 패킷을 누락시키고 있음을 의미함
- RTO·타임아웃(RTO / timeout,
total_rto,total_rto_time) - 손실 복구 중 가장 심각한 유형임
- 누락된 데이터가 많아 TCP가 대기를 포기하고, 보통 200ms 이상인 재전송 타임아웃 기간 동안 멈춘 뒤, 패킷 하나 크기의 윈도우에서 다시 시작해 점진적으로 증가시키는 상황임
- 전송이 “1초 동안 멈추는” 것처럼 보이는 현상임
- 짧은 테스트에서 RTO가 한 번만 발생해도 주의할 가치가 있음
- 혼잡 윈도우(cwnd)와 ssthresh
- 서버가 확인 응답을 기다리기 전에 전송 중 상태로 둘 수 있는 데이터의 양임
- 정상적으로 진행되면 증가하고, 손실이 발생할 때마다 절반 또는 1까지 감소함
- 톱니 모양의 변화는 정상이나, 소수의 패킷으로 반복해서 붕괴하면 송신자가 계속 손실을 만나 처리량이 저하됨
- 순서가 뒤바뀐 패킷(out-of-order packets,
rcv_ooopack) — 업로드 경로 - 사용자에게서 서버로 도착한 패킷의 순서가 전송 순서와 다른 경우임
- 손실 이후 나중에 전송된 패킷이 재전송 패킷보다 먼저 도착하면 소량이 발생할 수 있음
- 손실 없이 지속적으로 순서가 뒤바뀌면 패킷별 부하 분산 또는 비대칭·다중 경로 라우팅의 전형적인 신호임
- 사용자 패킷이 서로 다른 경로를 거쳐 경주하듯 도착하면 TCP가 패킷 손실로 오인해 불필요하게 속도를 낮춤
- 확인된 재정렬(reordering seen,
reord_seen,reordering) — 다운로드 경로 - 서버가 보낸 데이터가 사용자에게 순서가 뒤바뀐 상태로 도착했음을 사용자의 확인 응답을 통해 서버가 감지한 경우임
reordering은 손실을 선언하기 전에 커널이 허용하는 순서 이탈 패킷 수임- 기본값은 3이며, 값이 높을수록 재정렬이 발생하는 경로에 적응했음을 의미함
- DSACK 중복(DSACK duplicates,
dsack_dups) - 서버가 이미 보유한 데이터를 재전송했다고 사용자가 알린 경우임
- 원본이 손실된 것이 아니라 재정렬이나 갑작스러운 지연으로 늦게 도착한 불필요한 재전송임
- 실제 손실은 적은데 DSACK 중복이 많으면 경로가 패킷을 누락시키기보다 재정렬시키는 상황임
- RTT, 최소 RTT 및 큐잉(queueing, 버퍼블로트(bufferbloat))
- 왕복 시간(RTT)임
- 최소 RTT는 물리적 경로의 지연을 나타내며, 데이터가 흐르는 동안 RTT가 최소값의 몇 배로 증가하면 대개 가장 느린 링크의 버퍼 등 어딘가의 큐에 패킷이 쌓인 상태임
- 패킷 손실이 없어도 지연으로 인해 전체 동작이 느려지는 현상임
- 수신 윈도우 제한(rwnd_limited)·송신 윈도우(
snd_wnd) - 서버에 더 보낼 데이터가 있었지만 사용자의 수신 버퍼가 가득 찼다고 알린 경우임
- 네트워크가 아니라 작은 소켓 버퍼, 느린 데이터 리더, VPN 클라이언트 또는 오래된 운영체제 등 사용자 장치의 제한임
- ECN CE 마크(ECN CE marks,
delivered_ce) - 경로상의 라우터가 패킷을 버리는 대신 혼잡을 명시적으로 알린 경우임
- 병목 구간이 ECN을 지원하며 포화 상태였음을 보여주는 유용한 신호임
- 경로 MTU와 MSS(Path MTU,
pmtu, and MSS) - 경로가 전달할 수 있는 가장 큰 패킷 크기임
- 1500은 일반 이더넷, 1492는 PPPoE, 약 1400 이하는 대개 터널 또는 VPN이 경로 어딘가에 있음을 의미함
- 매우 작은 값이나 MTU보다 크게 낮은 MSS는 중간 장비가 패킷을 재작성하고 있음을 가리킴
- SACK, 윈도우 스케일링 및 타임스탬프
- 연결 시작 시 협상되는 TCP 옵션임
- 세 옵션은 모두 활성화되어 있어야 함
- SACK이 없으면 손실 복구 성능이 크게 저하되고, 윈도우 스케일링이 없으면 장거리 경로에서 처리량이 제한됨
- 대개 고장 난 방화벽이나 NAT 장비가 해당 옵션을 제거하는 상황임
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요