대역폭
대역폭은 통신 회선이 한 번에 실어 나를 수 있는 데이터의 최대치를 나타냅니다. 초당 전송 가능한 비트 수로 잽니다. 실제 전송 속도가 이 값보다 낮을 수는 있어도 이 값을 넘지는 못합니다.
쉽고 빠른 이해
대역폭은 회선이 초당 보낼 수 있는 데이터 양의 상한입니다. 100Mbps 회선은 초당 최대 100메가비트까지만 보냅니다.
이 값이 없으면 어느 회선이 더 굵은지 비교할 방법이 없습니다. 서버를 아무리 늘려도 회선 자체가 좁으면 그 이상 못 보냅니다.
대역폭은 이렇게 정해집니다.
- 초당 보낼 수 있는 비트 수를 잰다
- Kbps · Mbps · Gbps 처럼 천 단위로 올려 부른다
- 회선 양쪽 장비 중 더 좁은 쪽이 전체 상한이 된다
이 값은 회선이 병목인지 볼 때 확인합니다. CPU(Central Processing Unit, 중앙 처리 장치)나 메모리가 먼저 꽉 찬 상황이면 대역폭을 봐도 소용이 없습니다.
값이 넉넉해도 회선이 붐비면 실제 속도는 그보다 낮게 나옵니다. 값을 올리려면 회선 자체를 바꾸거나 늘려야 하고 비용이 듭니다.
상세
수도관을 떠올리면 됩니다. 대역폭은 관의 굵기입니다. 굵은 관은 가는 관보다 같은 시간에 더 많은 물을 보낼 수 있습니다.
정의와 단위
대역폭은 초당 전송할 수 있는 비트 수입니다. 단위는 bps(bits per second, 초당 비트 수)이고, 값이 커지면 Kbps · Mbps · Gbps 처럼 천 배씩 올려 부릅니다.
여기서 자주 헷갈리는 것이 하나 있습니다. 통신 회선의 속도는 비트 단위로 말하고, 파일 크기나 다운로드 속도는 보통 바이트 단위로 말합니다. 1바이트는 8비트입니다.
그래서 "100Mbps 회선"으로 받는 최대 속도는 초당 100메가비트지, 초당 100메가바이트가 아닙니다. 8로 나누면 초당 12.5메가바이트 정도입니다.
인터넷 요금제 광고는 대개 비트 단위(Mbps)를 씁니다. 다운로드 관리자의 진행 표시는 대개 MB(megabyte, 메가바이트) 단위인 MB/s 를 씁니다. 같은 회선인데 두 화면의 숫자가 여덟 배쯤 차이 나 보이는 까닭이 이것입니다.
대역폭과 처리량의 차이
대역폭은 회선이 낼 수 있는 이론적인 최댓값이고, 처리량은 지금 실제로 오가고 있는 양입니다. 100Mbps 회선을 가진 서버라도 다른 요청이 회선을 같이 쓰고 있으면, 한 요청이 실제로 받는 속도는 그보다 낮게 나옵니다.
두 값이 갈리는 원인은 회선 하나를 여러 곳이 나눠 쓰기 때문만이 아닙니다. 수신 측 장비의 처리 속도, 중간에 지나가는 장비의 성능, 재전송을 부르는 오류율도 실제 속도를 깎습니다. 그래서 대역폭은 계약서에 적힌 값이고, 처리량은 그 계약서 안에서 실제로 오간 값이라고 보면 됩니다.
| 개념 | 답하는 질문 |
|---|---|
| 대역폭 | 이 회선이 낼 수 있는 최대치는 얼마인가 |
| 처리량 | 지금 실제로 얼마나 오가고 있나 |
| 지연 | 한 비트가 도착하기까지 얼마나 걸리나 |
세 값은 서로 다른 질문에 답하므로 하나를 올린다고 다른 값이 같이 오르지 않습니다. 대역폭을 올려도 회선 자체가 안 붐비면 처리량은 그대로일 수 있고, 지연은 대역폭과 무관하게 물리적인 거리로도 생깁니다.
대역폭과 지연을 함께 봐야 하는 순간
한 비트가 회선에 오른 뒤에 도착하기까지는 시간이 걸립니다. 그 시간이 지연입니다. 대역폭이 아무리 넓어도 지연은 줄지 않습니다. 서울과 뉴욕 사이의 거리가 회선 굵기와 상관없이 그대로이기 때문입니다.
두 값을 곱하면 새로운 뜻이 생깁니다. BDP(Bandwidth-Delay Product, 대역폭-지연 곱)는 송신 측이 응답을 기다리지 않고 회선에 밀어 넣을 수 있는 데이터의 양입니다. 이때 쓰는 지연은 위 표에서 다룬 편도 지연이 아니라 왕복 시간(RTT, Round Trip Time) 기준입니다.
대역폭은 초당 보내는 데이터의 양입니다. 지연(왕복 기준)은 보낸 데이터가 돌아오는 데 걸리는 시간입니다. 둘을 곱하면 그 시간 동안 회선 위에 동시에 떠 있을 수 있는 데이터의 양이 나옵니다.
flowchart TD
A["송신 측 · 대역폭만큼 계속 내보냄"] --> L
subgraph L["회선 위 · 아직 도착 안 한 데이터"]
P1["보낸 데이터 1"]
P2["보낸 데이터 2"]
P3["보낸 데이터 3"]
end
L --> B["수신 측 · 지연 뒤 도착"]
이 값이 왜 중요한지는 TCP(Transmission Control Protocol, 전송 제어 프로토콜)의 동작에서 드러납니다. 송신 측은 상대가 잘 받았다는 확인이 오기 전까지 내보낼 수 있는 데이터양에 한도를 둡니다. 이 한도를 슬라이딩 윈도우라고 합니다.
이 한도가 BDP 보다 작으면 회선이 비어 있는데도 송신 측이 확인을 기다리며 손을 놓게 됩니다. 즉 회선은 넓은데 그 폭을 다 못 쓰는 상태가 됩니다. 그래서 대역폭이 넓고 거리가 먼 회선일수록 이 한도를 넉넉히 잡아야 회선 굵기만큼 속도가 나옵니다. 이 값을 실제로 어떻게 조절하는지는 혼잡 제어가 다룹니다.
무엇이 대역폭을 병목으로 만드나
서버 성능을 올릴 때 흔히 CPU 나 메모리부터 늘립니다. 그런데 회선의 대역폭이 그보다 먼저 꽉 차 있으면, CPU 와 메모리를 아무리 늘려도 전체 속도는 그대로입니다. 회선이 병목이 된 상태입니다.
이런 상황은 대용량 파일을 주고받는 서비스나, 서버가 많이 몰린 시간대에 자주 나타납니다. 회선 자체를 넓히지 않고 이 상황을 완화하는 방법은 크게 두 갈래입니다. 보낼 데이터 자체를 줄이는 방법과, 같은 데이터를 여러 번 보내지 않는 방법입니다. 파일을 압축해서 보내는 것이 앞쪽이고, 자주 요청되는 응답을 캐싱해 두거나 이용자와 가까운 곳에 복사본을 두는 CDN(Content Delivery Network, 콘텐츠 전달 네트워크)이 뒤쪽입니다.
거꾸로 CPU 나 메모리가 먼저 꽉 찬 상황이면 대역폭을 넓혀도 속도는 그대로입니다. 손대기 전에 지금 꽉 차 있는 자원이 회선인지부터 확인해야 헛돈을 안 씁니다.
관련 항목
대역폭과 함께 네트워크 성능을 재는 지표
처리량 · 지연 · 패킷 손실률 · 지터 · 왕복 시간
대역폭이 병목으로 바뀌는 자원
대역폭을 아껴 쓰는 방법
대역폭과 지연을 함께 다루는 개념
다른 이름: bandwidth