Initiator NAT1 NAT2 Responder | | 1. UDP(UPDATE(SEQ, CAND_PRIO, | | | | ECHO_REQ_SIGN)) | | | X<-----------------------------------+----------------+ | | | | | 2. UDP(UPDATE(SEQ, ECHO_REQ_SIGN, CAND_PRIO)) | | +-------------+------------------------------------+--------------->| | | | | | 3. UDP(UPDATE(ACK, ECHO_RESP_SIGN, MAPPED_ADDR)) | | |<------------+------------------------------------+----------------+ | | | | | 4. UDP(UPDATE(SEQ, ECHO_REQ_SIGN, CAND_PRIO)) | | |<------------+------------------------------------+----------------+ | | | | | 5. UDP(UPDATE(ACK, ECHO_RESP_SIGN, MAPPED_ADDR)) | | +-------------+------------------------------------+--------------->| | | | | | 6. Other connectivity checks using UPDATE over UDP | |<------------+------------------------------------+----------------> | | | | | 7. UDP(UPDATE(SEQ, ECHO_REQ_SIGN, CAND_PRIO, NOMINATE)) | +-------------+------------------------------------+--------------->| | | | | | 8. UDP(UPDATE(SEQ, ACK, ECHO_REQ_SIGN, ECHO_RESP_SIGN, | | NOMINATE)) | | |<------------+------------------------------------+----------------+ | | | | | 9. UDP(UPDATE(ACK, ECHO_RESP_SIGN)) | | +-------------+------------------------------------+--------------->+ | | | | | 10. ESP data traffic over UDP | | +<------------+------------------------------------+--------------->+ | | | |