프로그래밍[Univ]/네트워크

[네트워크] TCP & UDP part 2

Cloud Travel 2012. 3. 28. 20:16

* 흐름제어

 - 받는 곳의 Buffer가 제한되있기 때문에 Sender에서 지속적으로 값을 보내면 Buffer의 손실이 있을 수 있다.

  ex) Buffer frame의 크기가 8이라고 한다면, Sender측도 최대 8개의 frame만 보낼 수 있다.  만일 9개의 frame을                                                            보낸다면 1의 손실을 갔는다고 할 수 있고, Receiver의 Buffer가 차있었다면 더많은 손실을 가져온다.

 - Receiver가 Buffer의 정보를 보내지 않는다면...

   

 - 이러한 문제를 해결하기 위해서 Ack와 함께 Buffer상태를 알려주는 COT를 보내준다.

 - COT는 TCP header의 Window Length에 표시된다.

 ex) 위의 예에 COT를 적용하면...

    


* 체증 제어(Congestion Control)

 

 - 원인 : Traffic 량이 커서... // 해결법 : Input량을 줄인다.

 - TCP congestion control

  > Congestion Detection(체증 발견)

   : TCP는 Internet외부에 존재하기 때문에 체증을 찾기에 비적합하다.

   : Time Out을 이용하여 체증을 발견한다.

     (Time Out의 이유 : ⓐ Error 발생(현재는 거의 Error발생이 없다.)  ⓑ 체증)

 - TCP congestion Control

  : Slow Start

   > 처음에는 하나의 페킷을 보내고 돌아오는 Ack값의 수를 더하여 더 많이 보낸다.(Buffer의 최대치까지)

    


 - TCP congestion Avoidance

  : 전송중에 Time out이 발생하면 다시 처음부터 slow start를 시작해준다.

  : Time out이 걸린 것의 다음부터 다시 slow start를 하면 Time Out이 걸린 traffic의 반까지 이전 규칙을 따르다가

    1씩 증가시킨다.

    ex) 1 > 2 > 4 > 8 > 16(Time out) > 1 > 2 > 4 > 8 > 9 > 10 > ...