본문 바로가기

패킷·로그·지표 상관과 네트워크 장애진단

사용자가 10초 걸렸다고 말해도 네트워크가 10초 동안 느렸다고 바로 결론 내릴 수 없다. 이름 해석, 연결 수립, 암호 협상, 서버 대기·처리, 데이터 전송과 브라우저 작업이 한 응답시간에 들어 있다. 패킷에는 통신 시각과 순서가 보이고, 로그에는 응용 사건과 이유가 남으며, 지표에는 일정 구간을 집계한 자원·대기 상…

TCP·UDP·DNS·HTTP·TLS 프로토콜 분석에서 필드·상태·시간·방향을 먼저 읽는다. 이 절은 그 대화를 원본 시각·보정·불확실성과 두 지점의 손실 후보에 연결한다.

0. 느린 화면 하나에는 서로 다른 시간이 섞여 있다

사용자가 10초 걸렸다고 말해도 네트워크가 10초 동안 느렸다고 바로 결론 내릴 수 없다. 이름 해석, 연결 수립, 암호 협상, 서버 대기·처리, 데이터 전송과 브라우저 작업이 한 응답시간에 들어 있다. 패킷에는 통신 시각과 순서가 보이고, 로그에는 응용 사건과 이유가 남으며, 지표에는 일정 구간을 집계한 자원·대기 상태가 보인다. 어느 하나도 전체 사실은 아니다.

네트워크 분석은 이 조각을 한 시간축과 서비스 경로에 놓는 일이다. 중요한 질문은 패킷이 몇 개인가가 아니라 어디까지 정상으로 갔고, 어느 구간에서 시간이 늘거나 데이터가 사라졌으며, 그때 장치·호스트·응용 상태가 어떠했는가다.

네트워크 분석: 경로·시간·상태 증거로 원인범위를 줄인다

네트워크 분석은 서비스 통신경로의 여러 지점에서 얻은 패킷, 로그와 지표를 시간·방향·대화·구간에 맞춰 서로 연관 지어 도달성, 지연, 손실, 혼잡과 종단 처리의 정상·이상 경계를 판단하는 과정이다. 프로토콜 분석이 메시지 필드와 상태규칙에 초점을 둔다면 네트워크 분석은 그 결과를 전체 서비스 경로와 운영증거에 연결한다.

분석의 산출물은 원인 이름 하나가 아니다. 증상과 영향, 관찰경로, 마지막 정상과 최초 이상, 근거와 반증, 확신수준, 추가 검증, 복구·재발방지를 남겨 다른 사람이 같은 증거로 판단을 재현하게 한다.

전체에서 어디인가: 세 증거를 서비스 경로에 겹친다

같은 서비스 경로에서 관찰 위치와 증거를 맞춘다

상자 안의 대상과 화살표의 조건을 함께 읽으세요. 좁은 화면에서는 같은 관계를 세로로 재배치한 도식을 보여 줍니다.

같은 서비스 경로에서 관찰 위치와 증거를 맞춘다사용자 증상과 클라이언트를 묶고 서버 네트워크 접점·프로세스를 한 관찰 그룹으로 표시했다. 구성요소가 동일하다는 뜻은 아니다. 패킷 A/B는 서로 다른 위치, 장치 계수와 로그·호스트 지표·응용 추적·DB 로그는 서로 다른 관측 경계를 갖는다. 클릭→DNS→SYN→TLS→request→서버 시작/끝→response의 실제 사건은 아래 시간 예에서 읽으며 상관만으로 인과를 확정하지 않는다.client → boundary: 통신boundary → net: 전달net → server: 도달server → db: 호출통신전달도달호출클라이언트·사용자: 사용자 증상 패킷 A 호스트 지표클라이언트·사용자사용자 증상패킷 A호스트 지표경계장치: 패킷 B 장치 로그경계장치패킷 B장치 로그네트워크: 장치 계수네트워크장치 계수서버 관찰 그룹: 네트워크 접점 응용 로그·추적 프로세스 지표서버 관찰 그룹네트워크 접점응용 로그·추적프로세스 지표DB: DB 로그DBDB 로그
같은 서비스 경로에서 관찰 위치와 증거를 맞춘다사용자 증상과 클라이언트를 묶고 서버 네트워크 접점·프로세스를 한 관찰 그룹으로 표시했다. 구성요소가 동일하다는 뜻은 아니다. 패킷 A/B는 서로 다른 위치, 장치 계수와 로그·호스트 지표·응용 추적·DB 로그는 서로 다른 관측 경계를 갖는다. 클릭→DNS→SYN→TLS→request→서버 시작/끝→response의 실제 사건은 아래 시간 예에서 읽으며 상관만으로 인과를 확정하지 않는다.client → boundary: 통신boundary → net: 전달net → server: 도달server → db: 호출통신전달도달호출클라이언트·사용자: 사용자 증상 패킷 A 호스트 지표클라이언트·사용자사용자 증상패킷 A호스트 지표경계장치: 패킷 B 장치 로그경계장치패킷 B장치 로그네트워크: 장치 계수네트워크장치 계수서버 관찰 그룹: 네트워크 접점 응용 로그·추적 프로세스 지표서버 관찰그룹네트워크 접점응용 로그·추적프로세스 지표DB: DB 로그DBDB 로그

사용자 증상과 클라이언트를 묶고 서버 네트워크 접점·프로세스를 한 관찰 그룹으로 표시했다. 구성요소가 동일하다는 뜻은 아니다. 패킷 A/B는 서로 다른 위치, 장치 계수와 로그·호스트 지표·응용 추적·DB 로그는 서로 다른 관측 경계를 갖는다. 클릭→DNS→SYN→TLS→request→서버 시작/끝→response의 실제 사건은 아래 시간 예에서 읽으며 상관만으로 인과를 확정하지 않는다.

0~150ms의 사건을 같은 비례축에서 읽는다 · 상태 따라가기

클라이언트 로그 trace=7에 기록된 클릭을 0ms로 둔다. 모든 단계에서 관측 사건·같은 기준시각의 위치를 유지하며 값과 허용 조건을 함께 확인합니다.

0~150ms의 사건을 같은 비례축에서 읽는다

넓은 화면과 모바일에서 같은 관계를 각각의 배치로 읽을 수 있습니다.

0~150ms의 사건을 같은 비례축에서 읽는다원래 정규화 증거 표의 첫 여섯 사건을 4.8px/ms 축에 표시했다. 여러 행은 레이블 충돌을 피하기 위한 것이며 각 행은 동일한 축을 사용한다. DNS 질의→응답은 30ms, TCP SYN→수립은 40ms다. 시각·관찰점·키는 원문 표와 대조한다. 클라이언트 ±2ms와 서버 오프셋 +15±5ms 및 60초 지표 버킷의 한계를 지우지 않는다.0 ms: 클릭 · 클라이언트 로그 · trace=710 ms: DNS 질의 · 클라이언트 패킷 · id=31,name=S40 ms: DNS 응답 · 같은 질문50 ms: TCP SYN · 경계 포착 · A:p→B:44390 ms: TCP 수립 · 경계 포착 · A:p↔B:443150 ms: 요청 수락 · 서버 로그 · trace=70 ms40 ms80 ms120 ms160 ms비교시각 기준: 10:00:00.000 = 0 ms · 40 ms당 192px의 동일 축

원래 정규화 증거 표의 첫 여섯 사건을 4.8px/ms 축에 표시했다. 여러 행은 레이블 충돌을 피하기 위한 것이며 각 행은 동일한 축을 사용한다. DNS 질의→응답은 30ms, TCP SYN→수립은 40ms다. 시각·관찰점·키는 원문 표와 대조한다. 클라이언트 ±2ms와 서버 오프셋 +15±5ms 및 60초 지표 버킷의 한계를 지우지 않는다.

0~150ms 사건: 같은 비례축원래 첫 여섯 사건 0·10·40·50·90·150ms를 하나의 아래 방향 12px/ms 비례축에 표시한다. 클릭/trace7, DNS id31/nameS, 경계 TCP A:p와 B443, 서버 수락 trace7의 관찰 위치와 키를 유지한다. DNS 30ms와 TCP 40ms, 기준시각·클라이언트 ±2ms·서버+15±5ms·60초 버킷의 한계를 보존한다.0 ms40 ms80 ms120 ms160 ms클릭클라이언트 로그trace=710 msDNS 질의클라이언트 패킷id=31,name=SDNS 응답같은 질문id=31,name=S50 msTCP SYN경계 포착A:p→B:44390 msTCP 수립경계 포착A:p↔B:443150 ms요청 수락서버 로그trace=7비교시각 기준:10:00:00.000 = 0 ms같은 12px/ms 비례축DNS 질의→응답 30msTCP SYN→수립 40ms클라이언트 ±2ms; 서버오프셋 +15±5ms지표 버킷 60s; 상관 ≠인과

보존한 원래 캡션의 4.8px/ms는 가로 원본 기준이다. 이 세로 그림은 12px/ms로 같은 0~160ms 시간축과 사건 시점을 표시한다.

