Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
2. MULTIPLEXAO E DEMULTIPLEXAO
Ampliao do servio de entrega hospedeiro a hospedeiro (rede) para processo a processo
para aplicao que roda nesse hospedeiro (transporte)
Receptor: a camada transporte precisar direcionar a aplicao a receber os dados vindos
da camada de rede. Processos podem ter um ou mais sockets.
Demultiplexao: na extremidade receptora, a camada de transporte examina os campos,
que direcionam a porta correta de um segmento que chega a camada de transporte, identifica a
porta e direciona o segmento a este socket.
Multiplexao: no hospedeiro de origem, reunio de dados provenientes de diferentes portas
e encapsulamento com informaes de cabealho para criar segmentos. Portas precisam ter
identificadores exclusivos (16 bits: 0-1023: nmeros de porta bem conhecidos) e cada segmento
campos especiais para indicar a porta que ele deve ser entregue (campo de nmero de porta da
fonte e campo de nmero de porta do destino)
Multiplexao e demultiplexao no orientadas para conexo
Hospedeiro criando uma porta UDP:
DatagramSocket mySocket = new DatagramSocket(); ou
DatagramSocket mySocket = new DatagramSocket(19157);
Socket UDP: identificado por um tupla com dois elementos: um end. IP de destino e um nmero
de porta de destino. O nmero da porta fonte um endereo de retorno
Multiplexao e demultiplexao orientadas para conexo
Socket TCP: identificado por uma tupla de quatro elementos: end. IP da fonte, n de porta da fonte,
end. IP destino e n de porta de destino e estabelecimento de uma conexo TCP.
Cliente TCP estabelecendo uma conexo com o servidor (cria um socket TCP para o processo
cliente, atravs do qual os dados iro entrar e sair do processo cliente):
Socket clientSocket = new Socket (serverHostName, 6789);
Servidor criando uma nova conexo:
Socket connectionSocket = welcomeSocket.accept();
O servidor olha para o tupla de quatro nmeros e todos os prximos segmentos que chegarem
com esses quatro valores sero demultiplexados para esta porta. O servidor pode suportar vrios
sockets TCP simultneos
Servidores Web e TCP
Servidores Web geram um novo processo (cada um com seu prprio socket) ou criam uma nova
thread para cada conexo cliente (sem uma correspondncia unvoca entre processo e socket,
aumenta o desempenho). Obs.: HTTP persistente e no-persistente
Campo de dados: vm da aplicao, tamanho limitado pelo MSS (o TCP pode fragmentar os
dados em vrios MSSs)
Campo de cabealho: geralmente 20 bytes, inclui: n de porta de fonte e de destino, campo
de soma de verificao, campo de n de seqncia (32 bits, serv. conf.), n de reconhecimento (32
bits, serv. conf.), janela de recepo (16 bits, cont, fluxo), comprimento de cabealho (4 bits,
quantas palavras de 32 bits),campo opes do TCP (pode variar, mas normalmente vazio,
negociao do MSS, tempo ou janela), campo flag (6 bits, ACK, RST, SYN, FIN, PSH, URG).
Nmeros de seqncia e nmeros de reconhecimento.
Fundamentais para o servio de transferncia confivel de dados do TCP.
TCP v os dados como uma cadeia de dados no estruturada, mas ordenada (numera
cada byte da cedia de dados).
N de seqncia = n do primeiro byte do segmento.
N de reconhecimento = o n de reconhecimento que o hospedeiro A atribui a seu
segmento o n de seqncia do prximo byte que ele estiver aguardando do hospedeiro B.
TCP s reconhece bytes at o primeiro que estiver faltando reconhecimentos
cumulativos
Adecisao do que fazer com pacotes que chegam fora de ordem de quem programar a
implementao TCP, porque no h nada definido (na pratica, armazena-se)
Telnet: um estudo de caso para nmeros de seqncia e nmeros de reconhecimento
hoje, prefere-se ssh, porque o telnet no utiliza criptografia. TCP usa piggypack (carona)
uma confirmao feita junta de um segmento de dados.