All Projects → kshitizsaini113 → L2-Emulator

kshitizsaini113 / L2-Emulator

Licence: GPL-3.0 license
Implementing a Layer-2 Emulator in C using Graphs and LinkedList

Programming Languages

c
50402 projects - #5 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to L2-Emulator

Pypacker
📦 The fastest and simplest packet manipulation lib for Python
Stars: ✭ 216 (+1170.59%)
Mutual labels:  tcp, packets, arp, ip
Pytcp
PyTCP is an attempt to create fully functional TCP/IP stack in Python. It supports TCP stream based transport with reliable packet delivery based on sliding window mechanism and basic congestion control. It also supports IPv6/ICMPv6 protocols with SLAAC address configuration. It operates as user space program attached to Linux TAP interface. As of today stack is able to send and receive traffic over Internet using IPv4 and IPv6 default gateways for routing. Since goal of this project is purely educational (at least at this point) the clarity of code is preferred over its efficiency. For the same reason security features are not being implemented just yet unless they are integral part of TCP/IP suite protocols specification.
Stars: ✭ 65 (+282.35%)
Mutual labels:  tcp, arp, ip
dpdk
A comprehensive rust binding for DPDK allowing high speed userspace networking across 256 cores and 32 NICs
Stars: ✭ 30 (+76.47%)
Mutual labels:  tcp, packets, vlan
rips-old
Rust IP Stack - A userspace IP stack written in Rust (Work in progress)
Stars: ✭ 32 (+88.24%)
Mutual labels:  stack, packets, tcp-ip
http-connection-lifecycle
Complete and detailed explanation of HTTP connection lifecycle
Stars: ✭ 43 (+152.94%)
Mutual labels:  tcp, arp, tcp-ip
sledgehammer
🔨 📶 WiFi-Jammer/DoS toolset
Stars: ✭ 34 (+100%)
Mutual labels:  tcp, arp, ip
Modbus.net
A high extensible hardware communication platform using C#
Stars: ✭ 244 (+1335.29%)
Mutual labels:  tcp, communication
captcp
A open source program for TCP analysis of PCAP files
Stars: ✭ 110 (+547.06%)
Mutual labels:  tcp, ip
MQTTnet
MQTTnet is a high performance .NET library for MQTT based communication. It provides a MQTT client and a MQTT server (broker). The implementation is based on the documentation from http://mqtt.org/.
Stars: ✭ 3,309 (+19364.71%)
Mutual labels:  tcp, communication
dperf
dperf is a DPDK based 100Gbps network performance and load testing software.
Stars: ✭ 1,320 (+7664.71%)
Mutual labels:  tcp, vlan
tcp server client
A thin and simple C++ TCP client server
Stars: ✭ 124 (+629.41%)
Mutual labels:  tcp, tcp-ip
khttpd
An experimental HTTP server implemented as Linux kernel module
Stars: ✭ 41 (+141.18%)
Mutual labels:  tcp, socket-programming
Pjon
PJON (Padded Jittering Operative Network) is an experimental, arduino-compatible, multi-master, multi-media network protocol.
Stars: ✭ 2,615 (+15282.35%)
Mutual labels:  tcp, communication
okhoxi-serac
冰塔协议-传输层协议
Stars: ✭ 33 (+94.12%)
Mutual labels:  tcp, arp
Computer Networking
Free resources for a self-taught education in Computer Networking
Stars: ✭ 201 (+1082.35%)
Mutual labels:  tcp, arp
Hazel Networking
Hazel Networking is a low level networking library for C# providing connection orientated, message based communication via TCP, UDP and RUDP.
Stars: ✭ 194 (+1041.18%)
Mutual labels:  tcp, communication
chat-diffie-hellman
A secure chat between an Android client and Java server using AES for encryption and Diffie-Hellman for key exchange.
Stars: ✭ 26 (+52.94%)
Mutual labels:  tcp-ip, socket-programming
net-protocol
golang模拟内核协议栈 实现链路层、网络层、传输层、应用层 用户态协议栈 ,基于虚拟网卡TUN/TAP
Stars: ✭ 129 (+658.82%)
Mutual labels:  tcp, arp
DzSocket
Delphi Client/Server components to communicate using TCP Socket Asynchronous easily
Stars: ✭ 44 (+158.82%)
Mutual labels:  tcp, communication
Simplenet
An easy-to-use, event-driven, asynchronous network application framework compiled with Java 11.
Stars: ✭ 164 (+864.71%)
Mutual labels:  tcp, packets

L2-Emulator

This main objective of the project is to decipt the functionality of the DataLink Layer, also termed as Layer-2.

Sub-objectives of the project are :

  • Developing a generic graph topology.
  • Tackling the issues of thrashing, collision and reducing broadcast domain.
  • Implementing ARP, L2 routing, MAC learning and L2 switching and VLAN Forwarding.

Abstract

In today’s world, fast and efficient communication on the network between the sender and receiver is very important. For this communication, data is converted into packets and sent over the network using various routing algorithms. In a network or over multiple networks, routing refers to the process of determining a path for a packet to travel from. L2 Routing is based on the concept of Data Link layer and happens when data is to be transferred between the same subnet. In this project, we aim to implement the functionality of Data Link Layer like creating ARP Tables, L2 Routing, MAC Learning, L2 Switching & implementing VLAN forwarding.

Keyword : Network Routing, TCP/IP, Network Graph, ARP, L2 Routing, L2 Switching, Packet, Socket Programming, Topology, VLAN, MAC Learning

Aim

Methodology

This project focuses on implementing Layer 2 i.e. Data-Link Layer of TCP/IP Stack. The project mainly focuses on Graph Data Structures highlighting the features of Generic Graph Topology. The project will use routers, switches, links as well as nodes to depict the overall functionality of network topology, the entire packet journey (on sending and receiving machines) through the Data Link Layer of TCP/IP Model along with a minimal use of Socket Programming will be shown in this project.

Contributors

  1. Kshitiz Saini
  2. Saloni Saxena
  3. Pratyusha Agarwal

Full documentation of the project is available under Project Synopsis


The contribution guidelines are present here


The project is licensed under GNU General Public License

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