zsocket - Zero-copy sockets for Linux in Golang

  •        5

ZSocket is a library that wraps the linux zero-copy socket syscall to create a ring buffer in a memory mapped file. It also contains some utility functions and types to help with a handful of layer 2, 3, and 4 types. It is a lot like libcap, except it has easy to understand facilities for writing (injecting packets) to an interface. ZSocket doesn't contain or wrap any C/C++, and it is lock free and thread safe.

https://github.com/nathanjsweet/zsocket

Tags
Implementation
License
Platform

   




Related Projects

Mininet - An Instant Virtual Network on your Laptop (or other PC)

  •    Python

Mininet emulates a complete network of hosts, links, and switches on a single machine. It creates a realistic virtual network, running real kernel, switch and application code, on a single machine (VM, cloud or native), in seconds, with a single command.

RTL-lwIP

  •    C

RTL-lwIP is the porting of the lwIP TCP/IP stack to RTLinux-GPL. It allows the RT-Tasks to use a socket-like API to send and receive TCP/UDP messages through an Ethernet network. Two Ethernet cards are supported: - 3Com905C-X - Realtek8139

ONIE - Open Network Install Environment

  •    C

The Open Network Install Environment (ONIE) is an open source initiative that defines an open "install environment" for modern networking hardware. ONIE enables an open networking hardware ecosystem where end users have a choice among different network operating systems.

SocialVPN - P2P VPN that connects you to your friends computer

  •    C

SocialVPN is an open-source IPOP-based virtual network that connects your computers privately to your friends’ computers. It automatically maps online social network relationships using Jingle and XMPP to create your own user-defined peer-to-peer VPNs – with no hassle, and supporting unmodified TCP/IP applications.

PeerVPN - the open source peer-to-peer VPN

  •    C

PeerVPN is a software that builds virtual ethernet networks between multiple computers. Such a virtual network can be useful to facilitate direct communication that applications like file sharing or gaming may need. Often, such direct communication is made impossible or very difficult by firewalls or NAT devices.


OpenSwitch - Linux-based network operating system (NOS) platform

  •    C

OpenSwitch provides an abstraction of hardware devices of network switch platforms in a Linux OS environment. It uses standard open source software including an ONIE installer, and an unmodified Linux kernel based on Debian Jessie distribution. It provides an object-centric API for application development to implement custom applications using a well-defined object model, and set of programmatic APIs.

evpp - A modern C++ network library for developing high performance network services in TCP/UDP/HTTP protocols

  •    C++

evpp is a modern C++ network library for developing high performance network services in TCP/UDP/HTTP protocols. evpp provides a TCP Server to support multi-threaded nonblocking event-drive server and also a HTTP, UDP Server to support http and udp prococol.NOTE: master is our development branch and may not be stable at all times.

Python Packet Capture Library

  •    C

Pycap provides the ability to capture packets from, and inject packets onto, network interfaces. It dissects commonly found structures in network packets such as Ethernet, IP, ARP, TCP, UDP, and ICMP headers.

EtherApe

  •    C

EtherApe is a graphical network monitor modeled after etherman. Featuring Ethernet, IP, TCP, FDDI, Token Ring and wireless modes, it displays network activity graphically. Hosts and links change in size with traffic. Color coded protocols display.

AnetTest

  •    C++

Integrated packet generator and sniffer for Ethernet, but also works with blocks of data over TCP connection. Enables you to use scripts for automated testing, monitoring, imitating of various network objects, creating custom network tools.

monitord

  •    C

A lightweight (distributed?) network security monitor for TCP/IP+Ethernet LANs. It will capture certain network events and record them in a relational database. The recorded data will be available for analysis through a CGI based interface.

IP and Ethernet testing Tool

  •    C

IP and Ethernet testing Tool (quot;IETquot;) is an ethernet bridge addon for testing of network applications. It emulates network error conditions like packet loss, delay and bandwidth restraints. IET focuses on testing of network applications.

