tcpgoon - tcpgoon, maximum TCP connections tester

  •        336

TLDR . Description . Usage . Execution using Docker . Installation . Help . Examples . Extra project information . Why do I want to test TCP connections? . Where does the project name come from? . Authors . Especial thanks to... . Development information . TO-DO . Project structure . README maintenance . Testing locally . See our public docker image and its documentation. The image is being updated continuously; you can bind to specific versions, or to the "latest" tag.

https://github.com/dachad/tcpgoon

Tags
Implementation
License
Platform

   




Related Projects

socket - Async, streaming plaintext TCP/IP and secure TLS socket server and client connections for ReactPHP

  •    PHP

Async, streaming plaintext TCP/IP and secure TLS socket server and client connections for ReactPHP. The socket library provides re-usable interfaces for a socket-layer server and client based on the EventLoop and Stream components. Its server component allows you to build networking servers that accept incoming connections from networking clients (such as an HTTP server). Its client component allows you to build networking clients that establish outgoing connections to networking servers (such as an HTTP or database client). This library provides async, streaming means for all of this, so you can handle multiple concurrent connections without blocking.

proxymachine - A simple TCP routing proxy built on EventMachine that lets you configure the routing logic in Ruby

  •    Ruby

ProxyMachine is a simple content aware (layer 7) TCP routing proxy built on EventMachine that lets you configure the routing logic in Ruby. The idea here is simple. For each client connection, start receiving data chunks and placing them into a buffer. Each time a new chunk arrives, send the buffer to a user specified block. The block's job is to parse the buffer to determine where the connection should be proxied. If the buffer contains enough data to make a determination, the block returns the address and port of the correct backend server. If not, it can choose to do nothing and wait for more data to arrive, close the connection, or close the connection after sending custom data. Once the block returns an address, a connection to the backend is made, the buffer is replayed to the backend, and the client and backend connections are hooked up to form a transparent proxy. This bidirectional proxy continues to exist until either the client or backend close the connection.

PyLoris - Vulnerability test for DOS attack

  •    Python

PyLoris is a scriptable tool for testing a server's vulnerability to connection exhaustion denial of service (DoS) attacks. PyLoris can utilize SOCKS proxies and SSL connections, and can target protocols such as HTTP, FTP, SMTP, IMAP, and Telnet.

CppServer - Ultra fast and low latency asynchronous socket server & client C++ library with support TCP, SSL, UDP, HTTP, HTTPS, WebSocket protocols and 10K connections problem solution

  •    HTML

Ultra fast and low latency asynchronous socket server & client C++ library with support TCP, SSL, UDP, HTTP, HTTPS, WebSocket protocols and 10K connections problem solution. Asio service is used to host all clients/servers based on Asio C++ library. It is implemented based on Asio C++ Library and use a separate thread to perform all asynchronous IO operations and communications.

toxiproxy - :alarm_clock: :fire: A TCP proxy to simulate network and system conditions for chaos and resiliency testing

  •    Go

Toxiproxy is a framework for simulating network conditions. It's made specifically to work in testing, CI and development environments, supporting deterministic tampering with connections, but with support for randomized chaos and customization. Toxiproxy is the tool you need to prove with tests that your application doesn't have single points of failure. We've been successfully using it in all development and test environments at Shopify since October, 2014. See our blog post on resiliency for more information.Toxiproxy usage consists of two parts. A TCP proxy written in Go (what this repository contains) and a client communicating with the proxy over HTTP. You configure your application to make all test connections go through Toxiproxy and can then manipulate their health via HTTP. See Usage below on how to set up your project.


mTCP - A Highly Scalable User-level TCP Stack for Multicore Systems

  •    C

mTCP is a high-performance user-level TCP stack for multicore systems. Scaling the performance of short TCP connections is fundamentally challenging due to inefficiencies in the kernel. mTCP addresses these inefficiencies from the ground up - from packet I/O and TCP connection management all the way to the application interface. It translates expensive system calls to shared memory access between two threads within the same CPU core.

NetCoreServer - Ultra fast and low latency asynchronous socket server & client C#

  •    CSharp

Ultra fast and low latency asynchronous socket server & client C# .NET Core library with support TCP, SSL, UDP, HTTP, HTTPS, WebSocket protocols and 10K connections problem solution. Here comes the example of the TCP chat server. It handles multiple TCP client sessions and multicast received message from any session to all ones. Also it is possible to send admin message directly from the server.

udptunnel - It allows TCP/UDP/ICMP traffic over UDP tunneling

  •    C

It allows TCP/UDP/ICMP traffic over UDP tunneling. It's useful to avoid Internet restrictions. So far, I've tested this technique in an OSX machine (connected to cellphone) and a Linux machine (connected to full access Internet connection). Once you have access to mobile operator's portal cautivo, you can access to limited services, such as DNS, and TCP ports distinct to 80 (HTTP). I don't use proxy over TCP because TCP connections receive an arbitrary RESET at any time. Also, I figure out that 53 UDP port has the best performance, with lower packet loss.

