32 votes

Problème de connexion intriguant sur OS X

J'ai récemment rencontré ce problème avec ma connexion Internet sur mon MacBook Pro Early 2011 fonctionnant sous OS X 10.8.3 : de temps en temps, la connexion se "fige" pendant environ 5 secondes, puis revient.

Cela arrive à la fois par Wi-Fi ou par câble Ethernet et cela ne se produit que sur ma machine lorsqu'elle fonctionne sous OS X. (cela ne se produit pas lorsque vous exécutez Windows 7 sur la même machine, ou sur toute autre machine/appareil). Skype abandonne les appels toutes les 2 minutes environ, ce qui est très frustrant.

L'appel à Google.com se présente comme suit sous OS X (il y a des centaines de paquets qui reviennent en moins de 100 ms (avec quelques-uns dans les 130), puis une chute pendant plusieurs secondes). :

64 bytes from 173.194.34.196: icmp_seq=694 ttl=48 time=71.463 ms
64 bytes from 173.194.34.196: icmp_seq=695 ttl=48 time=68.362 ms
64 bytes from 173.194.34.196: icmp_seq=696 ttl=48 time=69.056 ms
64 bytes from 173.194.34.196: icmp_seq=697 ttl=48 time=92.563 ms
64 bytes from 173.194.34.196: icmp_seq=698 ttl=48 time=130.814 ms
64 bytes from 173.194.34.196: icmp_seq=699 ttl=48 time=71.054 ms
64 bytes from 173.194.34.196: icmp_seq=700 ttl=48 time=73.588 ms
64 bytes from 173.194.34.196: icmp_seq=701 ttl=48 time=71.185 ms
64 bytes from 173.194.34.196: icmp_seq=702 ttl=48 time=72.161 ms
64 bytes from 173.194.34.196: icmp_seq=703 ttl=48 time=69.163 ms
64 bytes from 173.194.34.196: icmp_seq=704 ttl=48 time=73.425 ms
64 bytes from 173.194.34.196: icmp_seq=705 ttl=48 time=141.980 ms
64 bytes from 173.194.34.196: icmp_seq=706 ttl=48 time=226.818 ms
64 bytes from 173.194.34.196: icmp_seq=707 ttl=48 time=210.087 ms
Request timeout for icmp_seq 708
Request timeout for icmp_seq 709
Request timeout for icmp_seq 710
Request timeout for icmp_seq 711
Request timeout for icmp_seq 712
64 bytes from 173.194.34.196: icmp_seq=713 ttl=48 time=73.582 ms
64 bytes from 173.194.34.196: icmp_seq=714 ttl=48 time=70.994 ms
64 bytes from 173.194.34.196: icmp_seq=715 ttl=48 time=72.502 ms
64 bytes from 173.194.34.196: icmp_seq=716 ttl=48 time=70.467 ms
64 bytes from 173.194.34.196: icmp_seq=717 ttl=48 time=68.470 ms
64 bytes from 173.194.34.196: icmp_seq=718 ttl=48 time=70.767 ms
64 bytes from 173.194.34.196: icmp_seq=719 ttl=48 time=69.078 ms

Remarque : le MAC Wi-Fi de ma machine est 68:a8:6d:29:cf:8a (IP statique 192.168.1.250) et son adresse Ethernet est 3c:07:54:5a:e0:44 (IP statique 192.168.1.251). L'IP LAN du routeur est 192.168.1.1 et son IP WAN est 85.61.155.224.

Dans la capture d'écran suivante, on peut voir, pendant un appel Skype :

  • ping 192.168.1.1 en haut à gauche.
  • ping 85.61.155.224 en bas à gauche.
  • ping google.com en bas à droite.
  • le site arp -an y arp -ad commandes exécutées.

Quand j'ai exécuté le arp -ad à un moment où la connexion était perdue, la liste ne montrait aucune adresse. Elle ressemblait à ceci :

