Les temps de transfert FTP sont terriblement élevés, le temps de réponse des connexions interactives est beaucoup trop long, ce qui vous permet d'obtenir 1 mbps sur votre réseau de 100 mbps. Bien que je préfère toujours blâmer le réseau, je dois admettre que parfois ce n'est pas le réseau.
La première chose à rechercher lorsque l'on traite un problème de performance TCP est un problème Ethernet de bas niveau et le problème le plus courant est de loin une inadéquation duplex. L'Ethernet peut fonctionner en mode full ou half duplex. En mode duplex intégral, l'adaptateur du module et le périphérique auquel il est connecté, son homologue de liaison (généralement un commutateur, mais pas toujours) peuvent transmettre en même temps. En mode semi-duplex, seul un côté peut transmettre. Il y a une fenêtre dans le temps où les deux côtés peuvent penser qu'il est OK de transmettre et le faire, quand cela arrive une collision est déclarée, les deux côtés arrêtent de transmettre, attendent un temps aléatoire et essayent à nouveau. Il est important de comprendre que, lorsque les deux côtés sont en mode semi-duplex, ces collisions ne réduisent pas de manière significative le débit du réseau.
Dans un décalage duplex, un côté est en mode duplex intégral et son homologue est en mode semi-duplex. Le côté en mode semi-duplex peut subir des collisions tardives et des collisions excessives, ces types d'erreurs réduisent considérablement le débit. Les collisions tardives ou excessives sont le signe d'un problème. Le ralentissement du réseau peut sembler disproportionné par rapport au nombre de collisions tardives et excessives car, dans une situation de décalage en duplex, même les collisions normales réduiront le débit car le pair de liaison ne retransmettra pas la trame puisqu'il ne reconnaîtra pas une collision en mode duplex intégral.
Comment savoir si cela vous arrive ? La "
netstat -interface
La commande " Afficher les statistiques " vous permettra de déterminer si un décalage duplex se produit. Dans l'exemple suivant, les statistiques relatives à l'adaptateur actif de la #sdlmux.m16.11-3
sont affichés. J'ai supprimé les statistiques pour l'adaptateur de veille afin de gagner de la place et j'ai ajouté les numéros de ligne.Si l'adaptateur est en mode semi-duplex, vous verrez des comptes positifs sur les lignes 25 (la transmission de la trame a été différée), 26 (transmission de la trame après une seule tentative) et 27 (transmission de la trame après plusieurs tentatives). Ce sont les compteurs de collision normaux. Si vous voyez des valeurs positives sur les lignes 24 (transmission de la trame rejetée, collisions tardives) et/ou 28 (transmission de la trame rejetée, tentatives excessives), il est probable que vous avez ou avez eu un décalage en mode duplex. Ces compteurs ne sont remis à zéro que lorsque l'adaptateur est réinitialisé, donc des valeurs positives indiquent qu'il y a eu un problème ; des compteurs qui continuent à monter indiquent que vous avez toujours un problème. Si l'adaptateur est en mode full duplex et que vous voyez une valeur positive sur la ligne 32 (réception de trame rejetée, mauvais CRC), le pair de liaison est probablement en mode half duplex.
1 netstat -interface #sdlmux.m16.11-3
2
3 Ethernet adapters are grouped
4 Number of failovers = 0
5
6 Active Device Statistics:
7
8
9 MAC Type : CSMA/CD
10 MAC Address: 00:00:a8:43:52:22
11 Device Name: #sdlmux.m16.11-3
12 Line Speed : 100 mb/s
13 Line Duplex: Full-Duplex
14
15 MAC Statistics:
16 Received frames : 20783181
17 Received multicast and broadcast frames : 2984375
18 Received octets : 1787913869
19 Transmitted frames : 9747015
20 Transmitted octets : 2780485819
21 LAN Chipset re-initialized : 0
22 SQE error : 0
23 Transmit ring full : 0
24 Transmit frame discarded, late collisions: 0
25 Transmit frame was deferred : 0
26 Transmit frame after a single retry : 0
27 Transmit frame after multiple retry : 0
28 Transmit frame discarded, excessive retry: 0
29 Receive frame discarded, lack of buffers : 0
30 Receive frame discarded, improper framing: 0
31 Receive frame discarded, an overflow : 0
32 Receive frame discarded, bad CRC : 674
33 Receive frame discarded, bad address : 0
34 Receive frame discarded, congestion : 0
35
36 MAC Summary:
37 Transmitted frames : 9747015
38 Transmitted octets : 2780485819
39 Retransmitted frames : 0
40 Received frames : 23767556
41 Received octets : 1787913869
42 Total of lost frames : 0
43 Partner Device Statistics:
. . . .
ready 08:35:14
Comment vous êtes-vous retrouvé dans ce scénario d'inadéquation de duplex ? Il est bien sûr possible d'avoir un appareil configuré pour fonctionner en mode full duplex et le pair de liaison configuré pour le mode half duplex MAIS le scénario le plus courant est d'avoir un appareil configuré pour le full duplex et le pair de liaison configuré pour l'auto-négociation. La plupart des appareils configurés en mode full duplex ne s'auto-négocient pas et, selon les spécifications d'auto-négociation, le côté qui tente d'auto-négocier doit revenir au mode half duplex lorsqu'il ne voit pas le protocole d'auto-négociation du pair de liaison.
Par défaut, les adaptateurs Ethernet utilisés par OpenVOS s'auto-négocient. Ainsi, à moins que le pair de liaison ne soit également configuré pour l'auto-négociation ou le mode semi-duplex, vous obtiendrez un décalage duplex. Pour configurer un adaptateur pour un mode duplex spécifique, vous devez ajouter le
“-duplex full”
ou “-duplex half”
dans le champ des paramètres de l'entrée devices.tin pour l'adaptateur. Vous devez également régler la vitesse. Le guide de l'administrateur de flux TCP/IP d'OpenVOS (R419) décrit cela en détail.Enfin, si l'adaptateur fonctionne à 1 gigabit, il fonctionnera également en mode duplex intégral. Personne ne prend en charge le gigabit en semi-duplex.