# atro-rdx/ddos architecture

> Architecture diagram of the GitHub repository atro-rdx/ddos, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-15). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/atro-rdx/ddos
- Repository: https://github.com/atro-rdx/ddos

## Overview

Server Exterminator is a single-file, interactive server-resilience testing tool. Its workflow accepts a target IP, requests confirmation, starts a timed multithreaded run, and displays live and final statistics. The documented test vectors include port-specific TCP, HTTP, SSL/TLS, UDP, connection-exhaustion, port-scanning, and Slowloris methods. The source excerpt shows worker deployment, selected socket operations, and statistics display; some methods and result details are documented only in the README, so those links cite the README.

Main entry points: [`exterminator.py`](https://github.com/atro-rdx/ddos/blob/main/exterminator.py) (Thread workers)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Entry and orchestration"]
  node_cli["CLI and confirmation<br/>[exterminator.py]"]
  node_coordinator["Run coordinator<br/>[exterminator.py]"]
  node_workers["Thread workers<br/>[exterminator.py]"]
end

subgraph group_vectors["Test vectors"]
  node_port5000["Port 5000 test<br/>[exterminator.py]"]
  node_port3000["Port 3000 test<br/>[exterminator.py]"]
  node_http80["HTTP port 80 test<br/>[exterminator.py]"]
  node_ssl443["SSL/TLS test<br/>[exterminator.py]"]
  node_udp["UDP test<br/>[exterminator.py]"]
  node_connections["Connection exhaustion<br/>[exterminator.py]"]
  node_portscan["Port scanning<br/>[exterminator.py]"]
  node_slowloris["Slowloris test<br/>[exterminator.py]"]
end

subgraph group_reporting["Statistics and results"]
  node_live_stats["Live statistics<br/>[exterminator.py]"]
  node_final_stats["Final results<br/>[exterminator.py]"]
end

node_user(("Operator"))
node_target["Target server"]

node_user -->|"provides target"| node_cli
node_cli -->|"starts run"| node_coordinator
node_coordinator -->|"starts threads"| node_workers
node_coordinator -->|"starts display"| node_live_stats
node_workers -->|"dispatches"| node_port5000
node_workers -->|"dispatches"| node_port3000
node_workers -->|"dispatches"| node_http80
node_workers -->|"dispatches"| node_ssl443
node_workers -->|"dispatches"| node_udp
node_workers -->|"dispatches"| node_connections
node_workers -->|"dispatches"| node_portscan
node_workers -->|"dispatches"| node_slowloris
node_port5000 -->|"sends TCP payloads"| node_target
node_port3000 -->|"sends TCP payloads"| node_target
node_http80 -->|"sends HTTP requests"| node_target
node_ssl443 -->|"opens TLS connections"| node_target
node_udp -->|"sends datagrams"| node_target
node_connections -->|"opens connections"| node_target
node_portscan -->|"scans ports"| node_target
node_slowloris -->|"sends partial requests"| node_target
node_live_stats -->|"reports results"| node_final_stats

click node_cli "https://github.com/atro-rdx/ddos/blob/main/exterminator.py"
click node_coordinator "https://github.com/atro-rdx/ddos/blob/main/exterminator.py"
click node_workers "https://github.com/atro-rdx/ddos/blob/main/exterminator.py"
click node_port5000 "https://github.com/atro-rdx/ddos/blob/main/exterminator.py"
click node_port3000 "https://github.com/atro-rdx/ddos/blob/main/exterminator.py"
click node_http80 "https://github.com/atro-rdx/ddos/blob/main/exterminator.py"
click node_ssl443 "https://github.com/atro-rdx/ddos/blob/main/exterminator.py"
click node_udp "https://github.com/atro-rdx/ddos/blob/main/exterminator.py"
click node_connections "https://github.com/atro-rdx/ddos/blob/main/exterminator.py"
click node_portscan "https://github.com/atro-rdx/ddos/blob/main/exterminator.py"
click node_slowloris "https://github.com/atro-rdx/ddos/blob/main/exterminator.py"
click node_live_stats "https://github.com/atro-rdx/ddos/blob/main/exterminator.py"
click node_final_stats "https://github.com/atro-rdx/ddos/blob/main/exterminator.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_cli,node_coordinator,node_workers toneBlue
class node_port5000,node_port3000,node_http80,node_ssl443,node_udp,node_connections,node_portscan,node_slowloris toneAmber
class node_live_stats,node_final_stats,node_target toneMint
class node_user toneIndigo
```

## Components

### Entry and orchestration

- [CLI and confirmation](https://github.com/atro-rdx/ddos/blob/main/exterminator.py): `exterminator.py`
- [Run coordinator](https://github.com/atro-rdx/ddos/blob/main/exterminator.py): `exterminator.py`
- [Thread workers](https://github.com/atro-rdx/ddos/blob/main/exterminator.py): `exterminator.py`

### Test vectors

- [Port 5000 test](https://github.com/atro-rdx/ddos/blob/main/exterminator.py): `exterminator.py`
- [Port 3000 test](https://github.com/atro-rdx/ddos/blob/main/exterminator.py): `exterminator.py`
- [HTTP port 80 test](https://github.com/atro-rdx/ddos/blob/main/exterminator.py): `exterminator.py`
- [SSL/TLS test](https://github.com/atro-rdx/ddos/blob/main/exterminator.py): `exterminator.py`
- [UDP test](https://github.com/atro-rdx/ddos/blob/main/exterminator.py): `exterminator.py`
- [Connection exhaustion](https://github.com/atro-rdx/ddos/blob/main/exterminator.py): `exterminator.py`
- [Port scanning](https://github.com/atro-rdx/ddos/blob/main/exterminator.py): `exterminator.py`
- [Slowloris test](https://github.com/atro-rdx/ddos/blob/main/exterminator.py): `exterminator.py`

### Statistics and results

- [Live statistics](https://github.com/atro-rdx/ddos/blob/main/exterminator.py): `exterminator.py`
- [Final results](https://github.com/atro-rdx/ddos/blob/main/exterminator.py): `exterminator.py`

### Other components

- **Operator**
- **Target server**

## Connections

- Operator → CLI and confirmation: provides target (evidence: `README.md`)
- CLI and confirmation → Run coordinator: starts run (evidence: `exterminator.py`)
- Run coordinator → Thread workers: starts threads (evidence: `exterminator.py`)
- Run coordinator → Live statistics: starts display (evidence: `exterminator.py`)
- Thread workers → Port 5000 test: dispatches (evidence: `exterminator.py`)
- Thread workers → Port 3000 test: dispatches (evidence: `exterminator.py`)
- Thread workers → HTTP port 80 test: dispatches (evidence: `exterminator.py`)
- Thread workers → SSL/TLS test: dispatches (evidence: `exterminator.py`)
- Thread workers → UDP test: dispatches (evidence: `exterminator.py`)
- Thread workers → Connection exhaustion: dispatches (evidence: `exterminator.py`)
- Thread workers → Port scanning: dispatches (evidence: `exterminator.py`)
- Thread workers → Slowloris test: dispatches (evidence: `README.md`)
- Port 5000 test → Target server: sends TCP payloads (evidence: `exterminator.py`)
- Port 3000 test → Target server: sends TCP payloads (evidence: `exterminator.py`)
- HTTP port 80 test → Target server: sends HTTP requests (evidence: `exterminator.py`)
- SSL/TLS test → Target server: opens TLS connections (evidence: `exterminator.py`)
- UDP test → Target server: sends datagrams (evidence: `exterminator.py`)
- Connection exhaustion → Target server: opens connections (evidence: `exterminator.py`)
- Port scanning → Target server: scans ports (evidence: `exterminator.py`)
- Slowloris test → Target server: sends partial requests (evidence: `README.md`)
- Live statistics → Final results: reports results (evidence: `exterminator.py`)