Miguels-MacBook-Pro:~ Ai$ sudo arp -ad
192.168.1.1 (192.168.1.1) deleted
192.168.1.4 (192.168.1.4) deleted
192.168.1.255 (192.168.1.255) deleted
Miguels-MacBook-Pro:~ Ai$ arp -an
Miguels-MacBook-Pro:~ Ai$

Je n'ai pas les connaissances suffisantes pour suivre les instructions de Mike sur la façon d'obtenir et de compiler les sources de l'application de l'UE. mtr comando.

screenshot of the operations

C'est à ça que ça ressemble quand c'est pire :

screenshot of the worst situation

Running netstat -s donne :

Miguels-MacBook-Pro:mtr-0.84 Ai$ NETSTAT -s
tcp:
    18246745 packets sent
        1119644 data packets (502840461 bytes)
        43704 data packets (23125605 bytes) retransmitted
        1 resend initiated by MTU discovery
        11219994 ack-only packets (80633 delayed)
        0 URG only packets
        10 window probe packets
        5446529 window update packets
        419140 control packets
        0 data packets sent after flow control
    25777361 packets received
        1284807 acks (for 502390806 bytes)
        222223 duplicate acks
        2 acks for unsent data
        21993647 packets (3385435972 bytes) received in-sequence
        85441 completely duplicate packets (85927570 bytes)
        189 old duplicate packets
        6141 packets with some dup. data (1633845 bytes duped)
        2225930 out-of-order packets (3047304289 bytes)
        2 packets (0 bytes) of data after window
        0 window probes
        7324 window update packets
        63837 packets received after close
        56 bad resets
        9 discarded for bad checksums
        0 discarded for bad header offset fields
        0 discarded because packet too short
    200907 connection requests
    118631 connection accepts
    110736 bad connection attempts
    1273 listen queue overflows
    220132 connections established (including accepts)
    335687 connections closed (including 10893 drops)
        4086 connections updated cached RTT on close
        4086 connections updated cached RTT variance on close
        1485 connections updated cached ssthresh on close
    44620 embryonic connections dropped
    1178835 segments updated rtt (of 1308648 attempts)
    76481 retransmit timeouts
        189 connections dropped by rexmit timeout
        0 connections dropped after retransmitting FIN
    17 persist timeouts
        0 connections dropped by persist timeout
    2015 keepalive timeouts
        1 keepalive probe sent
        1409 connections dropped by keepalive
    127007 correct ACK header predictions
    21519356 correct data packet header predictions
    5021 SACK recovery episodes
    5638 segment rexmits in SACK recovery episodes
    6044752 byte rexmits in SACK recovery episodes
    33658 SACK options (SACK blocks) received
    2125185 SACK options (SACK blocks) sent
    0 SACK scoreboard overflow
udp:
    28584263 datagrams received
    0 with incomplete header
    0 with bad data length field
    84 with bad checksum
    4216 dropped due to no socket
    239052 broadcast/multicast datagrams dropped due to no socket
    729188 dropped due to full socket buffers
    0 not for hashed pcb
    27611723 delivered
    28323341 datagrams output
ip:
    61548853 total packets received
    4 bad header checksums
    0 with size smaller than minimum
    0 with data size < data length
    0 with ip length > max ip packet size
    0 with header length < data size
    0 with data length < header length
    0 with bad options
    0 with incorrect version number
    103276 fragments received
    0 fragments dropped (dup or out of space)
    0 fragments dropped after timeout
    51420 packets reassembled ok
    61383903 packets for this host
    32 packets for unknown/unsupported protocol
    0 packets forwarded (0 packets fast forwarded)
    105 packets not forwardable
    112953 packets received for unknown multicast group
    0 redirects sent
    53953058 packets sent from this host
    155 packets sent with fabricated ip header
    0 output packets dropped due to no bufs, etc.
    3748 output packets discarded due to no route
    0 output datagrams fragmented
    0 fragments created
    0 datagrams that can't be fragmented
    0 tunneling packets that can't find gif
    3 datagrams with bad address in header
    0 packets dropped due to no bufs for control data
