Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BEP 29: packets with unrecognized IDs #83

Open
povilasb opened this Issue May 4, 2018 · 4 comments

Comments

Projects
None yet
4 participants
@povilasb
Copy link

povilasb commented May 4, 2018

http://www.bittorrent.org/beps/bep_0029.html doesn't specify how one should handle packets whose connection ID is not known for us.
For example,

  1. we receive Fin(connection_id=1234) packet.
  2. We have never sent or received Syn(connection_id=1234)
  3. What do we do with the packet?
  • ignore it?
  • send Reset packet back?

Thanks :)

@ssiloti

This comment has been minimized.

Copy link
Contributor

ssiloti commented May 4, 2018

In theory a reset packet should be sent in response to a packet with an unknown connection ID, but libtorrent at least ignores such packets. I assume this was done to avoid amplification attacks.

@the8472

This comment has been minimized.

Copy link
Contributor

the8472 commented May 5, 2018

RST packets should be small, so there shouldn't be any amplification as long as you verify that you're responding to something that has the minimum plausible packet size and rate-limit them. Sure, there's reflections, but those are unavoidable and you get them with TCP or properly-crafted requests too.

@arvidn

This comment has been minimized.

Copy link
Contributor

arvidn commented May 20, 2018

as a separate note, you shouldn't send an RST back to an unrecognised RST packet.

@povilasb

This comment has been minimized.

Copy link
Author

povilasb commented May 21, 2018

Okey dokes, thanks guys, before closing this issue I'll try to do a PR for BEP 29 that specifies this behavior when I'm done with my work on uTP - that might take about 2 weeks though :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.