TCP 처리량 계산기
입력
| 최대 세그먼트 크기 | 1,460 B |
|---|---|
| 왕복 지연 시간 | 30 ms |
| 패킷 손실 | 0.1 % |
TCP 처리량 계산기
Mathis 방정식을 사용해 세그먼트 크기, 왕복 지연 시간, 패킷 손실률로부터 오래 유지되는 단일 TCP 연결의 최대 처리량을 추정합니다. 지연 시간이 길고 손실이 있는 경로에서 단일 흐름의 처리량이 왜 링크 속도보다 훨씬 낮게 묶이는지 보여줍니다.
입력
연결 정보
결과
값을 입력하면 계산 결과가 표시됩니다.
추정 처리량
TCP 처리량
TCP 처리량은 단일 TCP 연결이 네트워크 경로를 통해 유지할 수 있는 데이터 속도입니다. 이는 링크 속도와 같지 않습니다. 1Gbps 링크라도 경로의 지연 시간이 길고 간헐적인 패킷 손실이 있으면 하나의 연결에는 겨우 몇 메가비트의 속도밖에 전달하지 못할 수 있습니다. 이 계산기는 Mathis 방정식을 사용해 그 단일 흐름 상한을 추정하며, 이 값은 백업, 복제, 대용량 업로드, 그리고 하나의 TCP 스트림에 실리는 모든 전송에서 중요한 수치입니다.
Mathis 방정식
무작위 패킷 손실에 의해 제한되는 오래 유지되는 TCP 흐름은 대략 다음과 같은 처리량으로 안정됩니다:
T≈RTT×pMSS×8여기서 는 바이트 단위의 최대 세그먼트 크기이며, 여기에 곱해지는 계수는 이 바이트를 비트로 변환합니다. 왕복 지연 시간 는 초를 단위로 사용하고, 는 분수로 표현한 패킷 손실 확률입니다. 결과 는 초당 비트(bps)로 나옵니다.
이 형태는 TCP 혼잡 제어가 동작하는 방식에서 비롯됩니다. 손실이 발생할 때마다 TCP는 혼잡 윈도를 절반으로 줄인 뒤 왕복당 한 세그먼트씩 다시 키웁니다 — 익숙한 가산 증가, 승산 감소의 톱니 모양입니다. 이 톱니를 여러 주기에 걸쳐 평균하면 에 비례하는 윈도가 나오고, 그 윈도를 RTT로 나누면 위의 처리량이 됩니다. Matthew Mathis와 동료들은 1997년에 이 결과를 발표했으며, 이는 지금도 손실 제한 TCP에 대한 표준적인 어림 계산 모델로 남아 있습니다.
계산 예시
세그먼트 크기 1250바이트, 왕복 지연 시간 100ms, 패킷 손실률 0.01%(분수로는 0.0001)를 예로 들어 봅니다:
p=0.0001=0.01 T=0.1×0.011250×8=0.00110000=10000000 bps이는 단일 흐름에서 나오는 10Mbps로 — 기반 링크가 100Mbps든 10Gbps든 상관없습니다. 경로의 원시 용량이 아니라 지연 시간과 손실이 상한을 정합니다.
지연 시간과 손실이 지배하는 이유
분모의 두 항이 빠른 링크가 느리게 느껴질 수 있는 이유를 설명합니다:
- 왕복 지연 시간. 처리량은 RTT에 반비례합니다. 두 종단점 사이의 거리를 두 배로 늘리면 단일 흐름 속도는 대략 절반이 되는데, 모든 윈도 조정이 효과를 내기까지 한 번의 왕복을 기다려야 하기 때문입니다.
- 패킷 손실. 처리량은 손실률의 제곱근에 따라 떨어집니다. 손실이 0.01%에서 1%로 — 백 배로 — 늘어나면 처리량은 10으로 나뉩니다. 긴 경로에서는 회복이 느리므로 드문 손실이라도 그 영향이 심하게 누적됩니다.
이렇게 지연 시간이 길고 손실이 0이 아닌 조합을 때때로 "롱 팻 네트워크(long fat network)"라고 부르며, 바로 이런 환경에서 단일 흐름 TCP가 성능을 제대로 내지 못합니다.
모델이 적용되지 않을 때
Mathis 방정식은 흐름이 손실 제한이라고 가정합니다. 경로가 깨끗하고 TCP 수신 윈도가 파이프를 가득 채울 만큼 크다면, 연결은 대신 링크 속도나 윈도 자체에 의해 제한됩니다. 그 영역에서는 대역폭-지연 곱 — 대역폭에 RTT를 곱한 값 — 이 링크를 포화시키는 데 윈도가 얼마나 커야 하는지 알려 주며, Mathis 공식은 더 이상 지배하지 않습니다.
BBR 같은 최신 혼잡 제어 알고리즘도 양상을 바꿉니다. 이들은 모든 손실에 반응하기보다 측정된 대역폭과 RTT를 기반으로 전송 속도를 조절하므로, 고전적인 손실 기반 모델이 예측하는 것보다 손실 있는 경로를 훨씬 잘 견딥니다. Mathis 추정값은 전통적인 손실 기반 TCP에 대한 보수적인 상한으로 다루고, 여러 개의 병렬 연결을 실행하면 단일 흐름 결과가 몇 배로 늘어난다는 점을 기억하세요.
처리량 개선하기
제곱근 관계 때문에 손실을 줄이는 것이 가장 큰 효과를 냅니다 — 불안정한 케이블, 혼잡한 홉, 결함이 있는 하드웨어를 먼저 찾아내세요. 서버를 사용자 가까이로 옮기거나 콘텐츠를 CDN에 두어 RTT를 줄이면 그에 비례해 도움이 됩니다. 경로의 모든 홉이 지원하는 곳에서는 점보 프레임을 켜서 MSS를 높이세요. 그리고 단일 흐름으로 도저히 파이프를 채울 수 없는 경우에는 병렬 스트림이나 손실에 강한 혼잡 제어 알고리즘이 그 간극을 메웁니다.
관련 계산기
깨끗하고 지연 시간이 큰 링크를 채우는 데 필요한 TCP 윈도 크기를 산정하려면 대역폭 지연 곱(BDP) 계산기 계산기를 사용하세요. 실효 속도를 알 때 파일을 옮기는 데 걸리는 시간을 추정하려면 데이터 전송 시간 계산기 계산기를 사용하세요. 처리량 수치를 초당 비트와 초당 바이트 단위 사이에서 변환하려면 처리량 (bps) 변환기 계산기를 사용하세요.
자주 묻는 질문 (FAQ)
Mathis 방정식이란 무엇인가요?
Mathis 방정식은 무작위 패킷 손실에 의해 제한되는, 오래 유지되는 단일 TCP 연결의 처리량을 나타내는 간단한 모델입니다. 처리량은 대략 (MSS × 8)을 (RTT × 손실률의 제곱근)으로 나눈 값이라는 내용입니다.
이 식은 1997년 Matthew Mathis와 동료들이 TCP 혼잡 제어가 손실이 발생할 때마다 전송 윈도를 절반으로 줄이고 이후 천천히 다시 키우는 동작에서 유도했습니다. 정확한 값이 아닌 상한 근사이지만, 지연 시간과 손실의 지배적인 영향을 놀라울 정도로 잘 포착합니다.
아주 작은 패킷 손실률이 왜 처리량을 크게 떨어뜨리나요?
패킷이 하나 손실될 때마다 TCP는 혼잡 윈도를 절반으로 줄인 뒤, 왕복당 한 세그먼트씩 다시 키웁니다. Mathis 방정식이 보여주듯 처리량은 손실률 제곱근의 역수에 비례하므로, 손실이 0.01%에서 1%로 — 즉 백 배로 — 늘어나면 처리량은 10분의 1로 떨어집니다. 지연 시간이 긴 경로에서는 각 단계가 한 RTT만큼 기다리기 때문에 회복이 느리며, 이것이 장거리 전송이 가끔 발생하는 손실에도 민감한 이유입니다.
Mathis 방정식이 적용되지 않는 경우는 언제인가요?
이 식은 흐름이 수신 윈도나 링크 속도가 아니라 패킷 손실에 의해 제한된다고 전제합니다. 경로가 깨끗하고 TCP 윈도가 대역폭-지연 곱을 채울 만큼 충분히 크다면, 연결은 대신 윈도 제한 또는 링크 제한이 되며 실제 처리량은 Mathis 식이 아니라 링크 속도로 묶입니다.
이 계산기는 손실이 있고 지연 시간이 큰 경로에 사용하세요. 깨끗한 경로에서는 링크를 포화시키는 데 필요한 윈도 크기가 대역폭-지연 곱으로 결정됩니다.
단일 흐름 TCP 처리량을 높이려면 어떻게 해야 하나요?
처리량은 손실 제곱근의 역수에 비례해 올라가므로 먼저 손실을 줄이세요 — 불안정한 링크, 혼잡, 결함이 있는 하드웨어를 바로잡습니다. 서버를 사용자 가까이에 두거나 CDN을 사용해 RTT를 줄이세요. 경로의 모든 구간이 지원한다면 점보 프레임으로 더 큰 세그먼트를 활성화하세요.
끝으로, BBR 같은 최신 혼잡 제어 알고리즘은 고전적인 모델이 가정하는 것만큼 손실에 민감하지 않으며, 여러 개의 병렬 연결을 사용하면 단일 흐름 상한을 몇 배로 끌어올릴 수 있습니다.