대역폭 지연 곱(BDP) 계산기
입력
| 대역폭 | 1 Gbps |
|---|---|
| 왕복 시간(RTT) | 30 ms |
대역폭 지연 곱(BDP) 계산기
회선의 대역폭과 왕복 시간(RTT)으로 대역폭 지연 곱(BDP)을 계산합니다. BDP는 경로 위를 흐르고 있는 데이터의 양이며, 그 경로를 완전히 활용하기 위해 권장되는 TCP 윈도우 크기이기도 합니다.
입력
회선 특성
결과
값을 입력하면 계산 결과가 표시됩니다.
대역폭 지연 곱
흐르고 있는 비트 수
대역폭 지연 곱(BDP)
대역폭 지연 곱(BDP)은 한 순간에 네트워크 경로를 채울 수 있는 데이터의 양, 즉 송신 측과 수신 측 사이를 "흐르고 있는" 데이터입니다. 이는 고속 연결을 튜닝할 때 가장 유용한 단일 수치인데, 확인 응답을 기다리며 회선이 노는 일 없이 완전히 활용되도록 하려면 TCP 윈도우나 소켓 버퍼가 얼마나 커야 하는지를 알려주기 때문입니다.
공식
BDPbits=B×T BDPbytes=8B×T여기서 는 초당 비트 단위의 대역폭이고 는 왕복 시간(RTT)이며, 두 값 모두 초 단위를 시간 기준으로 사용합니다. 곱 는 회선 위에 있는 비트 수를 나타내고, 8로 나누면 TCP 윈도우와 버퍼를 설정하는 단위인 바이트로 변환됩니다.
도움이 되는 사고 모델은 물을 나르는 파이프입니다. 대역폭은 파이프의 단면적이고 RTT는 그 길이이므로, 대역폭 지연 곱은 파이프의 전체 부피입니다. 끊김 없이 물을 계속 흘려보내려면 항상 적어도 그 부피만큼의 물이 그 안을 지나가고 있어야 합니다.
계산 예시. 왕복 시간이 30 ms인 1 Gbps 회선:
BDPbits=1,000,000,000×0.030=30,000,000 bits BDPbytes=830,000,000=3,750,000 bytes≈3.75 MB따라서 어느 순간에든 약 3.75 MB의 데이터가 흐르고 있으며, 회선을 포화시키려면 적어도 그 크기의 TCP 윈도우가 필요합니다. 대역폭을 절반인 100 Mbps로 낮추면 BDP는 1.25 MB로 떨어지고, 같은 처리량을 내는 데 버퍼는 3분의 1만 있으면 됩니다.
BDP가 윈도우 크기를 결정하는 이유
TCP는 슬라이딩 윈도우 프로토콜입니다. 송신 측은 윈도우가 허용하는 만큼만 미확인 바이트를 보유할 수 있습니다. 윈도우가 가득 차면 송신 측은 멈추고, 더 보내기 전에 확인 응답이 돌아올 때까지 꼬박 한 번의 왕복 동안 기다립니다.
윈도우가 BDP보다 작으면 송신 측은 첫 번째 확인 응답이 돌아오기 전에 윈도우를 다 써버리고, 회선은 매 왕복의 나머지 시간 동안 놀게 됩니다. 이때 달성 가능한 처리량의 상한은 다음과 같습니다:
throughput=RTTwindow회선이 아무리 많은 원시 대역폭을 가지고 있어도 마찬가지입니다. 수신 윈도우와 소켓 버퍼를 적어도 1 BDP로 설정하면 이 병목이 제거되어 연결이 전체 용량을 사용할 수 있습니다.
롱 팻 네트워크
대역폭 지연 곱이 큰 경로, 즉 높은 대역폭과 높은 지연 시간이 함께 있는 경로를 롱 팻 네트워크(LFN)라고 부릅니다. 대륙 횡단 광케이블, 대륙 간 경로, 위성 회선 등이 전형적인 예입니다. 이런 경로는 윈도우가 전체 왕복을 감당할 만큼 충분히 커야 하기 때문에 까다롭습니다.
원래의 TCP 헤더는 윈도우 필드에 16비트만 할당하여 그 크기를 64 KB로 제한했습니다. 아래 1 Gbps, 100 ms 경로에서 BDP는 12.5 MB로, 그 한계의 거의 200배에 달합니다. 윈도우 스케일링 옵션(RFC 7323)은 광고된 윈도우에 2의 거듭제곱을 곱하여, 바로 이런 경로에서 연결이 BDP까지 커질 수 있도록 합니다.
| 경로 | 대역폭 | RTT | BDP |
|---|---|---|---|
| LAN | 1 Gbps | 1 ms | 125 KB |
| 지역 인터넷 | 100 Mbps | 30 ms | 375 KB |
| 대륙 횡단 | 1 Gbps | 60 ms | 7.5 MB |
| 대륙 간 | 1 Gbps | 100 ms | 12.5 MB |
| 정지궤도 위성 | 50 Mbps | 600 ms | 3.75 MB |
지연 시간이 대역폭만큼이나 중요하다는 점에 주목하세요. 위성 회선은 광케이블 경로보다 훨씬 느리지만, 그 엄청난 RTT 덕분에 대륙 횡단 연결에 견줄 만한 BDP를 갖습니다.
비트, 바이트, 그리고 RTT 측정
대역폭은 초당 비트로 광고되는 반면 버퍼는 바이트로 설정되므로 8이라는 인수가 필수입니다. BDP를 비트로 표시하면 필요한 버퍼를 여덟 배 과대평가하게 됩니다. 값을 고를 때는 병목 대역폭(경로상에서 가장 느린 회선)과 ping이나 패킷 캡처로 측정한 현실적인 RTT를 사용하세요. 대부분의 광역 경로에서 RTT는 전파 지연, 즉 빛이 그 거리를 가로지르는 데 걸리는 시간이 대부분을 차지하며, 이는 아무리 버퍼를 늘려도 줄일 수 없습니다.
실용적인 결과로, 대역폭이 동일한 두 회선이라도 매우 다른 튜닝이 필요할 수 있습니다. 왕복 시간이 더 긴 쪽이 더 큰 BDP를 가지므로 더 큰 윈도우를 요구합니다. 고대역폭 회선이라도 멀리 떨어진 서버에 연결되어 있을 때, 운영체제나 애플리케이션이 윈도우를 BDP 아래로 제한하면 여전히 느리게 느껴지는 이유도 이 때문입니다.
관련 계산기
패킷 손실과 RTT가 함께 연결의 실제 속도를 어떻게 제한하는지 보려면 TCP 처리량 계산기 계산기를 사용하세요. 왕복 시간을 전파, 직렬화, 큐잉, 처리 지연 구성 요소로 분해하려면 레이턴시 버짓 계산기 계산기를 사용하세요. 초당 비트와 초당 바이트 단위 사이에서 속도를 변환하려면 처리량 (bps) 변환기 계산기를 참고하세요.
자주 묻는 질문 (FAQ)
대역폭 지연 곱이란 무엇인가요?
대역폭 지연 곱(BDP)이란 회선의 대역폭에 왕복 시간을 곱한 값입니다. 이는 어느 한 순간에 경로 위를 "흐르고 있는", 즉 전송했지만 아직 확인되지 않은 데이터의 최대량과 같습니다. 회선을 파이프에 비유하면 대역폭은 그 지름, RTT는 그 길이에 해당하므로, BDP는 파이프의 부피에 해당합니다. 용량을 완전히 사용하려면 송신 측이 적어도 1 BDP 분량의 미확인 데이터를 보유할 수 있어야 합니다.
BDP는 어떻게 TCP 윈도우 크기를 결정하나요?
TCP는 송수신 윈도우가 허용하는 만큼만 미확인 데이터를 보유할 수 있습니다. 윈도우가 BDP보다 작으면 송신 측은 그것을 다 써버린 뒤, 계속 전송하기 전에 확인 응답을 기다리며 꼬박 한 번의 왕복 동안 대기하게 되어 회선이 놀게 됩니다.
TCP 수신 윈도우와 소켓 버퍼를 적어도 BDP의 바이트 수로 설정하면 송신 측이 파이프를 계속 채울 수 있습니다. 최신 스택은 윈도우 스케일링과 자동 튜닝을 사용하여 윈도우를 자동으로 BDP에 가깝게 키우지만, 제약이 있는 시스템이나 오래된 시스템에서는 버퍼 상한을 수동으로 올려야 할 수도 있습니다.
롱 팻 네트워크(LFN)란 무엇인가요?
롱 팻 네트워크란 대역폭 지연 곱이 큰 경로, 즉 높은 대역폭과 높은 지연 시간이 결합된 경로를 말하며, 대륙 횡단 회선이나 위성 회선 등이 여기에 해당합니다. 이런 경로는 가득 채워 유지하기 위해 큰 윈도우가 필요합니다. RTT가 100 ms인 1 Gbps 회선의 BDP는 12.5 MB로, 스케일링이 없는 TCP의 최대 64 KB를 훨씬 넘어섭니다. 롱 팻 네트워크야말로 윈도우 스케일링, 큰 버퍼, 최신 혼잡 제어 알고리즘이 가장 크게 효과를 발휘하는 영역입니다.
왜 대역폭뿐만 아니라 지연 시간이 처리량을 제한하나요?
TCP는 확인 응답을 기다리기 때문에, 회선이 아무리 많은 원시 대역폭을 가지고 있어도 처리량은 윈도우 크기를 RTT로 나눈 값으로 상한이 정해집니다. RTT가 2배가 되면 BDP도 2배가 되고, 따라서 같은 속도를 내는 데 필요한 윈도우도 2배가 됩니다. 이것이 멀리 떨어진 서버로의 빠른 회선이 느리게 느껴지는 이유입니다. 윈도우가 왕복을 감당하지 못하면 연결은 전송보다 대기에 대부분의 시간을 쓰게 됩니다.