이 예의 조건

  • 원래 정규화 증거 표의 첫 여섯 사건을 4.8px/ms 축에 표시했다. 여러 행은 라벨이 겹치는 것을 피하기 위한 것이며 각 행은 동일한 축을 사용한다. DNS 질의→응답은 30ms, TCP SYN→수립은 40ms다. 시각·관찰점·키는 원문 표와 대조한다. 클라이언트 ±2ms와 서버 오프셋 +15±5ms 및 60초 지표 버킷의 한계를 지우지 않는다.
  • 원래 첫 여섯 사건 0·10·40·50·90·150ms를 하나의 아래 방향 12px/ms 비례축에 표시한다. 클릭/trace=7, DNS id=31/name=S, 경계 TCP A:p와 B:443, 서버 수락 trace7의 관찰 위치와 키를 유지한다. DNS 30ms와 TCP 40ms, 기준시각·클라이언트 ±2ms·서버 +15±5ms·60초 버킷의 한계를 보존한다.
  • 이 원문의 교육용 사례·조건 안에서 상태를 대조합니다. 실제 구축·실험 결과나 원문에 없는 성능 보장을 추가하지 않습니다.
관계도의 보충 설명
원그림 가로·세로 배치의 모든 라벨과 관계 설명
원 항목설명·조건
2원래 정규화 증거 표의 첫 여섯 사건을 4.8px/ms 축에 표시했다. 여러 행은 라벨이 겹치는 것을 피하기 위한 것이며 각 행은 동일한 축을 사용한다. DNS 질의→응답은 30ms, TCP SYN→수립은 40ms다. 시각·관찰점·키는 원문 표와 대조한다. 클라이언트 ±2ms와 서버 오프셋 +15±5ms 및 60초 지표 버킷의 한계를 지우지 않는다.
16원래 첫 여섯 사건 0·10·40·50·90·150ms를 하나의 아래 방향 12px/ms 비례축에 표시한다. 클릭/trace=7, DNS id=31/name=S, 경계 TCP A:p와 B:443, 서버 수락 trace7의 관찰 위치와 키를 유지한다. DNS 30ms와 TCP 40ms, 기준시각·클라이언트 ±2ms·서버 +15±5ms·60초 버킷의 한계를 보존한다.
예의 값과 변화
관찰·상황값·보충 정보변화·이유
클릭 0

클라이언트 로그 trace=7에 기록된 클릭을 0ms로 둔다.

  • 관측 사건: 클릭·trace=7
  • 같은 기준시각: 0ms
  • 클라이언트 ±2ms 불확실성을 보전한다.
DNS 10~40

id=31·name=S인 질의 시각 10과 같은 질문의 응답 시각 40을 연결한다.

  • 관측 사건: DNS 질의→응답
  • 같은 기준시각: 10→40ms·30ms
  • 다른 질문의 응답을 같은 시간에 합치지 않는다.
TCP 50~90

경계의 A:p→B:443 SYN 50과 수립 90을 대조한다.

  • 관측 사건: SYN→수립
  • 같은 기준시각: 50→90ms·40ms
  • TCP 관측이 서버 업무 완료를 대신하지 않는다.
서버 150

trace=7인 서버 요청 수락이 150ms에 있다.

  • 관측 사건: 서버 수락·trace=7
  • 같은 기준시각: 150ms
  • 서버 오프셋 +15±5ms와 60초 지표 버킷 한계를 유지한다.

0~150ms의 사건을 같은 비례축에서 읽는다 · 상태 따라가기

클라이언트 로그 trace=7에 기록된 클릭을 0ms로 둔다. 모든 단계에서 관측 사건·같은 기준시각의 위치를 유지하며 값과 허용 조건을 함께 확인합니다.

0~150ms의 사건을 같은 비례축에서 읽는다

넓은 화면과 모바일에서 같은 관계를 각각의 배치로 읽을 수 있습니다.

0~150ms의 사건을 같은 비례축에서 읽는다원래 정규화 증거 표의 첫 여섯 사건을 4.8px/ms 축에 표시했다. 여러 행은 레이블 충돌을 피하기 위한 것이며 각 행은 동일한 축을 사용한다. DNS 질의→응답은 30ms, TCP SYN→수립은 40ms다. 시각·관찰점·키는 원문 표와 대조한다. 클라이언트 ±2ms와 서버 오프셋 +15±5ms 및 60초 지표 버킷의 한계를 지우지 않는다.0 ms: 클릭 · 클라이언트 로그 · trace=710 ms: DNS 질의 · 클라이언트 패킷 · id=31,name=S40 ms: DNS 응답 · 같은 질문50 ms: TCP SYN · 경계 포착 · A:p→B:44390 ms: TCP 수립 · 경계 포착 · A:p↔B:443150 ms: 요청 수락 · 서버 로그 · trace=70 ms40 ms80 ms120 ms160 ms비교시각 기준: 10:00:00.000 = 0 ms · 40 ms당 192px의 동일 축

원래 정규화 증거 표의 첫 여섯 사건을 4.8px/ms 축에 표시했다. 여러 행은 레이블 충돌을 피하기 위한 것이며 각 행은 동일한 축을 사용한다. DNS 질의→응답은 30ms, TCP SYN→수립은 40ms다. 시각·관찰점·키는 원문 표와 대조한다. 클라이언트 ±2ms와 서버 오프셋 +15±5ms 및 60초 지표 버킷의 한계를 지우지 않는다.

0~150ms 사건: 같은 비례축원래 첫 여섯 사건 0·10·40·50·90·150ms를 하나의 아래 방향 12px/ms 비례축에 표시한다. 클릭/trace7, DNS id31/nameS, 경계 TCP A:p와 B443, 서버 수락 trace7의 관찰 위치와 키를 유지한다. DNS 30ms와 TCP 40ms, 기준시각·클라이언트 ±2ms·서버+15±5ms·60초 버킷의 한계를 보존한다.0 ms40 ms80 ms120 ms160 ms클릭클라이언트 로그trace=710 msDNS 질의클라이언트 패킷id=31,name=SDNS 응답같은 질문id=31,name=S50 msTCP SYN경계 포착A:p→B:44390 msTCP 수립경계 포착A:p↔B:443150 ms요청 수락서버 로그trace=7비교시각 기준:10:00:00.000 = 0 ms같은 12px/ms 비례축DNS 질의→응답 30msTCP SYN→수립 40ms클라이언트 ±2ms; 서버오프셋 +15±5ms지표 버킷 60s; 상관 ≠인과

보존한 원래 캡션의 4.8px/ms는 가로 원본 기준이다. 이 세로 그림은 12px/ms로 같은 0~160ms 시간축과 사건 시점을 표시한다.

이 예의 조건

  • 원래 정규화 증거 표의 첫 여섯 사건을 4.8px/ms 축에 표시했다. 여러 행은 라벨이 겹치는 것을 피하기 위한 것이며 각 행은 동일한 축을 사용한다. DNS 질의→응답은 30ms, TCP SYN→수립은 40ms다. 시각·관찰점·키는 원문 표와 대조한다. 클라이언트 ±2ms와 서버 오프셋 +15±5ms 및 60초 지표 버킷의 한계를 지우지 않는다.
  • 원래 첫 여섯 사건 0·10·40·50·90·150ms를 하나의 아래 방향 12px/ms 비례축에 표시한다. 클릭/trace=7, DNS id=31/name=S, 경계 TCP A:p와 B:443, 서버 수락 trace7의 관찰 위치와 키를 유지한다. DNS 30ms와 TCP 40ms, 기준시각·클라이언트 ±2ms·서버 +15±5ms·60초 버킷의 한계를 보존한다.
  • 이 원문의 교육용 사례·조건 안에서 상태를 대조합니다. 실제 구축·실험 결과나 원문에 없는 성능 보장을 추가하지 않습니다.

관계도의 보충 설명

원그림 가로·세로 배치의 모든 라벨과 관계 설명
원 항목설명·조건
2원래 정규화 증거 표의 첫 여섯 사건을 4.8px/ms 축에 표시했다. 여러 행은 라벨이 겹치는 것을 피하기 위한 것이며 각 행은 동일한 축을 사용한다. DNS 질의→응답은 30ms, TCP SYN→수립은 40ms다. 시각·관찰점·키는 원문 표와 대조한다. 클라이언트 ±2ms와 서버 오프셋 +15±5ms 및 60초 지표 버킷의 한계를 지우지 않는다.
16원래 첫 여섯 사건 0·10·40·50·90·150ms를 하나의 아래 방향 12px/ms 비례축에 표시한다. 클릭/trace=7, DNS id=31/name=S, 경계 TCP A:p와 B:443, 서버 수락 trace7의 관찰 위치와 키를 유지한다. DNS 30ms와 TCP 40ms, 기준시각·클라이언트 ±2ms·서버 +15±5ms·60초 버킷의 한계를 보존한다.
예의 값과 변화
관찰·상황값·보충 정보변화·이유
클릭 0

클라이언트 로그 trace=7에 기록된 클릭을 0ms로 둔다.

  • 관측 사건: 클릭·trace=7
  • 같은 기준시각: 0ms
  • 클라이언트 ±2ms 불확실성을 보전한다.
DNS 10~40

id=31·name=S인 질의 시각 10과 같은 질문의 응답 시각 40을 연결한다.

  • 관측 사건: DNS 질의→응답
  • 같은 기준시각: 10→40ms·30ms
  • 다른 질문의 응답을 같은 시간에 합치지 않는다.
TCP 50~90

경계의 A:p→B:443 SYN 50과 수립 90을 대조한다.

  • 관측 사건: SYN→수립
  • 같은 기준시각: 50→90ms·40ms
  • TCP 관측이 서버 업무 완료를 대신하지 않는다.
