Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Expert skill for network performance analysis and optimization. Analyze packet captures, identify network latency bottlenecks, configure TCP tuning parameters, analyze connection pooling behavior, debug TLS handshake performance, and optimize HTTP/2 and HTTP/3 settings.
.claude/skills/a5c-ai-network-performance/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 58% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 59% | 0% |
| case-07 | ✓→✗ | ▼ Worse | 182% | 0% |
| case-03 | ✓→✓ | = Same ✓ | 427% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 339% | 0% |
You are network-performance - a specialized skill for network performance analysis and optimization. This skill provides expert capabilities for identifying and resolving network-related performance bottlenecks across TCP/IP, TLS, HTTP/2, and HTTP/3 protocols.
This skill enables AI-powered network performance operations including:
Analyze and optimize TCP performance:
bash# Capture TCP packets for analysis tcpdump -i eth0 -nn -tttt -s 0 \ 'tcp port 443 and host api.example.com' \ -w capture.pcap -c 10000 # Analyze with tshark tshark -r capture.pcap -q -z io,stat,1,"tcp" # Extract TCP RTT statistics tshark -r capture.pcap \ -T fields -e tcp.analysis.ack_rtt \ -Y "tcp.analysis.ack_rtt" | \ awk '{sum+=$1; count++} END {print "Avg RTT:", sum/count*1000, "ms"}' # Check for retransmissions tshark -r capture.pcap -q -z expert,error tshark -r capture.pcap -Y "tcp.analysis.retransmission" | wc -l # Connection state analysis with ss ss -tni state established '( sport = :443 or dport = :443 )'
Configure optimal TCP parameters:
bash# /etc/sysctl.conf for Linux TCP tuning # Buffer sizes (for high-bandwidth connections) net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.core.rmem_default = 1048576 net.core.wmem_default = 1048576 # TCP buffer auto-tuning net.ipv4.tcp_rmem = 4096 1048576 16777216 net.ipv4.tcp_wmem = 4096 1048576 16777216 # Congestion control (BBR recommended for modern networks) net.core.default_qdisc = fq net.ipv4.tcp_congestion_control = bbr # Connection handling net.ipv4.tcp_max_syn_backlog = 65535 net.core.somaxconn = 65535 net.ipv4.tcp_fin_timeout = 15 net.ipv4.tcp_keepalive_time = 600 net.ipv4.tcp_keepalive_intvl = 60 net.ipv4.tcp_keepalive_probes = 5 # TIME_WAIT handling net.ipv4.tcp_tw_reuse = 1 net.ipv4.ip_local_port_range = 10000 65535 # Window scaling and SACK net.ipv4.tcp_window_scaling = 1 net.ipv4.tcp_sack = 1 net.ipv4.tcp_timestamps = 1 # Apply changes sysctl -p
Analyze and optimize connection pooling:
bash# Monitor connection states watch -n 1 'ss -s' # Count connections by state ss -tan | awk '{print $1}' | sort | uniq -c | sort -rn # Find connection pools exhaustion ss -tn state time-wait | wc -l ss -tn state established dst :443 | wc -l # Analyze connection duration with tcpdump tcpdump -nn -tt -r capture.pcap 'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0' | \ awk '{print $1, $3, $5}' | sort
python# Connection pool configuration (Python requests) import requests from requests.adapters import HTTPAdapter from urllib3.util.retry import Retry # Configure connection pooling session = requests.Session() adapter = HTTPAdapter( pool_connections=100, # Number of connection pools pool_maxsize=100, # Connections per pool max_retries=Retry( total=3, backoff_factor=0.5, status_forcelist=[500, 502, 503, 504] ), pool_block=False # Don't block when pool is full ) session.mount('https://', adapter) session.mount('http://', adapter) # Configure timeouts response = session.get( 'https://api.example.com/data', timeout=(3.05, 30) # (connect_timeout, read_timeout) )
Analyze and optimize TLS performance:
bash# Measure TLS handshake time curl -w "DNS: %{time_namelookup}s\nConnect: %{time_connect}s\nTLS: %{time_appconnect}s\nTotal: %{time_total}s\n" \ -o /dev/null -s https://api.example.com/health # Detailed TLS handshake analysis openssl s_client -connect api.example.com:443 -msg -trace 2>&1 | \ grep -E "^(<<<|>>>|SSL)" # Check TLS session resumption for i in {1..3}; do curl -w "TLS time: %{time_appconnect}s\n" -o /dev/null -s https://api.example.com/ done # Verify TLS 1.3 support curl -v --tlsv1.3 https://api.example.com/ 2>&1 | grep TLSv1.3
nginx# Nginx TLS optimization ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers off; # Session resumption ssl_session_cache shared:SSL:50m; ssl_session_timeout 1d; ssl_session_tickets off; # OCSP Stapling ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 5s; # 0-RTT (Early Data) for TLS 1.3 ssl_early_data on;
Configure HTTP/2 for optimal performance:
nginx# Nginx HTTP/2 configuration server { listen 443 ssl http2; # HTTP/2 specific settings http2_max_concurrent_streams 128; http2_max_field_size 8k; http2_max_header_size 32k; http2_recv_buffer_size 256k; http2_idle_timeout 3m; # Server push (use sparingly) http2_push /css/main.css; http2_push /js/app.js; # Connection settings keepalive_timeout 65; keepalive_requests 1000; }
bash# Verify HTTP/2 multiplexing curl -w '\nHTTP Version: %{http_version}\n' --http2 \ -o /dev/null -s https://api.example.com/ # Check HTTP/2 support curl -I --http2 -s https://api.example.com/ | head -1 # Analyze HTTP/2 frames nghttp -v https://api.example.com/
Configure HTTP/3 for modern networks:
bash# Test HTTP/3 support curl --http3 -I https://api.example.com/ # Analyze QUIC connection curl --http3 -v https://api.example.com/ 2>&1 | grep -i quic
nginx# Nginx HTTP/3 (with nginx-quic) server { listen 443 ssl http2; listen 443 quic reuseport; # HTTP/3 specific add_header Alt-Svc 'h3=":443"; ma=86400'; ssl_protocols TLSv1.3; # Required for QUIC }
Comprehensive latency analysis:
bash# MTR for path analysis mtr --report -c 100 api.example.com # Traceroute with timing traceroute -I api.example.com # DNS latency time dig +short api.example.com # Per-hop latency analysis tcptraceroute api.example.com 443 # Application-level latency breakdown curl -w @- -o /dev/null -s "https://api.example.com/health" <<'EOF' DNS Lookup: %{time_namelookup}s\n TCP Connect: %{time_connect}s\n TLS Handshake: %{time_appconnect}s\n Server Processing: %{time_starttransfer}s\n Total Time: %{time_total}s\n Download Speed: %{speed_download} bytes/s\n EOF
Measure network throughput:
bash# iperf3 server iperf3 -s # iperf3 client (TCP) iperf3 -c server.example.com -t 30 -P 4 # iperf3 with JSON output iperf3 -c server.example.com -t 10 -J > results.json # Test download throughput curl -o /dev/null -w "Speed: %{speed_download} bytes/s\n" \ https://cdn.example.com/large-file.bin # Measure with multiple connections aria2c -x 16 -s 16 https://cdn.example.com/large-file.bin --dry-run
This skill can leverage the following MCP servers:
| Server | Description | Use Case | |--------|-------------|----------| | mcp-monitor | System monitoring | Network I/O metrics | | mcp-kubernetes | K8s networking | Service mesh analysis | | Cilium Hubble (via Azure K8s MCP) | Network monitoring | Kubernetes network flow |
This skill integrates with the following processes:
network-io-optimization.js - Network optimization workflowsdisk-io-profiling.js - Related I/O analysislatency-analysis-reduction - End-to-end latency optimizationWhen executing operations, provide structured output:
json{ "operation": "analyze-network-performance", "status": "success", "analysis": { "latency": { "dnsLookup": "15ms", "tcpConnect": "25ms", "tlsHandshake": "45ms", "serverProcessing": "120ms", "total": "205ms" }, "tcp": { "retransmissionRate": "0.1%", "avgRtt": "28ms", "congestionControl": "bbr", "windowSize": "64KB" }, "tls": { "version": "TLSv1.3", "cipher": "TLS_AES_256_GCM_SHA384", "sessionResumed": true } }, "recommendations": [ { "category": "tls", "issue": "TLS 1.2 in use", "action": "Upgrade to TLS 1.3 for faster handshakes", "estimatedImprovement": "50ms" } ] }
| Error | Cause | Resolution | |-------|-------|------------| | High retransmission rate | Packet loss, congestion | Check network path, enable FEC | | Slow DNS resolution | DNS server latency | Use local resolver, enable caching | | TLS handshake timeout | Server overload | Enable session resumption | | Connection pool exhaustion | High concurrency | Increase pool size, check TIME_WAIT | | HTTP/2 stream limits | Too many concurrent requests | Increase stream limits |
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 18,128 | 27,420 | +51% | 1 | 1 | 0% | 3,502 | 5,548 | +58% | 0 | 0 | — |
case-02 | fail→pass | 19,854 | 12,063 | -39% | 1 | 1 | 0% | 3,732 | 5,925 | +59% | 0 | 0 | — |
case-03 | pass→pass | 8,774 | 3,505 | -60% | 1 | 1 | 0% | 781 | 4,115 | +427% | 0 | 0 | — |
case-04 | pass→pass | 5,394 | 7,196 | +33% | 1 | 1 | 0% | 1,114 | 4,892 | +339% | 0 | 0 | — |
case-05 | pass→pass | 5,354 | 4,524 | -16% | 1 | 1 | 0% | 972 | 4,290 | +341% | 0 | 0 | — |
case-06 | pass→pass | 7,692 | 5,564 | -28% | 1 | 1 | 0% | 1,459 | 4,516 | +210% | 0 | 0 | — |
case-07 | pass→fail | 13,267 | 17,568 | +32% | 1 | 1 | 0% | 2,179 | 6,153 | +182% | 0 | 0 | — |
case-08 | pass→pass | 8,200 | 7,462 | -9% | 1 | 1 | 0% | 1,593 | 4,822 | +203% | 0 | 0 | — |
case-09 | pass→pass | 12,617 | 8,263 | -35% | 1 | 1 | 0% | 1,979 | 4,941 | +150% | 0 | 0 | — |
case-10 | pass→pass | 5,695 | 4,146 | -27% | 1 | 1 | 0% | 1,165 | 4,158 | +257% | 0 | 0 | — |
case-11 | pass→pass | 8,952 | 6,925 | -23% | 1 | 1 | 0% | 1,504 | 4,957 | +230% | 0 | 0 | — |
case-12 | pass→pass | 7,003 | 6,063 | -13% | 1 | 1 | 0% | 1,452 | 4,574 | +215% | 0 | 0 | — |
case-13 | pass→pass | 6,872 | 5,615 | -18% | 1 | 1 | 0% | 1,464 | 4,550 | +211% | 0 | 0 | — |
case-14 | pass→pass | 5,409 | 5,354 | -1% | 1 | 1 | 0% | 1,034 | 4,151 | +301% | 0 | 0 | — |
case-15 | pass→pass | 3,561 | 4,568 | +28% | 1 | 1 | 0% | 521 | 4,275 | +721% | 0 | 0 | — |
case-16 | pass→pass | 6,448 | 6,110 | -5% | 1 | 1 | 0% | 1,233 | 4,628 | +275% | 0 | 0 | — |
case-17 | pass→pass | 6,697 | 5,760 | -14% | 1 | 1 | 0% | 1,290 | 4,214 | +227% | 0 | 0 | — |
case-18 | pass→pass | 20,785 | 7,073 | -66% | 1 | 1 | 0% | 3,708 | 4,795 | +29% | 0 | 0 | — |
case-19 | pass→pass | 8,849 | 12,269 | +39% | 1 | 1 | 0% | 1,800 | 5,807 | +223% | 0 | 0 | — |
case-20 | pass→pass | 7,754 | 5,235 | -32% | 1 | 1 | 0% | 1,412 | 4,196 | +197% | 0 | 0 | — |
case-21 | pass→pass | 9,265 | 9,091 | -2% | 1 | 1 | 0% | 1,816 | 5,156 | +184% | 0 | 0 | — |
case-22 | pass→pass | 15,134 | 15,866 | +5% | 1 | 1 | 0% | 2,736 | 6,027 | +120% | 0 | 0 | — |
case-23 | pass→pass | 6,293 | 4,190 | -33% | 1 | 1 | 0% | 1,146 | 4,162 | +263% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +4 percentage points is the difference between those two pass rates over the 23 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.