본문 바로가기

IT/new Technology

[대학원 논문용] Bufferbloat와 TSN에 대한 정리글

대학원 논문 작성을 위해 정리해놓은 글입니다.

네트워크 쪽에서 중요하게 여기는 것은 delay의 최소화, 즉, 빠른 통신이다. 수신지에서 목적지까지 데이터를 빠르게 보낼수록 사용자 입장에서는 편리하기 때문이다. 하지만, 하나의 건물 내에서 통신이 이루어지는 LAN(Local Area Network)환경이 아닌, 지역 간의 통신이나 국가 간의 통신에서는 여러 네트워크 장비를 거치게 되고 해당 네트워크 장비에는 내가 보낸 데이터 이외에도 많은 데이터들이 오가므로 트래픽이 많아 지연(delay)이 발생하게 된다.

* 종단간 지연(End to End Latency)

- time taken for a packet to be transmitted accross a network from source to destination

- 즉, 송신지에서 수신지까지 패킷(내가 보낸 데이터)이 도착하는데 걸리는 시간

종단간 지연은 적을수록 통신이 빠르게 이루어지는 것이며, 최대 값(지구 맨 끝에서 반대편 끝까지 보낼 때 걸리는 종단간 지연, 남극의 극점에서 북극의 극점으로 보내는 것이라고 생각하면 비슷함)은 100ms로 정의되어 있다.

 

* Bufferbloat(bloat = 둥글게 커짐, swellen)

<what is bufferbloat from IQrouter>

앞서 말했듯이 LAN환경이 아닌 이상, 네트워크 장비에 걸리는 네트워크 트래픽은 클 수 밖에 없다. 네트워크 장비는 큰 트래픽을 한번에 처리하지 못하기 때문에 Queue에 처리해야 할 패킷을 순서대로 집어넣고 순차적으로 처리를 한다. 문제는 Queue의 사이즈인데, Queue의 사이즈가 너무 작으면 Queue에 들어온 패킷 이외의 모든 패킷들을 버리게(drop) 된다. 때문에 해당 패킷을 보낸 수신자는 재전송(Retransmission)을 해야 하며, 자연스레 통신 속도는 느려지게 된다.

Bufferbloat의 경우, Queue 사이즈가 너무 클 경우에 발생한다. 보통 Queue 사이즈가 커지면 속도가 빨라지지 않을까라고 생각하는데 일부는 맞는 말이고 일부는 틀린 말이다. 너무 작은 것보다야 커지면 빨라지긴 하지만, 수 많은 데이터들이 동시에 들어왔는데 Queue 사이즈가 너무 크면 그만큼 지연이 발생한다.

간단한 예를 하나 들어보자. 엄청 잘나가는 맛집이 있는데 3팀까지 대기 번호를 준다고 하자. 유명한 맛집이라 끊임 없이 손님이 들어오는데 대기 번호는 3번까지밖에 안주기 때문에 3번 뒤에 온 손님들은 허탕을 치게 된 셈이다. 반대로, 대기 번호를 300팀까지 준다고 생각하면 어떨까? 정말 맛있는 집이라면 300번까지 금방 찰 수 있다. 문제는 대기 번호가 줄어드는 속도는 정해져있는데, 대기가 300번까지면 299번 팀(10명이라고 가정)이 들어갈 때까지 300번 팀(2명이라고 가정)은 먹지를 못하게 된다. 대기 번호에 의하면 300번 팀은 2명 자리가 나도 299번 팀이 먹을 때까지 기다려야 된다는 것이다.

Bufferbloat에 의해 부풀어오른 buffer는 TCP 트래픽 이외에도 ARP(Address Resolution Protocol), DHCP(Dynamic Host Configuration Protocol), DNS(Domain Name System)등 소규모 트래픽(처리하기 쉬운)도 buffer에 갇힐 수 있다.

이러한 Bufferbloat를 해결하기 위해 나온 것이 여러가지가 있지만 그 중 하나인 CoDel AQM(Controlled Delay Active Queue Management)이다. 패킷이 대기열에 머무른 시간인 체류 지연(Sojourn Delay)와 최초 폐기 간격(Interval), 목표로 하는 지연 시간인 목표 지연(Target)에 맞추어 패킷 폐기 알고리즘을 설정해 Queue 안에 있는 패킷들을 조건에 맞춰 폐기하거나 보내고 이를 통해 Bufferbloat를 해결한다.

<CoDel 동작 알고리즘, 참조 1>

참조 1 : Performance of Controlled Delay Active Queue management Scheme for Time Sensitive Networking with Gated Scheduling and Its Implementation

 

* TSN(Time Sensitive Network)

실시간성 통신을 의미한다. 시간과 스케줄에 따라 자신의 message를 전송하는 queue를 정의하고 전환 네트워크를 통해 예약된 트래픽의 최대 지연시간을 보장한다. IEEE 802.1의 Time Sensitive Networking 그룹에 표준으로 정의되어 있다.

TSN의 특성상 해당 통신이 이루어질 때에는 TSN 전용의 대역폭을 할당하고 보장해주어야 된다. 때문에 그 시간 동안에는 비동기 트래픽은 전송되지 않는다. 문제는 TSN 전송 중에도 비동기 트래픽에 대한 Queue에는 CoDel이 적용되기 때문에, 전송은 안되지만 Queue에 패킷은 지속적으로 유입되면서 bufferbloat가 발생한다.

'IT > new Technology' 카테고리의 다른 글

[TCP 혼잡]Bufferbloat  (0) 2020.05.13
[new Technology] DoH(DNS over HTTPS)에 대하여  (0) 2020.04.12