Network

Bandwidth와 Throughput 이해하기

junoshon 2025. 2. 23. 11:39

 

안녕하세요, 오랜만에 글을 씁니다.

취업준비와 취업, 수습기간동안을 거치며 블로그 작성에 소홀했는데, 다시금 지식을 정리하는 습관을 들이고자 합니다.

 

이번 글의 주제는 네트워크의 Bandwidth와 Throughput 이해하기 입니다.

 

Bandwidth(대역폭) 과 Throughput(처리량)

Bandwidth(대역폭) :대역폭(帶域幅, bandwidth)은 컴퓨팅에서 일반적으로 초당 여러 비트로 표현되는, 사용 가능하거나 소비된 정보 용적의 비트레이트이다.

Throughput(처리량) : 스루풋(throughput) 또는 처리율(處理率)은 통신에서 네트워크 상의 어떤 노드나 터미널로부터 또 다른 터미널로 전달되는 단위 시간당 디지털 데이터 전송으로 처리하는 양을 말한다. 예를 들어 데이터 링크에서는 스루풋 단위로 초당 비트 수(bit/s 또는 bps)가 주로 사용된다.

출처 : 위키백과

 

컴퓨터 네트워크를 공부할 때 흔히 접하게 되는 용어들입니다. 글의 더 나은 이해를 돕기 위해 데이터의 단위와, 그 숫자를 어림잡아 유추할 수 있도록 간단한 예시를 들어보겠습니다.

 

bit와 byte, bps

compute : 계산하다
-er : 명사나 동사의 뒤에 붙여서 그것을 하는 사람이나 또는 그것의 주체가 되는 것을 나타내는 접미사.
computer : 계산하는 사람, 혹은 전자회로를 사용한 고속 계산기

출처 :  위키백과

 

 영단어 compute는 본디 계산하다 라는 뜻을 가진 동사입니다. 접미사 -er이 붙어 계산하는 사람, 혹은 계산하는 기계를 일컫는 말로 굳어졌지요.

컴퓨터가 계산할 때 사용하는 단위가 바로 bit 이며, 이는 0과 1로 이루어져 있습니다. bit가 8개면 1 byte입니다. 즉 1 byte = 8 bit 가 되는거지요.  

인코딩 기준에 따라 조금씩 다르지만, 가장 대중적인 UTF-8 인코딩과 ASCII코드 기준으로 각각 한글은 한 음절에 3 byte, 영문은 한 글자에 1byte입니다. 즉 "안녕하세요" 라는 글자는 15 byte, "Hello"는  5 byte 의 크기를 가지는 데이터인 셈입니다.

 

이렇게 컴퓨터에서 계산에 사용되는 단위가 bit와 byte이고, 초당 처리하는 데이터의 크기를 bit per second, bps라 부릅니다.

 

Bandwidth(대역폭)

먼저 Bandwidth, 번역하면 대역폭은 쉽게 생각해서 고속도로의 차선 개수 라고 이해할 수 있습니다.

지나다니는 차량은 패킷이고요. 사진 상 보이는 차선은 5개입니다. 

출처 : https://blog.naver.com/hwgi01/221217961504

중앙선을 기준으로 왼쪽 도로는 쾌적하고, 오른쪽 도로는 매우 정체입니다. 두 도로의 대역폭(차선의 개수)는 같지만요. 

이처럼 대역폭은 데이터가 지나다닐 수 있는 통로의 범위를 얘기할 뿐, 절대적인 네트워크의 성능 지표가 될 수 없습니다. 차선이 5개여도 1차로는 좌회전 전용이라 직진하는 차들은 갈 수 없고, 어떤 차선은 공사를 하고있다면 차선이 여러개여도 무용 지물이지요.

 

Throughput(처리량)

https://www.backblaze.com/blog/whats-the-diff-bandwidth-vs-throughput/

