할당 갱신 (Refreshing an Allocation)
Refresh 메소드는 두가지 용도로 사용된다.
- 만료 시간 업데이트
- '할당' 제거
클라이언트는 만료 시간 대략 1분 전에 Refresh를 발생시켜야 한다.
'할당'이 더이상 필요하지 않은 경우 삭제를 하는 것이 좋다.
Refresh는 언제든 수행할 수 있다.
할당 갱신 요청 (Sending a Refresh Request)
Refresh 메시지를 통한 '할당'의 갱신 또는 제거에 대해 아래의 속성을 구성한다.
- 제거
- LIFETIME 속성에 0을 기재하여 요청
- 갱신
- 새로운 만료 시간으로 갱신하려면 LIFETIME 속성에 초 단위 값을 입력
- 기본 만료 시간으로 갱신 시 LIFETIME 속성 생략 (※ 분석자 주 : 추론임. 규격엔 명시되어 있지 않음)
이중 할당(dual allocation, IPv4/IPv6 주소를 둘 다 가진)에 대해 REQUESTED-ADDRESS-FAMILY 속성을 포함하여 family를 명시할 경우 해당 family만 처리할 수 있다.
REQUESTED-ADDRESS-FAMILY를 포함하지 않는 경우에는 모든 family에 대해 처리한다.
할당 갱신 요청 수신 (Receiving a Refresh Request)
서버에서의 처리를 기술함
- REQUESTED-ADDRESS-FAMILY의 값이 현 '할당'에 존재하지 않는 family라면 443 에러 응답해야 함
- 희망 만료 시간(desired lifetime)을 아래와 같이 계산함
- LIFETIME 속성이 있는 경우
- 값이 0일 경우에는 0
- 값이 서버의 기본 만료 시간보다 크고, 최대 허용 만료 시간보다 작으면 LIFETIME 값
- 그 외의 경우에는 모두 기본 만료 시간
- LIFETIME 속성이 있는 경우
- 위에서 계산한 desired lifetime 값에 대해 아래의 처리
- 0일 경우 할당 삭제
- 그 외에는 할당의 만료 시간을 해당 값으로 갱신
- 처리된 desired lifetime 값을 응답 내 LIFETIME 속성에 입력
할당 갱신 응답 수신 (Receiving a Refresh Response)
Refresh 성공 응답에는 LIFETIME 속성이 항상 포함되며, 클라이언트의 요청 LIFETIME까지 서버에서 고려해서 결정한 실제 LIFETIME 값이 실린다.
(※ 분석자 주: 할당 삭제에 대한 성공 응답이 명시되어 있지 않다. 다만, 응답 내 LIFETIME이 0인 경우로 유추해 볼 수 있다.)
에러 응답일 경우에는 아래 코드가 포함될 수 있다.
- 437 (Allocation Mismatch) : 갱신 요청한 '할당'이 더이상 존재하지 않을 때. 삭제 요청일 경우에는 성공으로 판단해도 된다.
- 438 (Stale Nonce) : 인증 관련 문제. nonce 값을 새로 받아서 재시도 해 볼 수 있다.
'Tech Study > Network' 카테고리의 다른 글
RFC 8656 - Traversal Using Relays around NAT (TURN) 기초 분석 7 (0) | 2024.12.07 |
---|---|
RFC 8656 - Traversal Using Relays around NAT (TURN) 기초 분석 6 (0) | 2024.12.07 |
RFC 8656 - Traversal Using Relays around NAT (TURN) 기초 분석 4 (0) | 2024.12.04 |
RFC 8656 - Traversal Using Relays around NAT (TURN) 기초 분석 3 (0) | 2024.11.29 |
RFC 8656 - Traversal Using Relays around NAT (TURN) 기초 분석 2 (0) | 2024.11.28 |