Transcript
Netmanias Report: Per-User Fair Queueing 기반의 P2P Traffic Management
2011년 5월 31일
손 장 우 (010-3460-5747, son@netmanias.com)
목 차
Multi-Flow Unfairness 문제
통신 사업자의 대응
Per-User Fair Queueing을 통한 공정성 확보
테스트 환경과 결과
결언
I. Multi-Flow Unfairness 문제
P2P 같은 Multi-Flow 응용이 보편화되기 전에는 각 이용자는 하나의 Flow(Src IP, Dst IP, Src Port, Dst
Port, Protocol)로 파일을 다운로드하고 인터넷은 기본적으로 Per-Flow Fairness를 제공하기 때문에
이용자들은 네트워크 대역폭을 공정하게 공유한다.
그런데, Bittorrent같은 P2P 프로그램은 수십개에서 수백개의 Peer로부터 하나의 파일을 조각 단위로
다운로드를 받기 때문에 하나의 파일을 다운로드 받을 때 수십 – 수백개의 TCP Flow가 생성된다. 인터넷은
속성상 (라우터가 FIFO 큐잉을 하므로) TCP Flow 단위로 대역폭을 1/n로 공유하기 때문에 P2P 사용자들은
하나의 TCP Flow로 파일을 다운로드 받는 이용자들이나 웹 서핑을 하는 이용자들보다 훨씬 많은 대역폭을
과점하게 되어 일반 이용자들의 인터넷 품질을 저하시키게 된다.
일반 이용자들의 인터넷 품질을 향상시키기 위해 통신 사업자는 네트워크의 용량을 증설하는 방안도 생각할 수
있으나 막대한 투자 비용이 소요되며 증설해도 P2P 응용들은 가용한 네트워크 용량을 최대한 사용하려고
호시탐탐 기회를 엿보고 있기 때문에 P2P의 품질이 일반 이용자들의 품질보다 상대적으로 더 향상되어 단순한
용량증설만으로는 한계가 있다.
그림 1 (a)는 4명의 이용자가 모두 서버에서 파일을 다운로드 받을 때 각 이용자간 네트워크 대역폭의 사용량을
테스트한 결과이다. 4명의 이용자가 각각 하나의 TCP Flow를 발생시키기 때문에 대역폭이 통계적으로
공정하게 공유됨을 볼 수 있다. 그림 1 (b)는 한 명은 P2P로 파일을 다운로드 받고 나머지 3명은 서버에서
파일을 다운로드 받을 때 각 이용자별 네트워크 대역폭 공유 상황을 테스트한 결과이다. 한 명의 P2P 사용자가
약 85%의 대역폭을 혼자 과점하는 것을 볼 수 있다.
1
그림 1. 4대의 PC가 모두 서버에서 파일을 다운로드 받을 때와 1대가 P2P로 파일을 받을 때
현재 ISP 네트워크상에서 이용자간 대역폭 Fairness 테스트 결과
(테스트 환경은 그림 4를 참조)
(a) (b)
4 이용자가 네트워크 대역폭을 공정하게 공유
0
1
2
3
4
5
6
7
8
9
10
1 11 21 31 41 51 61 71 81 91 101 111 121 131 141
[sec]
Bandwidth Usage [Mbps]
한 P2P 사용자가 네트워크 대역폭 과점
0
1
2
3
4
5
6
7
8
9
10
1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81
[sec]
Bandwidth Usage [Mbps]
PC 1: 파일 다운로드 (1 TCP Flow)
PC 2: 파일 다운로드 (1 TCP Flow)
PC 3: 파일 다운로드 (1 TCP Flow)
PC 4: 파일 다운로드 (1 TCP Flow)
PC 1: P2P 다운로드 (30+ TCP Flows)
PC 2: 파일 다운로드 (1 TCP Flow)
PC 3: 파일 다운로드 (1 TCP Flow)
PC 4: 파일 다운로드 (1 TCP Flow)
Per-User Fair Queueing 기반의 P2P Traffic Management
Per-User Fair Queueing 기반의 P2P Traffic Management
두 번째 방식은 Protocol-Agnostic Traffic Management 방식으로 P2P 트래픽 검출이 없고, 즉 P2P
트래픽인지 아닌 지는 관심이 없고 다만 과다한 트래픽을 사용하는 이용자에게 불이익을 주어 일반 이용자들의
인터넷 품질 저하는 막는 방식 (패킷 총량에 대한 제어)이다. 예를 들어 최대 하향 대역폭이 10Mbps이고
월정액 과금을 할 때 이용자당 10GB의 쿼터를 주고 10GB을 다 쓸 때까지는 하향 대역폭을 10Mbps로
할당해주고 10GB를 다 쓰면 이 이용자는 Heavy User라고 판단하고 하향을 1Mbps로 대역을 제한한다. 한
달이 지나면 다시 10Mbps로 원복해준다.넷매니아즈에서 SI를 수행한 사우디 M사의 경우 이 방식을 쓰고 있다.
2
FUP
controlled
1Mbps
10Mbps
1Mbps
FUP Reset Day
Jan 1st Feb 1st Mar 1st
FUP Reset Day
FUP Volume Quota 고갈 FUP Volume Quota 재충전
Billing Day
FUP: Fair Usage Policy
그림 3. DPI 장비를 이용한 Fair Usage Policy 구현 사례
넷매니아즈에서 수행했던 러시아와 사우디의 SI 프로젝트의 경우에는 액세스가 WiMAX로 무선이었기 때문에
DPI 장비의 성능에 큰 이슈가 없었지만 우리나라의 유선 액세스망의 경우 한 가입자당 100Mbps를 쓰기 때문에
모든 가입자의 트래픽을 DPI로 실시간 분석하는 것은 한계가 있고 비용이 크다.
또한 가입자 패킷의 페이로드를 검사하는 Protocol-Specific Traffic Management 방식의 경우 Privacy 문제가
있으며 (내 패킷의 페이로드를 통신 사업자가 까보다니 !!!), 또한 최근에는 P2P 프로그램이 페이로드를
암호화하여 전달하기 때문에 페이로드 분석 자체가 안 되는 경우도 있다. 가입자 측면에서도 갑자기 P2P
다운로드 속도가 줄어드는 것을 느끼고 자신이 가입한 통신 사업자가 P2P 트래픽에 대해서 대역폭을
제한시킨다는 것을 알면 다른 통신 사업자로 옮길 것이다.
10Mbps
512Kbps
Jan 1st Feb 1st Mar 1st
비 P2P 트래픽: 최대 10Mbps까지 사용
P2P 트래픽: 512Kbps로 제한
각 가입자의 P2P 트래픽은
네트워크의 부하 상황에
상관없이 (즉, Congestion
상태가 아니어도) 512Kbps만
사용할 수 있다.
그림 2. P2P 트래픽 검출 후 대역 제한 사례
II. 통신 사업자의 대응
P2P 이용자같은 Heavy User의 트래픽을 제어하여 이용자들간에 대역폭을 공정하게 사용하게 해주기 위해
통신 사업자들은 최근에 DPI (Deep Packet Inspection) 장비를 네트워크에 도입하고 있다. DPI로 과다 트래픽
사용자들을 제어하는 방법은 크게 두 가지가 있다. 첫 번째는 Protocol-Specific Traffic Management
방식으로 DPI 장비가 이용자들의 패킷을 L7까지 검사하여 P2P 트래픽을 검출한 후, 각 이용자당 P2P 최대
대역폭을 예를 들어 512Kbps로 대역을 제한 (Rate Limiting/Throttling )하는 방식이다. 넷매니아즈에서 SI를
수행한 러시아 Y사의 경우 이 방식을 적용하였다.
사용량 = 10GB 사용량 < 10GB
Per-User Fair Queueing 기반의 P2P Traffic Management
3
IV. 테스트 환경과 결과
넷매니아즈 사무실에 4 대의 PC를 L2 스위치에 100Mbps로 연결하고 L2 스위치와 상단의 L3 스위치간은 10
Mbps로 설정하였다. L3 스위치와 상단의 라우터 그리고 KT ONT간은 100Mbps로 설정하였다. 이유는 L3
스위치의 다운링크를 Congestion Point로 만들기 위해서이다. PC1에 P2P 프로그램 (uTorrent 2.2.1)을
설치하였고 “일밤.E111.서바이벌 나는 가수다.110522.HDTV.XViD-HANrel.avi” 파일 (1.17 GB)을
다운로드 받았다.
이 때 생성되는 피어의 수는 100개가 넘었는 데 그 중 트래픽을 많이 발생시킨 피어는 약 30명이었으며, 16명이
KT 가입자, 4명이 SKB 가입자, 5명이 LGU+ 가입자, 2명이 HCN 가입자였다.
PC 2-4는 웹서버 https://a248.e.akamai.net에서 파일을 다운로드하였다.
III. Per-User Fair Queueing을 통한 공정성 확보
P2P의 근본적인 문제는 다수의 Peer (최대 1,000)로부터 한 파일의 서로 다른 조각들을 다운로드 하여 다수의
Flow를 발생시킨다는 점이다. 현재의 인터넷은 FIFO 큐잉을 하고 있는 데, FIFO 큐잉하에서는 모든 TCP
Flow는 대역폭을 1/n로 통계적으로 공유한다. 즉 Flow 단위의 공정성을 제공하고 있다. 따라서 다수개의
Flow를 발생시키는 P2P 응용들이 네트워크 대역폭을 과점하는 것이다. 이에 대한 해결책으로 FIFO Queueing도
아니고 Per-Flow Fair Queueing도 아닌 Per-User Fair Queueing을 적용해야 한다. Per-User Fair
Queueing은 Flow 단위가 아닌 이용자 단위(즉, IP address)로 공정성을 제공하기 때문에 한 이용자가 아무리
많은 Flow를 발생시켜도 이용자 단위로 균등한 전송 기회를 주기 때문에 하나의 Flow로 서버에서 파일을
다운로드하는 이용자와 동일한 대역폭을 사용하게 된다. Per-User Fair Queueing의 효과를 검증해보기 위해
아래와 같은 테스트를 수행하였다.
그림 4. Per-User Fair Queueing 테스트 환경
10Mbps
100 Mbps
100 Mbps ONT
FIFO
OLT
KT
PC 1 (P2P)
PC 2 (TCP)
PC 3 (TCP)
PC 4 (TCP)
10 Mbps
100 Mbps
SKB
LGU+
Congestion Point
10Mbps
100 Mbps
100 Mbps ONT
User 1 queue
User 2 queue
User 3 queue
User 4 queue
FQ
OLT
KT
PC 1 (P2P)
PC 2 (TCP)
PC 3 (TCP)
PC 4 (TCP)
10 Mbps
100 Mbps
SKB
LGU+
Congestion Point
L3 스위치
L3 스위치
16 peers
5 peers
6 peers
16 peers
5 peers
6 peers
(a) FIFO Queueing
(b) Per-User Fair Queueing
0
1
2
3
4
5
6
7
8
9
10
1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 101 106 111 116 121 126 131 136 141
[sec]
Bandwidth Usage [Mbps]
PC1 (P2P)
PC2 (TCP)
PC3 (TCP)
PC4 (TCP)
0
1
2
3
4
5
6
7
8
9
10
1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 101 106 111 116 121 126 131 136
[sec]
Bandwidth Usage [Mbps]
PC1 (P2P)
PC2 (TCP)
PC3 (TCP)
PC4 (TCP)
0
1
2
3
4
5
6
7
8
9
10
1 11 21 31 41 51 61 71
[sec]
Bandwidth Usage [Mbps]
PC1 (P2P)
PC2 (TCP)
PC3 (TCP)
PC4 (TCP)
0
1
2
3
4
5
6
7
8
9
10
1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81
[sec]
Bandwidth Usage [Mbps]
PC1 (P2P)
PC2 (TCP)
PC3 (TCP)
PC4 (TCP)
Per-User Fair Queueing 기반의 P2P Traffic Management
4
그림 5. Per-User Fair Queueing 테스트 결과 (P2P 응용이 TCP를 사용하는 경우)
P2P 다운로드: 30+ TCP Flows
파일 다운로드: 1 TCP Flow
파일 다운로드: 1 TCP Flow
파일 다운로드: 1 TCP Flow
P2P 다운로드: 30+ TCP Flows
파일 다운로드: 1 TCP Flow
파일 다운로드: 1 TCP Flow
파일 다운로드: 1 TCP Flow
P2P 다운로드: 30+ TCP Flows
파일 다운로드: 1 TCP Flow
파일 다운로드: 1 TCP Flow
파일 다운로드: 1 TCP Flow
파일 다운로드: 1 TCP Flow
파일 다운로드: 1 TCP Flow
파일 다운로드: 1 TCP Flow
P2P 다운로드: 30+ TCP Flows
1 1/2 1/3 1/4
(a) FIFO Queueing
(b) Per-User Fair Queueing
(c) FIFO Queueing Per-User Fair Queueing FIFO Queueing
(d) Per-User Fair Queueing
FIFO 큐잉 Per-User Fair Queueing FIFO 큐잉
Fair Share =
0
1
2
3
4
5
6
7
8
9
10
1 11 21 31 41 51 61 71 81 91 101
[sec]
Bandwidth Usage [Mbps]
PC1 (P2P)
PC2 (TCP)
PC3 (TCP)
PC4 (TCP)
0
1
2
3
4
5
6
7
8
9
10
1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86
[sec]
Bandwidth Usage [Mbps]
PC1 (P2P)
PC2 (TCP)
PC3 (TCP)
PC4 (TCP)
0
1
2
3
4
5
6
7
8
9
10
1 6 11 16 21 26 31 36
[sec]
Bandwidth Usage [Mbps]
PC1 (P2P)
PC2 (TCP)
PC3 (TCP)
PC4 (TCP)
0
1
2
3
4
5
6
7
8
9
10
1 6 11 16 21 26 31 36
[sec]
Bandwidth Usage [Mbps]
PC1 (P2P)
PC2 (TCP)
PC3 (TCP)
PC4 (TCP)
Per-User Fair Queueing 기반의 P2P Traffic Management
5
그림 6. Per-User Fair Queueing 테스트 결과 (P2P 응용이 UDP를 사용하는 경우)
P2P 다운로드: 30+ UDP Flows
파일 다운로드: 1 TCP Flow
파일 다운로드: 1 TCP Flow
파일 다운로드: 1 TCP Flow
P2P 다운로드: 30+ UDP Flows
파일 다운로드: 1 TCP Flow
파일 다운로드: 1 TCP Flow
파일 다운로드: 1 TCP Flow
P2P 다운로드: 30+ UDP Flows
파일 다운로드: 1 TCP Flow
파일 다운로드: 1 TCP Flow
파일 다운로드: 1 TCP Flow
파일 다운로드: 1 TCP Flow
파일 다운로드: 1 TCP Flow
파일 다운로드: 1 TCP Flow
P2P 다운로드: 30+ UDP Flows
1 1/2 1/3 1/4
(a) FIFO Queueing
(b) Per-User Fair Queueing
(c) FIFO Queueing Per-User Fair Queueing FIFO Queueing
(d) Per-User Fair Queueing
FIFO 큐잉 Per-User Fair Queueing FIFO 큐잉
Fair Share =
6
V. 결언
P2P 응용들은 인터넷이 TCP Flow단위로 대역폭을 공유한다는 점을 이용하여 다수의 TCP Flow를
발생시킴으로써 파일의 다운로드 속도를 대폭 증가시켰다. 이로 인해 P2P가 아닌 일반적인 서버 기반
다운로드나 웹서핑을 하는 다른 가입자들의 인터넷 품질이 저하되고 있으며 최근 많은 통신 사업자들이 DPI
장비를 도입하여 P2P 트래픽에 대한 대역폭을 제한하고 있는 추세이다.
그러나 DPI 방식은
i) 성능 및 비용 이슈
ii) Privacy 이슈
iii) 망 중립성 이슈
iv) P2P 프로그램이 페이로드를 암호화하면 검출이 안 된다는 이슈
v) 네트워크가 Congestion 상태가 아니어도 대역폭 제한을 받는 다는 이슈
vi) P2P를 사용하는 가입자의 항의 및 이탈
등의 많은 문제점들을 가지고 있다.
Per-User Fair Queueing은 가입자 단위로 대역폭 사용의 공정성을 줌으로써
i) Congestion 발생시 가입자간에 공정한 대역폭 공유가 가능하고
ii) Congestion이 발생하지 않은 상태에서는 가입자들이 네트워크 용량을 최대한 사용할 수 있게 해준다
는 측면에서 가장 효율적인 P2P 제어 또는 과다 트래픽 이용자 제어 방법이다.
Per-User Fair Queueing을 하기 위해서는 통신 사업자의 네트워크내에 가입자별 큐잉을 할 수 있는 장비가
있어야 하는 데, 현재 가입자 인증용으로 사용하고 있는 BRAS는 이러한 가입자별 큐잉을 지원한다.
BRAS에서 가입자별 큐잉과 Fair Queueing 스케쥴링을 사용하면 본 고에서 제시하는 Per-User Fair
Queueing을 제공할 수 있다.