A Ovest Di Paperino

Welcome to the dark side.

Il caso dei trasferimenti lenti di messenger

E' da un po' che sono molto scocciato dall'infame messaggio "If you are experiencing a slow transfer rate, click here to find out why". Ieri, armato di santa pazienza e di nuovo router di zecca (un'altra storia da raccontare), ho cercato di capire PERCHE'!

Alcuni indizi:

  1. non dipende dalla versione di messenger (succede sia con la 8.1 Beta che con la 8.0)
  2. non dipende dal router (ne ho provati 4); o per lo meno: non dipende interamente dal router
  3. non dipende dall'ISP: connesso direttamente al modem tutto sembra funzionare alla perfezione
  4. non dipende dall'OS (in senso stretto): si verifica - in alcuni casi - anche su windows XP SP2
  5. non dipende dai vari firewall: si verifica anche quando i firewall sono completamente disattivati
  6. non dipende dal settaggio dell'UPnP del router: il problema si verifica anche quando l'UPnP e' attivato

Quando pensavo ormai di essere sfigato e basta, ho installato messenger sul mio mediacenter (XP SP2) e tutto funzionava alla perfezione... Ma allora cos'e'?

Un passo indietro.

Fino alla versione 5.x di messenger era necessario aprire a mano alcune porte sul firewall del router (6891-6900). Questo pero' semplicemente non funziona se dietro il firewall ci gira piu' di un client messenger. Infatti tale numero di porte e' limitato (10 in tutto) e finirebbe - in casi quasi estremi - per esaurisi facilmente. Dalle versioni successive il meccanismo e' cambiato e richiede un router in grado di supportare UPnP. L'idea non e' malvagia in quanto l'UPnP e' uno standard ormai quasi onnipresente su router di ogni marca e modello. L'UPnP espone un'interfaccia comune che rende facile per le applicazioni aprire una porta sul firewall al volo: per gli smanettoni qui c'e' il codice di esempio ed un tool pratico per verificare il funzionamento dell'UPnP del router con tanto di sorgente.

Quando tutto funziona correttamente durante l'inizio di una sessione di file transfer il messenger si fa una chiacchierata col router via UPnP e apre una porta (immagino a caso) da usare per il trasferimento. Se tale dialogo per qualche ragione non va a buon fine, messenger dirotta il trasferimento del file via server (di cui ignoro le modalita') ma che risulta estremamente lento e fa apparire l'odioso messaggio in cima alla finestra.

La domanda allora diventa: cos'e' che fa fallire questo dialogo? L'atroce scoperta avvenuta passata mezzanotte e' che il dialogo non "funziona" (solo per il file transfer; per l'audio funziona benissimo) se messenger gira con un token restricted (ovvero come utente normale e non amministratore). Questo purtroppo e' quello che accade di default in Vista (e per estensione sul portatile della formichina su cui gira XP SP2 in LUA mode): in realta' - baco a parte - questo e' un grosso vantaggio che vale da solo l'upgrade a Vista; mi riferisco al fatto che anche loggandosi come amministratori le applicazioni vengono lanciate con un token restricted. Un quick test lanciando messenger come "amministratore" ha confermato la mia ipotesi.

E cosi' il caso e' chiuso ed il baco e' aperto. Chi doveva essere notificato dell'obbrobrio e' gia' all'opera e immagino che, prima che Vista raggiunga i milioni di utenti, il baco sara' bel e sistemato.

Un ringraziamento a chi ha avuto la pazienza di mandarmi file a quasi ogni ora del giorno: aldino, vitonze, windrago e il contributore mascarato.

-quack