Un DDoS funziona rendendo un sistema a corto di una risorsa scarsa. Ciò che succede dipende quindi dalla risorsa che è esaurita.
Ad esempio, la risorsa potrebbe essere CPU. Gli aggressori inviano molte richieste e il server deve spendere alcune risorse della CPU per rispondere a queste richieste. Quando il carico aumenta, il server inizia a rispondere più lentamente, quindi diventa lento, quindi impiega così tanto tempo a rispondere che diventa praticamente inutilizzabile. Tuttavia, in questo caso, il kernel del server è ancora perfettamente in grado di gestire l'attività di rete e potrebbe connettersi a sistemi esterni senza alcun problema. Il codice in esecuzione sul server stesso avrà una CPU abbastanza piccola con cui lavorare (ad esempio se ci sono 500 thread simultanei che invocano il tempo della CPU, il codice avrà 1/500 delle normali capacità della macchina) ma questo può essere sufficiente, a seconda di cosa stai cercando di fare con quella connessione.
Quando la risorsa è la larghezza di banda della rete, le cose saranno più dure per la tua connessione extra in uscita. Una "rete saturata" significa che almeno una delle direzioni per il flusso di rete ("download" o "upload", dal punto di vista del server) è troppo piena di pacchetti per accogliere pacchetti aggiuntivi in modo tempestivo. Tuttavia, una connessione TCP richiede pacchetti in direzione entrambi , a partire dalla creazione della connessione ("l'handshake a tre vie") e per tutta la durata della connessione (poiché tutti i byte devono essere riconosciuti).
Se vuoi che la tua connessione in uscita continui mentre i fili sono saturi, devi QoS : un modo per "taggare" "i tuoi pacchetti in modo tale che i router coinvolti sappiano che questi pacchetti hanno la priorità. Questo può essere fatto in diversi modi; in particolare, è possibile indicare ai router di inviare pacchetti prioritari relativi a un numero di porta specifico (lo si farebbe con la porta 22, per consentire il traffico SSH al e dal server Web, anche quando il server Web annega sotto i pesanti pacchetti 80 della porta ).
Probabilmente, potresti configurare i router per considerare una connessione in uscita più importante del traffico in entrata, ma questo è complicato: un router può decidere che una determinata connessione è "in uscita" solo se ha visto i pacchetti iniziali e li ricorda. Una volta stabilita la connessione, è bidirezionale e simmetrica; non c'è più un "client" e un "server", solo due macchine che parlano tra loro. Se i router devono ricordare le cose, allora hai appena aggiunto un'altra risorsa scarsa (RAM sui router) che potrebbe diventare soggetta a DDoS.
Un punto cruciale è che il tuo server non è solo in un caso di rete DDoS: i pochi link e router "vicini" al tuo server (nel percorso di rete) soffrono anche dello stesso attacco . Ciò significa che se si desidera implementare QoS, è necessario farlo su più router, dal proprio server alla "grande infrastruttura" (che qui è presumibilmente non-DoSable, in quanto grande). Non puoi sistemarlo in modo affidabile modificando solo il tuo server; I DDoS di rete sono un concetto di infrastruttura che deve essere risolto a livello di infrastruttura.