icmp:
    4216 calls to icmp_error
    0 errors not generated 'cuz old message was icmp
    Output histogram:
        echo reply: 202
        destination unreachable: 4216
    0 messages with bad code fields
    0 messages < minimum length
    168 bad checksums
    0 messages with bad length
    0 multicast echo requests ignored
    0 multicast timestamp requests ignored
    Input histogram:
        echo reply: 7013069
        destination unreachable: 14133
        echo: 202
        time exceeded: 289
    202 message responses generated
    ICMP address mask responses are disabled
igmp:
    0 messages received
    0 messages received with too few bytes
    0 messages received with wrong TTL
    0 messages received with bad checksum
    0 V1/V2 membership queries received
    0 V3 membership queries received
    0 membership queries received with invalid field(s)
    0 general queries received
    0 group queries received
    0 group-source queries received
    0 group-source queries dropped
    0 membership reports received
    0 membership reports received with invalid field(s)
    0 membership reports received for groups to which we belong
    0 V3 reports received without Router Alert
    16 membership reports sent
ipsec:
    0 inbound packets processed successfully
    0 inbound packets violated process security policy
    0 inbound packets with no SA available
    0 invalid inbound packets
    0 inbound packets failed due to insufficient memory
    0 inbound packets failed getting SPI
    0 inbound packets failed on AH replay check
    0 inbound packets failed on ESP replay check
    0 inbound packets considered authentic
    0 inbound packets failed on authentication
    0 outbound packets processed successfully
    0 outbound packets violated process security policy
    0 outbound packets with no SA available
    0 invalid outbound packets
    0 outbound packets failed due to insufficient memory
    0 outbound packets with no route
ip6:
    151513 total packets received
    0 with size smaller than minimum
    0 with data size < data length
    0 with bad options
    0 with incorrect version number
    0 fragments received
    0 fragments dropped (dup or out of space)
    0 fragments dropped after timeout
    0 fragments that exceeded limit
    0 packets reassembled ok
    5555 packets for this host
    0 packets forwarded
    145711 packets not forwardable
    0 redirects sent
    2608 packets sent from this host
    0 packets sent with fabricated ip header
    0 output packets dropped due to no bufs, etc.
    4578 output packets discarded due to no route
    23 output datagrams fragmented
    46 fragments created
    0 datagrams that can't be fragmented
    0 packets that violated scope rules
    145711 multicast packets which we don't join
    Input histogram:
        hop by hop: 2327
        TCP: 244
        UDP: 142524
        ICMP6: 6416
    Mbuf statistics:
        244 one mbuf
        two or more mbuf:
            lo0= 2215
        149054 one ext mbuf
        0 two or more ext mbuf
    0 packets whose headers are not continuous
    0 tunneling packets that can't find gif
    0 packets discarded due to too may headers
    0 failures of source address selection
    0 forward cache hit
    0 forward cache miss
    0 packets dropped due to no bufs for control data
icmp6:
    0 calls to icmp_error
    0 errors not generated because old message was icmp error or so
    0 errors not generated because rate limitation
    Output histogram:
        router solicitation: 50
        neighbor solicitation: 19
        neighbor advertisement: 19
        MLDv2 listener report: 59
    0 messages with bad code fields
    0 messages < minimum length
    0 bad checksums
    0 messages with bad length
    Input histogram:
        neighbor advertisement: 245
    Histogram of error messages to be generated:
        0 no route
        0 administratively prohibited
        0 beyond scope
        0 address unreachable
        0 port unreachable
        0 packet too big
        0 time exceed transit
        0 time exceed reassembly
        0 erroneous header field
        0 unrecognized next header
        0 unrecognized option
        0 redirect
        0 unknown
    0 message responses generated
    0 messages with too many ND options
    0 messages with bad ND options
    0 bad neighbor solicitation messages
    0 bad neighbor advertisement messages
    0 bad router solicitation messages
    0 bad router advertisement messages
    0 bad redirect messages
    0 path MTU changes
