Você está na página 1de 3

Captulo 3 Camada de Transporte

Tcnicas utilizadas pelos protocolos para reverter os dados perdidos ou corrompidos e


congestionamentos

1. INTRODUO E SERVIOS DE CAMADA DE TRANSPORTE


Fornece servios de comunicao lgica (para a aplicao como se os hospedeiros
estivessem conectados diretamente, quando podem estar distantes e com inmeros roteadores e
enlaces entre eles) entre processos de aplicao que rodam em hospedeiros diferentes;
Os protocolos da camada de transporte so implementados nos sistemas finais e no nos
roteadores da rede;
Transforma as mensagens da camada de aplicao em pacotes fragmentos adicionados de
cabealhos (segmento) da camada de transporte; e repassa para a camada de rede do sistema
final (que transformar os segmentos e datagramas: roteadores s olham p o cabealho
adicionado pela camada de rede!)
1.1 Relao entre as camadas de transporte e a de rede
Camada transporte: comunicao lgica entre processos (multiplexao/demultiplexao de
camada de transporte); Camada rede: comunicao lgica entre hospedeiros
Servios que um protocolo de transporte pode oferecer so, geralmente, limitados pelos
servios oferecidos pelos protocolos de rede; entretanto, um protocolo de transporte pode oferecer
certos servios mesmo que os protocolos de rede no tenham um servio equivalente;
1.2 Viso geral da camada de transporte na Internet
Protocolos da internet: TCP Transmission Control Protocol (orientado a conexo, confivel)
e UDP User Datagram Protocol (no orientado a conexo, no confivel)
O criador de uma aplicao de rede deve escolher entre um desses dois protocolos ao criar
os sockets (portas em que dados passam da rede p o processo e do processo p rede);
(REDE protocolo IP, servio de entrega de melhor esforo, no garante entrega, ordem,
integridade, no confivel; hospedeiro tem pelo menos um end. da camada rede, end. IP);
TCP e UDP fornecem verificao de integridade (campos de deteco de erros nos
cabealhos)
TCP: transferncia de dados confivel corretude e ordem (controle de fluxo, nmeros de
seqncia, reconhecimentos, temporizadores); controle de congestionamento (servio dirigido a
toda a Internet, no a aplicao solicitante) complexo

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

3. TRANSPORTE NO ORIENTADO PARA A CONEXO: UDP


Protocolo de transporte simples, servio de multip./demultiplexao e verifica erros
A aplicao praticamente fala com o IP
Mensagens do processo aplicao + campos n porta fonte e destino + 2 campos
No h apresentao entre remetente e destinatrio
DNS um protocolo da camada de aplicao que utiliza UDP
Porque UDP:
- no h controle de congestionamento, nem insistncia no envio, assim logo que uma aplicao
envia uma mensagem ela encapsulada e colocada na rede, no tem que esperar, ideal para
aplicaes em tempo real, que podem admitir algumas perdas, mas no atrasos.
- no h apresentao inicial (h no TCP), no induz atrasos para estabelecer conexo
- no h estados (h no TCP) de conexo nos sistemas finais, no usa buffers/parmetros
- a sobrecarga nos pacotes pequena: 8 bytes (no TCP so 20 bytes).

Aplicao Protocolo de aplicao Protocolo de transporte


Correio eletrnico SMTP TCP
Acesso a terminal remoto Telnet TCP
Web HTTP TCP
Transferncia de arquivo FTP TCP
Servidor remoto de arquivo NFS Tipicamente UDP
Recepo de multimdia Tipicamente proprietria Tipicamente UDP
Telefonia por Internet Tipicamente proprietria Tipicamente UDP
Gerenciamento de rede SNMP Tipicamente UDP
Protocolo de roteamento RIP Tipicamente UDP
Traduo de nome DNS Tipicamente UDP

3.1 Estrutura do segmento UDP


Campo de dados (mensagem da aplicao) + cabealho (quatro campos com 2 bytes cada:
porta da fonte, porta destino, comprimento B, soma de verificao(receptor verifica se h erros).
3.2 Soma de verificao UDP
Remetente realiza complemento de 1 da soma de todas as palavras de 16 bits
Destinatrio soma todas as palavras de 16 bits incluindo a soma de verificao:
- sem erros = tudo 1
No faz nada para recuperar erros encontrados, repassa com aviso ou descarta.

4. PRINCPIOS DA TRASFERNCIA CONFIVEL DE DADOS


Um protocolo com esta caracterstica implementa a abstrao do servio fornecido a camadas
superiores um canal de dados confivel (dados no so corrompidos, nem perdidos, nem
entregues fora de ordem), quando a camada abaixo pode no ser confivel! Ex: TCP confivel,
mas implementado sobre uma camada de rede fim-a-fim no confivel (IP).
Remetente: rdt_send() utd_send()
Canal no confivel
Destinatrio: rdt_rcv() deliver_data
Alm de pacotes com dados, h trocas de pacotes de controle

5. TRANSPORTE ORIENTADO PARA CONEXO: TCP


O TCP inclui deteco de erro, retransmisso, reconhecimento cumulativo, temporizadores,
campos de cabealho para n de seqncia e de reconhecimento.

5.1 A conexo TCP


Orientado para conexo porque h apresentao! Iniciam variveis de estado nessa conexo.
O protocolo roda apenas nos sistemas finais, assim os elementos intermedirios no
armazenam estados de conexo TCP.
Prove um servio full-duplex (numa mesma conexo ambos os sentidos, envia e recebe).
sempre ponto-a-ponto (um nico remetente e um nico destinatrio) x multicast.
Processo que inicia a conexo o processo cliente, o outro processo servidor. A aplicao
informa a camada transporte que deseja estabelecer a conexo (Socket clienteSocket = new
Socket(hostname, portNumber)), o cliente envia um segmento especial TCP, o servidor responde
com outro e o cliente envia outro (j pode conter dados da camada aplicao) = apresentao de
trs vias.
Estabelecida a conexo TCP, dados passam pelo socket e esto nas mos do TCP, que os
direciona para o buffer de envio, a quantidade mxima a ser retira limitada pelo tamanho mximo
do segmento // no o tamanho mximo do segmento TCP, mas dos dados // (MSS estabelecido
pelo tamanho do maior quadro de camada de enlace que pode ser enviado - MTU).
O TCP combina: dados fornecidos do cliente com um cabealho TCP segmentos TCP e
extrai: os dados do segmento armazenando-os no buffer de recepo (a aplicao l).
TCP consiste em: buffers, variveis e um socket de conexo em cada hospedeiro.

5.2 Estrutura do segmento TCP

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.