6 HIP 개요5 HIP 상태 프로세스

junpkim·2024년 5월 9일
0

Host Identity Protocol

목록 보기
7/11

HIP 각 상태에 따른 트리거-액션 조합에 대한 정리

UNASSOCIATED

시작 상태

  • 전송할 데이터 있음. 새로운 HIP 연결 필요
    -> I1 전송, I1-SENT 상태로 전환

  • I1 수신
    -> R1 전송, UNASSOCIATED 상태 유지

  • I2 수신 및 처리
    -> 성공하면, R2 전송하고 R2-SENT 상태로 전환
    -> 실패하면, UNASSOCIATED 상태 유지

  • ANYOTHER 수신
    -> UNASSOCIATED 유지

I1-SENT

HIP BEX 개시

  • 응답자로부터 I1 수신
    -> 로컬 HIT가 상대방 HIT보다 작은 경우, I1을 삭제하고 I1-SENT 상태 유지
    -> 로컬 HIT가 상대방 HIT보다 큰 경우, R1을 전송하고 I1-SENT 상태 유지

  • I2 수신 및 처리
    -> 성공하면, R2를 전송하고 R2-SENT로 전환
    -> 실패하면, I1-SENT 상태 유지

  • R1 수신 및 처리
    -> 개시자 HIT가 선택한 HIT Suite가 응답자에서 지원되지 않으면, 지원되는 로컬 HIT를 선택하여 I1을 전송하고 I1-SENT 상태 유지
    -> 성공하면, I2 전송 후 I2-SENT로 전환
    -> 실패하면, I1-SENT 유지

  • ANYOTHER 수신
    -> 패킷을 버리고 I1-SENT 유지

  • TIMEOUT
    -> 카운트 증가
    -> 카운터가 I1_RETRIES_MAX보다 작은 경우 I1 전송 및 I1-SENT 유지
    -> 카운터가 I1_RETRIES_MAX보다 큰 경우 I1 전송 및 I1-SENT 유지

I2-SENT

HIP BEX 완료 대기중

  • I1 수신
    -> R1을 전송하고 I2-SENT 유지

  • R1 수신 및 처리
    -> 성공하면, I2 전송하고 I2-SENT 유지
    -> 실패하면, I2-SENT 유지

  • I2 수신 및 처리
    -> 성공하고 로컬 HIT이 상대 HIT보다 작은 경우, I2를 버리고 I2-SENT 유지
    -> 성공하고 로컬 HIT이 상대 HIT보다 큰 경우, R2를 전송하고 R2-SENT로 전환
    -> 실패하면, I2-SENT 유지

  • CLOSE 수신 및 처리
    -> 성공하면, CLOSE_ACK 전송하고 CLOSED로 전환
    -> 실패하면, I2-SENT 유지

  • ANYOTHER 수신
    -> 패킷을 버리고 I2-SENT 유지

  • TIMEOUT
    -> 카운트 증가
    -> 카운터가 I2_RETRIES_MAX보다 작은 경우 I2 전송 및 I2-SENT 유지
    -> 카운터가 I2_RETRIES_MAX보다 큰 경우 E-FAILED로 전환

R2-SENT

HIP 완료 대기중

  • I1 수신
    -> R1을 보내고 R2-SENT 유지

  • I2 수신 및 처리
    -> 성공하면, R2를 보내고 R2-SENT 유지
    -> 실패하면, R2-SENT 유지

  • R1 수신
    -> 패킷을 버리고 R2-SENT 유지

  • R2 수신
    -> 패킷을 버리고 R2-SENT 유지

  • data나 UPDATE 수신
    -> ESTABLISHED로 전환

  • Exchange Complete Timeout
    -> ESTABLISHED로 전환

  • CLOSE 수신 및 처리
    -> 성공하면, CLOSE_ACK 전송 및 CLOSED로 전환
    -> 실패하면, ESTABLISHED로 전환

  • CLOSE_ACK 수신
    -> 패킷을 버리고 R2-SENT 유지

  • NOTIFY 수신
    -> 처리 후 R2-SENT 유지

ESTABLISHED

