본문 바로가기
IT 이론/네트워크&무선통신

TCP 타이머

by 지식id 2014. 6. 12.
반응형

TCP에는 4가지 타이머가 있다.

 Retransmission : 재전송 타이머로 segment 1개당 하나가 할당된다.

 Persistence : 나머지 3개는 모두 연결당 1개가 할당된다.

 Keepalive

 Time-waited


1. Persistence timer 

 상대방 TCP로 부터 rwnd = 0 을 통보 받을 경우 더이상 데이터를 보낼 수 없게 된다. 상대방 TCP에서 흐름재개를 위해 rwnd > 0 을 통보하는 ACK를 다시 보냈으나 그 ACK가 소실 될 수도 있다. 이렇게 되면 두 TCP가 서로 상대방을 무한정 기다리는 deadlock 상태가 되게 된다. 이런 교착상태를 타개하기 위한 타이머가 Pertistence timer이다.


 (1) 상대방 TCP에서 rwnd = 0을 보낼 경우 persistence timer가 구동된다. 이 때의 초기 값은 RTO이다. 

 (2) persistence timer가 종료될 경우 probe segment를 보낸다. 이 세그먼트는 ACK의 재전송만을 요구하는 특별한 세그먼트이다.

 (3) probe segment를 보낸 후에는 persistence timer를 재가동한다.

 (4) 타이머 종료시까지 ACK을 받지 못하면 probe segment를 한번 더 보내고 persistence timer를 재가동 하는데 이때의 값는 2RTO이다.

 (5) ACK를 받을 때 까지 3RTO, 4RTO로 점점 timer값을 늘린다. 임계치는 60초이다. RTO의 배수가 60초를 넘길 경우 60초로 고정시킨다.


2. Keepalive Timer

 서버 TCP에서 관리하는 타이머로서 클라이언트 TCP가 다운되어 두 TCP간에 설정된 연결이 오랫동안 idel상태에 있는 것을 방지하기 위한 타이머이다. 2시간동안 클라이언트 TCP로부터 세그먼트를 수신하지 못하면 서버는 75초 간격으로 probe를 10개 까지 전송하고 계속 응답이 없을 경우에 연결을 종료한다. 만약 그 전에 연결이 될 경우 타이머는 reset된다.

반응형

댓글