Client-Server Protocols Index¤
Traditional request-response protocol architectures for network testing
This section covers protocol plugins that implement traditional client-server communication patterns, where clients initiate connections and requests to servers.
Available Client-Server Protocols¤
Core Protocols¤
- HTTP - Hypertext Transfer Protocol
- Support for HTTP/1.1, HTTP/2, and HTTP/3
- TLS encryption and certificate management
-
RESTful API testing capabilities
-
QUIC - Quick UDP Internet Connections
- Modern transport protocol with built-in encryption
- 0-RTT connection establishment
-
Connection migration and multiplexing
-
MiniP - Minimal Internet Protocol
- Simplified protocol for educational and testing purposes
- Lightweight implementation for basic connectivity testing
- Ideal for formal verification scenarios
Protocol Selection Guide¤
| Use Case | Recommended Protocol | Notes |
|---|---|---|
| Web application testing | HTTP | Traditional web protocols |
| Modern transport research | QUIC | Latest networking innovations |
| Educational/Formal testing | MiniP | Simplified protocol semantics |
| Performance benchmarking | QUIC, HTTP | Production-grade implementations |
Configuration Pattern¤
All client-server protocols follow this configuration structure:
services:
server:
protocol:
name: quic # or http, minip
version: rfc9000
role: server
implementation:
name: picoquic
type: iut
client:
protocol:
name: quic
version: rfc9000
role: client
target: server # References server service
implementation:
name: picoquic
type: iut
Integration with PANTHER¤
Client-server protocols integrate with:
- Service Plugins - Implementation under test (IUT) and tester services
- Environment Plugins - Network and execution environments
- Core Framework - Event system and metrics collection
Getting Started¤
- Choose a protocol based on your testing requirements
- Select implementations from available service plugins
- Configure environment (Docker Compose, localhost, or Shadow NS)
- Run experiments using PANTHER's 4-phase execution model
For detailed examples, see Quick Start Guide.
Development¤
To create new client-server protocol plugins, see the Protocol Development Guide.