Como exatamente ocorre uma colisão Ethernet no cabo, já que os nós usam circuitos diferentes para Tx e Rx?


13

Estou tentando entender como ocorre uma colisão na Ethernet, especialmente quando existe uma incompatibilidade duplex ou quando em uma rede Ethernet herdada dois nós transmitem simultaneamente.

Todos explicam a colisão em um nível superior (dois quadros colidem quando um está sendo enviado e o outro está sendo recebido). No entanto, o gráfico abaixo mostra que existem circuitos diferentes para Rx e Tx. Como uma colisão pode acontecer, uma vez que existem circuitos dedicados para enviar e receber quadros?

Circuitos diferentes são usados ​​para transmissão e recebimento

Edição : Talvez o rótulo "Hub MDI-X" cause alguma confusão sobre o ponto da minha pergunta. Não estou perguntando como a funcionalidade de um hub pode causar colisão. Meu foco está na comunicação entre dois nós com interfaces MDI ou MDI-X (o hub e os comutadores têm interfaces MDI-X). Em qualquer um desses dois casos, como uma colisão pode ocorrer entre dois nós quando eles têm incompatibilidade duplex, enquanto na incompatibilidade duplex Rx e Tx ainda têm seus circuitos dedicados?


Observe que 10Base2 ou 10Base5 compartilhavam o mesmo meio, por exemplo, o mesmo cabo.
Patrick Terlisten 9/03/19

Ainda tenho a mesma pergunta sobre 100base-tx, caso tenhamos incompatibilidade duplex e o nodeA seja half duplex e nodeB full duplex. Suponha que o nodeA tenha uma interface MDI e o nodeB um MDI-X. O nó B transmite dos pinos 3 e 4 e o nó B recebe apenas dos 3 e 4. Como pode ocorrer uma colisão no nó A, uma vez que recebe apenas desses pinos?
Christos Dalamagkas 9/03/19

6
A colisão acontece em L1, não em L2 - são os bits / portadores que colidem. Dois remetentes colidem quando tentam enviar (próximo) simultaneamente.
Zac67

Respostas:


11

Para entender isso, você precisa entender o contexto histórico.

Originalmente, a Ethernet usava um cabo coaxial compartilhado. Somente um dispositivo pôde transmitir com êxito por vez. Se dois dispositivos transmitidos ao mesmo tempo, era considerado uma colisão.

Então surgiram repetidores, para estender a distância e aumentar o número de nós. Um repetidor detectaria qual porta está transmitindo e repetiria esse sinal nas outras portas. Para manter a detecção de colisão, os repetidores em funcionamento tinham que ter alguma funcionalidade para garantir que todos os nós detectassem uma colisão. Os primeiros repetidores tinham apenas duas portas, mas os repetidores posteriores podiam ter várias portas, que se tornaram conhecidos como hubs, especialmente quando usados ​​em conjunto com a fiação de par trançado. Os repetidores eram dispositivos bastante estúpidos, eles regenerariam os sinais elétricos, mas pouco mais.

Em seguida, entrou o 10BASE-T, que, como você notou, possui canais de dados dedicados para cada direção. No entanto, ele ainda precisava se encaixar no modelo existente; portanto, por padrão, operava no modo "half-duplex", onde emulava um cabo coaxial. De fato, os sinais não colidiram com o fio, mas os transceptores agiram como se o fizessem e os repetidores seguiriam as mesmas etapas de antes para garantir que isso fosse visto na rede.

A Ethernet de par trançado também pode suportar o modo "full-duplex". Nesse modo, todo o hardware relacionado à colisão é desativado e as duas extremidades podem transmitir a qualquer momento. No entanto, este modo trouxe algumas grandes desvantagens.

  • Era incompatível com hubs repetidores. Sem os mecanismos de detecção de colisão, os hubs não teriam como lidar com dois dispositivos transmitindo ao mesmo tempo.
  • Ambas as extremidades de um link devem ser configuradas para o mesmo modo duplex, se não forem, coisas ruins acontecerão.

Esses problemas significavam que, na prática, os sistemas 10BASE-T quase sempre operavam no modo half-duplex.

Para o 100BASE-TX, a situação melhorou dramaticamente. Os switches Ethernet (pontes multiporta tecnicamente rápidas) caíram de preço a ponto de os hubs repetidores mudos poderem ser eliminados. A negociação automática permitiu que as placas de rede estabelecessem conexões full-duplex sem configuração manual suscetível a erros. Se você conectar duas NICs 100BASE-TX juntamente com um cabo cruzado ou uma NIC 100BASE-TX a um comutador e não tomar medidas para substituir manualmente as coisas, elas certamente negociarão o modo full-duplex.