PacketSender - Network utility for sending / receiving TCP, UDP, SSL

  •    C++

Packet Sender is an open source utility to allow sending and receiving TCP, UDP, and SSL (encrypted TCP) packets. The mainline branch officially supports Windows, Mac, and Desktop Linux (with Qt). Other places may recompile and redistribute Packet Sender. Packet Sender is free and licensed GPL v2 or later. It can be used for both commercial and personal use. Official releases of Packet Sender can be downloaded at PacketSender.com. Some places redistribute Packet Sender.

Goliat Fist

  •    

Goliat is a distributed stress tool to test network enviroments and applications. Supports HTTP, HTTPS, SMTP and other TCP protocols, and TCP Session stress for firewalls (in a client/server setup).

haproxy-aws - Documentation on building a HTTPS stack in AWS with HAProxy

  •    Shell

This configuration uses an Elastic Load Balancer in TCP mode, with PROXY protocol enabled. The PROXY protocol adds a string at the beginning of the TCP payload that is passed to the backend. This string contains the IP of the client that connected to the ELB, which allows HAProxy to feed its internal state with this information, and act as if it had a direct TCP connection to the client. First, we need to create an ELB, and enable a TCP listener on port 443 that supports the PROXY protocol. The ELB will not decipher the SSL, but instead pass the entire TCP payload down to Haproxy.

tcp-bridge

  •    

a tcp bridge service to redirect incoming connections to another machine by using another incoming or outgoing connection

tcpshm - A connection-oriented persistent message queue framework based on TCP or SHM(shared memory)

  •    C++

When using TCP to transfer data, sent out messages are not guaranteed to be received or handled by the receiver, and even worse, we often get unexpected disconnections due to network issues or program crash, so efforts have been made on recovery procedure to ensure both sides are synced. TCPSHM provides a reliable and efficient solution based on a sequence number and acknowledge mechanism, that every sent out msg is persisted in a send queue until sender got ack that it's been consumed by the receiver, so that disconnects/crashes are tolerated and the recovery process is purely automatic. And as the name implies, shared memory is also supported when communicating on the same host, and it provides the same API and behavior as TCP(so whether TCP or SHM underlies the connection is transparent to the user), but it's more than 20 times faster than TCP on localhost(However TCP is still 3 times faster than ZeroMQ IPC, see Performance). The shared memory communication is based on A real-time single producer single consumer msg queue.

SSLsplit - Transparent SSL/TLS interception

  •    C

SSLsplit is a tool for man-in-the-middle attacks against SSL/TLS encrypted network connections. It is intended to be useful for network forensics, application security analysis and penetration testing. SSLsplit is designed to transparently terminate connections that are redirected to it using a network address translation engine. SSLsplit then terminates SSL/TLS and initiates a new SSL/TLS connection to the original destination address, while logging all data transmitted.

DivertIt! - The TCP Connection Diverter

  •    

DivertIt! is a TCP connection diverter tool. By sending commands to agents running on distributed hosts, the tool determines a connection route and instructs agents to listen for incoming connections and divert them down the chain to the eventual target

gpool - A golang resource pool which will support connection pool, buffer pool, goroutine pool

  •    Go

A golang pool which will support connection pool, buffer pool, goroutine pool. Help developers to use pool easily. Now gpool only support tcp connection pool. It will support other pools soon. And Thanks to https://github.com/fatih/pool, ideas comes from fatih.

node-mitm - Intercept and mock outgoing Node

  •    Javascript

Mitm.js is a library for Node.js (and Io.js) to intercept and mock outgoing network TCP and HTTP connections. Mitm.js intercepts and gives you a Net.Socket to communicate as if you were the remote server. For HTTP requests it even gives you Http.IncomingMessage and Http.ServerResponse — just like you're used to when writing Node.js servers. Except there's no actual server running, it's all just In-Process Interception™. Intercepting connections and requests is extremely useful to test and ensure your code does what you expect. Assert on request parameters and send back various responses to your code without ever having to hit the real network. Fast as hell and a lot easier to develop with than external test servers.

OkSocket - An blocking socket client for Android applications.

  •    Java

An blocking socket client for Android applications. The server is designed for beginners affiliated OkSocket library; beginners can install the project of the app to mobile phones, click the Connect button, the server is only familiar with communication methods and analytical way. The server does not support the heart back, not a commercial server. The server code in SocketServerDemo folder, please note that the reference was reading.

ghostunnel - A simple SSL/TLS proxy with mutual authentication for securing non-TLS services

  •    Go

Ghostunnel is a simple TLS proxy with mutual authentication support for securing non-TLS backend applications.Ghostunnel supports two modes, client mode and server mode. Ghostunnel in server mode runs in front of a backend server and accepts TLS-secured connections, which are then proxied to the (insecure) backend. A backend can be a TCP domain/port or a UNIX domain socket. Ghostunnel in client mode accepts (insecure) connections through a TCP or UNIX domain socket and proxies them to a TLS-secured service. In other words, ghostunnel is a replacement for stunnel.

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.