서버 150

trace=7인 서버 요청 수락이 150ms에 있다.

  • 관측 사건: 서버 수락·trace=7
  • 같은 기준시각: 150ms
  • 서버 오프셋 +15±5ms와 60초 지표 버킷 한계를 유지한다.
긴 서버 체류와 두 시계의 짧은 간격을 분리한다

넓은 화면과 모바일에서 같은 관계를 각각의 배치로 읽을 수 있습니다.

긴 서버 체류와 두 시계의 짧은 간격을 분리한다서버 수락 0.150초부터 응답 준비 3.150초까지 3초를 240px/s 축에 표시했다. 일정한 서버 시계 오프셋은 같은 시계 간격에서 상쇄되지만 드리프트·중간 보정·로그 지연은 따로 확인한다. 서버 준비와 클라이언트 첫 바이트 3.160초의 10ms에는 ±7ms 경계합이 남는다. 비교시각에 15ms를 다시 빼지 않고, CPU·DB·작업자 큐와 proxy 대기를 추가 검증한다.서버 수락.150 · trace=7응답 준비3.150 · trace=7서버 내부 체류 3.000 s0.150 s1.150 s2.150 s3.150 s일정한 +15ms 오프셋은 같은 서버 시계의 간격에서 상쇄된다.원본 .165→3.165를 비교시각 .150→3.150으로 한 번 보정한 값이다.클라이언트 첫 바이트 3.160s와의 명목 간격: 10ms ± (5+2)ms = 3~17ms두 시계 경계합이며 확률적 신뢰구간이나 순수 전송지연으로 단정하지 않는다.

서버 수락 0.150초부터 응답 준비 3.150초까지 3초를 240px/s 축에 표시했다. 일정한 서버 시계 오프셋은 같은 시계 간격에서 상쇄되지만 드리프트·중간 보정·로그 지연은 따로 확인한다. 서버 준비와 클라이언트 첫 바이트 3.160초의 10ms에는 ±7ms 경계합이 남는다. 비교시각에 15ms를 다시 빼지 않고, CPU·DB·작업자 큐와 proxy 대기를 추가 검증한다.

서버 3초 체류와 시계 경계합서버 수락 0.150초와 응답 준비 3.150초 사이 3.000초를 아래 방향 320px/s 비례축으로 유지한다. 같은 서버 시계의 일정한 +15ms 오프셋은 간격에서 상쇄되며 원본 .165/3.165는 이미 한 번 보정됐다. 클라이언트 첫 바이트 3.160초와의 10ms±7ms=3~17ms는 두 시계 경계합으로 확률적 신뢰구간이나 순수 전송지연이 아니다.서버 내부 체류3.000 s · trace=70.150 s1.150 s2.150 s3.150 s서버 수락응답 준비동일 320px/s 비례축일정한 +15ms는 같은 서버시계 간격에서 상쇄원본 .165→3.165를 비교.150→3.150으로 한 번보정클라이언트 첫 바이트3.160s명목 간격: 10ms ±(5+2)ms = 3~17ms두 시계 경계합: 확률적신뢰구간·순수전송지연으로 단정하지않음드리프트·중간 보정·로그지연은 별도 확인CPU·DB·작업자 큐·proxy대기를 추가 검증

보존한 원래 캡션의 240px/s는 가로 원본 기준이다. 이 세로 그림은 320px/s로 같은 0.150~3.150초 서버 체류 구간을 표시한다.

정확한 원본·보정·불확실성과 전체 사건 기록은 아래 보존된 증거 표에서 확인한다. 마지막 정상/최초 이상과 가설 검증 절차로 연결한다.

증거가 많다고 자동으로 정확해지는 것은 아니다. 서로 다른 시계, 수집 간격, 포착 손실, 암호화와 식별자 부재 때문에 잘못 연결할 수 있다. 상관은 먼저 같은 사건일 가능성을 높일 뿐이며 원인·결과는 시간순서와 메커니즘, 반증으로 확인한다.

먼저 알아둘 것

지연시간은 한 작업의 경과시간, 대역폭은 전달용량 상한, 처리량은 실제 단위시간 완료량이다. 관측가능성은 외부 출력으로 내부상태를 추론하는 능력이고 사건대응은 증거를 모아 영향을 통제·복구·학습하는 과정이다. 앞 절의 프로토콜 분석은 TCP·DNS·HTTP·TLS의 필드·상태·시간관계를 읽는 일이며, 여기서는 그 결과를 패킷·로그·지표 상관에 사용한다.

1. 측정대상을 먼저 정의한다

지연과 손실: 시작·끝·패킷 유형·기다림을 선언한다

단방향 지연(one-way delay)은 정의한 출발지에서 특정 유형 패킷의 첫 비트를 보낸 사건부터 정의한 도착지에서 그 패킷의 마지막 비트를 받은 사건까지의 시간차다. 서로 다른 두 지점의 시각을 빼므로 시계 동기와 오차를 함께 보고해야 한다. 측정 패킷의 출발·도착, 유형, 시각과 오류범위를 정하지 않은 네트워크 지연 숫자는 재현하기 어렵다.

단방향 패킷 손실(one-way packet loss)은 출발지에서 보낸 특정 패킷이 정한 기다림과 관찰조건 안에 목적지에서 관찰되지 않은 사건이다. 늦게 도착한 패킷을 손실로 분류하는 경계, 송수신 포착 누락과 실제 네트워크 손실을 구분해야 한다. 손실률은 손실로 분류한 표본 수 / 유효하게 보낸 표본 수이며 표본 유형·기간·경로를 함께 쓴다.

왕복시간(Round-Trip Time, RTT)은 한 지점에서 메시지를 보내고 대응 응답이나 확인을 받을 때까지의 시간이다. 순방향·역방향 지연과 상대 처리시간이 섞일 수 있어 단순히 2로 나눈 값을 단방향 지연으로 단정하지 않는다.

지연은 전송·전파·처리·대기와 종단시간으로 분해한다

네트워크 시간과 사용자 시간이 겹치는 범위를 선언한다

넓은 화면과 모바일에서 같은 관계를 각각의 배치로 읽을 수 있습니다.

네트워크 시간과 사용자 시간이 겹치는 범위를 선언한다사용자 시간에는 송신 준비와 응답 소비, 서버 대기·처리·DB 등이 추가될 수 있다. 직렬화는 패킷 크기와 링크 전송률, 전파는 거리, 처리·대기는 장치와 부하에 좌우된다. 네트워크 측정의 시작·끝은 실제 계약과 위치에 따르며 이 포함그림의 폭은 소요시간이나 엄격한 배타적 분할이 아니다.사용자 시간: 요청 준비·서버 대기/처리·응답 소비 포함선언한 네트워크 측정 경계송신 준비비트 직렬화거리 전파처리·대기수신 처리크기/전송률거리/매체장치·부하폭은 시간 비율이 아니다. 실제 시작·끝·방향·측정 위치를 먼저 선언한다.

사용자 시간에는 송신 준비와 응답 소비, 서버 대기·처리·DB 등이 추가될 수 있다. 직렬화는 패킷 크기와 링크 전송률, 전파는 거리, 처리·대기는 장치와 부하에 좌우된다. 네트워크 측정의 시작·끝은 실제 계약과 위치에 따르며 이 포함그림의 폭은 소요시간이나 엄격한 배타적 분할이 아니다.

사용자 시간과 선언한 측정 경계사용자 시간 외곽 경계 안에 송신 준비·수신 처리와 선언한 네트워크 측정 경계를 보여준다. 네트워크 안의 비트 직렬화는 크기/전송률, 거리 전파는 거리/매체, 처리·대기는 장치·부하와 연결된다. 면적과 높이는 시간 비율이나 엄격한 배타적 분할이 아니다.사용자 시간요청 준비·서버대기/처리·응답 소비포함송신 준비선언한 네트워크측정 경계비트 직렬화크기/전송률거리 전파거리/매체처리·대기장치·부하수신 처리면적·높이는 시간 비율이아니며 엄격한 배타적분할 아님실제 시작·끝·방향·측정위치를 먼저 선언
  • 전송 지연: 패킷 비트를 링크에 밀어 넣는 시간으로 패킷 크기와 링크 전송률에 좌우된다.
  • 전파 지연: 신호가 매체 거리를 이동하는 시간이다.
  • 처리 지연: 장치·호스트가 머리와 정책을 검사하고 다음 동작을 정하는 시간이다.
  • 대기열 지연: 먼저 온 데이터가 자원을 사용하는 동안 기다리는 시간이며 부하에 따라 크게 변한다.

사용자 응답시간에는 DNS·TCP·TLS·서버 큐·응용·DB가 더해진다. 평균 하나 대신 단계별 시작·종료, 중앙값과 높은 백분위, 표본 수와 구간을 본다. 백분위는 관측값을 작은 순서로 놓았을 때 일정 비율이 그 이하인 경계값이다.

서버별 p95의 평균을 내면 전체 p95가 되지 않는다. 서버마다 요청 수와 지연 분포가 다르기 때문이다. 전체를 구하려면 같은 관측 구간·대상·단위의 원래 표본을 합쳐 정렬하거나, 호환되는 구간 경계와 의미를 가진 히스토그램의 분포를 합쳐야 한다. 이미 계산한 백분위 숫자만으로 원래 분포를 복원할 수는 없다. 히스토그램에서 추정한 백분위에도 구간 폭에 따른 오차가 있으므로 표본 수와 계산 방식을 함께 남긴다.