Netty - Event-driven Asynchronous Network Application Framework

  •    Java

Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty is a NIO client server framework which enables quick and easy development of network applications such as protocol servers and clients. It greatly simplifies and streamlines network programming such as TCP and UDP socket server.

NS 3 - Network Simulator

  •    C

Ns is a discrete event simulator targeted at networking research. Ns provides substantial support for simulation of TCP, routing, and multicast protocols over wired and wireless (local and satellite) networks.

SoftEther VPN - Cross-platform Multi-protocol VPN Program

  •    C

SoftEther VPN is a ?Cross-platform Multi-protocol VPN Program. It supports SSL-VPN protocol to penetrate any kinds of firewalls. Ultra-optimized SSL-VPN Protocol of SoftEther VPN has very fast throughput, low latency and firewall resistance. Virtualization of Ethernet devices is the key of the SoftEther VPN architecture. It virtualizes Ethernet devices in order to realize a flexible virtual private network for both remote-access VPN and site-to-site VPN.

UDPspeeder - A Tunnel which Improves your Network Quality on a High-latency Lossy Link by using Forward Error Correction,for All Traffics(TCP/UDP/ICMP)

  •    C++

A Tunnel which Improves your Network Quality on a High-latency Lossy Link by using Forward Error Correction. Assume your local network to your server is lossy. Just establish a VPN connection to your server with UDPspeeder + any UDP-based VPN, access your server via this VPN connection, then your connection quality will be significantly improved. With well-tuned parameters , you can easily reduce IP or UDP/ICMP packet-loss-rate to less than 0.01% . Besides reducing packet-loss-rate, UDPspeeder can also significantly improve your TCP latency and TCP single-thread download speed.

Tcpcrypt - Encrypting the Internet

  •    C

Tcpcrypt is a protocol that attempts to encrypt (almost) all of your network traffic. Unlike other security mechanisms, Tcpcrypt works out of the box: it requires no configuration, no changes to applications, and your network connections will continue to work even if the remote end does not support Tcpcrypt, in which case connections will gracefully fall back to standard clear-text TCP.

Freeflow - High performance container overlay networks on Linux

  •    C

Freeflow is a high performance container overlay network that enables RDMA communication and accelerates TCP socket to the same as the host network. Freeflow works on top of popular overlay network solutions including Flannel, Weave, etc. The containers have their individual virtual network interfaces and IP addresses, and do not need direct access to the hardware NIC interface. A lightweight Freeflow library inside containers intercepts RDMA and TCP socket APIs, and a Freeflow router outside containers helps accelerate those APIs.

HslCommunication - 个人工具库,包含日志类,异步网络通讯类,版本控制的类,注册码生成类,数据加密解密类,文件上传下载类,三菱,西门子,欧姆龙PLC访问类,modbus tcp服务器及客户端类。Personal tools library, including log class, asynchronous network communication class, version control class, registration code generation class, data encryption and decryption class, file upload and download class, Mitsubishi, Siemens, Omron PLC access class, modbus tcp server and client class

  •    CSharp

个人工具库,包含日志类,异步网络通讯类,版本控制的类,注册码生成类,数据加密解密类,文件上传下载类,三菱,西门子,欧姆龙PLC访问类,modbus tcp服务器及客户端类。Personal tools library, including log class, asynchronous network communication class, version control class, registration code generation class, data encryption and decryption class, file upload and download class, Mitsubishi, Siemens, Omron PLC access class, modbus tcp server and client class.

Zmap - The Internet Scanner

  •    C

ZMap is an open-source network scanner that enables researchers to easily perform Internet-wide network studies. With a single machine and a well provisioned network uplink, ZMap is capable of performing a complete scan of the IPv4 address space in under 45 minutes, approaching the theoretical limit of gigabit Ethernet. ZMap can be used to study protocol adoption over time, monitor service availability, and help us better understand large systems distributed across the Internet.