// TL;DR — per chi ha già il packet loss e vuole solo la soluzione

Premessa: la guerra interna

Buongiorno Signori. Eravate probabilmente qui per un writeup su CVE recenti, qualche analisi di cyberwarfare, magari un deep-dive su architetture cloud. E invece siamo qui a parlare di TIM. Non perché voglia farlo — assolutamente no. Ma quando paghi un Gigabit, scarichi a 26 Mbps, e il supporto ti chiude il ticket come «risolto» senza che nessuno abbia fatto un cazzo, a un certo punto apri il text editor.

// Contesto geopolitico-finanziario (ovvero: di chi è la colpa strutturalmente)

Poste Italiane ha acquisito una quota del 25% di TIM diventandone l'azionista di maggioranza e ottenendo di fatto il controllo della società. Un'azienda che consegna pacchi — spesso al vicino sbagliato, spesso con tre giorni di ritardo — ora gestisce l'infrastruttura di telecomunicazioni nazionale. Speriamo che i pacchetti di rete vengano instradati meglio dei pacchi fisici. Spoiler: non è così.

Questo writeup esiste per tutti coloro che hanno subito una prevaricazione tecnologica da parte di TIM — termine che uso deliberatamente invece di quello che vorrei scrivere, per motivi di diffide. Sto vedendo un sacco di post su Reddit e forum di gaming di gente con packet loss inspiegabile su GeForce Now con TIM FTTH. Questo è il posto giusto. Avvicinatevi. Siamo tanti.

Aiuto Aldo Giovanni Giacomo GIFfrom Aiuto GIFs

Venerdì 27 Febbraio 2026: l'ignominia si manifesta

Stavo per ultimare la mia sessione su ArcRaiders prima del wipe. Chiunque conosca il gaming sa quanto questo momento sia sacro. E allora, come insegna la legge di Murphy — il principio empirico per cui tutto ciò che può andare storto, andrà storto, nel peggior momento possibile — avviene la magia.

// STATISTICHE DI RETE — ORE IGNOTE DI UN VENERDÌ SERA
Lo scenario del delitto
MetricaValoreStatus
Larghezza di banda>100 Mbps✓ OK
Latenza<20 ms✓ OK
Packet Loss12.5%✗ CRITICO
ConnessioneCavo Ethernet✓ OK

Per chi usa servizi in cloud per il gaming, una perdita di pacchetti così elevata è, in termini aulici, una condizione di esperienza utente notevolmente al di sotto delle aspettative contrattuali. In termini meno aulici: sono uccelli senza zucchero.

La fase di esclusione: non sono io, è lui

Prima di accusare chiunque, ho fatto l'unica cosa sensata: escludere sistematicamente ogni variabile del mio ambiente. Lista completa delle torture inflitte alla mia rete domestica:

Ed è qui che avviene la vera magia: sull'hotspot mobile, perdita di pacchetti = 0%. Larghezza di banda nella media mobile, latenza paragonabile alla velocità di risposta di un funzionario pubblico in vacanza — ma zero perdita di pacchetti. Il problema non era nel mio hardware. Era nella rete TIM.

Niente Di Serio Sìma Niente Di Serio GIFfrom Niente Di Serio GIFs

Il supporto Nvidia: un'oasi nel deserto

Ho contattato Nvidia EU per segnalare il problema. Sito Nvidia, assistenza tecnica, chat con operatore. In due minuti ero in contatto con una persona in carne e ossa che chattava con me, non con un bot che mi chiedeva se avessi provato a spegnere e riaccendere. Mi fido (fu una pessima scelta, col senno di poi, ma non per colpa di Nvidia). Dopo alcuni giorni, ho contattato anche Nvidia USA, che ha confermato: zero problemi rilevati lato loro.

// Nota a margine sul supporto Nvidia USA

L'operatore Nvidia USA mi ha inizialmente risposto pensando che fossi un'altra persona, iniziando a condividere dati sensibili di un altro utente. Ho interrotto subito e segnalato l'errore. Un problema serio di gestione delle sessioni di supporto, ma risolto in tempo reale.