ipsec6:
    0 inbound packets processed successfully
    0 inbound packets violated process security policy
    0 inbound packets with no SA available
    0 invalid inbound packets
    0 inbound packets failed due to insufficient memory
    0 inbound packets failed getting SPI
    0 inbound packets failed on AH replay check
    0 inbound packets failed on ESP replay check
    0 inbound packets considered authentic
    0 inbound packets failed on authentication
    0 outbound packets processed successfully
    0 outbound packets violated process security policy
    0 outbound packets with no SA available
    0 invalid outbound packets
    0 outbound packets failed due to insufficient memory
    0 outbound packets with no route
rip6:
    0 messages received
    0 checksum calcurations on inbound
    0 messages with bad checksum
    0 messages dropped due to no socket
    0 multicast messages dropped due to no socket
    0 messages dropped due to full socket buffers
    0 delivered
    0 datagrams output
pfkey:
    0 requests sent to userland
    0 bytes sent to userland
    0 messages with invalid length field
    0 messages with invalid version field
    0 messages with invalid message type field
    0 messages too short
    0 messages with memory allocation failure
    0 messages with duplicate extension
    0 messages with invalid extension type
    0 messages with invalid sa type
    0 messages with invalid address extension
    0 requests sent from userland
    0 bytes sent from userland
    0 messages toward single socket
    0 messages toward all sockets
    0 messages toward registered sockets
    0 messages with memory allocation failure

Running netstat -I en1 donne :

Miguels-MacBook-Pro-2:mtr-0.84 Ai$ netstat -I en1
Name  Mtu   Network       Address            Ipkts Ierrs    Opkts Oerrs  Coll
en1   1500  <Link#5>    68:a8:6d:29:cf:8a 72539835     0 63847581     0     0
en1   1500  fe80::6aa8: fe80:5::6aa8:6dff 72539835     - 63847581     -     -
en1   1500  192.168.1     192.168.1.250   72539835     - 63847581     -     -

Running ifconfig -a donne :

Miguels-MacBook-Pro-2:mtr-0.84 Ai$ ifconfig -a
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
    options=3<RXCSUM,TXCSUM>
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 
    inet 127.0.0.1 netmask 0xff000000 
    inet6 ::1 prefixlen 128 
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    options=2b<RXCSUM,TXCSUM,VLAN_HWTAGGING,TSO4>
    ether 3c:07:54:5a:e0:44 
    media: autoselect (none)
    status: inactive
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    ether 68:a8:6d:29:cf:8a 
    inet6 fe80::6aa8:6dff:fe29:cf8a%en1 prefixlen 64 scopeid 0x5 
    inet 192.168.1.250 netmask 0xffffff00 broadcast 192.168.1.255
    media: autoselect
    status: active
p2p0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2304
    ether 0a:a8:6d:29:cf:8a 
    media: autoselect
    status: inactive
fw0: flags=8822<BROADCAST,SMART,SIMPLEX,MULTICAST> mtu 4078
    lladdr a4:b1:97:ff:fe:ec:f0:80 
    media: autoselect <full-duplex>
    status: inactive

Ce que je pense :

  • Ce n'est pas un problème de Wi-Fi car cela se produit aussi sur le câble.
  • Ce n'est pas un problème de routeur/ISP car d'autres appareils et machines n'ont aucun problème.
  • Ce n'est pas un problème de machine car cela ne se produit que sous OS X.
  • Il doit donc s'agir d'un problème lié à OS X.

Ce que j'ai essayé :

  • Redémarrage, arrêt.
  • Allumez et éteignez AirPort, différents câbles Ethernet.
  • Permissions de réparation.
  • Réinitialiser la PRAM.
  • Effacez tous les caches système et utilisateur avec Onyx.

Note bizarre : Pour une raison étrange, le problème semble s'aggraver lorsqu'un appel skype est en cours.

J'aimerais avoir des idées sur la façon d'aborder cette question.

13voto

mike Points 1801