따라서 회선의 실제 데이터 처리량은 Throughput(이하 처리량)으로 계산됩니다. 처리량은 데이터 전송량을 기반으로, 혹은 패킷의 개수를 기반으로 계산할 수 있습니다.

 

데이터 전송량에 기반한 계산

800 mega byte가 10초에 걸쳐 전송되었다고 가정하면, 아래와 같이 계산할 수 있습니다.

처리량 = 800 MB / 10 second = 80MBps

혹은

640 Mbps (bit 단위로 계산 시)

 

그렇다면 패킷 처리량에 기반한 계산은 어떻게 할 수 있을까요?

 

패킷 처리량에 기반한 계산

네트워크에서 전송되는 데이터의 단위를 부르는 이름인 Packet은 OSI 계층에 따라서 그 이름이 달라집니다.

L1에서는 bit, L2에서는 Frame, L3에서는 Packet, L4에서는 Segment, 그 이상 상위 계층에서는 Data라고 부르지요.

출처 : https://medium.com/software-engineering-roundup/the-osi-model-87e5adf35e10

흔히 초당 패킷 처리량(packet per second, 이하 pps)은 L2의 패킷을 부르는 이름인 프레임으로 계산됩니다. 상위 계층으로 올라갈수록 각 계층의 역할을 하는 헤더들이 추가로 붙고, 이런 헤더들 때문에 패킷의 크기가 늘어나게 되면 패킷을 나누어 보내기 때문에 패킷의 개수가 늘어나게 되기 때문입니다.

 

지난 글에서 작성했듯이, 패킷의 최대 크기는 1,500 byte 입니다. 반면 최소 크기는 64 byte 이지요. 

이더넷 프레임 헤더

출발지와 목적지 MAC 주소, 상위 계층의 프로토콜을 지시하는 Ether Type, 실제 데이터 페이로드, 오류 검출을 위한 CRC 까지 모두 64바이트입니다. 이더넷 프레임이 왜 최소 64 Byte로 설계되었는지는 과거 반이중 통신 방식을 사용할 때 충돌 회피(CSMA/CD)와 당시 ㅛ표준 규격이었던 10Base5 케이블의 한계 때문인데, 본 글의 주제와는 다른 내용이므로 다른 글에서 다뤄보겠습니다.

 

어쨌든, 패킷 처리량에 따른 계산은 패킷의 크기에 따라서 그 결과가 매우 달라집니다.

800 MB 의 패킷을 처리한다고 했을 때, 최악인 경우와 최선인 경우를 가정해 모든 패킷의 크기가 최대인 1,500 byte인 상황, 모든 패킷의 크기가 최소인 64 Byte 인 상황을 가정해보겠습니다.

Case 1 - 모든 패킷의 크기가 1,500 byte
800,000,000 / 1,500 = 53,333 pps

Case 2 - 모든 패킷의 크기가 64 byte
800,000,000 / 64 = 1,250,000 pps

 

따라서 네트워크 장비를 제조하는 벤더사들은 자사 제품의 패킷 처리량을 높이 보여주기 위해 패킷의 처리량이 높을 수 있는 가장 최선의 상황인 64 byte 를 기준으로 계산합니다.

 

마치며

이번 글에서는 네트워크에서 Bandwidth와 Throughput 의 의미에 대해 알아봤습니다.

 

위의 상황은 어디까지나 최선의 경우, 이론적인 상황일 뿐 실제 네트워크 환경에는 더 많은 오버헤드가 붙습니다.(이더넷 프레임 프리앰블, Inter-Frame Gap 등) 또한 최근에 개발되는 네트워크 장비들은 ASIC을 사용한 내부 최적화, Cisco의 경우 독자 프로토콜을 사용해 자사 장비들끼리 고성능 스위칭을 제공(Cisco Express Forwarding)하는 등 더 높은 패킷 처리량을 제공합니다.

따라서 본 글에서 계산한 예시는 참고용으로만 봐주시면 감사하겠습니다.