HIP 각 상태에 따른 트리거-액션 조합에 대한 정리
시작 상태
전송할 데이터 있음. 새로운 HIP 연결 필요
-> I1 전송, I1-SENT 상태로 전환
I1 수신
-> R1 전송, UNASSOCIATED 상태 유지
I2 수신 및 처리
-> 성공하면, R2 전송하고 R2-SENT 상태로 전환
-> 실패하면, UNASSOCIATED 상태 유지
ANYOTHER 수신
-> UNASSOCIATED 유지
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 유지
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로 전환
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 유지
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 유지
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 상태로 전환
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로 전환
HIP이 피어와의 연결 설정에 실패함