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된다.
'IT 이론 > 네트워크&무선통신' 카테고리의 다른 글
IEEE 802의 주요 표준 규격 (0) | 2016.10.02 |
---|---|
회선 제어 방식(Contention, Polling, Selection) (0) | 2015.10.19 |
[컴퓨터망] TCP에서의 Karn's Algorithm (0) | 2014.06.12 |
[컴퓨터망] 6 ACK Rules (0) | 2014.06.12 |
[컴퓨터망] TCP의 특징 (0) | 2014.06.11 |
댓글