Il supporto TIM: benvenuti nell'antro di Angie

Avete presente la chat dove in due minuti entrate in contatto con un operatore umano? Dimenticatela completamente. TIM ha Angie. Angie è un chatbot senza cuore, senza cervello, programmato per non lasciarvi mai arrivare al punto. Ogni risposta apre un menù, ogni menù porta a una soluzione sbagliata, ogni soluzione sbagliata ti riporta all'inizio. È un loop infinito progettato da qualcuno che odia gli esseri umani.

Dopo aver trovato la combinazione esatta di risposte per raggiungere il box di segnalazione libera — nascosto come l'accesso a un dungeon segreto in un JRPG degli anni '90 — ho inviato il problema. Risposta dopo mezz'ora: «Risolto?». Nessuna notifica. Nessuna chiamata. Solo un ticket chiuso unilateralmente da qualcuno che evidentemente non ha fatto nulla.

Ho aperto 5 ticket. Li ho riaperti almeno una decina di volte ciascuno. Risultato ogni volta: «Risolto». Senza che nessuno chiamasse. Senza che nessuno intervenisse. Così ho chiamato io. 54 minuti in attesa. Trasferimento al tecnico. Linea caduta. Riprovato: 24 minuti in attesa. Linea caduta due secondi prima del trasferimento. La rete TIM — quella che stavo segnalando essere rotta — ha eliminato due mie telefonate al supporto di TIM. Applausi.

// L'apice della trattativa

Dopo alcune segnalazioni con terminologia non propriamente da convegno accademico, ho ricevuto una telefonata da un tecnico (o presunto tale) che con voce flebile mi chiede: «Non c'è alcun problema, ha provato a riavviare il modem?». Ho risposto di sì, ho elencato tutto quello che avevo fatto. Risposta finale: «Ah ma a noi non risulta nulla». Fine della telefonata.

// Il colpo di scena: il tecnico a pagamento

Ma la cosa più bella — e la uso in senso completamente inverso — viene dopo. Alla fine della stessa telefonata, dopo aver stabilito insieme che il problema esiste (packet loss misurabile, documentato, riproducibile su rete TIM e assente su hotspot), il tecnico mi propone la soluzione: mandare un tecnico a casa mia. A pagamento.

Io. Che pago già il canone mensile. Per un servizio che non funziona. Devo pagare un'ulteriore prestazione per far venire qualcuno a diagnosticare che il servizio che sto pagando non funziona. Perché il bug è nella rete TIM — non nel mio impianto, non nel mio hardware, nella rete TIM. Documentato. Riproducibile. Confermato anche da Nvidia.

Ovviamente ho declinato. E ho continuato a tenere aperto il ticket.

Il problema è ancora in lavorazione mentre scrivo questo. Non è risolto. Il ticket è ancora aperto — o meglio: è stato chiuso come «risolto» almeno cinque volte, e riaperto altrettante. La situazione attuale è esattamente quella descritta in questo articolo: rete rotta, workaround VPN attivo, TIM silente. Aggiornamenti seguiranno.

Il troubleshooting vero: quando si smette di aspettare TIM

Arrivati a questo punto, con la consapevolezza che TIM non avrebbe risolto nulla da sola, ho deciso di fare quello che si fa quando il supporto non supporta: diagnosticare da soli e raccogliere prove schiaccianti. Di seguito trovate ogni comando, ogni test, e cosa mi ha detto ciascuno di essi.

Step 1 — Identificare interfacce e gateway

Prima di sparare comandi a caso, bisogna capire con cosa si ha a che fare. Il sistema: MacBook Pro su macOS, connesso via USB Ethernet al router TIM AGGPON_2024. Il WiFi era attivo contemporaneamente — primo dettaglio importante.

# Vediamo tutti i servizi di rete disponibili
networksetup -listallnetworkservices

# Identifichiamo le interfacce attive (en0 = WiFi, en6 = USB Ethernet)
ifconfig | grep -E "^(en|utun|lo)"

