• Nenhum resultado encontrado

2 Tecnologias habituais para transporte do protocolo IP

2.5 Ethernet

2.5.1 Controlo MAC

Os serviços fornecidos pela sub-camada do MAC permitem que a entidade local do cliente do MAC, troque unidades de dados do LLC com entidades pares da sub-camada do LLC.

A sub-camada opcional de controlo do MAC fornece um serviço adicional para o controlo da operação do MAC. Isto pode ser usado para fornecer o controlo de fluxo entre outras entidades clientes pares do cliente do MAC.

Há quatro primitivas entre o MAC Ethernet e o cliente do MAC (LLC) e, bem como, entre o MAC Ethernet e a camada física (PHY), como ilustrado na figura 2.31.

A função da primitiva MA_DATA.request é de definir a transferência de dados de uma entidade do cliente do MAC a uma única entidade par, ou a múltiplas entidades pares no caso de endereços de grupo.

• MA_DATA.request (destination_address, source_address, m_sdu, service_class)

O DA (destination_address) pode especificar uma estação individual ou o endereço duma entidade MAC de grupo. Deve conter a informação suficiente para criar o campo de DA que é adicionado à trama pela entidade local da sub-camada do MAC. O source_address, se presente, deve especificar um endereço de MAC individual. Se o parâmetro de source_address for omitido, a entidade local da sub-camada do MAC introduzirá um valor associado com essa entidade. O m_sdu especifica a unidade de dados de serviço do MAC a ser transmitida pela entidade da sub- camada do MAC. Há informação suficiente associada ao m_sdu para que a entidade da sub- camada do MAC determine o comprimento da unidade de dados. O service_class indica a qualidade de serviço requisitada pelo cliente do MAC.

Esta primitiva é gerada pela entidade de cliente do MAC sempre que os dados são transferidos a uma entidade par ou a várias entidades pares. Isto pode suceder em resposta a um pedido desde camadas protocolares mais elevadas, de dados gerados internamente ao cliente do MAC.

A recepção desta primitiva fará com que a entidade do MAC introduza todos os campos específicos do MAC, incluindo DA, SA e qualquer campo que seja especifico ao método de acesso

ao meio, e passe a trama correctamente formada às camadas mais baixas do protocolo para transferência à entidade ou às entidades pares da sub-camada do MAC.

MAC Control Sublayer (opcional)

Medium Access Control Cliente MAC

MA_DATA.request

MA_DATA.Indication

TransmitFrame (SA, length/type, data)

MA_CONTROL.request (opcional) MA_CONTROL.Indication (opcional) MAC ReceiveFrame (SA, length/type, data)

variáveis CarrierSense receiveDataValid collisionDetect transmitting TransmitBit ReceiveBit Wait Funções e procedimentos PHY

Figura 2.31 – Modelo usado para a especificação da relação entre as primitivas dos serviços

A função da primitiva MA_DATA.indication é de definir a transferência dos dados da entidade da sub-camada do MAC (através da sub-camada opcional de controlo do MAC, se implementada) à entidade ou às entidades de cliente do MAC no caso de endereços de grupo.

• MA_DATA.indication (destination_address, source_address, m_sdu, reception_status) O destination_address pode ser uma estação individual ou um endereço de grupo como especificado pelo campo DA da trama recebida. O source_address é um endereço individual como especificado pelo campo de SA da trama recebida. O m_sdu especifica a unidade de dados do serviço do MAC tal como recebida pela entidade local do MAC. O reception_status é usado para passar a informação de estado à entidade de cliente do MAC.

O MA_DATA.indication é passado da entidade da sub-camada do MAC (através da sub-camada opcional de controlo do MAC, se implementada) à entidade ou às entidades de cliente do MAC, para indicar a chegada de uma trama à entidade local da sub-camada do MAC e que é destinada ao cliente do MAC. Tais tramas são relatadas somente se estiverem validamente formadas, recebidas sem erro e o seu endereço de destino designa a entidade local do MAC. As tramas destinadas à sub-camada opcional de controlo do MAC não são passadas ao cliente do MAC se a sub-camada de controlo do MAC for implementada.

Se a entidade local da sub-camada do MAC for designada pelo parâmetro de destination_address de um MA_DATA.request, a primitiva de indicação será também invocada pela entidade do MAC à entidade do cliente do MAC. Esta característica da sub-camada do MAC é devida à funcionalidade da mesma ou das características das camadas mais baixas (por exemplo, todas as tramas transmitidas ao endereço de difusão, invocam MA_DATA.indication em todas as estações na rede incluindo a estação que gerou o pedido).

desta primitiva é de definir a transferência de comandos de controlo de uma entidade do cliente do MAC à entidade local da sub-camada de controlo do MAC.

• MA_CONTROL.request (destination_address, opcode, request_operand_list)

O destination_address pode especificar o endereço de uma estação individual ou um endereço do grupo da entidade do MAC de destino. Deve conter a informação suficiente para criar o campo de DA que será adicionado à trama pela entidade local da sub-camada do MAC. O opcode especifica a operação de controlo pedida pela entidade do cliente do MAC. O request_operand_list é um conjunto de parâmetros específicos do opcode.

Esta primitiva é gerada por um cliente do MAC sempre que deseja usar os serviços da entidade opcional da sub-camada de controlo do MAC. O efeito de recepção desta primitiva pela sub- camada de controlo do MAC é específico do opcode.

A função da primitiva MA_CONTROL.indication é de definir a transferência de indicações de estado de controlo da sub-camada de controlo do MAC ao cliente do MAC. A execução da primitiva de MA_CONTROL.indication é imperativa se a sub-camada opcional de controlo do MAC for implementada.

• MA_CONTROL.indication (opcode, indication_operand_list)

A MA_CONTROL.indication é gerada pela sub-camada de controlo do MAC sob as condições específicas a cada operação de controlo do MAC.