All Projects → jserv → Nstack

jserv / Nstack

Licence: other
Userspace TCP/IP stack for Linux

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Nstack

Ucx
Unified Communication X (mailing list - https://elist.ornl.gov/mailman/listinfo/ucx-group)
Stars: ✭ 471 (+190.74%)
Mutual labels:  networking, tcp-ip
Golden Gate
Framework to connect wearables and other IoT devices to mobile phones, tablets and PCs with an IP-based protocol stack over Bluetooth Low Energy
Stars: ✭ 223 (+37.65%)
Mutual labels:  networking, tcp-ip
Steamkit
SteamKit2 is a .NET library designed to interoperate with Valve's Steam network. It aims to provide a simple, yet extensible, interface to perform various actions on the network.
Stars: ✭ 1,926 (+1088.89%)
Mutual labels:  networking
Brpc Rs
Apache bRPC library for Rust
Stars: ✭ 159 (-1.85%)
Mutual labels:  networking
Securecrt Tools
SecureCRT scripts, written in Python, for doing various tasks when connected to Cisco equipment.
Stars: ✭ 154 (-4.94%)
Mutual labels:  networking
Usocket
Universal socket library for Common Lisp
Stars: ✭ 146 (-9.88%)
Mutual labels:  networking
Netstack
Lightweight toolset for creating concurrent networking systems for multiplayer games
Stars: ✭ 157 (-3.09%)
Mutual labels:  networking
.codebits
📚 List of resources for Algorithms and Data Structures in Python & other CS topics @2017
Stars: ✭ 144 (-11.11%)
Mutual labels:  networking
Npf
NPF: packet filter with stateful inspection, NAT, IP sets, etc.
Stars: ✭ 160 (-1.23%)
Mutual labels:  networking
Ccna60d
60天通过思科认证的网络工程师考试
Stars: ✭ 155 (-4.32%)
Mutual labels:  networking
Py Ipv8
Python implementation of the IPv8 layer
Stars: ✭ 157 (-3.09%)
Mutual labels:  networking
Linuxscripts
Script collection for linux
Stars: ✭ 154 (-4.94%)
Mutual labels:  networking
Ipgetter
Utility to fetch your external IP address
Stars: ✭ 148 (-8.64%)
Mutual labels:  networking
Ignorance
Ignorance utilizes the power of ENet to provide a reliable UDP networking transport for Mirror Networking.
Stars: ✭ 158 (-2.47%)
Mutual labels:  networking
Tokio
A runtime for writing reliable asynchronous applications with Rust. Provides I/O, networking, scheduling, timers, ...
Stars: ✭ 14,278 (+8713.58%)
Mutual labels:  networking
Awesome Networking
Curated list of awesome computer networking resources
Stars: ✭ 159 (-1.85%)
Mutual labels:  networking
Ios Nd Networking
Resources for Udacity's iOS Networking with Swift course.
Stars: ✭ 145 (-10.49%)
Mutual labels:  networking
Crossbar
Crossbar.io - WAMP application router
Stars: ✭ 1,957 (+1108.02%)
Mutual labels:  networking
Neighbourhood
Layer 2 network neighbourhood discovery tool that uses scapy
Stars: ✭ 156 (-3.7%)
Mutual labels:  networking
Skydive
An open source real-time network topology and protocols analyzer
Stars: ✭ 2,086 (+1187.65%)
Mutual labels:  networking

nstack

Overview

nstack is a Linux userspace TCP/IP stack. It was constructed to meet the following goals:

  • Learn TCP/IP
  • Learn Linux systems/network programming
  • Learn Linux Socket API

Current features:

  • One network interface and socket
  • Ethernet frame handling
  • ARP request/reply, simple caching
  • ICMP pings and replies
  • IPv4 packet handling, checksum
  • TCPv4 Handshake
  • TCP data transmission

Build and Test

make

Set up test environment:

sudo tools/testenv.sh start
tools/run.sh veth1

Execute ping inside test environment:

tools/ping_test.sh

Expected nstack messages:

arp_gratuitous: Announce 10.0.0.2
nstack_ingress_thread: Waiting for rx
nstack_ingress_thread: Frame received!
ether_input: proto id: 0x800
ip_input: proto id: 0x1
icmp_input: ICMP type: 8
nstack_ingress_thread: tick
nstack_ingress_thread: Waiting for rx
nstack_ingress_thread: Frame received!
ether_input: proto id: 0x800
ip_input: proto id: 0x1
icmp_input: ICMP type: 8

Ending the test environment:

sudo tools/testenv.sh stop

Licensing

nstack is freely redistributable under the two-clause BSD License. Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.

Reference

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].