Host A (with data to send immediately) Host B ------ ------ MP_CAPABLE -> [flags] <- MP_CAPABLE [B's key, flags] ACK + MP_CAPABLE + data -> [A's key, B's key, flags, data-level details] Host A (with data to send later) Host B ------ ------ MP_CAPABLE -> [flags] <- MP_CAPABLE [B's key, flags] ACK + MP_CAPABLE -> [A's key, B's key, flags] ACK + MP_CAPABLE + data -> [A's key, B's key, flags, data-level details] Host A Host B (sending first) ------ ------ MP_CAPABLE -> [flags] <- MP_CAPABLE [B's key, flags] ACK + MP_CAPABLE -> [A's key, B's key, flags] <- ACK + DSS + data [data-level details]