J'ai le problème suivant: lorsque je récupère une page de Hackage , j'obtiens un délai important (environ 30 secondes). Les autres demandes sont rapides, mais si je ne me connecte pas pendant quelques minutes, le problème revient.
Ce qui est intéressant à propos de ce problème, c'est:
- il est spécifique à ce site particulier (Hackage) - je n'ai pas de problème similaire avec un autre site (et j'en visite pas mal);
- cela semble être spécifique à mon FAI - lorsque je me connecte depuis d'autres endroits, il n'y a pas un tel problème;
ce n'est pas lié à des problèmes de DNS ou de connectivité - en fait, la connexion TCP est établie rapidement; c'est la réponse HTTP qui prend trop de temps, comme le montre l'exemple de capture de paquets suivant:
1 0.000000000 192.168.1.101 -> 66.193.37.204 TCP 66 41518 > http [SYN] Seq=0 Win=13600 Len=0 MSS=1360 SACK_PERM=1 WS=16 2 0.205708000 66.193.37.204 -> 192.168.1.101 TCP 66 http > 41518 [SYN, ACK] Seq=0 Ack=1 Win=5840 Len=0 MSS=1440 SACK_PERM=1 WS=128 3 0.205759000 192.168.1.101 -> 66.193.37.204 TCP 54 41518 > http [ACK] Seq=1 Ack=1 Win=13600 Len=0 4 0.205846000 192.168.1.101 -> 66.193.37.204 HTTP 158 GET /packages/hackage.html HTTP/1.1 5 0.406461000 66.193.37.204 -> 192.168.1.101 TCP 54 http > 41518 [ACK] Seq=1 Ack=105 Win=5888 Len=0 6 28.433860000 66.193.37.204 -> 192.168.1.101 TCP 1494 [TCP segment of a reassembled PDU] 7 28.433904000 192.168.1.101 -> 66.193.37.204 TCP 54 41518 > http [ACK] Seq=105 Ack=1441 Win=16480 Len=0 8 28.434211000 66.193.37.204 -> 192.168.1.101 HTTP 1404 HTTP/1.1 200 OK (text/html) 9 28.434228000 192.168.1.101 -> 66.193.37.204 TCP 54 41518 > http [ACK] Seq=105 Ack=2791 Win=19360 Len=0 10 28.434437000 192.168.1.101 -> 66.193.37.204 TCP 54 41518 > http [FIN, ACK] Seq=105 Ack=2791 Win=19360 Len=0 11 28.635146000 66.193.37.204 -> 192.168.1.101 TCP 54 http > 41518 [FIN, ACK] Seq=2791 Ack=106 Win=5888 Len=0 12 28.635191000 192.168.1.101 -> 66.193.37.204 TCP 54 41518 > http [ACK] Seq=106 Ack=2792 Win=19360 Len=0
( capture de paquets au format pcap-ng ). Cette capture montre ce qui se passe pendant un simple
curl http://hackage.haskell.org/packages/hackage.html
.
Peu importe que je sois derrière un routeur - c'est la même chose lorsque je me connecte directement. Le type de connexion est PPPoE.
J'ai reproduit le problème sur 3 ordinateurs fonctionnant sous Linux et Windows.
Comment diagnostiquer un tel problème?
Réponses:
"30 secondes" et "au bout de deux minutes" sont pour moi une sonnerie morte pour un problème DNS.
Si nous supposons que la page à laquelle vous vous connectez fait quelque chose comme une requête DNS sur l'IP de connexion et que cette requête échoue pour une raison quelconque, vous verrez:
... et ce sont exactement les symptômes que vous décrivez.
Vous pouvez essayer d'exécuter une requête DNS à partir d'un autre FAI (disons, ISP2) sur l'IP que vous obtenez à partir d'ISP1. Ce n'est pas une preuve à 100%, mais je m'attends à une forte probabilité que la requête prenne 30 secondes. Cela signifierait que le serveur DNS ISP1 a des problèmes pour répondre aux requêtes de l'extérieur .
Une autre cause possible pourrait être que le DNS d'ISP1 soit protégé par un pare-feu par Hackage pour une raison (probablement erronée) (dans ma tenue, la raison serait "un netadmin déclencheur" et je pourrais nommer des noms). Dans ce cas, vous auriez beaucoup plus de mal à diagnostiquer, car tout test via ISP2 ne retournerait rien d'inhabituel; vous devez faire remonter cela à Hackage.
la source
dig +trace -x 80.90.233.38
. Je suis sûr à 95% que c'est la cause, attendant simplement la confirmation que le piratage effectue effectivement des recherches DNS inversées.Le problème ressemble à un problème avec "MTU". Si vous utilisez Google "windows setting mtu", vous devriez trouver un certain nombre de réponses qui vous montreront comment tester cette théorie et baisser votre MTU, le cas échéant. (Si vous utilisiez un routeur Linux, je pourrais produire une commande IPTables pour le faire dynamiquement pour vous, mais je ne "fais" pas Windows.)
la source
J'ai répété la capture de vos paquets, qui se présente de cette façon de mon côté:
Effectivement, il y a une pause mineure indétectable pendant que le paquet est réassemblé, mais nulle part aussi longtemps que le vôtre. J'ai également vérifié toutes les adresses IP et le HTML, et tout est correct et semble extrêmement simple et sans danger.
Bref, il n'y a aucune raison à ce retard en ce qui concerne Internet. La conclusion est qu'il y a un problème avec votre FAI.
Ce que vous pouvez faire pour réduire les possibilités est le suivant:
[ÉDITER]
J'ai remarqué que haskell.org envoie un ETag , ce qui explique pourquoi le premier accès est lent mais les suivants sont rapides: Parce que tant que l'ETag est valide, la page provient en fait du cache de votre navigateur.
La partie étrange ici est la raison pour laquelle le FAI n'est pas lent lors de la transmission d'une demande ETag. Une explication pourrait être que pendant un temps limité, ils satisfont la demande de leur propre cache, plutôt que d'aller sur haskell.org.
la source
Cela ressemble à un problème de serveur. Il s'est chargé rapidement pour moi. Pour tester si le serveur ne vous aime pas, essayez d'y accéder à partir d'un proxy, tel que TOR ou HideMyAss.com. Si c'est rapide, alors il y a un problème entre haskell.org et votre maison.
Un autre test que vous pouvez exécuter consiste à trouver une ressource sur cette vue, comme un fichier HTML, un fichier CSS ou un fichier XML, et à transmettre ce lien à un validateur HTML, etc. Si les services tiers prennent beaucoup de temps à récupérer, alors il est un problème avec le serveur.
Autre test: vider votre cache DNS. Il se peut que la recherche de l'adresse IP de haskell.org prenne beaucoup de temps.
ipconfig /flushdns
. Essayez également àping hackage.haskell.org
partir de la ligne de commande pour voir combien de temps il faut pour rechercher l'adresse IP.Autre test: ouvrir une session de navigation privée avec Chrome (et autres) pour éviter d'envoyer des cookies.
Autre test: ouvrez F12 dans Chrome ou Opera, accédez à l'onglet Réseau, puis accédez au site pour voir l'heure de chaque ressource.
la source