TCP 처리량 계산기란?
이 도구는 TCP 수신 윈도우 크기와 네트워크 왕복 지연 시간(RTT)을 바탕으로 단일 TCP 연결의 이론상 최대 처리량을 계산해 줍니다. TCP는 한 번에 하나의 윈도우 분량만큼만 확인되지 않은(미확인) 데이터를 '전송 중' 상태로 둘 수 있기 때문에, 회선 자체의 대역폭과 무관하게 윈도우 크기와 RTT가 데이터 전송 속도의 상한을 결정합니다. 바로 이 관계가 그 유명한 대역폭 지연 곱(Bandwidth-Delay Product) 제약입니다.
사용 방법
TCP 윈도우 크기를 킬로바이트(KB) 단위로, 왕복 지연 시간을 밀리초(ms) 단위로 입력하세요. 계산기는 윈도우를 비트로, RTT를 초로 환산한 뒤 나누기를 수행해 Mbps, Kbps, bps 단위의 처리량을 보여줍니다. 윈도우가 클수록, 또는 RTT가 낮을수록 실제로 낼 수 있는 처리량은 높아집니다.
계산 공식 풀이
핵심 공식은 아주 단순합니다. 처리량 = 윈도우 크기 ÷ RTT 입니다. 단위를 맞추기 위해 다음과 같이 환산합니다. 1 KB = 1024바이트 = 8192비트이고, 밀리초 단위의 RTT는 1000으로 나누어 초로 바꿉니다. 따라서 초당 비트(bps) 단위의 처리량은 다음과 같이 됩니다.
$$\text{처리량 (Mbps)} = \frac{\text{윈도우 (KB)} \times 1024 \times 8}{\text{RTT (ms)} / 1000} \times \frac{1}{10^{6}}$$여기에서 1,000,000으로 나누면 Mbps가 나옵니다.
예시로 풀어보기
TCP 윈도우가 64 KB이고 RTT가 50 ms라고 가정해 봅시다. 비트로 환산한 윈도우 = \(64 \times 1024 \times 8 = 524{,}288\) 비트. 초로 환산한 RTT = \(50 / 1000 = 0.05\) 초.
$$\text{처리량} = \frac{524{,}288}{0.05} = 10{,}485{,}760 \text{ bps} \approx 10.49 \text{ Mbps}$$더 빠른 회선을 온전히 활용하려면 더 큰 윈도우(TCP 윈도우 스케일링)가 필요합니다.
자주 묻는 질문
왜 처리량이 회선 속도만큼 안 나오나요? RTT가 큰 경로에서 윈도우가 작으면 동시에 전송 중일 수 있는 데이터 양이 제한되기 때문입니다. 장거리 회선에서 윈도우 스케일링이 자주 필요한 이유가 바로 이것입니다.
목표 속도를 내려면 윈도우 크기가 얼마나 필요한가요? 공식을 변형하면 됩니다. \(\text{윈도우(비트)} = \text{처리량} \times \text{RTT}\). 이 곱이 곧 대역폭 지연 곱이며, 이상적인 버퍼 크기를 뜻합니다.
패킷 손실도 반영되나요? 아니요. 이 값은 손실이 없는 상태에서의 최대치입니다. 손실이 있는 회선에서의 실제 처리량은 이보다 낮으며, Mathis 방정식으로 더 정확히 모델링할 수 있습니다.