O 1000BASE-T teoricamente possui um modo half-duplex que algumas placas de rede alegam oferecer suporte e havia uma especificação para repetidores multiportas gigabit, mas nunca vi nenhuma evidência de que alguém já tenha vendido um. Na prática, um link de gigabit quase certamente estará sendo executado no modo full-duplex.

Velocidades mais rápidas abandonaram completamente o modo half-duplex.


E então a Ethernet sem fio chegou e as colisões de mídia se tornaram uma coisa novamente.
OrangeDog

@ OrangeDog, se você quer dizer Wi-Fi (IEEE 802.11), isso não é Ethernet sem fio (IEEE 802.3). É um protocolo completamente diferente que possui quadros diferentes e usa CSMA / CA em vez de CSMA / CD. Os dois protocolos são muito diferentes, enquanto a Ethernet nas várias mídias suportadas é basicamente a mesma.
Ron Maupin

14

Um hub é realmente apenas um cabo de alimentação que repete todos os sinais que recebe em uma interface para todas as outras interfaces. Se dois dispositivos transmitirem ao mesmo tempo para o recebimento das interfaces do hub, o hub repetirá os dois sinais ao mesmo tempo para a transmissão de todas as outras interfaces do hub e os dois sinais recebidos colidirão na transmissão das outras interfaces, portanto você tem uma colisão em que todas as outras interfaces têm sinais de lixo porque são dois sinais ao mesmo tempo. Os hosts que estão enviando simultaneamente e ouvem outro sinal perceberão que mais de um está enviando por vez e determinarão que há uma colisão.

Pense dessa maneira: o recebimento de todas as interfaces de hub é conectado à transmissão de todas as outras interfaces. Dentro do hub, a transmissão e a recepção estão conectadas, mesmo se estiverem separadas na interface.

Compare isso com um switch, em que cada link é terminado na interface do switch e o switch não possui as interfaces conectadas. Em vez disso, o switch possui lógica (geralmente embutida no hardware) para determinar para onde enviar os quadros recebidos em uma interface e para evitar colisões dentro do switch.

Um switch é uma ponte de alta densidade. As pontes originais eram como PCs com múltiplas interfaces. Você não esperaria que um PC com várias interfaces tivesse colisões se recebesse quadros simultâneos em várias interfaces.


Editar:

Seus comentários me levam a acreditar que você ainda não entende o que escrevi acima sobre hubs.

A maneira como as colisões são detectadas ao usar o UTP e um hub é quando os dispositivos emissores ouvem outro sinal durante o envio. Se um dispositivo usando UTP estiver configurado para half-duplex, ele acreditará que há uma colisão quando ouvir um sinal durante o envio.

Quando você tem uma incompatibilidade duplex, o dispositivo configurado para full duplex é enviado com satisfação ao receber do dispositivo configurado para half duplex. Por outro lado, o dispositivo configurado para half duplex acreditará que há uma colisão ao enviar e ouve o sinal do dispositivo configurado para full duplex. Isso causará todos os tipos de problemas, porque o dispositivo configurado para half-duplex deixará de enviar o quadro (causando um atraso) e enviará um sinal de obstrução que o dispositivo configurado para full-duplex não está esperando. O dispositivo configurado para full duplex deixará de enviar seu quadro.


3
Esta é a verdadeira resposta. O OP está ignorando todos os casos, exceto apenas dois pontos de extremidade com um cabo cruzado (ou, em um cenário moderno, qualquer cabo) entre eles.
R .. GitHub Pare de ajudar o gelo

@R .., o desenho da pergunta mostra um hub, então eu respondi por uma conexão de hub.
Ron Maupin

Esta resposta explica como a colisão ocorre quando você tem um hub na topologia. Embora possa ocorrer uma colisão tardia quando houver dois nós (digamos, um switch e um PC), um é half-duplex e o outro é full-duplex. Por que uma colisão ocorre neste caso, mesmo que haja circuitos separados para Tx e Rx, conforme mostrado no gráfico da minha pergunta?
Christos Dalamagkas 9/03/19

Parece que o rótulo "Hub MDI-X" causou alguma confusão sobre o ponto da minha pergunta. Eu editei de acordo.
Christos Dalamagkas 9/03/19

3
Porque aquele com half-duplex declara uma colisão quando ouve algo durante o envio. Veja a resposta acima. Se um dispositivo configurado para half-duplex ouve outro sinal durante o envio, ele deve assumir que há uma colisão porque acredita que é half-duplex e apenas um dispositivo por vez pode enviar.
Ron Maupin

8

Ótima pergunta.

Em full duplex, há um canal dedicado para o tráfego da "esquerda para a direita" e um canal dedicado para o tráfego da "direita para a esquerda":

Canal dedicado

Portanto, em full duplex, as colisões são impossíveis - mesmo que as duas placas de rede transmitam ao mesmo tempo.