# Chi è il gateway? (il router TIM)
netstat -rn | grep "^default"

Risultato: gateway 192.168.1.1 (router TIM), interfaccia primaria en6 via USB Ethernet con IP 192.168.1.x, WiFi en0 con IP 192.168.1.y — entrambe attive. Per chiarire le priorità:

# Verifica ordine di priorità dei servizi di rete
networksetup -listnetworkserviceorder

# Risultato:
# 1. USB 10/100/1000 LAN (en6) ← priorità più alta
# 2. Wi-Fi (en0)

Bene. Il traffico passa da Ethernet, come dovrebbe. Il problema non è nell'ordine delle interfacce.

Step 2 — Test ping base: dove il problema si nasconde

Il comando ping è il bisturi base della diagnostica di rete. Manda piccoli pacchetti ICMP a una destinazione e misura quanti tornano indietro e in quanto tempo. Ho testato quattro destinazioni chiave.

# Router locale — il primo hop, sempre testare per primo
ping -c 50 -i 0.2 192.168.1.1

# Google DNS — destinazione pubblica stabile e affidabile
ping -c 50 -i 0.2 8.8.8.8

# Cloudflare — seconda destinazione pubblica per conferma
ping -c 50 -i 0.2 1.1.1.1

# Server GeForce Now EU — la destinazione del problema
ping -c 50 -i 0.2 185.56.218.1
DestinazioneLossRTT medioValutazione
192.168.1.1 (router)0.0%0.8 msOK
8.8.8.8 (Google)0.0%9.7 msOK
1.1.1.1 (Cloudflare)0.0%11.8 msOK
185.56.218.1 (GFN EU)0.0%62 msOK (apparentemente)

Nessuna perdita. Tutto funziona. Ed è esattamente qui che il problema diventa interessante — e un po' subdolo. Con pacchetti piccoli (ICMP standard, ~64 byte), non c'è perdita. Il bug si nasconde altrove.

Step 3 — Test ad alta frequenza: il jitter si fa vivo

GeForce Now e i servizi di cloud gaming non mandano un pacchetto al secondo — ne mandano decine o centinaia. Per simulare quel carico, ho alzato la frequenza dei ping.

# Frequenza alta: 20 pacchetti al secondo verso Google
ping -c 100 -i 0.05 8.8.8.8

# Frequenza alta verso il server GFN
ping -c 100 -i 0.05 185.56.218.1

Risultati rivelatori: verso Google 1% di perdita a 20 pacchetti/secondo. Verso GFN, nessuna perdita ma jitter abnorme — minimo 50ms, media 101ms, massimo 581ms, dev std 86ms. Qualcosa stava andando storto, ma non abbastanza da essere ovvio. Era ora di tirare fuori il traceroute.

Step 4 — Traceroute: mappare il percorso del problema

Il traceroute è come mettere un GPS su ogni pacchetto che esce dalla tua macchina. Ti dice esattamente da quale nodo a quale nodo viaggia il traffico, e quanto tempo impiega in ogni tratto. Permette di identificare dove la rete inizia a comportarsi male.

# -n: niente DNS reverse lookup (più veloce)
# -q 10: 10 probe per hop (più affidabile statisticamente)
# -w 3: timeout 3 secondi per hop
traceroute -n -q 10 -w 3 185.56.218.1
# Percorso verso i server GeForce Now EU
Hop  1:  192.168.1.1          →  0.8 ms    (router TIM, stabile)
Hop  2:  * * *                →  ICMP bloccato (normale)
Hop  3:  172.17.112.60/64     →  5-8 ms    (rete TIM, stabile)
Hop  4:  172.17.112.90-102    →  6-8 ms    (rete TIM, stabile)
Hop  5:  172.19.184.24-30     →  10 ms     (backbone TIM, stabile)
Hop  6:  172.19.177.10-66     →  9-10 ms   (backbone TIM, stabile)
Hop  7:  195.22.192/205.x     →  9-12 ms   (transit TIM, stabile)
Hop  8:  195.22.192.117/119   →  25-29 ms  (backbone internazionale, stabile)
Hop  9:  185.100.113.154-157  →  26-30 ms  (ingresso rete GFN, stabile)
Hop 10:  185.8.179.45/46      →  28-48 ms  (infrastruttura GFN)
Hop 11:  185.8.179.37/38      →  29-33 ms  (infrastruttura GFN)
Hop 12:  192.168.10.26/70     →  47-59 ms  + 4/10 timeout ← segnale
Hop 13:  185.56.218.1         →  56-79 ms  + picchi 143ms, 218ms ← destinazione

