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

TCP/IP Packet management #3

Open
alright21 opened this issue Feb 10, 2021 · 2 comments
Open

TCP/IP Packet management #3

alright21 opened this issue Feb 10, 2021 · 2 comments
Assignees
Labels
enhancement New feature or request

Comments

@alright21
Copy link
Collaborator

Find out a proper library to create and handle TCP/IP packets.
Requirements:

  • packet manipulation at a bit level
  • the router must check the header of the packet to forward it
  • fragmentation optional
  • IPv6 optional
@alright21 alright21 added the enhancement New feature or request label Feb 10, 2021
@alright21 alright21 self-assigned this Feb 10, 2021
@alright21
Copy link
Collaborator Author

Findings

  • https://libtins.github.io/
    • high level library to work with TCP packets easily
    • packet example: EthernetII pkt = EthernetII() / IP() / TCP() / RawPDU(BGP Packet bytes);
    • we can use the metho PDU.serialize() to transform the packet into a stream of bytes.
    • the library seem quite straightforward, so we do not need to implement everything. We just need to create the BGP part and serialze everything
  • Manually implement packets
    • as Mirko team did
    • more control on the single packet
    • need to implement everything, also de/serialization
    • more effort. Is it worth it?

Questions

  • Define IP functionality: what do we need with that? Where do we need IP processing?
  • Can we stop at IP layer or do we need to go with Ethernet?
  • Do we implement fragmentation? (It should be already implemented, we just need to use it eventually)

@zanna-37
Copy link
Owner

We will probably have a go with PcapPlusPlus.

@zanna-37 zanna-37 assigned zanna-37 and unassigned alright21 Mar 17, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants