네트워크 성능을 정확히 측정하고 표현하는 것은 트러블슈팅의 기본입니다. "느리다"가 아니라 "지연이 200ms이고 패킷 손실이 5%"라고 말할 수 있어야 합니다.


핵심 지표

Bandwidth (대역폭)

단위 시간당 전송 가능한 최대 데이터량 입니다.

PLAINTEXT
대역폭: "도로의 차선 수" (한 번에 얼마나 많이 보낼 수 있는가)
단위: bps (bits per second), Mbps, Gbps
BASH
# 대역폭 측정
iperf3 -s            # 서버
iperf3 -c 서버IP      # 클라이언트

Latency (지연)

패킷이 출발지에서 도착지까지 가는 데 걸리는 시간입니다.

PLAINTEXT
지연: "도로의 길이" (얼마나 멀리 가야 하는가)
RTT(Round Trip Time) = 왕복 시간
단위: ms (밀리초)
BASH
ping -c 10 서버IP     # RTT 측정

구성 요소:

  • 전파 지연 (빛의 속도 한계)
  • 처리 지연 (라우터에서 패킷 처리)
  • 큐잉 지연 (라우터 큐에서 대기)
  • 전송 지연 (패킷을 링크에 올리는 시간)

Throughput (처리량)

실제로 전송된 데이터량입니다. 대역폭보다 항상 작습니다.

PLAINTEXT
대역폭: 이론적 최대
처리량: 실제 측정값

처리량 < 대역폭 (프로토콜 오버헤드, 손실, 혼잡 등)

Jitter (지터)

패킷 간 도착 시간의 변동(분산) 입니다.

PLAINTEXT
이상적: 패킷이 10ms 간격으로 일정하게 도착
지터 있음: 5ms, 15ms, 8ms, 20ms... 불규칙

VoIP, 영상 통화에서 지터가 높으면 음성이 끊기거나 화면이 깨짐

Packet Loss (패킷 손실)

전송한 패킷 중 도착하지 않은 비율입니다.

BASH
# 패킷 손실 측정
ping -c 100 서버IP
# "100 packets transmitted, 98 received, 2% packet loss"

MTU (Maximum Transmission Unit)

한 번에 전송 가능한 최대 패킷 크기 입니다.

PLAINTEXT
이더넷 기본 MTU: 1500바이트
점보 프레임: 9000바이트 (데이터센터 내부)

MTU보다 큰 패킷 → IP 단편화(fragmentation) → 성능 저하
BASH
# MTU 확인
ip link show eth0

# Path MTU 측정 (DF 비트 설정)
ping -M do -s 1472 서버IP
# 1472 + 28(IP+ICMP 헤더) = 1500
# "Frag needed" 응답이 오면 MTU가 더 작은 구간이 있음

성능 공식

PLAINTEXT
최대 처리량 = 윈도우 크기 / RTT

예: TCP 윈도우 64KB, RTT 100ms
→ 64KB / 0.1s = 640KB/s = 5.12Mbps

→ 높은 RTT 환경에서 처리량 향상: TCP 윈도우 크기 증가 필요

이것이 Bandwidth-Delay Product (BDP) 입니다.

PLAINTEXT
BDP = 대역폭 × RTT
= 1Gbps × 50ms = 6.25MB

→ TCP 윈도우가 최소 6.25MB는 되어야 1Gbps 활용 가능

면접 포인트

  • **대역폭 vs 처리량 **: 대역폭은 최대 용량, 처리량은 실제 사용량
  • **BDP와 TCP 성능 **: 높은 대역폭 + 높은 RTT → 큰 윈도우 필요
  • ** 지터가 중요한 이유 **: 실시간 통신(VoIP, 게임)에서 치명적

정리

네트워크 성능은 대역폭, 지연, 지터, 패킷 손실, MTU의 5가지 지표로 평가합니다. iperf3과 ping으로 기본 측정이 가능하며, BDP를 이해하면 TCP 튜닝의 기본을 갖출 수 있습니다.

댓글 로딩 중...