ICS03/04: Questions about handshake
michwqy opened this issue · comments
As ICS03
Once opened, connections cannot be closed and identifiers cannot be reallocated (this prevents packet replay or authorisation confusion).
But the identifier and connection data structure are allocated in function connOpenInit
and connOpenTry
. What will happen if the two connection don't complete the handshake successfully for some reason. Do the identifier and data structure will be reallocated or deleted? Or the two connections must eventually complete the handshake?
And the same question for channel handshake in ICS04.
If connOpenInit
succeeds but the chain never executes connOpenAck
then the connection identifier that was generated in connOpenInit
will not be reused for any other connection. Same thing for connOpenTry
if the chain never executes connOpenConfirm
. And similar thing happens for channels.
Thanks.