본문 바로가기

IT/network

[네트워크]Throughput에 대하여

(들어가기에 앞서 혼자 공부할 때 사용하는 페이지로써 기록에 의미를 두고 있습니다)

Throughput에 대한 정의를 들어가기 전에 대역폭에 대한 정의부터 알고 가면 좋을 것 같다.

대역폭은 일반적으로 특정 네트워크에서 가장 낮은 주파수와 가장 높은 주파수의 차이라고 정의되어 있지만 통신이나 인터넷에서는 주어진 시간 동안 하나의 회선을 통해서 얼마나 많은 양의 데이터를 전송할 수 있는가의미한다. 

Throughput은 네트워크 상의 어떤 노드로부터 또 다른 노드로 전달되는 단위 시간당 데이터량이다.
하지만 실제 네트워크에서는 노드간 데이터 전달에 있어서 Drop에 의한 패킷의 손실이 발생한다.
이때, 단위 시간당 손실되지 않고 전달이 완료된 데이터량을 Goodput,
단위시간당 전송중 손실된 데이터량을 Badput이라고 한다.

이 때, Goodput + Badput > 대역폭 은 불가능하다는 것을 기억할 것.

논문을 보며 네트워크를 공부하다가 Goodput 이라는 단어를 접하게 되었다.
해당 논문에서 Goodput을 다음과 같이 구한다고 하였다.
- Goodput은 모든 TCP Client가 전송한 전체 데이터량을 소요 시간으로 나눈 값이다.
즉, 16Mbyte를 16초동안 보낼 경우 Goodput은 1Mbyte/s가 된다.

TCP Max Throughput이라는 것도 존재한다.
이를 구하기 위해서는 RTT, 링크속도, 버퍼 사이즈를 알아야 한다.

* TCP MAX Throughput = { Buffer Size / ( Link Speed * RTT ) } * Link Speed ;

위에 나온 값들 중 RTT에 대하여 알아본다.

RTT (Round Trip Time)
- 네트워크 시작 지점에서 대상 지점으로 이동하고 다시 시작지점으로 이동하는데 걸리는 시간(밀리초, ms)

- RTT에 영향을 주는 요인
1) 전송 매체 : 광섬유가 구리섬유보다 빠르고 무선 주파수 연결은 위성 통신과 다르게 동작
2) 근거리 통신망(LAN) 트래픽 : 근거리 통신망의 트래픽 양은 연결이 큰 인터넷에 도달하기 전에 병목 현상을 일으키리 수 있다.
3) 서버 응답 시간 : 서버가 요청을 처리하고 응답하는데 걸리는 시간, DDoS공격처럼 요청에 압도당하면 효율적 대응이 불가능하여 RTT 증가 / 아무리 빨리 서버로 전송해도 서버에서 처리가 느리면 다시 돌아올때까지 시간이 늘어난다.
4) 노드 수 및 정체 : 데이터 전송 과정에서 거쳐가는 노드 수가 많을수록(Hop Count가 높을수록) 연결속도 느림
5) 물리적 거리 : 빛의 속도의 한계는 극복 불가능

<참고 : https://nenunena.tistory.com/149>

그 외, drop이 없다는 가정하에
TCP Speed = Window Size / RTT;