Saltar para o conteúdo

Utilizador:Fabianarocha

Fonte: Wikiversidade

Multiplexação e Demultiplexação na camada de transporte

[editar | editar código-fonte]

Sabe-se que o serviço de multiplexação e o de demultiplexação é de extrema importância para todas as redes de computadores. No entanto, aqui será enfatizado seu uso na camada de transporte. A camada de transporte, em um hospedeiro de destino, recebe segmentos da camada de rede que fica abaixo dela( isso acontece, analisando uma abordagem top-down), a qual tem o dever de entregar todos os dados desses segmentos ao processo da camada de aplicação, que também roda nesse hospedeiro. Porém, o que acontece na realidade é que a camada de transporte não entrega os segmentos a um processo, mas sim em um socket(porta) intermediário. Onde cada socket tem um identificador exclusivo, que depende de o socket ser TCP ou UDP. O direcionamento a uma porta correta de um segmento, é feito a partir da análise de um conjunto de campos que se localiza no segmento. Nesse campo encontra-se a porta destinatária, a qual o segmento será direcionado pela camada de transporte. Esse direcionamento a porta correta é denominado de demultiplexação. Define-se multiplexação como sendo a tarefa de reunir pedaços de dados, vindos de diferentes portas (no hospedeiro de origem), encapsulando esses pedaços com o conjunto de campos para criar segmentos e entregá-los a camada de rede. A transferência de dados pode ser feita por: UDP (não orientada para conexão) ou TCP (orientada para conexão). Caso seja feita por UDP, o socket UDP é identificado por uma tupla com dois elementos: endereços IP de destino e um número de porta de destino; por outro lado seja feita por TCP, o socket TCP é identificado por uma tupla com quatro elementos: endereço IP de origem, número da porta de origem, endereço IP de destino e número da porta de destino.

Multiplexação/demultiplexação não orientada para conexão

[editar | editar código-fonte]

A porta UDP pode ser criada a partir de uma implementação, na qual pode se designar um número de porta específico ou mesmo deixar que seja designado um número de porta ao socket pela camada de transporte. Logicamente isso, dependerá da escolha do implementador. Em geral, o lado servidor de uma aplicação designa um número de porta específico, enquanto o lado cliente da aplicação deixa essa escolha livre e transparente para a camada de transporte. Com isso, entende-se que mesmo que dois ou mais segmentos tenham endereços IP ou número de porta fonte diferentes eles poderão ser direcionados ao mesmo processo de destino, caso tenham o mesmo número IP e mesmo número de porta de destino pela mesma porta de destino.