tailscale / tailscale/tailscale-rs

ts_tunnel: decide on a replay window size

Open
#342 0 comments 0 reactions 1 assignee View on GitHub

@danderson is already working on this.

Since Aug 4, 2026.

bug
Dominant language
Rust
Stars
1.2k
Forks
61
Avg merge
2d 13h
Merged PRs (30d)
22

Description

We apply a sliding window on received packets, to reject replay of old nonces while allowing for some small amount of reordering on the wire. ts_tunnel tracks the last 192 received packets (3 u64s per established session of overhead), whereas the reference implementation tracks 8128 packets (127 u64s per session).

The spec doesn't mandate any particular replay window size. ts_tunnel's was chosen to reduce the memory cost of established sessions relative to wireguard-go, but it may be too aggressively low for real networks. This is easily tunable in future either way, so we may just ignore it for now, but filing so we can triage properly.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.