All Projects → dotpcap → packetnet

dotpcap / packetnet

Licence: MPL-2.0 license
Official repository - High performance .Net assembly for dissecting and constructing network packets such as ethernet, ip, tcp, udp etc.

Programming Languages

C#
18002 projects
shell
77523 projects

Projects that are alternatives of or similar to packetnet

network-pipeline
Network traffic data pipeline for real-time predictions and building datasets for deep neural networks
Stars: ✭ 36 (-89.5%)
Mutual labels:  ethernet, network-analysis
Etherate
Linux CLI Ethernet and MPLS Testing Tool
Stars: ✭ 130 (-62.1%)
Mutual labels:  ethernet, network-analysis
Packetnet
Official repository - High performance .Net assembly for dissecting and constructing network packets such as ethernet, ip, tcp, udp etc.
Stars: ✭ 230 (-32.94%)
Mutual labels:  ethernet, network-analysis
musicntwrk
Network Analysis of Generalized Musical Spaces
Stars: ✭ 37 (-89.21%)
Mutual labels:  network-analysis
EstimNetDirected
Equilibrium Expectation for ERGM parameter estimation for large directed networks
Stars: ✭ 18 (-94.75%)
Mutual labels:  network-analysis
NETNOOB
A simple program written in bash that contains basic Linux network tools, information gathering tools and scanning tools.
Stars: ✭ 105 (-69.39%)
Mutual labels:  network-analysis
FNET
The FNET is a free, open source, dual TCP/IPv4 and IPv6 Stack (under Apache Version 2.0 license) for building embedded communication software on 32bit MCUs.
Stars: ✭ 97 (-71.72%)
Mutual labels:  ethernet
macvendor
CLI tool which looks up hardware vendor names for network devices based on the macvendors.com API
Stars: ✭ 17 (-95.04%)
Mutual labels:  network-analysis
netdice
A scalable and accurate probabilistic network configuration analyzer verifying network properties in the face of random failures.
Stars: ✭ 28 (-91.84%)
Mutual labels:  network-analysis
telemetry
Open-source datasets for anyone interested in working with network anomaly based machine learning, data science and research
Stars: ✭ 93 (-72.89%)
Mutual labels:  network-analysis
brainGraph
Graph theory analysis of brain MRI data
Stars: ✭ 136 (-60.35%)
Mutual labels:  network-analysis
netplot
Beautiful graph drawing
Stars: ✭ 47 (-86.3%)
Mutual labels:  network-analysis
MRFcov
Markov random fields with covariates
Stars: ✭ 21 (-93.88%)
Mutual labels:  network-analysis
Netvisix
Netvisix visualizes the network packet flow between hosts
Stars: ✭ 65 (-81.05%)
Mutual labels:  network-analysis
ivre
Network recon framework. Build your own, self-hosted and fully-controlled alternatives to Shodan / ZoomEye / Censys and GreyNoise, run your Passive DNS service, collect and analyse network intelligence from your sensors, and much more!
Stars: ✭ 2,712 (+690.67%)
Mutual labels:  network-analysis
pcapdj
pcapdj - dispatch pcap files
Stars: ✭ 41 (-88.05%)
Mutual labels:  network-analysis
grandiso-networkx
Performant, pure-Python subgraph isomorphism and monomorphism search (aka "motif search")
Stars: ✭ 30 (-91.25%)
Mutual labels:  network-analysis
D1Proxy
A simple yet powerful Java 11 TCP MITM proxy for Dofus 1.29.1
Stars: ✭ 17 (-95.04%)
Mutual labels:  network-analysis
UPnP Generic
A simple library that implements port mappings to router using UPnP SSDP for Arduino boards, running on nRF52, SAMD21/SAMD51, STM32F/L/H/G/WB/MP1, Teensy, RP2040-based boards, WT32_ETH01, Portenta_H7, etc. besides ESP8266/ESP32, using ESP WiFi, WiFiNINA, Ethernet W5x00, ESP8266/ESP32 AT-command WiFi, Portenta_H7 Murata WiFi or Vision-shield Ethe…
Stars: ✭ 14 (-95.92%)
Mutual labels:  ethernet
nixos-router
NixOS expression for creating a simple router
Stars: ✭ 32 (-90.67%)
Mutual labels:  ethernet

NuGet Build status

New!

The newly released PacketDotNet.Connections is a supplement to Packet.NET that adds connection tracking and http following support.

Packet.Net

Packet.Net is a high performance .Net assembly for dissecting and constructing network packets such as ethernet, ip, tcp, udp etc.

Originally created by Chris Morgan [email protected]

https://github.com/chmorgan/packetnet

Code is found in the PacketDotNet namespace.

Performance

Packet.Net has been designed for the highest performance possible. As such we aim to perform the most minimal amount of data processing in order to fully determine the datagram nesting.

For example a TCP packet would be parsed into a series of linked objects like: Ethernet -> IPv4 -> TCP but no further data processing is performed until particular fields are accessed. In addition the objects point to packet memory in-place, avoiding allocation and copying of the packet contents unless necessary, such as when altering data payloads or resizing variable length fields.

Test suite

Packet.Net has a comprehensive suite of tests for each of the supported packet types, see the 'Test' subdirectory.

Supported packet formats

  • Ethernet
  • IPv4 / IPv6
  • TCP
  • UDP
  • ICMP v4 and v6
  • IGMP v2 and v3
  • L2TP
  • PPPoE
  • OSPF
  • Wake-on-lan
  • IEEE 802.1Q
  • IEEE 802.11
  • DRDA
  • ARP
  • LLDP
  • LSA
  • Linux SSL
  • PPP
  • and probably more, see the source code for the latest list

Capture example

See Capturing packets example

Getting started

A few basic examples can be found in the Examples/ directory.

Debug vs. Release builds

The Debug build depends on log4net and has log4net calls in some of its classes and code paths.

The Release build does NOT depend on log4net and, taking advantage of conditional method attributes, does not include any calls to log4net methods. This ensures that there is no performance impact on release builds.

Performance benchmarks

The Test/ directory contains a few benchmarks that were used to guide the design and implementation of Packet.Net. These benchmarks either contain 'performance' or 'benchmark' in their names.

If you have a performance concern or issue you'll want to write a concise test that reproduces your usage case in a controlled manner. It will then be possible to run and re-run this test case in various profiling modes in order to look at potential ways of optimizing code. The tests will also provide a baseline from which to compare any proposed performance improvements in order to ensure that changes are not inadvertantly reducing instead of increasing performance.

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].