혼잡: 들어오는 부하가 처리능력을 오래 넘어서 대기·손실이 커진다

네트워크 혼잡은 링크나 장치에 들어오는 트래픽 부하가 가용 처리·전달 능력에 비해 커져 대기열 증가, 지연 변동과 패킷 폐기가 나타나는 상태다. 패킷 폐기(drop)는 장치가 받은 패킷을 다음으로 전달하지 않고 버리는 사건이다. 순간적인 높은 이용률 하나와 지속 혼잡을 같게 보지 않는다. 시간에 따라 대기열·지연이 먼저 늘고 버퍼 한계를 만나 폐기·재전송이 늘며 유효 처리량이 악화되는지를 본다.

손실도 모두 혼잡은 아니다. 물리 오류, 정책 폐기, 경로 불일치, 수신 버퍼, 포착장치 과부하가 원인일 수 있다. 반대로 손실이 아직 없어도 커지는 대기열이 지연을 높일 수 있다. 따라서 지연, 손실, 혼잡은 서로 관련되지만 동의어가 아니다.

지연·손실·혼잡을 같은 표에서 구분한다

현상직접 정의할 관찰가능한 원인필요한 반증
지연 증가시작·끝 사건의 경과시간 분포거리, 직렬화, 처리, 대기, 종단 응용단계별 시간과 양 방향 비교
패킷 손실송신 표본이 기다림 안에 목적지에서 미관찰혼잡폐기, 오류, 정책, 경로, 종단·포착 누락두 지점 순서번호 대조와 장치 폐기 통계
혼잡대기열·지연·폐기·재전송이 부하와 함께 증가유입 부하가 병목 처리능력을 초과링크 이용률뿐 아니라 대기열·폐기·대화 증거
처리량 저하단위시간 유효 데이터·완료량 감소손실복구, 제한, 종단 병목, 응용 대기rwnd/cwnd 후보, 서버 처리자원·디스크·응용 로그

상관된 시간 변화 + 설명 가능한 메커니즘 + 대안 원인의 반증이 모일수록 판정이 강해진다.

2. 세 증거의 장점과 맹점을 안다

패킷 캡처: 선 위에 보인 메시지와 시간의 표본

패킷 캡처는 정한 인터페이스·지점에서 관찰된 프레임·패킷의 일부 또는 전부와 타임스탬프를 기록한 증거다. 캡처 필터는 수집할 패킷 자체를 제한하고, 디스플레이 필터는 이미 수집한 패킷 중 화면에 보일 것을 고른다. 전자를 잘못 쓰면 나중에 숨긴 패킷을 되살릴 수 없다.

패킷은 방향·순서·필드·간격을 잘 보여 주지만 포착지점 밖의 사건과 송신기 내부 cwnd, 서버 큐의 이유를 직접 보여 주지 않는다. 분석도구의 대화 따라가기(Follow Stream), 재조립과 전문가 정보(Expert Information)는 대화를 모으고 단서를 찾는 기능이지 원인을 확정하는 판정자가 아니다.

캡처 누락(capture drop)은 관측 장치나 수집 프로그램이 버퍼·처리용량 부족 때문에 관찰 대상 패킷을 기록하지 못한 상태다. 타임스탬프의 원천·정밀도·정확도, 잘린 캡처 길이와 캡처 누락 수를 기록한다. 호스트 송신 오프로딩 때문에 실제 선로로 나가기 전 큰 단위가 보이거나 체크섬이 아직 채워지지 않아 오류처럼 표시될 수 있으므로 다른 지점·인터페이스 통계와 대조한다.

로그: 구성요소가 해석한 사건 기록

로그는 구성요소가 관찰·판단한 사건을 시간·출처·종류·문맥과 함께 남긴 기록이다. syslog 구조에서 발신자(originator)는 메시지를 만들고 중계자(relay)는 전달하며 수집자(collector)는 모은다. 메시지는 우선순위와 버전, 타임스탬프, 호스트·응용·프로세스·메시지 식별정보, 구조화 데이터와 자유 메시지로 구성될 수 있다.

로그는 인증서 검증 실패, 요청 큐 진입, 경로 없음처럼 패킷만으로 모르는 내부 판단을 준다. 그러나 로그가 없다고 사건이 없었던 것은 아니다. 로그 수준·분기·버퍼·전송 손실·중계 과정의 변형·시계 오류가 있고, 메시지 출처·기밀성·무결성이 자동 보장되지 않는다. 원본·수집본과 전송경로, 시간 오차를 함께 보존한다.

사건 발생 시각과 수집기가 관측한 시각을 구별한다. 예를 들어 응용이 10:00:01에 기록한 사건을 버퍼에 모았다가 수집기에 10:00:04에 전달할 수 있다. OpenTelemetry 로그 모델의 Timestamp는 원천에서 사건이 발생한 시각이고, ObservedTimestamp는 수집 시스템이 관측한 시각이다. 후자를 기준으로 정렬하면 버퍼·전송 지연 때문에 원래 사건의 순서가 바뀔 수 있다. 시계 오프셋을 보정하는 일과 기록이 늦게 도착한 이유를 분석하는 일은 별개이며, 원천 시각이 없는 로그에 수집 시각만 있다고 정밀한 사건 순서를 확정해서는 안 된다.

관리 지표: 일정 구간의 상태와 추세

네트워크 관리 관측은 장치·호스트의 상태값과 사건을 수집해 용량·오류·가용성 변화를 판단하는 활동이다. 간이 네트워크 관리 프로토콜(Simple Network Management Protocol, SNMP)의 RFC 3411 관리구조는 관리 응용(manager), 관리대상 쪽 대리자(agent), SNMP 엔진의 분배기(dispatcher)·메시지 처리·보안·접근통제 기능을 분리한다.

이 절은 manager/agent와 보안·접근통제의 구조까지만 사용한다. SNMP PDU, 관리정보베이스(Management Information Base, MIB)와 관리정보구조(SMI)의 세부는 동반 RFC가 필요한 확인하지 못한 주장이므로 가르치지 않는다. 역사 문항의 SNMP 한 단어를 근거로 세부를 추측하지 않는다.

지표는 이용률, 큐 깊이, 오류·drop 계수, 처리량 같은 추세를 보여 주지만 수집주기 사이의 짧은 급증이 평균에서 사라질 수 있다. 누적 계수(counter)는 사건 수가 계속 더해지는 값이고, 초기화(reset)는 다시 시작하며 값이 작아지는 일, 되감김(wrap)은 정해진 최댓값을 넘은 계수가 처음 값으로 돌아가는 일이다. 증가량을 초당 비율(rate)로 바꿀 때 이 둘과 실제 경과시간을 확인한다. 메트릭 레이블(metric label)은 인터페이스·인스턴스처럼 시계열을 구별하는 이름표이고, 시간 버킷(time bucket)은 여러 표본을 한 값으로 집계한 시간구간이다. 합계·평균·최댓값·백분위, 레이블 범위와 버킷 길이를 함께 기록한다.

같은 인터페이스의 누적 폐기 수가 10:00:00에 1200, 10:00:05에 1450이고 그 사이 초기화·되감김이 없었다면 증가량은 1450−1200=250건, 관측 구간 평균은 250/5=50건/초다. 1450을 5로 나누면 장치가 오래전부터 센 사건까지 현재 구간에 넣는 오답이다. 또한 이 폐기 수는 특정 사용자 대화의 유효 송신 표본 수가 아니므로 곧바로 그 대화의 손실률로 사용하면 안 된다.

직접 풀어 보기 — 자체 조건 변경

확인 문제로 다음 값이 10:00:10에 100으로 작아졌다면 (100−1450)/5=−270건/초를 정상 비율로 보고할 수 있는가?

누적 계수의 초기화·되감김 판단

아니다. 초기화·되감김과 수집원 변경을 확인하고 해당 구간을 유효한 단순 증가량 계산에서 제외하거나 확인한 규칙으로 보정해야 한다. 최댓값과 재시작 여부를 모르면 보정값도 추측하지 않는다.

패킷·로그·지표는 서로를 대체하지 않는다

증거강점맹점좋은 연결키
패킷실제 관찰 메시지·방향·순서·간격지점 밖·내부 상태·암호화 내용주소·포트, 순서번호 범위, DNS·스트림 식별자, 시각
로그구성요소의 내부 판단·업무 문맥선택적 기록·시계·형식·전송 신뢰요청·추적 식별자, 호스트, 프로세스, 메시지 식별자, 시각
지표장기간 추세·용량·큐·오류 변화집계가 개별 사건을 숨김자원 레이블, 인터페이스, 인스턴스, 시간 버킷

패킷이 지연된 시각에 서버 로그가 요청을 아직 받지 못했다면 네트워크·수신경계 후보가 커지고, 서버 로그가 처리 시작 후 오래 머물렀다면 종단 처리 후보가 커진다. 같은 시간의 중앙처리장치(CPU) 이용률 100%만으로 원인이라 하지 않고 해당 요청의 서버 체류시간과 큐·처리량을 맞춘다.

3. 증거 상관: 같은 사건을 시간·식별자·경로로 묶는다