Osservazione critica: il percorso TIM dagli hop 1 a 9 è completamente stabile. Il problema sembra apparire agli hop 12-13 nell'infrastruttura GFN. Ma aspettate — questo è fuorviante. Il jitter agli hop finali non è originato lì. È una conseguenza di qualcosa che accade prima, silenziosamente.

Step 5 — Il colpevole: MTU e il PPPoE di TIM

MTU significa Maximum Transmission Unit: la dimensione massima di un pacchetto che può attraversare un link di rete. Su Ethernet standard è 1500 byte. Ma la fibra TIM usa PPPoE (Point-to-Point Protocol over Ethernet) internamente, che aggiunge 8 byte di overhead. Risultato: il limite reale scende a 1492 byte.

Per verificare questa ipotesi, ho usato il flag -D del ping — che imposta il bit Don't Fragment sul pacchetto. Questo dice alla rete: «non spezzare questo pacchetto, o droppalo». Poi ho variato la dimensione del payload.

# Payload 1400 byte → pacchetto totale 1428 byte (sotto il limite)
ping -c 10 -D -s 1400 185.56.218.1

# Payload 1472 byte → pacchetto totale 1500 byte (al limite Ethernet)
ping -c 10 -D -s 1472 185.56.218.1
// Risultato rivelatore

Payload 1400B (totale 1428B): 0% loss
Payload 1472B (totale 1500B): 100% loss

I pacchetti grandi spariscono nel nulla. Senza avviso. Senza errore. Semplicemente: niente.

Per trovare l'MTU esatto, ho fatto una ricerca binaria — testando dimensioni crescenti fino al punto di rottura.

# Binary search dell'MTU effettivo
for size in 1460 1465 1470 1471 1472; do
    ping -c 5 -W 2000 -D -s $size 185.56.218.1
done
PayloadTotaleLoss verso GFNLoss verso 8.8.8.8
1460 B1488 B0%0%
1465 B1493 B100%100%
1470 B1498 B60%100%
1472 B1500 B60%100%

Il path MTU effettivo è 1492 byte. Esattamente il limite standard PPPoE. Confermato. Ma il problema non è che il limite esiste — il problema è come TIM gestisce i pacchetti che lo superano.

La causa root: ICMP Black Hole

Quando un router riceve un pacchetto troppo grande con il bit DF impostato, dovrebbe rispondere al mittente con un messaggio ICMP «Fragmentation Needed» — in pratica: «ehi, il tuo pacchetto è troppo grande, mandamelo più piccolo». Questo meccanismo si chiama Path MTU Discovery (PMTUD) ed è fondamentale per il funzionamento corretto di qualsiasi connessione.

# Comportamento CORRETTO (quello che NON sta succedendo)
NVIDIA invia UDP 1470B → Router TIM → "troppo grande per PPPoE"
Router TIM → ICMP "Fragmentation Needed" → NVIDIA
NVIDIA riduce pacchetti a ≤1464B → tutto funziona ✓

# Comportamento EFFETTIVO (il bug TIM)
NVIDIA invia UDP 1470B → Router TIM → DROP SILENZIOSO 🕳️
NVIDIA non riceve nessun avviso → continua a mandare 1470B
→ loop → 10% packet loss → GFN ingiocabile

Questo si chiama ICMP Black Hole: il router droppa i pacchetti troppo grandi ma non invia il messaggio ICMP «Fragmentation Needed» al mittente. NVIDIA non scopre mai il limite e continua a mandare pacchetti che vengono silenziosamente eliminati.

