URL: https://linuxfr.org/users/skc/journaux/de-la-capacit%C3%A9-dun-lien-ethernet Title: De la capacité d'un lien Ethernet Authors: Sébastien Koechlin Date: 2010年12月31日T14:15:05+01:00 Tags: ethernet Score: 25 Bonjour chers amis. Comme c'est vendredi, j'en profite pour écrire un journal culturel. On lit un peu partout à gauche et à droite qu'une liaison 100Mbps que l'on a tous chez soi (sauf au WC où on utilise le Wifi) est capable de supporter un débit théorique de 12.5Mo/s. J'imagine que les auteurs de ces lignes ont naïvement calculé que l'octet étant traditionnellement valorisé à 8 bits, il suffisait de faire une petite division pour obtenir le débit en Mo/s. Seulement voila, en réalité, dans 100Mbps, vous vous doutez bien que selon une tradition marketing largement établie, on prends la valeur la plus élevée, soit la fréquence de transmission des informations. En réalité, d'après Wikipedia, une liaison 100Mbps est en réalité une liaison à 25 MHz qui transferts les bits 4 par 4 [1]. Il s'agit donc du débit le plus brut possible, et non pas le débit auquel on va pouvoir transférer ses petits (ou gros) fichiers (En réalité en 100BASE-TX on ajoute des bits pour avoir un signal plus facile à transmettre, la fréquence physique sur le cable est donc un peu plus élevée). Il est temps de lister les lignes que l'on a sur la facture: Premièrement, l'accès à la ligne ne doit pas se faire n'importe comment. La norme impose un délais de 12 octets entre deux trames [2]. Rentrons dans la trame ethernet: [3] Elle est composée d'un préambule de 8 octets de valeurs constantes, de 14 octets d'entête (adresses et taille), des données pour un maximum de 1500 octets, et de 4 octets de CRC. Bilan: Ethernet 38 octets de taxe sur 1538 On continue a remonter les couches OSI comme à l'école, et on tombe sur IP. Pour éviter de vous faire coucher tard, nous négligerons l'impact de la résolution ARP. Hopla, trame IPv4 de 1500 octets: 20 octets d'entête (version cheap) [4]. Continuons, en remontant on a UDP et TCP. Selon ce que vous utilisez, ce sera l'un ou l'autre. En dehors de NFSv3, je pense que tous les autres protocoles utiliseront TCP (FTP, HTTP, SSH, SMB/CIFS, NFSv4...). Chez UDP, la facture est de 8 octets [5], mais en TCP on a le droit à une taxe plus importante: 20 octets [6]. On va abandonner là le calcul pour le cas UDP, parce que je ne sais pas calculer le coût des couches supérieures. Pour TCP, on va calculer le total en négligeant la facture des couches supérieures, une réponse HTTP contient souvent 300 à 400 octets d'entête, ce qui est négligeable à coté d'un fichier de 1Mo. Les entêtes ne sont pas répétés dans chaque paquet. Au final, pour une fenêtre temporelle de 1538 octets, nous avons 1480 octets d'octets utiles, ce qui donne un taux utile de 96.2%, soit un débit maximal d'environ 96.2Mbps ou encore 12Mo/s et non pas 12.5Mo/s. Voila, la vérité devait être rétablie. [1] [http://en.wikipedia.org/wiki/Fast_Ethernet#General_Design](http://en.wikipedia.org/wiki/Fast_Ethernet#General_Design) [2] [http://en.wikipedia.org/wiki/Ethernet_frame#Interframe_gap](http://en.wikipedia.org/wiki/Ethernet_frame#Interframe_gap) [3] [http://en.wikipedia.org/wiki/Ethernet_frame#Structure](http://en.wikipedia.org/wiki/Ethernet_frame#Structure) [4] [http://en.wikipedia.org/wiki/IPv4#Packet_structure](http://en.wikipedia.org/wiki/IPv4#Packet_structure) [5] [http://en.wikipedia.org/wiki/User_Datagram_Protocol#Packet_s(...)](http://en.wikipedia.org/wiki/User_Datagram_Protocol#Packet_structure) [6] [http://en.wikipedia.org/wiki/Transmission_Control_Protocol#T(...)](http://en.wikipedia.org/wiki/Transmission_Control_Protocol#TCP_segment_structure)