Auteur Sujet: Débit IP : inclus les en-tête IP ou non ?  (Lu 10105 fois)

0 Membres et 1 Invité sur ce sujet

vivien

  • Administrateur
  • *
  • Messages: 47 253
    • Twitter LaFibre.info
Débit IP : inclus les en-tête IP ou non ?
« le: 29 janvier 2012 à 22:59:47 »
Je prépare un petit tutoriel qui va convertir les débits Applicatif / IP / Ethernet

Quand on parle de débit IP, c'est en incluant les en-têtes IPv4 ou c'est le débit utile au niveau de la couche IP (donc sans inclure les en-têtes) ?

Quand on parle de débit ATM c'est le débit ATM total (débit utile + en-tête ATM) donc je pense que c'est le débit totale mais je vouslais avoir votre avis pour faire un tutoriel le plus fiable possible.

Les 3 débits que je pense convertir (en se basant sur une MTU de 1500 octets et l'option Timestamps activé) sont :
- débit applicatif utile
- débit IP
- débit Ethernet total (correspondant aux 100 Mb/s d'une carte réseau Ethernet)

corrector

  • Invité
Débit IP
« Réponse #1 le: 29 janvier 2012 à 23:06:38 »
Débit IP = total des tailles des trames IP

Sinon, on dirait débit IP SDU (je crois que personne ne dit ça).

Débit applicatif : cela dépend aussi de la compression!

vivien

  • Administrateur
  • *
  • Messages: 47 253
    • Twitter LaFibre.info
Débit IP : inclus les en-tête IP ou non ?
« Réponse #2 le: 29 janvier 2012 à 23:25:46 »
Je reformule pour être sur de bien comprendre (avec MTU de 1500 octets):
- applicatif : 1448 octets
- IPv4 SDU (1480 octets) : en-tête TCP (32 octets) + débit utile TCP (1448 octets)
- IPv4 (1500 octets) : en-tête IPv4 (20 octets) + en-tête TCP (32 octets) + débit utile TCP (1448 octets)
- Ethernet (1514 octets) : en-tête Ethernet (14 octets) + en-tête IP (20 octets) + en-tête TCP (32 octets) + débit utile TCP (1448 octets)

Options retenues pour le calcul :
- IPv4
- Timestamps activé (+12 octets sur TCP)
- MTU 1500 octets
- pas de compression

corrector

  • Invité
Débit IP : inclus les en-tête IP ou non ?
« Réponse #3 le: 29 janvier 2012 à 23:29:04 »
SACK?

vivien

  • Administrateur
  • *
  • Messages: 47 253
    • Twitter LaFibre.info
Débit IP : inclus les en-tête IP ou non ?
« Réponse #4 le: 29 janvier 2012 à 23:29:33 »
Sack prend de la place que en cas de paquet perdu, non ?

Même calcul en IPv6 :
- applicatif : 1428 octets
- IPv6 SDU (1460 octets) : en-tête TCP (32 octets) + débit utile TCP (1428 octets)
- IPv6 (1500 octets) : en-tête IPv6 (40 octets) + en-tête TCP (32 octets) + débit utile TCP (1428 octets)
- Ethernet (1514 octets) : en-tête Ethernet (14 octets) + en-tête IPv6 (20 octets) + en-tête TCP (32 octets) + débit utile TCP (1448 octets)

Options retenues pour le calcul :
- IPv6
- Timestamps activé (+12 octets sur TCP)
- MTU 1500 octets
- pas de compression

corrector

  • Invité
Débit IP : inclus les en-tête IP ou non ?
« Réponse #5 le: 29 janvier 2012 à 23:31:47 »
Précise bien tes hypothèses :
- IP : aucune option IP
- Ethernet : Ethernet II

vivien

  • Administrateur
  • *
  • Messages: 47 253
    • Twitter LaFibre.info
Débit IP : inclus les en-tête IP ou non ?
« Réponse #6 le: 29 janvier 2012 à 23:37:07 »
Oui Ethernet II car l'Ethernet originale (version I) n'est plus utilisé...

Les options d'IPv4 : on est d'accord que c'est uniquement pour des cas particuliers qui représentent moins de 1% du trafic Internet ?

corrector

  • Invité
Débit IP : inclus les en-tête IP ou non ?
« Réponse #7 le: 29 janvier 2012 à 23:47:55 »
Oui Ethernet II car l'Ethernet originale (version I) n'est plus utilisé...
Oui bien sûr, Ethernet = Ethernet II.

Il faut noter que ce n'est pas de l'IEEE!

Les options d'IPv4 : on est d'accord que c'est uniquement pour des cas particuliers qui représentent moins de 1% du trafic Internet ?
Moins que ça...

Mais il faut bien expliquer le calcul.

cutti9876

  • Réseau RESO-LIAin (01)
  • Abonné K-Net
  • *
  • Messages: 26
  • Free à Grenoble
Débit IP : inclus les en-tête IP ou non ?
« Réponse #8 le: 30 janvier 2012 à 01:34:12 »
salut,
AMHA pas besoin d'options IP ni TCP (timestamp) => MSS=1460 octets utiles en TCP pour une MTU de 1500 octets

par contre une trame ethernet de 1514 octets utilise 1538 octets à 100 Mbit/s (https://en.wikipedia.org/wiki/Ethernet_frame)
7 octets preamble
1 octet Start Of Frame
14 octets (2 MAC + type) (pas de VLAN)
1500 octets Data
4 octets FCS/CRC
12 octets Intergap

Donc 100*1460/1538 = presque 95 Mbit/s maximum.

vivien

  • Administrateur
  • *
  • Messages: 47 253
    • Twitter LaFibre.info
Débit IP : inclus les en-tête IP ou non ?
« Réponse #9 le: 30 janvier 2012 à 07:48:47 »
Les timestamp (horodatage TCP) sont activés avec tous les systèmes d'exploitation. La MSS n'est donc plus de 1460 octets.
Les timestamp permettent, entre autres, d'obtenir avec précision le RTT d'un paquet
● en cas de paquets reçus en désordre
● lors de retransmis° (à quel paq se réfère un ack ?)
● sur plusieurs paquets, permet de savoir si la congestion est sur le chemin ascendant ou descend
C'est nécessaire pour les Rwin importantes, elles mêmes nécessaire pour les très haut débit.

Chaque paquet est numéroté et si il est perdu, il demande le renvoi de tous les paquets à partir du n° x (ou ne demande de renvoyer que le n° x si l'option SACK est activé). Le N° est codé sur 16bits donc 65535 possibilités. Le N° reviens donc a 0 tous les 65535. Avec des grandes Rwin, il y a risque d'avoir le même N° de paquet 2 fois. En cas d'erreur, il ne sauras donc pas quel paquet renvoyer. Les timestamps sont la pour résoudre ce problème. Ils sont donc indispensable pour les grandes Rwin, donc pour les connexions FTTH et satellites.

Le pb c'est que les clients Windows font une demande de timestamp tellement a coté des RFC que si on interprète strictement les RFC qui disent "When TSecr is not valid, its value must be zero.", on désactive le timestamp. C'est donc le ca d'un client Windows avec un serveur Linux (cas très fréquent, Windows étant majoritaire sur les clients et Linux majoritaire sur les serveurs)

Dans les paquets initiants une connexion (flag SYN seul monté), on ne se préoccupe pas de la valeur de TSecr, mais uniquement de la valeur de TSval), Ensuite, la valeur de TSval est recopiée dans TSecr, lors de la réponse (flag ACK seul monté), or il est dit que Tsecr n'est pas valide si sa valeur est de zéro. Windows XP mettant 0 TSval, on se retrouve avec 0 dans TSrec, du coup, la gestion des timestamps n'est pas activée avec les systèmes qui respectent la RFC (linux).

Un exemple avec un client linux : Tsval = 458372 et non 0
On voit que dans les paquets derrière les timestamps sont activés (les valeurs Tsval et Tsecr s'incrèmentent)


On voit que la Rwin du client est de 5792 au démarrage et qu'il va l'augmenter au fur et a mesure a chaque acquittement. (rwin adaptative)

Voici un exemple avec Windows : TSV = 0



RFC1323 page 12 :
+-------+-------+---------------------+---------------------+
|Kind=8 | 10 | TS Value (TSval) |TS Echo Reply (TSecr)|
+-------+-------+---------------------+---------------------+

The Timestamps option carries two four-byte timestamp fields.
The Timestamp Value field (TSval) contains the current value of
the timestamp clock of the TCP sending the option.

The Timestamp Echo Reply field (TSecr) is only valid if the ACK
bit is set in the TCP header; if it is valid, it echos a times-
tamp value that was sent by the remote TCP in the TSval field
of a Timestamps option. When TSecr is not valid, its value
must be zero. The TSecr value will generally be from the most
recent Timestamp option that was received; however, there are
exceptions that are explained below.


Il est dit que Tsecr n'est pas valide si sa valeur est de zéro. (et Linux désactive les timestamps quand Tsecr n'est pas valide)

Microsoft Windows ne respecte pas la norme en envoyant TSval 0, TSecr 0 lors du SYN alors que ce n'est pas le cas d'un client linux qui envoi TSval 16111025, TSerc 0 lors d'un SYN. (16111025 est un exemple)

Microsoft Windows  est en tord sur ce point là : il n'est pas logique de mettre un zéro dans TSval puisque de cette façon, toutes les requêtes de demande de connexion ont un timestamp équivalent de zéro et que Linux désactive les timestamps (les timestamps sont activé si le serveur est un FreeBSD ou un Winodws)

vivien

  • Administrateur
  • *
  • Messages: 47 253
    • Twitter LaFibre.info
Débit IP : inclus les en-tête IP ou non ?
« Réponse #10 le: 30 janvier 2012 à 22:58:43 »
Voici le fichier PDF que j'ai réalisé pour convertir durée de téléchargement d'un fichier en débit IP (si utilisation d'IPv4 ou IPv6) ou débit Ethernet II (pour faire plaisir à corrector)

=> https://lafibre.info/testdebit/Debit_IP.pdf

corrector

  • Invité
Débit IP : inclus les en-tête IP ou non ?
« Réponse #11 le: 01 février 2012 à 03:18:04 »
Chaque paquet est numéroté
Non, justement, les paquets ne sont pas numérotés en TCP, c'est ça le défaut de conception de TCP!

Seules les données (octets + paquet SYN + paquet FIN) sont comptées, par le numéro de séquence.

si il est perdu, il de mande le renvoi de tous les paquets à partir du n° x (ou ne demande de renvoyer que le n° x si l'option SACK est activé).
Non, pas du tout.

Les paquets TCP ne sont pas mémorisés, donc TCP serait bien incapable de les réèmettre à l'identique.

TCP ne sait pas si un paquet est perdu et ne demande jamais l'envoi d'un paquet; TCP voit que des données manquent et demande ces données. En cas de retransmission, c'est toujours un nouveau paquet TCP qui est fabriqué.

Est-ce que tu ne confonds pas avec RUDP, SCTP, DCCP?

TCP est le seul protocole de transport qui ne transporte pas des messages; un concept que personne n'a repris depuis!

Le N° est codé sur 16bits donc 65535 possibilités. Le N° reviens donc a 0 tous les 65535.
Non, le numéro de séquence est sur 32 bits.