Clone this repo:
  1. 467388a [icmp] Add support for client-side ICMP requests sent at the transport layer by Sean Klein · 6 days ago master
  2. f678b0b Revert "Nonblocking writes to a tcp socket should not exceed send buffer size." by David Crawshaw · 7 days ago
  3. c2775ce Replace tcpip.Stack with *stack.Stack by Matt Perry · 13 days ago
  4. 9300b31 netstack: increase tcp send window to 10 and temporarily disable failing test cases. by Zhaozhong Ni · 13 days ago
  5. 150ab87 Remove tcpip.Stack interface and replace all usage of the interface with by Bhasker Hariharan · 13 days ago


Netstack is a network stack written in Go.

Getting started

Try it out on Linux by installing the tun_tcp_echo demo:

go install

Create a TUN device with:

[sudo] ip tuntap add user <username> mode tun <device-name>
[sudo] ip link set <device-name> up
[sudo] ip addr add <ipv4-address>/<mask-length> dev <device-name>

Then run with:

tun_tcp_echo <device-name> <ipv4-address> <port>


We would love to accept contributions, but we have not yet worked out how to handle them. Please contact us before sending any pull requests.

Whatever we do decide on will require signing the Google Contributor License. Please see for more details.


This is not an official Google product (experimental or otherwise), it is just code that happens to be owned by Google.