{"action":"created","issue":{"url":"https://api.github.com/repos/quicwg/base-drafts/issues/1451","repository_url":"https://api.github.com/repos/quicwg/base-drafts","labels_url":"https://api.github.com/repos/quicwg/base-drafts/issues/1451/labels{/name}","comments_url":"https://api.github.com/repos/quicwg/base-drafts/issues/1451/comments","events_url":"https://api.github.com/repos/quicwg/base-drafts/issues/1451/events","html_url":"https://github.com/quicwg/base-drafts/issues/1451","id":332829542,"node_id":"MDU6SXNzdWUzMzI4Mjk1NDI=","number":1451,"title":"Looping with multiple Retry packets","user":{"login":"martinthomson","id":67641,"node_id":"MDQ6VXNlcjY3NjQx","avatar_url":"https://avatars1.githubusercontent.com/u/67641?v=4","gravatar_id":"","url":"https://api.github.com/users/martinthomson","html_url":"https://github.com/martinthomson","followers_url":"https://api.github.com/users/martinthomson/followers","following_url":"https://api.github.com/users/martinthomson/following{/other_user}","gists_url":"https://api.github.com/users/martinthomson/gists{/gist_id}","starred_url":"https://api.github.com/users/martinthomson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martinthomson/subscriptions","organizations_url":"https://api.github.com/users/martinthomson/orgs","repos_url":"https://api.github.com/users/martinthomson/repos","events_url":"https://api.github.com/users/martinthomson/events{/privacy}","received_events_url":"https://api.github.com/users/martinthomson/received_events","type":"User","site_admin":false},"labels":[{"id":481871399,"node_id":"MDU6TGFiZWw0ODE4NzEzOTk=","url":"https://api.github.com/repos/quicwg/base-drafts/labels/-transport","name":"-transport","color":"fbca04","default":false},{"id":481871361,"node_id":"MDU6TGFiZWw0ODE4NzEzNjE=","url":"https://api.github.com/repos/quicwg/base-drafts/labels/design","name":"design","color":"1d76db","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-06-15T15:58:55Z","updated_at":"2018-06-15T16:16:19Z","closed_at":null,"author_association":"MEMBER","body":"Allowing multiple Retry packets creates a potential for regression of the address validation tokens.\r\n\r\nSay that a client retransmits its first Initial packet without a token.  The server responds to both with the same token.  The second of these packets is delayed.\r\n\r\nThe client receives the first, sends another Initial packet and receives a second token in response.\r\n\r\nThen the Retry that the server sent in response to the retransmission of the first Initial is received.  The client switches to that token as though it were new, but it's back to the first token.\r\n\r\nIf the server relies on multiple Retry packets and the progressive validation of the address using those tokens, then this will revert any progress that was made.  Because Retry can't be sent indefinitely (it has this arbitrary limit of 3 changes), this might cause that connection to fail."},"comment":{"url":"https://api.github.com/repos/quicwg/base-drafts/issues/comments/397671032","html_url":"https://github.com/quicwg/base-drafts/issues/1451#issuecomment-397671032","issue_url":"https://api.github.com/repos/quicwg/base-drafts/issues/1451","id":397671032,"node_id":"MDEyOklzc3VlQ29tbWVudDM5NzY3MTAzMg==","user":{"login":"mikkelfj","id":193335,"node_id":"MDQ6VXNlcjE5MzMzNQ==","avatar_url":"https://avatars2.githubusercontent.com/u/193335?v=4","gravatar_id":"","url":"https://api.github.com/users/mikkelfj","html_url":"https://github.com/mikkelfj","followers_url":"https://api.github.com/users/mikkelfj/followers","following_url":"https://api.github.com/users/mikkelfj/following{/other_user}","gists_url":"https://api.github.com/users/mikkelfj/gists{/gist_id}","starred_url":"https://api.github.com/users/mikkelfj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikkelfj/subscriptions","organizations_url":"https://api.github.com/users/mikkelfj/orgs","repos_url":"https://api.github.com/users/mikkelfj/repos","events_url":"https://api.github.com/users/mikkelfj/events{/privacy}","received_events_url":"https://api.github.com/users/mikkelfj/received_events","type":"User","site_admin":false},"created_at":"2018-06-15T16:16:19Z","updated_at":"2018-06-15T16:16:19Z","author_association":"NONE","body":"A client should know the initial CID used whether it is retry or not. If an old retry lands, its destinition CID would not match the ongoing session.\r\n\r\nClient could choose to opt for the originally based on an informed decision - which could be if a handshake, rather than a retry is received. But otherwise I don't see how the client can get confused (except if extremely unfortunate to get a random collision).\r\n\r\nIf the client does multiple retry sequences using a received CID, then there is a potential conflict, but I don't think multiple retries is a good idea, nor necessary."}}
{"actor":{"display_login":"mikkelfj"}}