[교안]_e-test_Professionals_Word_2010
IP 네트워크에서 TCP 성능향상을 위한 PLP 알고리즘에 관한 연구 오늘날 대부분의 인터넷 기반 응용 프로그램들에서는 TCP/IP 프로토콜이 사용되어지고 있다. TCP에서 패킷 손 실이 발생하게 되면 TCP는 전송률을 줄이고 손실된 패킷을 재전송하게 된다. 이렇게 재전송된 패킷이 다시 손실 된 경우에는 TCP는 RTO(retransmission time-out)에 의해 Slow-start 상태로 전이 되어 전송률의 급격한 감소를 가져오게 된다. 본 논문에서는 TCP/IP 트래픽의 성능향상을 위해서 라우터 버퍼 관리 알고리즘과 패킷 손실 우선순위 기법을 제안하였다. 제안된 알고리즘은 패킷에 손실 우선순위를 부여하여 전송함으로서 TCP가 불안정한 상태로 전이 하 는 것을 방지하여 전송 완료시간과 네트워크 이용률 그리고 버퍼 상태에서 우수한 성능을 보였다. IP가 비연결지향 프로토콜로서 신뢰성이 보장되지 않 는데 반하여 TCP는 연결지향 프로토콜로서 신뢰성 있 는 데이터 전송을 위해 누적 승인 방식(Cumulative Acknowledgement) 사용, RTO(Retransmission Time-Out)계 산과 재전송(retransmission)을 수행하며, 성능 향상을 위해 흐름 제어(flow control) 그리고 혼잡 제어(congestion control)등의 알고리즘을 사용하고 있다[1]. TCP의 혼잡 제어는 다음의 기본적인 네 개의 알고리 즘인 Slow-start, Congestion Avoidance, Fast Retransmit, 그리고 Fast Recovery로 구성되어 진다[2]. 위와 같은 TCP의 혼잡 제어는 트래픽에 수동적으로 동작하는 방법으로서 혼잡 발생 시점의 라우터 버퍼내의 큐 길이는 이미 최대치에 도달해 있게 된다, 따라서 이 후에 도착하는 패킷은 폐기되므로 일시적으로 링크 사용 률이 떨어지는 전역 동기화(global synchronization)가 발생하게 된다. 이러한 문제를 해결하기 위해서는 라우 터에서 버퍼를 관리하여 혼잡이 발생하기 전에 능동적으 로 대처하는 방안이 필요하다. 이와 같이 라우터의 버퍼 관리를 통한 혼잡 회피를 수행하는 방식으로 주목을 받는 것이 RED(Random Early Detection)이다[3]. 본 논문에서는 인터넷 트래픽, 특히 TCP/IP 트래픽 의 성능향상을 위해 라우터의 버퍼관리알고리즘과 패킷 에 손실우선순위(Packet Loss Priority)를 부여하는 기 법을 제안한다. 제안한 알고리즘은 재전송 패킷의 PLP 를 높여서 망 내에서 재전송 패킷의 손실을 감소시켜, TCP가 부적합한 상태로 진입 하는 것을 방지한다. 시 뮬레이션 결과 데이터 전송완료시간, 네트워크 이용율, RED 버퍼 상태 등에서 기존 알고리즘보다 우수한 성능 을 보였다. 본 논문에서는 2장에서 TCP의 기본구조 및 세그먼트의 전송, 승인정책, 제어 메커니즘과 TCP 모 델 등에 대해 설명하고 3장에서 제안된 알고리즘에 대 해 설명한다. 4장에서는 시뮬레이션에 사용된 환경과 결과를 통해 제안된 알고리즘의 성능을 평가․분석하고 제 5장에서는 본 논문의 결론과 향후 연구되어야 할 내 540 용을 기술한다. TCP는 흐름제어와 재전송을 수행하여 비연결성 지향 인 IP가 가지는 신뢰성 없는 전송을 보완할 수 있어 현 재 인터넷을 통한 데이터 전송에 광범위하게 사용된다. TCP의 흐름제어는 Slow-start와 congestion avoidance의 두 방식을 사용하여 제어하는데 TCP 연결이 설정되면, 흐름제어에 사용되는 두 변수 혼잡 윈도우(CWnd)와 Slow-start 임계치(ssthresh)를 사용한다[4]. 기존 TCP의 흐름제어 과정을 보면 중복 ACK의 발생 없이 정상적인 전송이 이루어진 경우 CWnd가 지수적으 로 상승하게 되고 데이터의 전송률이 급격히 증가한다. 이에 의한 버퍼의 임계값 초과나 과다한 TCP source의 전송, 회선상태 등에 따라 중복 ACK나 Timer out에 의 한 패킷 손실이 감지되면 일련의 TCP의 Congestion control이 동작하게 되고 전반적인 네트워크의 전송률이 급감하게 된다. 그림 1은 이러한 기존 알고리즘의 반복 적인 흐름제어를 보여준다. 행하여 CWnd 의 크기가 1 세그먼트로 줄어들게 되므로 전송률이 급격히 줄어들어 전송시간이 급격히 늘어 날 수 있다. 따라서 네트워크에서 재전송 패킷을 일반패킷 보다 우선순위를 높여 손실률을 최소화 할 경우 TCP의 전송효율 및 네트워크 자원의 효율성을 높일 수 있다. Slow-start시에 낮은 CWnd에서 중복 ACK 패킷을 받게 될 경우 Congestion Avoidance로 전이하므로 낮은 CWnd로 인하여 전송률이 감소하여 이전에 연결된 TCP 연결보다 전송률이 낮아질 수 있다. 따라서 TCP 연결이 Slow-start에 있을 때 일정한 TCP 패킷을 우선순위를 높여 손실률을 최소로 할 경우 낮은 전송률에서 빠져나 올 수 있다. ■ 제안된 알고리즘에서는 재전송 패킷을 전송하기 전에 패킷에 높은 패킷손실우선순위로 설정하여 망 내에서 손 실 없이 전송할 수 있도록 한다. ◎ Three duplicate ACK 가 수신된 경우 set PLP of packet to 1; /* 패킷의 PLP를 높은 우선순위로 설정 */ transmit packet; TCP 연결의 상태가 Slow-start 이고 CWnd가 그림 1 Slow-start와 congestion avoidance 메커니즘 Fig 2. The Slow-start and congestion avoidance mechanism ssthresh / Ns 이하일 때 전송 패킷의 PLP의 우선순위 를 1로 설정하여 전송한다. 여기서 Ns는 정수로 CWnd 를 증가시키기 위한 상수값이다. ◎ Slow-start 상태일 때 패킷을 전송할 경우 if (state == Slow-start) { if (cwnd < = ssthresh /Ns) { set PLP of packet to 1; } TCP 흐름제어 알고리즘은 묵시적인 기법을 사용한다. 즉 TCP 송신측은 동일한 ACK 순번을 가진 패킷을 여 러 개 수신할 경우 패킷이 전송 중에 유실됐다고 가정하 고 손실된 패킷을 재전송한다. 만약 재전송 패킷이 전 송 중에 유실되거나 손상될 경우, TCP 송신측은 수신측 으로부터 재전송된 패킷을 받았다는 ACK 패킷을 받지 못하게 되므로, 재전송 타이머가 만료될 때까지 일정시 간동안 전송을 하지 못하게 된다. 이로 인해 전송시간이 늘어나고 재전송 타이머가 만료될 경우 Slow-start를 수 } else transmit packet normally; 그림 2는 TCP에서 패킷손실우선순위 설정 흐름도 를 보여준다. else set PLP of packet to 0; transmit packet; 541 였다. 라우터의 버퍼 관리 알고리즘은 RED를 사용 하였 다. 또한 망 내에서 제안된 패킷손실우선순위(PLP)를 지 원하기 위하여 RED 버퍼 관리 알고리즘이 변경되었다. 그림 2. 제안된 TCP Packet Loss Priority 알고리즘 순서도 Fig. 2. Flow chart of the proposed TCP Packet Loss Priority 그림 4. 시뮬레이션 네트워크 모델 Fig. 4. The network model for simulation ■ 성능 비교를 위해서 TCP의 세가지 모델인 TCP 제안된 RED 알고리즘은 PLP = 0 패킷을 수용하기 위한 THmin_1, THmax_1 의 두개의 임계치와 PLP =1 인 패킷을 처리하기위한 THmin_2, THmax_2의 임계치 를 가진다. 그림 3은 변형된 RED 알고리즘에서 패킷 처 리 의사코드를 보여준다. Reno, TCP NewReno, TCP SAck에 PLP 알고리즘을 적용하여 성능 평가를 수행하였다. 성능 평가는 재전송 패킷에 PLP를 설정하는 PLP1 알고리즘과 재전송 패킷 의 PLP설정과 Slow-Start 구간의 PLP를 설정하는 PLP2 알고리즘을 적용하여 성능평가를 하였다. 다음 표 는 시뮬레이션 환경의 트래픽 파라미터를 보여준다. 표 1. 시뮬레이션 파라미터 Table 1. Initial simulation parameter. Parameter Switch type RED minimum threshold RED maximum threshold Window Size 그림 3. 변형된 RED 버퍼에서 패킷 폐기 확률 Fig 3. Packet drop probability of the modified RED queue Maximum Segment Size File size ■ 성능비교를 위해 일정 크기의 파일을 완전히 전송하는 ■ 본 논문은 제안된 PLP(Packet Loss Priority) 알고리 즘의 성능을 검증하기 위하여 캘리포니아 버클리 대학에 서 개발된 NS(Network Simulator) 2.26을 사용하였다 [5]. PLP 알고리즘을 지원하기 위하여 C++로 작성된 TCP, TCP Reno, TCP NewReno, TCP SAck를 수정하 데 소요되는 전송완료시간과 모든 FTP 소스가 파일의 전송을 완료한 평균 전송시간을 측정하였다. 그림 5-7까 지는 각각 TCP Reno, NewReno, SAck에서 파일 전송 시간을 보여준다. Value RED Adaptive Adaptive 65,535 bytes 1040 bytes Variable 542 평균 전송완료시간은 TCP Reno, NewReno, Sack에서 TCP Reno 10 20 30 40 50 60 70 80 0 100k 200k 300k 400k 500k 600k 700k File Size (Kbyte) 그림 5. TCP Reno에서 파일크기 변화에 따른 전송 시간 Fig 5. Transfer time by variable file size at TCP Reno TCP NewReno 10 20 30 40 50 60 70 80 0 100k 200k 300k 400k File Size (Kbyte) 그림 6. TCP NewReno에서 파일크기 변화에 따른 전송 시간 Fig 6. Transfer time by variable file size at TCP NewReno TCP Sack 10 20 30 40 50 60 70 80 0 100k 200k 300k 400k File Size (Kbyte) [5] NS-2, 그림 7. TCP SACK에서 파일크기 변화에 따른 전송 시간 Fig 7. Transfer time by variable file size at TCP SAck Network isi.edu/nsnam/ns/ Simulator 2, http://www.500k 600k 700k [1] V. Average Transfer Time (TCP-Sack) Average Transfer Time (TCP-Sack with PLP1) Average Transfer Time (TCP-Sack with PLP2) Transfer Complete Time(TCP-Sack) Transfer Complete Time(TCP-Sack with PLP1) Transfer Complete Time(TCP-Sack with PLP2) Jacobson, TCP Extensions Performance, RFC 1323, May. 1992. [2] W. Stevens, TCP Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms, RFC 2001, 1997. [3] S. Floyd, and V. Jacobson, “Random Early Detection gateways for Congestion Avoidance,” IEEE/ACM Transactions on Networking, Aug. 1993. [4] D. Clark, Window and acknowledgement strategy in TCP, Internet RFC 813, July. 1982. for High 500k 600k 700k 본 논문에서는 TCP의 혼잡처리 상황에서 네트워크에 Average Transfer Time (TCP-NewReno) Average Transfer Time (TCP-NewReno with PLP1) Average Transfer Time (TCP-NewReno with PLP2) Transfer Complete Time(TCP-NewReno) Transfer Complete Time(TCP-NewReno with PLP1) Transfer Complete Time(TCP-NewReno with PLP2) 서 재전송 패킷을 일반패킷보다 우선순위를 높여 손실률 을 최소화 한다. 또한 Slow-Start 상태일 때 일정한 패 킷의 우선순위를 높여 손실률을 최소화하는 방법인 PLP(Packet Loss Priority)를 사용함으로서 기존의 알고 리즘에서 재전송 패킷으로 인한 전역 동기화(Global Synchronization)와 낮은 전송률에서 빠져나오게 된다. 제안된 알고리즘을 TCP Reno, TCP NewReno, TCP SACK에 적용하여 다양한 시뮬레이션을 통해 성능을 평 가한 결과 전체 네트워크 이용률 및 데이터 전송완료시 간에서 제안된 알고리즘이 전반적으로 우수한 성능을 보 였다. 시뮬레이션 분석 결과, 제안된 알고리즘이 패킷을 상대적 중요성에 따라 차등적으로 처리함으로써 TCP 트래픽을 획기적으로 제어 하였으며 기존 TCP/IP망에서 성능저하 요인 중 하나인 Global Synchronization 의 영향을 줄임으로서 네트워크 효율을 향상시킬 수 있었 다. Average Transfer Time (TCP-Reno) Average Transfer Time (TCP-Reno with PLP1) Average Transfer Time (TCP-Reno with PLP2) Transfer Complete Time(TCP-Reno) Transfer Complete Time(TCP-Reno with PLP1) Transfer Complete Time(TCP-Reno with PLP2) 기존의 알고리즘과 PLP를 적용한 알고리즘이 비슷한 성 능을 보인다. 반면 모든 FTP가 전송을 완료하는데 걸리 는 전송완료시간은 PLP2를 적용했을 때 가장 빠름을 보 여준다. 제안된 알고리즘은 재 전송 패킷에 높은 우선순 위를 제공하여 기존 TCP 알고리즘에서 발생하는 재전송 패킷의 손실에 따른 RTO 발생을 억제하여 TCP 연결의 전송 효율을 높이는 효과가 있었다. 또한 패킷의 우선순 위를 적용하여 TCP가 Slow-start상태에서 빠른 복구가 이루어져 기존 TCP 알고리즘보다 전송시간 및 네트워크 효율에서 우수한 성능을 보였다. 543 time (sec) time (sec) time (sec)