Lorsqu'une carte réseau Gigabit reçoit des données, comment reçoit-elle les bits? Est-ce qu'il voit tout cela dans un flux de 0 et de 1? Ou y a-t-il en quelque sorte plusieurs flux de 0 et de 1 entrant en même temps?
Par exemple ... disons qu'il y a deux appareils émetteurs et un appareil récepteur.
Les périphériques 1 et 2 commencent à envoyer des données réseau vers le périphérique 3 en même temps.
Mon hypothèse est que du point de vue de l'adaptateur réseau de l'appareil 3, tous les 0 et les 1 se rencontrent dans un seul flux de données. Il peut déterminer quelles données proviennent du périphérique 1 ou 2, mais les données ne sont toujours qu'un flux de millions / milliards de bits.
Suis-je totalement faux? :)
ethernet
layer1
networking
shihku7
la source
la source
Réponses:
Ça dépend.
Alors que de nombreux PHY Ethernet transmettent des données de manière purement série (par exemple, 100BASE-TX, 1000BASE-SX, 10GBASE-SR), certains divisent le flux de données en plusieurs voies qui sont transmises en parallèle.
Le plus souvent, le 1000BASE-T - la variante commune gigabit sur cuivre - divise le flux de données codées en quatre voies et transmet chacune séparément sur l'une des quatre paires torsadées d'un câble Cat-5. Toutes les variantes à paire torsadée à partir du gigabit utilisent ces quatre voies.
Certains PHY à fibre haute vitesse (10G +) utilisent également plusieurs voies sur jusqu'à seize fibres (avec fibre multimode et courte portée) ou longueurs d'onde (avec fibre monomode et longue portée).
Cependant, tout est transmis dans des trames qui s'exécutent chacune à partir d'une seule source vers une seule destination. Les cadres sont généralement atomiques, c'est-à-dire. ils sont toujours transmis en un seul morceau. Chaque trame ne transporte que les données d'une seule connexion / application spécifique. Son en-tête contient les adresses source et de destination, afin qu'il puisse trouver son chemin sur le réseau.
Lorsque le réseau reçoit deux trames de sources différentes pour le même port de destination en même temps, l'une des trames doit être mise en file d'attente jusqu'à ce que le port de commutation vers la destination ait fini de transmettre la première trame.
Cela suppose que les sources et la destination fonctionnent à la même vitesse, ce qui n'est pas nécessairement vrai. Vous pouvez avoir un serveur de fichiers connecté par une liaison à 1 Gbit / s et dix clients envoyant chacun à pleine vitesse sur leurs liaisons à 100 Mbit / s sans file d'attente (significative). Cela se rapproche quelque peu de votre suggestion de "flux multiples", seulement que ces flux sont entrelacés au niveau de la trame, pas au niveau du bit.
Le débit sur un port réseau peut être de milliers voire de millions de trames en une seule seconde, donc d'un point de vue humain, il est impossible de différencier plusieurs flux - tout semble `` simultané ''.
la source
Ignorons pour l'instant la partie Gigabit et concentrons-nous un peu sur votre partie "2 appareils envoient en même temps".
Sur les médias partagés , cela peut réellement se produire et être un problème. La plupart des transmissions sans fil sont des médias partagés, et Ethernet, à l'époque, était:
Maintenant, si deux appareils envoient en même temps, deux choses peuvent se produire:
vous utilisez une certaine forme de multiplexage (division du temps, division de fréquence ...) qui permet des "canaux" séparés afin que l'on puisse écouter un canal spécifique et ne pas être dérangé par les autres. Ceci est beaucoup utilisé pour les transmissions sans fil, beaucoup moins pour les transmissions filaires (WDM / DWDM sur fibres étant une exception).
ou si deux ou plusieurs appareils envoient en même temps sur le même canal, alors vous obtenez ce qu'on appelle une collision : comme lorsque deux personnes parlent en même temps, vous ne pouvez pas comprendre ce qui est dit, les appareils récepteurs ne sont pas capable de décoder les données envoyées par l'un des appareils (ou plus souvent, ils peuvent le décoder, mais cela n'a aucun sens et ne passera pas les vérifications CRC).
C'est là qu'interviennent des systèmes comme CSMA-CD (Carrier-Sense Multiple Access, Collision Detection):
C'était assez amusant, et sur les réseaux légèrement chargés, cela fonctionnait assez bien, mais dès que le trafic devenait important, vous vous retrouviez avec des tonnes de collisions, ce qui augmentait à son tour l'utilisation des médias partagés, ce qui entraînait à son tour plus de collisions, donc ça pourrait devenir assez mauvais.
La réponse à cette question a été la transition vers des réseaux commutés en duplex intégral . Les hubs ont juste répété le signal sans réfléchir. En revanche, les commutateurs reçoivent vraiment un cadre, puis le renvoient sur le lien de destination (bonus supplémentaire: le cadre n'est pas envoyé à tout le monde, juste à la destination dans la plupart des cas).
Si deux périphériques envoient vers le même périphérique de destination, le commutateur met en file d'attente l'une des trames, de sorte que les deux trames envoyées en même temps arrivent réellement l'une après l'autre à la destination.
Au-delà de cela, sur le plan physique, il est tout à fait possible que les données soient échangées sur plusieurs paires ou même plusieurs câbles en parallèle. Que cela soit fait au niveau du bit ou que des trames entières soient envoyées sur chaque paire / câble dépend de la technologie exacte utilisée. Mais je pense que ce n'était pas vraiment votre question.
la source
Ce cas particulier est complexe.
Concernant 1000baseT.
Premièrement: lorsque nous disons en général que deux appareils transmettent en même temps, ils n'envoient normalement pas réellement de bits au même instant sur le même support. S'ils le font, il y a une collision et tous les appareils d'écoute fonctionnent (éventuellement, par le biais de divers schémas de détection de collision). Ainsi, deux appareils émetteurs auront accès au support à des moments légèrement différents. Mais dans 1000baseT, il n'y a que deux appareils sur un ensemble de paires donné; normalement, un périphérique est un commutateur et l'autre est un hôte.
Deuxièmement, 1000baseT transmet deux bits de données à la fois sur une paire, codés de manière complexe à cinq niveaux de tension. C'est donc une série de chiffres de base 4 sur le fil, pas une série de chiffres de base 2.
Troisièmement, 1000baseT peut transmettre dans les deux sens en même temps, sur la même paire. Il peut séparer le signal sortant de celui entrant par un circuit appelé hybride.
Ethernet Gigabit sur d'autres supports se comporte différemment. Des vitesses plus lentes, par exemple 10baseT et 100baseT, ont des schémas plus simples. 10baseT sur un hub a vraiment des collisions réelles; sur les commutateurs, il est normalement organisé par le commutateur afin que les trames sortantes soient mises en file d'attente; s'il s'agit d'un duplex intégral, il n'y a aucune collision.
la source
En supposant que tous les liens Ethernet câblés ici.
Lorsque deux appareils sur le même segment de réseau envoient en même temps, quel que soit le destinataire, cela s'appelle une collision . Aucun des deux messages ne passe lorsqu'une collision se produit. Heureusement, les expéditeurs ont la capacité de détecter les collisions. Lorsque cela se produit, chaque expéditeur choisit chacun une durée aléatoire (petites fractions de seconde) pour attendre et réessayer, et répéter le processus jusqu'à ce qu'un seul expéditeur soit finalement actif.
Mais cela n'arrive presque plus.
Au lieu de cela, la plupart des connexions câblées sont aujourd'hui établies sur des réseaux commutés , où chaque périphérique (émetteurs et récepteurs) est tous connectés à leur propre port séparé sur un commutateur. Les données sont divisées en paquets (en réalité: des trames ), et le commutateur s'assurera qu'un seul paquet est actif sur chaque port à la fois. Si une liaison est occupée, le commutateur stocke et transfère les autres trames au récepteur lorsque la liaison est à nouveau disponible.
Avec ce schéma, la seule façon d'avoir des collisions est lorsque plusieurs appareils sont connectés au commutateur ou entre eux via un concentrateur non commuté (les ports de certains modèles de «routeur» wifi domestique ne sont toujours pas commutés), ou lorsqu'un la liaison entre un commutateur et un périphérique fonctionne en mode semi-duplex .
Ce que nous traitons plutôt, c'est la congestion . Nous pouvons ne pas avoir de collisions, mais un hôte populaire sur le réseau peut avoir des appareils qui souhaitent envoyer plus de données et de paquets que le lien ne prendra en charge, de sorte que le tampon se remplit. Mais c'est un tout autre problème.
la source
Je pense que vous devez avoir une compréhension de base du fonctionnement d'Ethernet. Par exemple, l'hôte émetteur enverra un préambule de zéros et de zéros alternés pour attirer l'attention de l'hôte récepteur. Lorsque l'hôte récepteur en voit deux de suite, il sait que la trame est la suivante. Une fois la trame transmise, il doit y avoir un silence sur la ligne pendant 96 bits avant d'envoyer une autre trame.
Différentes normes Ethernet utiliseront un codage différent. Par exemple, 100Base-T utilise 4B5B qui envoie cinq bits pour quatre bits de données.
la source
(Pour cette question, je suppose un réseau partagé Hub.)
Oui. Quelle que soit l'implémentation PHY, il s'agit d'un seul flux d'entrée. Les communications provenant de plusieurs périphériques ne peuvent pas parvenir à une seule carte réseau (adresse MAC) en même temps.
"flux unique" oui, mais dans votre exemple de deux appareils envoyant simultanément, aucun flux de données n'arrivera pour un traitement ultérieur; les "images" de 1 et de 0 entreront en collision.
Ce n'est pas possible. Lorsque les signaux se combinent, une collision est détectée et la trame est rejetée.
Le titre de votre question est une déclaration correcte, mais votre discussion dans votre message Q suggère que votre compréhension et votre hypothèse étaient erronées.
Plus loin
la source