Minet: A User-level TCP/IP Stack

The Minet TCP/IP stack is designed to support undergraduate and graduate courses in computer networking. The stack runs entirely at user level and can interoperate with kernel and user level stacks running on other machines. Minet consists of a collection of modules that run as separate sequential processes that communicate using well-defined interfaces. Student projects typically consist of writing modules (TCP, IP, etc) that fit into the stack. They are assisted by a collection of C++ classes that handle the details of manipulating packet headers and other mundane things.

Minet currently runs on top of Linux. It should work in other Unix environments as well, but we have not tested this. We have also ported Minet to Microsoft Windows, but this work is still waiting for intergration into the mainline development branch.


  • Peter Dinda
  • A large number of students have contributed to the development of Minet through CS 399 projects and otherwise. The current list includes: Jason Skicewicz (TCP module), Ricky Chen (ICMP), David Zhao (Java GUI), Kevin Dill (socket module), Budyanto Himawan (initial work on IP routing support), Jason Moy (initial work on TCP-based API and multicast reader/writer), and Matt Lineen (TCP-based API, multicast reader/writer, and Windows port)
  • Join us!
  • Talks

    None yet.


  • P. Dinda, The Minet TCP/IP Stack, Northwestern University Department of Computer Science Technical Report NWU-CS-02-08, January, 2002. (pdf)
  • P. Dinda, The Minet Socket Interface (pdf)
  • Courses

    For examples of Minet projects, please see CS 340.


  • The Minet Framework is available via CVS to students taking CS 340.
  • Release: None. Pending funding.
  • Snapshot request: Please contact us if you would like a snapshot of the Minet development tree.

  • Peter Dinda
    Last modified: Mon Jul 17 16:11:21 CDT 2006