// Impatto nascosto: non è solo GeForce Now

Lo stesso meccanismo colpisce tutta la banda in download. I pacchetti TCP da 1500 byte che arrivano da Internet vengono droppati dal router TIM. Il TCP si ingolfa nelle ritrasmissioni. L'upload funziona perché la direzione uscente non subisce lo stesso problema. Risultato: 26 Mbps in download su una linea da 1 Gbps. Ovvero il 2.6% di quanto si sta pagando.

Soluzioni testate (e cosa non funziona)

Fix Mac-side MTU — non risolve

Prima ipotesi: abbassare l'MTU dell'interfaccia del Mac in modo da non mandare mai pacchetti più grandi di 1464 byte.

# Abbasso l'MTU dell'interfaccia Ethernet
sudo ifconfig en6 mtu 1464

Risultato: non risolve. Il problema è sui pacchetti in arrivo dal server GFN, non in uscita. Il server GFN non conosce il nostro limite MTU (nessuno glielo ha comunicato) e continua a mandare pacchetti grandi che vengono droppati.

Cloudflare WARP — peggiora

# WARP usa MASQUE/QUIC (UDP) — soggetto allo stesso bug MTU
warp-cli connect
ping -c 100 -i 0.05 185.56.218.1
# Risultato: 18-40% packet loss. Peggio di prima.

WARP usa UDP come trasporto. UDP con pacchetti grandi. Lo stesso identico problema. Anzi, peggio: 18-40% di perdita. Ho provato anche a bloccare QUIC per forzare WARP su TCP.

# Blocco QUIC per forzare WARP su HTTP/2 TCP
sudo pfctl -e
echo "block out proto udp to any port 443" | sudo pfctl -f -
warp-cli connect
# Risultato: 20% packet loss, jitter max 627ms. Anche peggio.

# Ripristino sistema
sudo pfctl -f /etc/pf.conf
warp-cli disconnect
sudo ifconfig en6 mtu 1500

Anche in modalità HTTP/2 TCP, WARP non funziona in questa configurazione. Non è la soluzione.

✅ ProtonVPN con WireGuard (TCP) — risolve

ProtonVPN in modalità WireGuard (TCP) risolve il problema perché imposta automaticamente il suo tunnel a MTU 1380 byte — ben sotto il limite PPPoE di 1492. Il TCP si occupa della negoziazione MSS, aggirando completamente l'ICMP Black Hole di TIM.

# Come funziona il tunnel:
# [GFN UDP grandi] → [WireGuard TCP, MTU 1380] → TIM (pacchetti ≤1380B < 1492) → ✓

# Configurazione in ProtonVPN:
# Settings → Protocol → WireGuard (TCP)

# Verifica stato VPN
scutil --nc list
MetricaSenza VPNCon VPN freeCon VPN paid (atteso)
Bandwidth download>100 Mbps (ma 26 effettivi)~3 Mbps (throttled)~900 Mbps
Packet loss8.8%0.0% ✓0.0% ✓
Latenza18 ms42 ms~25-35 ms

Il verdetto tecnico

ComponenteStato
Hardware Mac✓ OK
Cavo/Ethernet USB✓ OK
Router TIM (locale)✓ OK (0ms jitter)
Fibra fisica TIM✓ OK (910 Mbps upload)
PPPoE MTU TIM❌ BUG: ICMP Black Hole
Server GeForce Now✓ OK

Linea contrattuale: Gigabit fiber. Download effettivo senza fix: ~26 Mbps (2.6% del contratto). Download effettivo con ProtonVPN WireGuard TCP: ~900 Mbps.

I fix — perché TIM non lo farà al posto tuo

// FIX 01 — IMMEDIATO · funziona adesso
ProtonVPN con WireGuard (TCP)

Il fix che funziona subito, senza aspettare TIM e senza sperare in miracoli. Piano consigliato: Proton Unlimited (~10€/mese annuale). Protocollo: WireGuard (TCP). Server consigliati: Italia o Germania per latenza minima.