증거 상관은 서로 다른 수집원에서 나온 기록이 같은 실제 사건 또는 인과사슬을 가리키는지 시간, 식별자, 방향, 위치와 상태전이로 대조하는 과정이다. 시계 오프셋(clock offset)은 같은 실제 순간을 두 시계가 서로 다른 값으로 표시하는 차이다. 공통 시간축은 원본 타임스탬프를 지우고 한 값으로 덮어쓰는 것이 아니다. 각 원본 시각, 시간대, 추정 오프셋, 동기상태와 불확실성 범위를 보존한 채 비교용 시각을 만든다.

상관키는 같은 사건 후보를 묶는 값이다. 요청·추적 식별자(request/trace ID)가 가장 직접적일 수 있지만 없으면 주소·포트, DNS 식별자와 질문, TCP 순서범위, HTTP 스트림 식별자, 호스트·프로세스, 메시지 식별자와 가까운 시각을 조합한다. 하나의 키는 재사용·변환될 수 있으므로 둘 이상을 맞춘다.

불확실성은 측정값이나 사건 연결이 참값에서 벗어날 수 있는 알려진 범위와 원인이다. 시계 오차 ±20 ms와 지표 수집주기 60 s를 가진 증거를 1 ms 단위의 정확한 선후관계처럼 쓰지 않는다.

하나의 사용자 요청을 사건 사슬로 만든다

정규화 비교시각      위치/증거             사건                         연결키
10:00:00.000         클라이언트 로그         클릭                         trace=7
10:00:00.010         클라이언트 패킷         DNS 질의                     id=31,name=S
10:00:00.040         클라이언트 패킷         DNS 응답                     id=31,name=S
10:00:00.050         경계 포착              TCP SYN                      A:p→B:443
10:00:00.090         경계 포착              TCP 연결 수립                 A:p↔B:443
10:00:00.150         서버 로그              요청 수락                     trace=7
10:00:03.150         서버 로그              응답 준비                     trace=7
10:00:03.160         클라이언트 패킷         응답 첫 바이트                순서번호 범위

불확실성: 클라이언트 ±2 ms, 서버 오프셋 +15±5 ms, 지표 버킷 60 s

이 예에서는 DNS와 TCP 수립은 짧고 서버 수락부터 응답 준비까지 약 3초다. 그래서 네트워크 전체 3초보다 서버 내부 체류 후보가 강하다. 다만 서버 시계 오프셋과 중계 서버(proxy)의 대기 여부를 확인하고, 같은 구간의 CPU·데이터베이스·서버 작업자 대기열 지표로 가설을 검증한다. 시간상 함께 나타난 지표만으로 인과를 확정하지 않는다.

위 표는 이미 정규화한 비교시각이므로 서버의 +15ms를 다시 빼지 않는다. 예를 들어 서버 원본 기록 10:00:00.165에서 기준시계보다 빠른 추정 오프셋 15ms를 한 번 빼면 표의 요청 수락 10:00:00.150이 된다. 응답 준비의 원본 10:00:03.165도 같은 방법으로 10:00:03.150이 된다. 오프셋 추정의 ±5ms는 변환 후 남는 불확실성이지 또 뺄 보정값이 아니다.

서로 다른 시계의 사건을 빼면, 예를 들어 서버 응답 준비와 클라이언트 첫 바이트 사이 명목상 10ms에는 최악 경계 합 ±(5+2)=±7ms가 붙어 3~17ms 범위가 된다. 이는 단순 경계합이지 확률적 신뢰구간이 아니며 로그 생성·포착 위치 차이가 있으면 실제 전송지연과도 다를 수 있다. 반면 같은 서버 시계의 .165→3.165 간격은 일정한 +15ms 오프셋이 상쇄되어 3초다. 구간 중 시계 보정·드리프트·기록 지연이 변하면 그 오차는 상쇄되지 않으므로 단조시계와 계측경계를 확인한다.

오차 범위가 0을 가로지르면 사건 순서도 아직 확정하지 못한다. 같은 오차 조건에서 두 시각의 명목 차이가 4ms라면 경계는 4±7ms, 즉 −3~11ms다. 음수 하한은 물리적으로 음의 전송지연이 발생했다는 뜻이 아니라, 시계·계측 오차가 그 정도 차이보다 커서 선후관계를 분리하지 못했다는 뜻이다. 하한을 임의로 0으로 바꿔 정확도가 높아진 것처럼 보고하지 말고 원래 범위와 계측 위치를 남긴다. 앞 도식의 10ms 차이와는 다른 수치를 대입한 연습 사례다.

직접 풀어 보기 — 자체 조건 변경

오프셋의 부호를 스스로 확인하는 연습도 하자. 서버가 이번에는 기준보다 10ms 느리고, 원본 수락 시각이 10:00:00.140이라면 오프셋은 −10ms다. 비교시각을 계산하고, 이미 정규화된 값에 다시 적용해도 되는지 설명한다.

시계 오프셋의 부호·중복 보정 교정

비교시각은 원본−오프셋이므로 .140−(−.010)=.150이 된다. 느린 시계에서 또 10ms를 빼 .130으로 만드는 오답은 오차를 더 키운다. 이미 정규화한 표의 .150에는 이 계산을 다시 적용하지 않는다. 앞의 원본·보정·남은 불확실성 세 가지를 구분하는 절차로 돌아가 각 기록이 어느 값인지 표시한다.

상관 전에 네 가지를 정규화한다

  1. 시각: 원본 값·시간대·시계 원천·오프셋·정확도와 수집지연을 보존한다.
  2. 식별자: 주소변환(NAT)·중계 서버 전후의 주소·포트와 요청 식별자의 생성·전파·재사용 범위를 표시한다.
  3. 단위·집계: 바이트/비트, 초/밀리초, 누적 계수/초당 비율, 평균/백분위와 버킷을 맞춘다.
  4. 위치·방향: 클라이언트→서버, 유입→유출과 인터페이스·인스턴스·프로세스를 표시한다.

정규화 뒤에도 연결은 후보일 수 있다. 강한 직접키, 여러 필드 조합, 시간만 근접처럼 연결 강도를 표시하고 서로 맞지 않는 반증을 삭제하지 않는다.

4. TCP 흐름 진단: seq/ack를 시간과 양 끝 지표에 연결한다

TCP 흐름 진단은 연결의 수립·데이터 진행·손실복구·흐름제어·종료를 seq/ack, 플래그, 시간과 종단 상태로 재구성해 어느 방향과 구간에서 진행이 막혔는지 판단하는 일이다. 패킷에 보이는 수신 Window와 송신기 내부 cwnd를 구분하고, 재전송 표시를 실제 순서범위·ACK 진행과 대조한다.

한쪽 포착만으로 누가 버렸는가를 확정하기 어렵다. 송신 지점에는 있는 순서범위가 수신 지점에 없다면 두 지점 사이의 손실 후보가 되고, 수신 지점에는 있는데 응용 로그가 없다면 호스트 전송계층 이후·응용 경계를 본다. 양쪽 포착의 시계와 캡처 drop을 먼저 검증한다.

송신자의 RTO는 모호하지 않은 RTT 표본에서 평활 RTT와 변동을 추정하고 타임아웃에는 backoff하지만, 재전송된 세그먼트의 ACK는 어느 전송을 확인했는지 모호해 그대로 RTT 표본으로 쓰지 않는다. 다만 TCP 타임스탬프 옵션으로 ACK가 확인한 전송 인스턴스의 모호함을 제거할 수 있다면 재전송의 RTT 표본도 사용할 수 있다. 단순히 옵션이 보인다는 사실만으로 모든 ACK의 모호함이 제거됐다고 단정하지 않는다. Reno 기준은 내부 cwnd·ssthresh의 slow start, congestion avoidance와 fast retransmit/recovery를 사용하고 CUBIC은 마지막 혼잡사건 뒤 시간에 따른 곡선으로 윈도를 조절한다. 어느 알고리즘도 패킷에 정확한 cwnd를 싣지 않으며, 모든 연결이 CUBIC을 쓴다고 가정하지 않는다. 구체 작동원리는 TCP·UDP·DNS·HTTP·TLS 프로토콜 분석을 참조하고 이 절에서는 관측한 패턴과 호스트 내부지표를 분리한다.

패턴은 원인이 아니라 다음 검증을 고르는 단서다

관찰 패턴우선 가설다음 증거
SYN 반복, SYN+ACK 미관찰목적지 미도달·정책·서버 미청취·역방향 문제서버측 포착, 정책·listen 로그
연결수립 RTT만 증가경로 왕복·중간 처리·서버 SYN 응답 지연양방향·양지점 시간, 장치 큐·서버 상태
같은 순서번호 범위 재전송과 ACK 정체손실·심한 순서역전·포착 누락수신측 포착, 장치 폐기 계수, 캡처 누락
광고 Window 감소·0과 Window 갱신수신 응용·버퍼 소비 지연수신 프로세스 큐·CPU·읽기 상태
RTT·대기열·폐기·재전송 동시 증가병목 혼잡 가설인터페이스 대기열·폐기·부하·다른 TCP 대화
요청 도착 후 긴 무패킷, 서버 로그 처리 중서버·DB·외부 의존 대기추적·작업자·DB 지표와 완료 로그
RST연결상태·정책·응용의 즉시 중단RST 송신 주체와 직전 상태·로그