HIP 연결됨

  • I1 수신
    -> R1을 보내고 ESTABLISHED 유지

  • I2 수신
    -> 퍼즐 진행 및 불투명 데이터(Opaque Data) 검증
    -> 성공하면, R2를 보내고 이전 HIP 연결을 제거하며, 새로운 HIP 연결 확립한 후 R2-SENT로 전환
    -> ESTABLISHED 유지

  • R1 수신
    -> 패킷을 버리고 ESTABLISHED 유지

  • R2 수신
    -> 패킷을 버리고 ESTABLISHED 유지

  • 사용자 데이터 패킷 수신
    -> 해당 HIP 연결에 속하는 사용자 데이터 패킷을 처리하고 ESTABLISHED 유지

  • UAL(Unused Association Lifetime) 동안 패킷 전송 및 수신 없음
    -> CLOSE 패킷을 전송하고 CLOSING로 전환

  • UPDATE 수신
    -> 수신된 UPDATE 패킷을 처리하고 ESTABLISHED 유지

  • CLOSE 수신 및 처리
    -> 성공하면, CLOSE_ACK 전송 및 CLOSED로 전환
    -> 실패하면, ESTABLISHED 유지

  • CLOSE_ACK 수신
    -> 패킷을 버리고 ESTABLISHED 유지

  • NOTIFY 수신
    -> 패킷 처리 및 ESTABLISHED 유지

CLOSING

HIP 연결이 UAL(Unused Association Lifetime) 동안 사용되지 않음

  • 전송할 사용자 데이터가 있고, 새로운 HIP 연결이 필요한 경우
    -> I1을 보내고 I1-SENT로 전환

  • I1 수신
    -> R1을 보내고 CLOSING 유지

  • I2 수신 및 처리
    -> 성공하면, R2 전송하고 R2-SENT로 전환
    -> 실패하면, CLOSING 유지

  • R1 수신 및 처리
    -> 성공하면, I2 전송하고 I2-SENT로 전환
    -> 실패하면, CLOSING 유지

  • CLOSE 수신 및 처리
    -> 성공하면, CLOSE_ACK을 전송하고 상태를 삭제한 후 CLOSED 상태로 전환
    -> 실패하면, CLOSING 유지

  • CLOSE_ACK 수신 및 처리
    -> 성공하면, 상태를 삭제하고 UNASSOCIATED 상태로 전환
    -> 실패하면, CLOSING 상태 유지

  • ANYOTHER 수신
    -> 패킷을 무시하고 CLOSING 상태 유지

  • TIMEOUT
    -> 타임아웃 합계를 증가시키고 타이머를 재설정.
    -> 타임아웃 합계가 UAL + MSL보다 작으면, CLOSE 패킷을 전송하고 CLOSING 유지
    -> 타임아웃 합계가 UAL + MSL보다 크면 UNASSOCIATED 상태로 전환

CLOSED

CLOSE_ACK 전송함. 만약 필요하다면 CLOSE_ACK 재전송

  • 전송할 데이터그램이 있고, 새로운 HIP 연결이 필요한 경우
    -> I1을 보내고 CLOSED 유지

  • I1 수신
    -> R1을 보내고 CLOSED 유지

  • I2 수신 및 처리
    -> 성공하면, R2를 보내고 R2-SENT로 전환
    -> 실패하면, CLOSED 유지

  • R1 수신 및 처리
    -> 성공하면, I2를 보내고 I2-SENT로 전환
    -> 실패하면, CLOSED 유지

  • CLOSE 수신 및 처리
    -> 성공하면, CLOSE_ACK를 보내고 CLOSED 유지
    -> 실패하면, CLOSED 유지

  • CLOSE_ACK 수신 및 처리
    -> 성공하면, 상태를 삭제하고 UNASSOCIATED로 전환
    -> 실패하면, CLOSED 유지

  • ANYOTHER 수신
    -> 패킷을 버리고 CLOSED 유지

  • TIMEOUT (UAL + 2MSL)
    -> 상태를 삭제하고 UNASSOCIATED로 전환

E-FAILED

HIP이 피어와의 연결 설정에 실패함

  • 구현에 따라 달라지는 특정 시간이 경과함
    -> UNASSOCIATED로 전환
    -> 이 상태에서 재협상이 가능하므로, 필요한 경우 연결을 다시 시도할 수 있음.

다이어그램

0개의 댓글