Con questo setup: banda piena (~900 Mbps), packet loss 0%, GFN giocabile a qualsiasi qualità. Latenza aggiuntiva: ~10-15 ms. Costo: ~10€/mese. Sì, stai pagando una VPN per usare la connessione da un Gigabit che già paghi. No, non è normale. Sì, è colpa di TIM.

// FIX 02 — DEFINITIVO · teoricamente · ticket ancora aperto
Chiamare TIM — secondo livello, frase tecnica precisa

Richiedere esplicitamente un tecnico di secondo livello. Non primo livello. Non Angie. Non il tizio che chiede se hai riavviato il modem. Secondo livello. Se ti propongono un intervento tecnico a pagamento: rifiutare. Il problema è nella rete TIM, non nell'impianto domestico. Non è il tuo hardware da far pagare. Usare esattamente questa frase:

// La frase magica da dire a TIM

«Ho un problema di ICMP black hole sulla mia connessione FTTH. Il router AGGPON_2024 droppa i pacchetti IP con dimensione superiore a 1492 byte senza inviare messaggi ICMP 'Fragmentation Needed' al mittente. Questo causa perdita di pacchetti su applicazioni che usano UDP con DF bit impostato e limita la banda in download a circa 26 Mbps su una linea da 1 Gbps. Chiedo al NOC di verificare il PPPoE MTU e il MSS clamping sulla mia linea.»

Allegare come prove: screenshot fast.com (26 Mbps download / 910 Mbps upload), screenshot GFN con 0% loss con VPN e 8.8% senza, questo articolo. Avvertenza: il mio problema è ancora aperto. Non ho ancora conferma che questa procedura funzioni. Aggiornamenti seguiranno.

// FIX 03 — ESCALATION · se TIM fa finta di niente
Reclamo AGCOM

Se TIM continua a chiudere i ticket come «risolto» senza intervento reale, o a proporre tecnici a pagamento per problemi di rete dell'operatore, aprire un reclamo formale all'AGCOM (Autorità per le Garanzie nelle Comunicazioni): agcom.it.

TIM è contrattualmente obbligata a erogare la banda concordata. Un download a 26 Mbps su una linea da 1 Gbps non è un'interpretazione — è un inadempimento contrattuale misurabile, documentabile e sanzionabile. La proposta di far pagare al cliente un tecnico per un bug nella rete dell'operatore è, nel migliore dei casi, un'operazione commerciale di dubbio gusto.

Comandi di riferimento rapido

# Verifica MTU path verso un host — se 100% loss, il path MTU è inferiore al payload+28
ping -c 5 -W 2000 -D -s 1465 185.56.218.1

# Traceroute completo verso i server GFN
traceroute -n -q 10 -w 3 185.56.218.1

# Speed test da terminale (macOS)
START=$(date +%s%N)
BYTES=$(curl -s -o /dev/null -w "%{size_download}" "https://speed.cloudflare.com/__down?bytes=50000000")
END=$(date +%s%N)
echo "scale=1; $BYTES * 8 / 1000000 / (($END - $START) / 1000000000)" | bc

# Verifica quale interfaccia gestisce il traffico verso GFN
route get 185.56.218.1

# Statistiche errori su entrambe le interfacce (en0 WiFi, en6 USB Ethernet)
netstat -i | grep -E "en0|en6"

# Abbassare MTU lato Mac (workaround parziale — non risolve GFN)
sudo ifconfig en6 mtu 1464

# Ripristinare MTU standard
sudo ifconfig en6 mtu 1500

// Epilogo: «Stay With Me» di Miki Matsubara in sottofondo. Vent'anni di Vodafone nella vecchia casa. Zero problemi. Zero ticket. Zero proposte di tecnici a pagamento per problemi dell'operatore.
// Sapevo che questo momento sarebbe arrivato — l'unica fibra FTTH disponibile nella nuova casa era TIM. Si accetta il proprio destino. Si apre una VPN. Si scrive un post.
// Il ticket è ancora aperto. La VPN è ancora attiva. TIM non si è ancora fatta viva. Buona continuazione.