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

Minor TCP Reassembly and Packet Tracking Changes #79

Merged
merged 7 commits into from
Dec 4, 2024

Conversation

thearossman
Copy link
Collaborator

  • Performance: clear OOO buffers when reassembly is no longer needed
  • Performance: drop tracked Mbufs more greedily
  • Update termination heuristic - must see both FINs and both ACKs for FINs
  • Some minor cleanup

thearossman and others added 7 commits November 24, 2024 11:46
We shouldn't consider a TCP connection complete until both sides
have acknowledged the other's FIN. This introduces slight overhead
(tracking acknowledgement numbers), but is needed for some
packet analysis (e.g., TCP flags) use cases.
May provide modest mempool utilization improvement for certain
connection-tracking applications on lossy networks.
- Distinguish between `update` (metadata) and `track_packets`
  (presumed to be less common and more expensive).
  Also distinguish between `cache_packets` (storing raw mbufs in
  case of filter match on packet-level subscription) and `track_packets`
  (tracking for duration of connection).
  tl;dr - try to only use mbufs if needed and release them quickly.
- Remove `update_reassembled` and `track_packets_reassembled`.
  The expensive operation is reassembly itself, not potentially
  invoking no-op functions. Replace with a single `reassemble` action.
@thearossman thearossman merged commit 4cb8f72 into stanford-esrg:main Dec 4, 2024
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

1 participant