BIC TCP

BIC TCP

BIC TCP(Binary Increment Blooming Control)는 TCP(Transmission Control Protocol)에 사용할 수 있는 정체 제어 알고리즘 중 하나이다. BIC는 대기 시간이 긴 고속 네트워크 즉, 소위 "긴 지방 네트워크"에 최적화되어 있다. 이러한 네트워크의 경우, BIC는 심하게 활용되지 않은 대역폭을 교정하는 데 있어서 이전의 정체 제어 방식보다 상당한 이점을 가지고 있다.[1]

BIC는 고유한 정체 창(cwnd) 알고리즘을 구현한다. 이 알고리즘은 바이너리 검색 증가, 가법 증가, 저속 시작의 세 부분으로 검색하여 최대 cwnd를 찾으려고 한다. 네트워크 장애가 발생했을 때 BIC는 cwnd를 수정하는 데 승수 감소를 사용한다.[2]

BIC TCP는 Linux 커널 2.6.8 이상에서 기본적으로 구현되고 사용된다. 기본 구현은 2.6.19 버전에서 다시 큐빅 TCP로 변경되었다.

알고리즘.

다음 변수를 정의하십시오.

 Smax: 최대 증분min S: 최소 증분 wmax: 최대 윈도우 크기 β: 곱셈 윈도우 감소 계수 cwnd: 정체 윈도우 크기 bic_inc: RTT당 윈도우 증분(원형 트립 시간) 

RTT 간격 업데이트 시마다 다음을 참조하십시오.

패킷이 삭제되지 않으면 정체 창(cwnd)은 바이너리 검색 증가, 가법 증가, 저속 시작의 세 가지 뚜렷한 방법으로 증가한다. 각 단계에서 1개는 증분으로 사용된다.

cwnd 증가의 한 단계:

 if (cwnd < wmax)          // binary search OR additive    bic_inc = (wmax - cwnd) / 2;  else                     // slow start OR additive    bic_inc = cwnd - wmax;  if (bic_inc > Smax)      // additive    bic_inc = Smax;  else if (bic_inc < Smin) // binary search OR slow start    bic_inc = Smin;  cwnd = cwnd + (bic_inc / cwnd); 

하나 이상의 패킷이 삭제되면 승수 감소를 사용하여 cwnd가 감소한다. 이를 위해서는 β가 필요하며, β는 (100×β)% 감소에 사용된다. 두 흐름의 경우 하나는 큰 cwnd이고 다른 하나는 작은 cwnd의 흐름보다 큰 cwnd 흐름을 감소시켜max cwnd를 증가시킬 때 큰 cwnd 흐름의 빠른 수렴을 가능하게 하기 위해 빠른 융합을 사용한다.

한 단계 감소하는 cwnd:

 (cwnd < wmax) // 빠른max 수렴 w = cwnd * (2-β) / 2; 기타 wmax = cwnd; cwnd = cwnd * (1-β); 

참고 항목

참조

  1. ^ "BIC FAQ". www4.ncsu.edu. Retrieved December 25, 2018.
  2. ^ "Binary increase congestion control (BIC) for fast long-distance networks - IEEE Conference Publication". doi:10.1109/INFCOM.2004.1354672. S2CID 11750446. Cite 저널은 필요로 한다. journal= (도움말)

외부 링크

  • [1] 홈 페이지.