목차
Ⅰ. TCP란
Ⅱ. 혼잡제어 및 회피 알고리즘
ⅰ. Slow Start
ⅱ. Congestion Avoidance
ⅲ. Fast Retransmit
ⅳ. Fast Recovery
Ⅲ. TCP 버전별 혼잡제어의 차이점
ⅰ. Tahoe TCP
ⅱ. Reno TCP
ⅲ. Newreno TCP
ⅳ. SACK TCP (Selective Acknowledgment)
ⅴ. Vegas TCP
Ⅱ. 혼잡제어 및 회피 알고리즘
ⅰ. Slow Start
ⅱ. Congestion Avoidance
ⅲ. Fast Retransmit
ⅳ. Fast Recovery
Ⅲ. TCP 버전별 혼잡제어의 차이점
ⅰ. Tahoe TCP
ⅱ. Reno TCP
ⅲ. Newreno TCP
ⅳ. SACK TCP (Selective Acknowledgment)
ⅴ. Vegas TCP
본문내용
지연 시간 동안에 단지 하나의 손실된 세그먼트만을 보낼 수 있기 때문에 한 번 이상의 재전송 만기 시간만큼을 기다려야 한다는 단점이 있다. 또한 Tahoe TCP는 신속한 재전송을 하지만 여러 개의 비연속적인 세그먼트 손실이 일어났을 때에는 수신 측에서 이미 받아서 저장하고 있는 세그먼트들을 불필요하게 재전송 하는 단점이 있다. 이러한 단점을 보완하기 위해 SACK TCP에서는 수신측 버퍼에 저장하고 있는 비연속적인 데이터들의 세그먼트 번호를 실어 송신 측에 응답한다.
송신 측에서는 선택적인 응답을 받았을 때 수신 측에서 받지 못한 손실된 패킷들만을 선별적으로 재전송 함으로써 망의 대역폭을 절약하고, 망 트래픽을 감소시키는 효과를 얻는다. 또한 여러 개의 세그먼트 손실 시에 발생하는 Reno TCP의 단점인 재전송 종료 시간만큼의 지연도 방지할 수 있다. 이러한 전송 과정은 그림과 같은 순서를 거치며 발생된 오류를 복구한다.
[그림] 선택적 ARQ
ⅴ. Vegas TCP
Slow Start기법에 있어서 지수적 증가로 인하여 과다한 패킷 전송이 이어질 수 있으므로 그 증가량의 조절이 필요하다. 이와 병행하여 Timer Granularity의 정적인 설정이 문제가 되므로 Slow Start상에서 데이터 전송에 대한 응답이 즉시 없을 때에는 즉시 재전송이 이루어져야 한다.
이러한 문제점을 해결하기 위한 방법으로 혼잡 상황을 사전에 예측해서 대처하는 것이 필요하게 되었고 Jin에 의해 제안된 NDG(Normalized Delay Gradient) 혹은 Wang 와 Croecroft에 의해서 제안된 NTG( Normalized Throught Gradient)가 있다.
Vegas는 전송로 상의 이동 패킷을 최적상태로 유지하기 위해 라우터에 저장되는 패킷 수를 최소로 하기 위한 방법으로 지금까지 제안된 것 중에서 가장 우수한 성능을 나타내고 있다. 특히 이 매커니즘에서 혼잡을 미리 예측하여 혼잡을 줄이는 기법은 동일한 윈도우 상에서 다중 패킷 손실의 문제를 부분적으로 해결하한다.
Vegas TCP의 기본 알고리즘은 Reno의 Slow Start, Fast Retransmit, Congestion Avoidance등의 알고리즘을 수정한 것으로 라우터에 저장되는 데이터양이 증가하게 되면 네트워크의 혼잡 원인이 되므로 Vegas 의 혼잡회피 알고리즘은 전송로의 실제 패킷의 측정값과 전송률 기대치를 계산에 의하여 전송률 차이 값에 의존하여 버퍼의 크기를 조절하고 변화를 주기 때문에 라우터에 저장되는 패킷수가 일정하게 유지된다.
임계치
전송률과의 관계
버퍼의 상태 변화
α = 2
D < α
버퍼 크기 증가 상태
α = 1
α < D <β
버퍼 크기 증가 상태
α = 0
D > β
버퍼 크기 증가 상태
[그림] 버퍼의 상태 변화
그림은 메시지 전송률에 의한 버퍼의 변화를 보여주고 있으며 여기에서 α와 β는 네트워크 상의 임계치로 α < β의 조건을 만족해야 하며 여분의 데이터를 제어하는 α=1, β=3 인 상수가 되어 버퍼의 크기를 제어하게 된다.
송신 측에서는 선택적인 응답을 받았을 때 수신 측에서 받지 못한 손실된 패킷들만을 선별적으로 재전송 함으로써 망의 대역폭을 절약하고, 망 트래픽을 감소시키는 효과를 얻는다. 또한 여러 개의 세그먼트 손실 시에 발생하는 Reno TCP의 단점인 재전송 종료 시간만큼의 지연도 방지할 수 있다. 이러한 전송 과정은 그림과 같은 순서를 거치며 발생된 오류를 복구한다.
[그림] 선택적 ARQ
ⅴ. Vegas TCP
Slow Start기법에 있어서 지수적 증가로 인하여 과다한 패킷 전송이 이어질 수 있으므로 그 증가량의 조절이 필요하다. 이와 병행하여 Timer Granularity의 정적인 설정이 문제가 되므로 Slow Start상에서 데이터 전송에 대한 응답이 즉시 없을 때에는 즉시 재전송이 이루어져야 한다.
이러한 문제점을 해결하기 위한 방법으로 혼잡 상황을 사전에 예측해서 대처하는 것이 필요하게 되었고 Jin에 의해 제안된 NDG(Normalized Delay Gradient) 혹은 Wang 와 Croecroft에 의해서 제안된 NTG( Normalized Throught Gradient)가 있다.
Vegas는 전송로 상의 이동 패킷을 최적상태로 유지하기 위해 라우터에 저장되는 패킷 수를 최소로 하기 위한 방법으로 지금까지 제안된 것 중에서 가장 우수한 성능을 나타내고 있다. 특히 이 매커니즘에서 혼잡을 미리 예측하여 혼잡을 줄이는 기법은 동일한 윈도우 상에서 다중 패킷 손실의 문제를 부분적으로 해결하한다.
Vegas TCP의 기본 알고리즘은 Reno의 Slow Start, Fast Retransmit, Congestion Avoidance등의 알고리즘을 수정한 것으로 라우터에 저장되는 데이터양이 증가하게 되면 네트워크의 혼잡 원인이 되므로 Vegas 의 혼잡회피 알고리즘은 전송로의 실제 패킷의 측정값과 전송률 기대치를 계산에 의하여 전송률 차이 값에 의존하여 버퍼의 크기를 조절하고 변화를 주기 때문에 라우터에 저장되는 패킷수가 일정하게 유지된다.
임계치
전송률과의 관계
버퍼의 상태 변화
α = 2
D < α
버퍼 크기 증가 상태
α = 1
α < D <β
버퍼 크기 증가 상태
α = 0
D > β
버퍼 크기 증가 상태
[그림] 버퍼의 상태 변화
그림은 메시지 전송률에 의한 버퍼의 변화를 보여주고 있으며 여기에서 α와 β는 네트워크 상의 임계치로 α < β의 조건을 만족해야 하며 여분의 데이터를 제어하는 α=1, β=3 인 상수가 되어 버퍼의 크기를 제어하게 된다.
소개글