Que se passe-t-il lorsque 2 ordinateurs transmettent en même temps à un 3ème dans un commutateur duplex intégral?

14

Considérez le scénario suivant:

J'ai 2 PC (PC1 et PC2) qui veulent transmettre en même temps à PC3 dans un commutateur Ethernet full duplex. Considérons que tous les ports se trouvent dans le même VLAN, alors que se passe-t-il en interne dans le commutateur? Qui transmet le premier à PC3?

J'ai lu auparavant que CSMA / CD était utilisé, mais seulement il était utilisé dans les versions Ethernet antérieures qui fonctionnaient en semi-duplex, et chaque port du commutateur était un domaine de collision et si 2 machines tentaient de transmettre en même temps, un algorithme a été exécuté pour donner un temps aléatoire à chaque ordinateur pour transmettre et résoudre le problème des collisions. Cependant, dans un commutateur full duplex, j'ai lu que la possibilité d'une collision est éliminée, donc si 2 PC tentent de transmettre en même temps, que se passe-t-il en interne dans le commutateur? Le commutateur exécute-t-il un algorithme pour choisir qui émettra en premier?

Juan Jose Polanco Arias
la source

Réponses:

14

Le commutateur chargera entièrement les trames de données entrantes, des deux systèmes d'envoi, dans ses tampons. Je ne sais pas comment il détermine quelle trame serait la première dans la file d'attente pour un transfert ultérieur; mais il est probablement basé sur le temps de réception initial du début de la trame. Ensuite, le commutateur fonctionne à travers la file d'attente de transmission de tampon en envoyant les trames une par une sur le port / segment de destination.

Il n'y a aucun problème avec les cadres «qui se croisent». Le vrai problème est que le port / segment ultime peut accepter les trames assez rapidement. (Et, bien sûr, le commutateur peut-il traiter son tampon / ses files d'attente assez rapidement.)

Craig Constantine
la source
9
Oui, il y a une commutation sans coupure et sans fragment. Principalement utilisé dans les environnements de trading à grande vitesse. La coupure commencera à transmettre dès que le DST MAC sera connu. Sans fragment, assurez-vous que la trame n'est pas un fragment de collision, elle doit donc recevoir 64 octets avant de transmettre.
Daniel Dib
2
Oui, je pense que certains qualifieraient ce transfert de transfert par opposition au stockage et retransmission. Dans une approche simplifiée, un commutateur pourrait commencer le transfert dès qu'il a reçu et recherché le MAC de destination, mais des approches hybrides existent où il attend un peu plus longtemps, par exemple pour pouvoir regarder une IP pour vérifier une ACL sortante. . (Le champ Ethertype indiquerait si une adresse IP est présente dans la trame).
Gerben
1
^^^ Ceci. C'est pourquoi NE bascule.
Craig Constantine
4
Puisque personne ne l'a mentionné, l'inconvénient de couper est le cas étrange de l'erreur de trame. Bien que la coupure réduise légèrement la latence sur la trame initiale (plus la trame est grande, plus cela impacte), elle transmet la trame indépendamment du fait que la trame soit valide car elle le fait sans recevoir la trame complète et pouvoir vérifier le FCS . Les commutateurs de stockage et de transfert recevront la trame complète et pourront vérifier le FCS avant le transfert, ce qui leur permettra de supprimer des trames invalides.
Apprendre
2
La plupart des commutateurs sont stockés et transférés uniquement, la transition a fait son retour il y a quelques années, car elle est facile à vendre au monde financier. le stockage et retransmission sur 10G entraîne une latence de 1,2us, soit 235m. De plus, la vitesse d'entrée et de sortie ne peut pas être différente lors de la coupure.
ytti
6

Question très intéressante qui n'a malheureusement pas de réponse correcte unique, car la solution exacte varie d'un matériel à l'autre.

Cependant, ce problème est explicitement discuté dans Réseaux informatiques - une apparence de systèmes à la page 231-232.

L'essentiel de la solution de conception appelée `` Sunshine Switch '' est que vous avez des entrées de diagramme - batcher - piège - sélecteur == sorties banyan === et il y a une boîte de retard qui connecte le sélecteur au batcher. Et je cite:

Lorsque plus de 1 (taille de banyan) sont destinés à une seule sortie dans le même cycle, ils sont remis en circulation dans la boîte à retard et soumis à nouveau au commutateur au cours du cycle suivant.

Et plus loin:

Le réseau d'interruptions identifie les paquets qui pourront quitter le commutateur via les banians (jusqu'à 1 d'entre eux par port de sortie) et marque le reste pour la recirculation.

ytti
la source
3

Il y aura toujours une certaine différence dans le moment où les deux ordinateurs envoient au troisième, à moins que vous ne fassiez quelque chose de spécial sur le commutateur, il sera transmis sur une base FIFO de sorte que la trame qui arrive en premier soit transmise en premier.

David Rothera
la source
1
Comme le PC [23] est sur ses propres fils, rien n'empêche le châssis d'arriver exactement en même temps pour la précision du «moment» (fréquence) auquel le matériel fonctionne. Je suppose que c'est au commutateur ASIC designer de décider quoi à faire dans ce cas, mais je suppose que cela lira les images des ports de manière circulaire.
ytti
2
Bon point, je voulais plutôt dire que les chances que deux images arrivent exactement en même temps étaient assez faibles. Comme vous le mentionnez, cela dépendra probablement de la conception de l'ASIC et je suis sûr que cela ne sera documenté nulle part, sauf si vous sautez à travers une série de cerceaux avec votre équipe de comptes.
David Rothera
Celui qui interrompt le premier gagne, en supposant toutes choses égales par ailleurs.
generalnetworkerror
0

Commute vers l'avant un paquet à la fois lorsqu'ils entrent dans le commutateur, donc pas de collisions. Ensuite, PC3 traitera les paquets de PC1 et PC2 en divisant son temps de processeur. Le fenêtrage et la mise en mémoire tampon contrôleront le flux de communication.

Jon Rob
la source