No half-duplex , no entanto, o tráfego em qualquer direção destina-se a usar apenas o fio, uma direção por vez. Portanto, embora fisicamente ainda existam canais dedicados, logicamente, se uma NIC receber alguma coisa enquanto estiver transmitindo, ela será registrada como uma colisão. Os bits / sinais realmente não "colidem" no fio - um contador de colisão é simplesmente incrementado quando a NIC está recebendo e transmitindo ao mesmo tempo.


4
Os sinais colidem no fio, mesmo com pares trançados. Com três nós finais, dois sinais simultâneos colidiriam no terceiro nó.
Zac67

4
" Os bits / sinal na verdade não" colidem "no fio " Em um hub, como no desenho da pergunta, os bits realmente colidem no fio e produzem um sinal de lixo. Os hosts que estão enviando simultaneamente e ouvem outro sinal enviarão um sinal de interferência para todas as outras interfaces no hub.
Ron Maupin

@ RonMaupin Você está certo, é claro - eu estava me referindo ao que aconteceria quando o repetidor não detectasse / reagisse à colisão.
Zac67

1
@ Zac67, eu não estava comentando por você, você e eu dissemos a mesma coisa basicamente ao mesmo tempo.
Ron Maupin

@ Zac67 / RonMaupin O OP editou a pergunta confirmando que não está perguntando sobre o caso de hubs.
Eddie

6

Com par trançado e um hub repetidor, o hub não é muito mais que um amplificador digital. Para isso, ele detecta uma portadora de um sinal recebido em uma porta e alterna todas as outras portas para o modo de saída. Nesse modo de saída, qualquer operadora de entrada adicional é uma colisão. Isso dispara um sinal de congestionamento para propagar a colisão e fazer o remetente parar de transmitir.

Esse método de repetição imita o comportamento das variantes Ethernet de mídia compartilhada anteriores (10BASE5 e 10BASE2), nas quais o repetidor era usado apenas como junções de segmentos físicos ou extensores de linha. É claro que você está correto: o par trançado é um meio full duplex no nível do fio, onde uma colisão só acontece na camada física superior e não no próprio fio.

Um repetidor não pode permitir mais de um remetente ao mesmo tempo. Múltiplas transmissões simultâneas se misturariam nas portas de saída e produziriam ruídos ininteligíveis. Da mesma forma, qualquer nó no modo half-duplex assume um meio compartilhado, incapaz de transmissão full-duplex. Qualquer transportadora detectada durante a transmissão é uma colisão, fazendo com que o remetente se afaste. Se o meio é compatível com full-duplex (fibra, par trançado) ou não (cabo coaxial), não importa.

Com uma incompatibilidade duplex, uma extremidade do link está no modo half-duplex e a outra no modo full-duplex. Agora, quando o lado half-duplex (HDX) está transmitindo, qualquer portadora em seu receptor faz com que seja detectada uma colisão. No entanto, o lado full-duplex (FDX) pode ser enviado com facilidade enquanto está sendo recebido do lado do HDX e é completamente alheio às colisões que ele cria no lado oposto. O lado HDX precisa interromper a transmissão e envia um sinal de congestionamento. Como o lado do FDX não pode detectar a suposta colisão, ele detecta um quadro parcial e, portanto, danificado.

Os quadros pequenos e de baixa frequência têm uma chance razoável de superar essa incompatibilidade duplex, para que um pingpossa realmente funcionar. No entanto, assim que qualquer transmissão séria tentar iniciar, a frequência de quadros mais alta e o tamanho maior farão com que as transmissões falhem com muita confiabilidade.

Com comutadores não gerenciados, pode ser muito difícil detectar uma incompatibilidade duplex, especialmente quando nem as NICs do host relatam seu modo duplex corretamente.

Com comutadores gerenciados, você normalmente possui contadores de erros de porta. O aumento de colisões de um lado (HDX) e o aumento de runts e erros de FCS do outro lado (FDX) são indicações muito fortes para uma incompatibilidade duplex.

Basicamente, confiar na negociação automática é uma prática muito boa para evitar incompatibilidades duplex. A configuração manual do modo velocidade e duplex geralmente é suscetível de criar uma incompatibilidade, especialmente ao substituir o equipamento alguns anos depois. Felizmente, todo o esquema half-duplex desapareceu com a Gigabit Ethernet e mais rápido.


3

Suponha que a máquina A comece a enviar dados para a máquina B. À medida que o pacote começa a ser enviado, a máquina C começa a enviar dados diferentes para a máquina B. Existe apenas um caminho de sinal para a máquina B; portanto, as transmissões de A e C colidem e B não pode receber os dois.

O fato de um circuito diferente ser usado para transmissões da máquina B, da máquina A e da máquina C não ajuda. Tudo o que está acontecendo é que A e C estão tentando transmitir para a máquina B ao mesmo tempo e há apenas um caminho de sinal para a máquina B.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.