Quand vos connexions commencent à être interrompues, pouvez-vous faire arp -an dans Terminal.app et voyez si vous avez toujours toutes les adresses MAC dans la table ARP ? comme dans - l'adresse MAC de votre routeur, ou l'hôte que vous essayez de ping ?

Si vous le faites (et que vous avez le temps avant qu'il ne recommence à fonctionner), pouvez-vous vider la table arp ( sudo arp -ad ) et voyez ensuite si l'adresse MAC de votre routeur apparaît à nouveau dans la table ARP ?

Essayez également d'exécuter une requête ping vers l'adresse IP du réseau local de votre routeur dans une session de terminal, et peut-être une requête ping vers l'adresse IP du réseau étendu de votre routeur dans une autre session pendant que vous êtes sur Skype. Voyez si tous les ping commencent à s'interrompre ou seulement l'un d'entre eux. Un autre outil que je trouve utile est mtr - vous devrez peut-être récupérer les sources et les compiler vous-même ou utiliser fink / macports ou un autre gestionnaire de paquets. Lorsque vous l'aurez obtenu, exécutez-le simplement vers une destination quelque part sur Internet et il vous montrera quel saut ne répond plus.

Comment installer des logiciels à partir de sources (telles que mtr) Nécessite l'installation de Xcode :

  • télécharger l'archive source (typiquement .tar.gz ou .tar.bz2)
  • décompresser le fichier téléchargé (par exemple, dans Terminal.app, exécutez gzip -dc filename.tar.gz | tar -xvf - qui créera généralement un nouveau répertoire dans le répertoire courant et y placera le contenu de l'archive.)
  • naviguer dans le dossier obtenu dans le terminal
  • exécuter ./configure --prefix=/usr/local (veuillez noter que j'aime installer des logiciels à partir de la source dans /usr/local pour le tenir à l'écart des binaires installés dans le cadre du système ; l'option --prefix=/usr/local pour configurer fera exactement cela)
  • exécuter make
  • exécuter sudo make install
  • C'est fait !

6voto

Rich Points 2429

Pourriez-vous d'abord vérifier que vous utilisez bien l'interface réseau ? vous devriez :

ifconfig -a

Pourriez-vous regarder la sortie des commandes suivantes (si en0 est le numéro d'identification de l'utilisateur) ? nom de l'interface réseau de votre carte Ethernet) :

netstat -I en0

Pour aider à localiser le problème, pourriez-vous faire une Localisation spécifique avec seulement votre carte Ethernet activée et, si possible, en utilisant soit l'IPv4 ou IPv6, mais pas les deux : Location with just Ethernet on

Pourriez-vous exécuter l'extrait suivant d'erreurs potentielles de matériel ou de pilote :

grep ' en[012]' /var/log/kernel.log

(n'ayez pas peur, vous risquez de trouver beaucoup d'informations sur les canaux Wi-Fi).

Le message suivant est affiché par votre netstat :

44620 embryonic connections dropped

signifie que vous êtes en fait la cible d'un stupide tcp syn flooding (qui est une attaque par déni de service (DOS)).

Quand votre :

ping 192.168.1.1

des selfs pour 6s, tu pourrais courir :

netstat -m

4voto

zac Points 93

Tout d'abord, je vois que Dropbox fonctionne dans votre barre de menu ; l'avez-vous désactivé ?

Ensuite, essayez de supprimer tout autre élément de démarrage/ouverture de session. Regarde dans :

Connexion :

  1. ~/Bibliothèque/LaunchAgents/
  2. ~/Bibliothèque/LaunchDaemons/
  3. Préférences système > Utilisateurs et groupes > Éléments de connexion

Démarrage :

  1. /Library/LaunchAgents/
  2. /Bibliothèque/LaunchDaemons/
  3. /Bibliothèque/StartupItems/
  4. /Library/Preferences/com.apple.loginitems.plist (existe rarement)

4voto

balee Points 1

J'ai ce problème depuis longtemps (depuis une mise à niveau vers Mavericks) et, après des mois de recherche, je pense avoir enfin trouvé une solution.

Tout d'abord, il y a un certain nombre de personnes qui ont le même problème dans les forums Apple :

Il s'agit donc d'un problème connu et je ne sais vraiment pas pourquoi Apple n'a pas encore fourni de solution à ce problème. Dans les fils de discussion énumérés ci-dessus, il y a de nombreuses suggestions pour résoudre ce problème, mais la plupart d'entre elles n'ont pas fonctionné. Certaines corrigent le problème temporairement :

  • Déconnecter et reconnecter le réseau
  • Le vieil ami : le redémarrage
  • Supprimez le dossier contenant la configuration du réseau : sudo rm -rf /Library/Preferences/SystemConfiguration

Après ces mesures, la connexion réseau est bien meilleure et je n'ai plus de coupures pendant plusieurs heures, voire plusieurs jours. Mais les problèmes reviennent toujours.

Cette question et l'indication que le problème pourrait être lié à l'ARP m'ont incité à effectuer des recherches plus approfondies et j'ai découvert que cette page qui décrit le bogue en détail et contient également un correctif, que je cite ici :

sudo su
touch /etc/sysctl.conf
echo net.link.ether.inet.arp_unicast_lim=0 >> /etc/sysctl.conf
chown root:wheel /etc/sysctl.conf
chmod 0644 /etc/sysctl.conf

Veuillez vous référer au lien fourni pour une explication approfondie du correctif, qui est censé être inclus dans une future mise à jour de l'OS pour Yosemite par Apple. Il désactive les requêtes ARP unicast, qui provoquent des confusions avec certains équipements réseau comme votre routeur domestique.

Après avoir appliqué le correctif et redémarré, il faut vérifier si

sudo sysctl -a | grep net.link.ether.inet.arp_unicast_lim

renvoie à net.link.ether.inet.arp_unicast_lim: 0 . Si le nombre n'est pas égal à zéro, la correction n'a pas été appliquée correctement.

Par la suite, j'ai trouvé un autre fil de discussion dans les communautés de la Apple qui contient la même solution : Mavericks et Failed ARP provoquant des coupures de réseau ! Une fois que vous connaissez le problème, il est beaucoup plus facile de trouver la bonne solution.

2voto

Oskar Points 1242

Il y a beaucoup d'informations ici sur le dépannage et le diagnostic des choses, mais parfois, lors du dépannage, il est amusant de revenir aux bases et de remettre en question certaines hypothèses.

Comme je l'ai mentionné dans un commentaire, cela ressemble beaucoup à un routeur QOS qui se met en marche parce que votre machine dépasse temporairement une certaine limite de bande passante ou de débit de paquets.

Et si les modèles, les volumes et les quantités de trafic réseau étaient différents sous OS X et sous Windows et que c'était là la véritable cause, et non les pilotes matériels ou les logiciels ?

Je suppose que l'exécution d'OS X est en corrélation avec vos observations, mais que faire si ce n'est pas la cause des pauses temporaires du réseau.

Avez-vous essayé de rechercher les éventuels filtres QOS et changements de routage mis en place par votre fournisseur de réseau ? Avez-vous envisagé de tunneliser tout le trafic vers un autre ordinateur (ssh ou VPN) afin d'exclure les filtres triviaux. (Si le fournisseur procède à une inspection approfondie des paquets, ou à une limitation du débit de destination et du débit réel, il se peut que vous ne puissiez pas échapper à ces courts délais).

J'espère que vous trouverez une réponse en examinant les détails du réseau (et nous apprendrons tous quelque chose en explorant ces options), mais n'oubliez pas de prendre en compte le fait que vos outils de mesure et le trafic supplémentaire pour faire des ping / poke sur les choses peuvent affecter les comptes de trafic et rendre plus probable la perte de Skype pour vous. Les routeurs que j'ai configurés sont programmés pour laisser tomber le trafic ICMP avant tout autre trafic, car lorsque la capacité est limitée, je préfère que le ping échoue et que les autres paquets passent. Votre FAI et votre fournisseur de réseau ont peut-être configuré les choses de la même manière.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X