중복 ACK 세 번 뒤 빠른 재전송, RTO 뒤 재전송 같은 동작은 앞 절에서 배운 상태규칙으로 확인한다. cwnd와 ssthresh는 캡처에 직접 없으므로 확인되지 않은 전송량(flight size)의 패턴만으로 정확한 내부값을 단정하지 않는다.

재전송을 두 지점에서 대조한다

예시

송신 호스트 포착 A에는 seq 1001~2000이 t1에 있고, 수신 서버 앞 포착 B에는 그 범위가 없다. A에서 뒤 범위가 전송된 뒤 같은 ACK가 반복되고, RTO 전 빠른 재전송으로 1001~2000이 다시 나가 B와 서버에 도착했다고 하자. 같은 시각 중간 장치의 출력 대기열 폐기 계수가 증가했다.

이 증거는 A와 B 사이에서 해당 범위가 첫 시도에 관찰되지 않았고, 손실복구와 장치 폐기 증가가 시간상 맞는다는 강한 구간 손실 후보를 만든다. 그러나 A의 캡처 중복·B의 캡처 누락·두 시계 오차를 확인해야 한다. 큐 클래스(queue class)는 장치가 같은 스케줄링·폐기 정책으로 다루는 트래픽 묶음이다. 해당 인터페이스와 큐 클래스의 부하·대기열·폐기가 함께 증가했음을 확인한 뒤에만 구간 손실 후보를 혼잡 가설로 승격한다.

반대로 B에도 첫 전송이 있는데 서버 응용이 읽지 못하고 Window가 줄었다면 네트워크 중간 손실보다 수신 호스트·응용 소비 경계가 우선이다. 같은 재전송이라도 위치 대조가 원인범위를 바꾼다.

전방 패킷이 안 보일 때 역방향 누적 ACK도 대조한다. 같은 TCP 연결에서 수신자가 이전에는 1001을 기다렸는데 재전송 전에 유효한 ACK 2001을 보냈다면, 그때까지 2000번 바이트까지 연속으로 받았다는 증거다. 관측점 B의 전방 캡처에 그 바이트가 안 보인다는 이유만으로 수신자 미도착이나 손실을 확정할 수는 없다. 필터·캡처 누락·비대칭 경로·오프로딩과 그 연결의 전송 이력을 다시 확인한다. 누적 ACK는 바이트 수신 증거이며, 응용이 읽고 업무 처리를 완료했다는 증거는 아니다.

5. 실패통제와 재현 가능한 절차

분석 자체가 만드는 오류를 먼저 막는다

분석 실패결과통제
서로 다른 시계를 그대로 정렬원인과 결과 순서를 뒤집음offset·정확도·수집지연과 시간창 표시
한 지점 패킷만 사용방향·구간 손실을 오판가능한 경계 양쪽 포착과 장치 통계
캡처 누락·오프로딩 무시가짜 손실·체크섬 오류캡처 통계·원격 포착·네트워크 인터페이스 설정 대조
평균 지표만 사용짧은 급증과 느린 꼬리구간 지연 소실버킷·표본수·최댓값·백분위 확인
로그 메시지를 사실 전체로 봄선택적 기록·내부 오판을 신뢰원본 패킷·상태·다른 로그로 교차검증
시간상 동시를 원인으로 확정공통원인·우연 상관을 놓침메커니즘·선행성·반증·재현 실험
cwnd를 패킷에서 읽었다고 씀내부 상태와 광고 Window 혼동송신 호스트 TCP 지표와 미확인 전송량 추정 분리

개인정보·인증정보·업무 데이터가 패킷과 로그에 들어갈 수 있다. 수집범위·권한·마스킹·보존기간과 접근기록을 먼저 정하고 검수자료에는 원본 민감정보를 노출하지 않는다.

열 단계로 증상에서 검증된 경계까지 간다

  1. 증상·영향 정의: 사용자·기능·시작/종료·빈도·정상 기준을 적는다.
  2. 경로·가설 지도: DNS→연결→TLS→응용→데이터베이스와 가능한 병목·실패경계를 그린다.
  3. 측정 계약: 지연 시작/끝, 손실 기다림, 표본·구간·방향과 성공조건을 정한다.
  4. 증거 계획: 필요한 양지점 패킷, 로그, 지표와 권한·민감정보 통제를 정한다.
  5. 품질 검증: 시계·캡처 누락·필터·집계주기·로그 누락을 확인한다.
  6. 대화·사건 분리: 프로토콜·주소·포트·식별자·순서번호·추적값과 위치로 후보를 묶는다.
  7. 공통 시간축 구성: 원본시각과 오프셋·불확실성을 보존하며 단계시간을 계산한다.
  8. 마지막 정상/최초 이상: 패킷 상태와 로그·지표 변화를 경계별로 놓는다.
  9. 가설 검증·반증: 대안 원인과 기대증거를 정해 추가 포착·로그·시험으로 확인한다.
  10. 조치·재시험: 복구 뒤 같은 측정계약으로 전후를 비교하고 증거·한계를 보존한다.

다른 절과 연결해 읽을 범위

이 절은 네트워크 분석, 단방향 지연·손실 측정, 패킷·로그·지표 증거의 한계와 상관, TCP 흐름 진단을 설명한다. TCP·UDP·DNS·HTTP·TLS 메시지와 상태의 정식 설명은 프로토콜 분석이고, Ethernet·IPv6의 전달경계는 앞 절의 참조모델과 캡슐화 설명을 사용한다.

SNMP는 manager/agent와 engine 보안·접근통제의 관리구조까지만 사용한다. MIB·SMI·PDU 세부와 현대 telemetry 제품 비교는 별도 근거와 설명이 필요하다. 용량·경로·QoS 설계는 네트워크 설계와 통신시스템, 사고대응 조직·절차는 정보보안의 사고대응에서 이어진다.

네트워크 분석에서 확인할 학습 내용

측정 정의에서 진단·반증·재시험까지 다음 연결을 스스로 설명해 본다.

  • 정의: 네트워크 분석, 단방향 지연·손실, 혼잡, 증거 상관과 TCP 흐름 진단의 정식 정의를 둔다.
  • 작동원리: 서비스 경로, 공통 시간축, 두 지점 seq/ack 대조와 패킷·로그·지표 연결을 설명한다.
  • 비교: 지연/손실/혼잡, 패킷/로그/지표, TCP 관찰패턴을 같은 축에서 분리한다.
  • 실패조건: 시계·집계·캡처 누락·오프로딩·단일지점·상관/인과 혼동을 통제한다.
  • 절차: network-analysis-ten-step-procedure가 측정계약부터 반증·재시험까지 재현 가능하게 만든다.
  • 연습(practice)·답안 전환: 아래 기출 공백을 보완하는 10점·25점 문제의 목차·도식·모범답안으로 논점을 추적한다.

앞의 계층·전달경계와 프로토콜 필드·상태를 바탕으로 관찰 증거를 연결한다. 프로토콜의 기대 동작과 서비스 원인 진단을 구별한다.

6. 기출 공백과 답안 전환

감사한 15문항 중 S03 direct는 0건이다

패킷·로그·지표 상관 진단은 감사한 15개 문항 중 패킷·로그·지표를 한 시간축에서 상관해 진단하라고 직접 요구한 문항이 없다는 신규공백 후보다. 관련 문항을 억지로 direct로 바꾸지 않는다.

문항 ID관계이 절에서의 제한된 재사용
IM-0063-P01-Q04partial/modernizedSNMP 역사 문구를 manager/agent 관리구조와 현대 관측의 일부로만 연결; SNMPv3·telemetry 세부는 별도 근거 필요
IM-0107-P01-Q07partial/modernized패킷망 오류 유형을 손실·순서·중복 관찰과 양지점 검증으로 현대화; 문장부호 전사 불일치 후보 유지
IM-0130-P03-Q03partialTCP 혼잡제어의 상세 설명은 앞 절; 네트워크 진단은 queue/drop/RTT와 cwnd 관측 한계를 지원
IM-0137-P03-Q05partial오류·혼잡·윈도 문항에 측정·진단 증거만 지원
IM-0138-P04-Q04partial일반 ARQ의 primary는 오류제어 담당 절; 네트워크 진단은 손실·재전송 패턴 관찰만 지원

AI가 공식 원문 이미지를 재감사했지만 독립 사람 승인은 0이다. 직접 기출이 없다는 것은 공식 범위가 불필요하다는 뜻이 아니라, 2027 범위를 위해 현재형 연습문제를 새로 만들어야 한다는 뜻이다.

시험에서는 어떻게 묻는가: 10점

다음은 패킷·로그·지표를 함께 연습하는 자체 제작 문제다.

단방향 지연, RTT와 단방향 패킷 손실의 측정 정의를 설명하고, 패킷 측정의 불확실성과 오판 방지방안을 제시하시오.

용어 정의에 시작·끝·표본·기다림·시계가 들어가야 한다. RTT를 반으로 나누어 단방향 지연이라고 쓰거나 미관찰을 곧 네트워크 폐기라고 단정하지 않는다.

답안 목차·풀이·교정 근거 보기

10점 답안 목차

  1. 측정계약: 출발·도착·패킷 유형·방향·기간·성공조건
  2. 단방향 지연: 두 지점 송수신 사건의 시간차와 시계 오차
  3. RTT: 한 지점의 송신→대응응답, 양방향·원격처리 포함
  4. 손실: 정한 기다림 안의 목적지 미관찰과 loss ratio
  5. 오판통제: 캡처 누락·늦은 도착·시계 오프셋·경로·표본·불확실성

