Retransmissões excessivas na Ethernet

2

As variantes CSMA / CA da Ethernet lidam com transmissões com falha excessiva devido a colisões repetidas por derrubando o quadro atual e confiando em camadas superiores para retransmissões :

After 16 attempts station B will reset its collision counter allowing it to compete more aggressively again. But it also discards the frame it was attempting to transmit, requiring that it be queued for transmission again by software.

Eu percebo que em redes Ethernet modernas (comutadas), o CSMA / CA não é mais usado, e o efeito de captura de canal mencionado na fonte não ocorre, mas estou tentando entender a separação da camada de rede e interação implementada pelo kernel do Linux nessa situação.

No Linux, em quais camadas essas retransmissões são tratadas? Isso será feito na camada IP ou o quadro Ethernet perdido também resultará em um pacote de camada de rede descartada e um segmento TCP descartado ou um datagrama UDP?

A diferença entre as duas abordagens parece ser que, no segundo caso, a repetição excessiva seria interpretada como congestionamento e levaria a uma diminuição do tamanho da janela de congestionamento do TCP. Isso acontece ou o quadro eliminado é transparente para o TCP?

    
por lxgr 26.11.2012 / 13:47

1 resposta

2

O IP não garante a entrega e, de fato, muitos protocolos que são construídos sobre IP (provavelmente o mais conhecido como UDP) também não fazem tais garantias.

As garantias de entrega no TCP / IP são tratadas pelo TCP. O TCP pode funcionar através de um protocolo de entrega garantida, mas é projetado de tal forma que não é necessário. Se o protocolo subjacente não garantir a entrega, o TCP irá.

Assim, no caso normal do TCP / IP, um quadro Ethernet descartado leva a um pacote IP descartado ou corrompido, que por sua vez se traduz em um pacote TCP ou UDP descartado ou corrompido. Se é TCP (ou algum outro protocolo que faz garantias de entrega), o TCP é responsável por detectar a falha e tentar novamente a transmissão.

Isso é independente da implementação do sistema operacional ou da pilha IP, pois trata dos próprios protocolos. Qualquer implementação TCP que não detecte falhas de transmissão de nível inferior (IP ou inferior) viola a especificação.

Observe também que as colisões definitivas são apenas uma maneira em que os pacotes podem se tornar corrompidos ou destroçados em um nível que o TCP não tem como evitar e só pode detectar (e reagir). E o IP também pode funcionar com portadoras não Ethernet; veja RFC 1149 para um exemplo.

    
por 26.11.2012 / 13:58