10점 답안 도식

단방향 측정은 두 시계, RTT는 같은 출발지 시계다

넓은 화면과 모바일에서 같은 관계를 각각의 배치로 읽을 수 있습니다.

단방향 측정은 두 시계, RTT는 같은 출발지 시계다위의 단방향 사례와 아래 RTT 사례는 독립 측정이다. 시간은 아래로 흐르지만 선 사이 거리는 실제 기간이 아니다. 단방향은 송신과 수신의 보정시각 차이이고 RTT는 같은 출발지의 요청→대응 응답으로 순방향·상대 처리·역방향을 포함한다. RTT를 2로 나누어 단방향이라 하지 않는다. 유효 송신 표본과 선언한 기다림 안 목적지 미관찰을 손실 후보로 세고 양쪽 캡처 품질을 검증한다. 단방향: 보정(t2) − 보정(t1) RTT 요청: 출발지 t3 응답: 같은 출발지 t4출발지 시계도착지 시계독립 사례 A: 두 시계 · t1 송신, t2 수신 · 유형/경로/오차 명시독립 사례 B: 한 시계 · RTT = t4−t3 · 양방향 + 상대 처리상대 처리선언한 기다림 안 미관찰 → 손실 표본 후보. capture drop·늦은 도착·필터·경로 검증.

위의 단방향 사례와 아래 RTT 사례는 독립 측정이다. 시간은 아래로 흐르지만 선 사이 거리는 실제 기간이 아니다. 단방향은 송신과 수신의 보정시각 차이이고 RTT는 같은 출발지의 요청→대응 응답으로 순방향·상대 처리·역방향을 포함한다. RTT를 2로 나누어 단방향이라 하지 않는다. 유효 송신 표본과 선언한 기다림 안 목적지 미관찰을 손실 후보로 세고 양쪽 캡처 품질을 검증한다.

두 시계의 단방향과 한 시계 RTT서로 독립인 A 단방향 사례는 출발지와 도착지의 두 시계 보정(t2)-보정(t1), B RTT 사례는 같은 출발지 시계의 요청 t3와 대응 응답 t4를 보여준다. RTT에는 양 방향과 상대 처리가 포함되며 선 간격은 실제 기간이 아니다. 선언한 기다림 안 미관찰은 손실 표본 후보이며 캡처 누락·늦은 도착·필터·경로를 검증한다.독립 사례 A: 두시계t1 송신, t2 수신 ·유형/경로/오차 명시출발지시계도착지시계단방향: 보정(t2) −보정(t1)독립 사례 B: 한시계RTT = t4−t3 · 양방향 +상대 처리출발지시계도착지시계RTT 요청: 출발지 t3상대 처리응답: 같은 출발지 t4선 간격은 실제 기간아님; RTT/2를단방향이라 하지 않음선언한 기다림 안 미관찰→ 손실 표본 후보capture drop·늦은도착·필터·경로 및 양쪽캡처 품질 검증

10점 모범답안

단방향 지연은 정의한 출발지에서 특정 유형의 패킷을 보낸 사건부터 목적지에서 받은 사건까지의 시간차다. 서로 다른 두 시계를 사용하므로 원본 시각, 동기방식, clock offset·정확도와 측정오차를 함께 보고한다. RTT는 한 지점에서 요청을 보내 대응 응답·ACK를 받을 때까지의 시간으로 순방향·역방향 지연과 상대 처리시간을 포함할 수 있어 단순히 반으로 나누지 않는다.

단방향 손실은 유효하게 보낸 표본이 정한 기다림과 관찰조건 안에 목적지에서 보이지 않은 사건이며 손실률은 손실 표본/유효 송신 표본이다. 늦은 도착의 분류경계, 패킷 유형·크기·경로·기간과 표본 수를 명시한다. 네트워크 폐기로 확정하기 전 송수신 캡처 누락, 필터, 네트워크 인터페이스 오프로딩, 시계오차와 경로변화를 확인하고 가능하면 경계 양쪽 순서번호와 장치 폐기 통계를 대조한다. 측정값에는 불확실성과 확인하지 못한 원인을 함께 기록한다.

시험에서는 어떻게 묻는가: 25점

다음도 신규공백을 위한 자체 제작 문제다.

간헐적으로 응답시간이 증가하는 HTTPS 서비스의 원인을 패킷·로그·지표 상관분석으로 진단하시오. 지연·손실·혼잡과 TCP 수신측 병목을 구분하는 절차, 도식, 증거 한계와 재검증방안을 포함하시오.

Wireshark로 본다에서 끝내지 않고 측정계약, 증거 품질, 공통 시간축, 마지막 정상/최초 이상, 반증과 전후 재시험까지 답한다.

답안 목차·풀이·교정 근거 보기

25점 답안 목차

  1. 증상·기준: 영향 사용자·기능·기간, 정상/이상 지연 분포와 성공조건
  2. 경로·측정계약: DNS→TCP→TLS→HTTP→서버/DB, 지연 시작·끝·손실 기다림
  3. 증거계획·품질: 양지점 패킷, syslog/응용 로그, 대기열·폐기·호스트 지표, 시계·필터·누락
  4. 정규화·상관: 원본시간+오프셋/불확실성, 주소·포트·순서번호·추적 식별자·위치·방향
  5. TCP 분석: 수립 RTT, seq/ack, 재전송·RTO, rwnd/zero-window, cwnd 관측 한계
  6. 원인 구분: 지연/손실/혼잡/수신응용/서버처리의 기대증거와 반증
  7. 판정: 마지막 정상·최초 이상, 가설·확신수준·대안 원인
  8. 조치·재시험: 추가 포착·호스트 지표, 동일 조건 전후 비교, 증거보존·민감정보 통제

25점 답안 도식

서비스 경로·실제 시간 도식과 보존된 원본 증거 표를 재사용한다. 사용자/trace 사건에 패킷 A의 DNS·SYN/ACK·TLS·HTTP·seq/ack/재전송, 패킷 B의 동일 범위·유입/유출·캡처 품질, 로그의 수락·TLS 오류·요청 시작/끝·의존대상, 지표의 링크·대기열/폐기·CPU/큐·DB를 연결한다. 원본시각과 오프셋±불확실성은 지우지 않는다.

검증할 가설기대 증거·반증
혼잡RTT·대기열·폐기·재전송이 부하와 함께 증가; 다른 손실 원인 반증
수신측광고 Window 감소/0 + 응용 읽기·큐 증거
서버요청 도착 + 긴 내부 체류 + 네트워크 응답 공백

사건 타임라인에서 마지막 정상→최초 이상을 좁히고 가설·반증을 기록한다. 조치 뒤 같은 측정계약으로 재시험하며, 바로 아래 완전답안의 개인정보·권한·증거보존 통제를 함께 적용한다.

25점 모범답안

네트워크 분석은 서비스 경로의 패킷·로그·지표를 시간·방향·대화·구간에 맞춰 마지막 정상과 최초 이상을 찾는 과정이다. 먼저 영향을 받은 사용자·기능·기간과 정상/이상 응답시간 분포, 성공조건을 정한다. DNS→TCP→TLS→HTTP→서버·DB 경로를 그리고 단방향 지연의 송수신 사건, RTT의 요청·응답, 손실 판정의 기다림·표본을 측정계약으로 고정한다.

클라이언트와 서버 경계의 패킷, syslog·TLS·응용 로그, 링크 이용률·대기열·폐기와 호스트·DB 지표를 수집한다. 캡처 필터·누락·네트워크 인터페이스 오프로딩·잘린 길이, 로그 수준·전송 누락, 지표 버킷을 먼저 검사한다. 각 원본 타임스탬프와 시간대, 시계 오프셋·정확도·수집지연을 보존하고 비교시간을 만든다. 주소·포트, DNS 식별자와 질문, TCP 순서번호 범위, HTTP 스트림 또는 추적·요청 식별자, 인스턴스·방향을 둘 이상 조합해 같은 사건 후보를 묶는다.

TCP는 SYN 수립 RTT, 순서번호·확인번호 진행, 반복 ACK·재전송·RTO와 광고 Window를 본다. 송신 포착에는 있으나 수신 경계에 없는 같은 순서번호 범위와 장치 폐기 증가가 맞으면 구간 손실 후보가 강하다. RTT·대기열·폐기·재전송이 부하와 함께 증가하면 혼잡 가설을 세우되 물리 오류·정책폐기·포착 손실을 반증한다. Window가 작거나 0이고 수신 프로세스 큐·읽기 지연이 맞으면 네트워크 혼잡보다 수신측 병목을 우선한다. cwnd는 패킷에 직접 없으므로 정확한 값은 송신 호스트 TCP 지표로 확인한다.

DNS·TCP·TLS가 빠르게 완료되고 서버 로그에서 요청 수락부터 응답 준비까지 길다면 서버·DB·외부 의존 구간을 본다. 반대로 서버가 응답을 보냈으나 클라이언트 경계에서 사라지면 역방향 두 지점과 폐기 지표를 대조한다. 결론은 마지막 정상, 최초 이상, 관찰근거, 원인 가설과 확신수준, 맞지 않는 증거, 추가 측정으로 쓴다. 복구 후 같은 트래픽·표본·시간창으로 단계별 지연·손실·처리량을 재측정하고 원본 증거의 권한·마스킹·보존을 관리한다.

근거와 현행성

단방향 지연의 정의·오차·통계는 RFC 7679 §§3.2–3.4, 3.6–3.8와 4–5를, 단방향 손실의 정의·방법 불확실성·손실률은 RFC 7680 §§2.2–2.4, 2.6–2.8, 3과 4.1을 확인했다. 네트워크 혼잡의 용어 경계와 일정 구간의 도착률이 출력능력을 넘을 때 지연·폐기가 생길 수 있다는 문맥은 현행 RFC 9522 §§1.4, 2.2를 사용했다. TCP 흐름의 필드·상태 경계는 RFC 9293 §§3.1, 3.3.2, 3.4, 3.5–3.8, 3.8.1–3.8.2와 3.8.6 중 본문 교육범위만, RTO는 RFC 6298 §§2–3, 5, 혼잡제어 동작은 RFC 5681 §§2, 3.1–3.2와 RFC 9438 §§3–4, 4.3–4.6, 4.8, 4.10의 본문 교육범위만 사용했다.

로그의 originator·relay·collector, 메시지 구조와 한계는 RFC 5424 §§4–5, 6–6.4, 8과 8.3–8.8을 사용했다. SNMP 관리구조는 RFC 3411 §§1.2, 3.1.1–3.1.3.2, 3.3, 4.4와 4.6만 사용했으며 PDU·MIB·SMI 세부를 포함하지 않았다. 캡처/디스플레이 필터, Follow Stream, Expert Information, TCP 추론, timestamp, 재조립과 checksum offload는 Wireshark User’s Guide 4.7.3 §§4.10, 6.4, 7.2, 7.4, 7.5, 7.6, 7.6.3, 7.8.1–7.8.3과 7.10.1–7.10.3을 버전 고정 도구 사례로 확인했다.

본문의 증거 상관 절차는 패킷·로그·지표에 관한 위 공식 자료의 정의와 관측 한계를 넘지 않도록 교재가 자체 구성한 제한적 종합이다. 어느 하나의 표준이 이 상관 절차 전체를 정의한다고 주장하지 않는다. 모든 표·타임라인·패킷 예시와 문제도 교재를 위해 독자적으로 구성했다. 실제 패킷 화면·운영 로그·표준 그림을 복제하지 않았고, 도구 라이선스가 실제 트래픽의 개인정보·기밀정보 권리를 허가하는 것으로 보지 않는다. 기준 확인일은 2026-09-01이며 rolling 도구 문서는 새 버전 또는 2026-12-01에 재검토한다. 기술·출제·기출·권리에 대한 사람 승인 수는 0이고 상태는 candidate / human-validation-pending다.

30초 정리

  1. 네트워크 분석은 패킷·로그·지표를 서비스 경로와 공통 시간축에 놓아 마지막 정상과 최초 이상을 찾는다.
  2. 단방향 지연은 두 지점 시계, RTT는 양방향·상대처리, 손실은 기다림 안의 미관찰이므로 측정계약과 불확실성이 필요하다.
  3. 지연·손실·혼잡은 동의어가 아니며 대기열·폐기·RTT·재전송과 부하가 함께 움직이는지 본다.
  4. TCP 진단은 seq/ack·재전송·rwnd를 읽되 cwnd는 패킷에 직접 없고 양지점·호스트 지표로 검증한다.
  5. 실제 증거와 측정계약을 연습하려면 패킷–로그–지표를 한 사건에 연결하고 결론의 확인 한계를 남긴다.

다시 읽을 때는 측정계약→증거품질→시간·식별자 정규화→마지막 정상/최초 이상→반증→동일조건 재시험을 한 줄로 떠올린다.

직접 연습: 관측 숫자와 주장 사이의 조건을 점검한다.

문제 1: 이미 보정한 시각의 차이가 4ms면 선후관계를 확정할 수 있는가?

서버의 응답 준비 시각은 오프셋 보정을 끝낸 3.150초, 클라이언트의 첫 바이트 시각은 3.154초다. 서버 시각의 잔여 오차 경계는 ±5ms, 클라이언트는 ±2ms다. 오프셋을 다시 빼지 않고 차이의 범위를 구하고, 수집기에 도착한 순서만 추가로 알면 음수 하한을 없앨 수 있는지 설명하라.

풀이: 명목 차이는 3.154−3.150=0.004초=4ms다. 최악 경계합은 5+2=7ms이므로 차이는 −3~11ms 범위다. 0을 포함하므로 이 시각들만으로 정밀한 선후관계나 실제 전송지연을 확정할 수 없다. 음의 실제 지연을 주장하거나 하한을 임의로 잘라내는 대신 잔여 시계 오차·계측 위치를 기록한다. 수집 순서는 버퍼·전송 지연의 영향도 받으므로 원천 사건의 순서를 확정하는 추가 근거가 되지 않는다. 이미 보정한 시각에서 오프셋을 한 번 더 빼는 것도 오답이다.

문제 2: 두 서버의 p95 평균이 전체 요청의 p95인가?

같은 1분 동안 서버 A는 요청 9600개를 모두 10ms에, 서버 B는 요청 400개를 모두 1000ms에 완료했다. 두 서버를 합친 원래 표본 10000개에 대해 이 문제에서는 작은 순서로 정렬한 ⌈0.95×표본 수⌉번째 값을 p95로 정의한다. 전체 p95와 서버별 p95의 단순 평균을 계산하고, 전체 p95만 보고 모든 사용자가 빠르다고 결론 내릴 수 있는지 설명하라.

풀이: 전체 p95의 순번은 ⌈0.95×10000⌉=9500이다. 1~9600번째가 10ms이므로 전체 p95는 10ms다. 서버별 p95는 10ms와 1000ms이며 단순 평균은 (10+1000)/2=505ms로, 전체 p95와 다르다. 다만 전체의 400/10000=4%는 여전히 1000ms를 기다렸으므로 10ms라는 p95만으로 모든 사용자가 빠르다고 할 수 없다. 느린 요청 비율·대상과 더 높은 백분위도 확인한다. 여기의 정확한 원래 표본 계산을 히스토그램 보간값과 혼동하지 않는다.

문제 3: 전방 캡처 누락과 재전송만으로 손실을 확정할 수 있는가?

같은 TCP 연결의 수신자는 직전 ACK에서 1001을 기다렸다. 송신점 A에 1.000초의 SEQ=1001, 데이터 1000바이트가 보이고, 경계 B의 전방 캡처에는 해당 범위가 없다. 그러나 같은 연결의 수신자가 보낸 유효한 누적 ACK 2001이 B의 역방향 캡처에 1.005초에 보인다. A에서 최초 재전송은 1.020초이고, 문제의 기록에는 이 바이트 범위의 다른 선행 전송이 없다. 무엇을 확정할 수 있고, 무엇을 아직 확정할 수 없는가?

풀이: ACK 2001은 수신자가 2000번까지의 바이트를 연속으로 받았고 다음 2001을 기다린다는 뜻이다. 최초 재전송보다 앞서 이 ACK가 관측됐으므로, B의 전방 기록에 없다는 이유만으로 그 범위가 수신자에게 미도착했다고 결론 내리는 것은 기록과 모순된다. B의 필터·누락·관측 경로·오프로딩을 점검하고 송신자에 ACK가 도달했는지도 대조한다. 어느 물리 경로의 원래 패킷이 도착했는지, 재전송 원인이 무엇인지, 응용이 읽고 업무를 완료했는지는 이 증거만으로 확정할 수 없다.

이 페이지 목차

이 페이지 목차

0. 느린 화면 하나에는 서로 다른 시간이 섞여 있다네트워크 분석: 경로·시간·상태 증거로 원인범위를 줄인다전체에서 어디인가: 세 증거를 서비스 경로에 겹친다먼저 알아둘 것1. 측정대상을 먼저 정의한다지연과 손실: 시작·끝·패킷 유형·기다림을 선언한다지연은 전송·전파·처리·대기와 종단시간으로 분해한다혼잡: 들어오는 부하가 처리능력을 오래 넘어서 대기·손실이 커진다지연·손실·혼잡을 같은 표에서 구분한다2. 세 증거의 장점과 맹점을 안다패킷 캡처: 선 위에 보인 메시지와 시간의 표본로그: 구성요소가 해석한 사건 기록관리 지표: 일정 구간의 상태와 추세직접 풀어 보기 — 자체 조건 변경패킷·로그·지표는 서로를 대체하지 않는다3. 증거 상관: 같은 사건을 시간·식별자·경로로 묶는다하나의 사용자 요청을 사건 사슬로 만든다직접 풀어 보기 — 자체 조건 변경상관 전에 네 가지를 정규화한다4. TCP 흐름 진단: seq/ack를 시간과 양 끝 지표에 연결한다패턴은 원인이 아니라 다음 검증을 고르는 단서다재전송을 두 지점에서 대조한다5. 실패통제와 재현 가능한 절차분석 자체가 만드는 오류를 먼저 막는다열 단계로 증상에서 검증된 경계까지 간다다른 절과 연결해 읽을 범위네트워크 분석에서 확인할 학습 내용6. 기출 공백과 답안 전환감사한 15문항 중 S03 direct는 0건이다시험에서는 어떻게 묻는가: 10점10점 답안 목차10점 답안 도식10점 모범답안시험에서는 어떻게 묻는가: 25점25점 답안 목차25점 답안 도식25점 모범답안근거와 현행성30초 정리