Resumo Capítulo 3 Kurose - Redes
Casos: Resumo Capítulo 3 Kurose - Redes. Pesquise 862.000+ trabalhos acadêmicosPor: GuilhermeAlves • 3/8/2013 • 5.328 Palavras (22 Páginas) • 1.439 Visualizações
Capítulo 3 – Camada de Transporte
Técnicas utilizadas pelos protocolos para reverter os dados perdidos ou corrompidos e congestionamentos
1. INTRODUÇÃO E SERVIÇOS DE CAMADA DE TRANSPORTE
Fornece serviços de comunicação lógica (para a aplicação é como se os hospedeiros estivessem conectados diretamente, quando podem estar distantes e com inúmeros roteadores e enlaces entre eles) entre processos de aplicação que rodam em hospedeiros diferentes;
Os protocolos da camada de transporte são implementados nos sistemas finais e não nos roteadores da rede;
Transforma as mensagens da camada de aplicação em pacotes – fragmentos adicionados de cabeçalhos – (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 cabeçalho adicionado pela camada de rede!)
1.1 Relação entre as camadas de transporte e a de rede
Camada transporte: comunicação lógica entre processos (multiplexação/demultiplexação de camada de transporte)
Camada rede: comunicação lógica entre hospedeiros
Serviços que um protocolo de transporte pode oferecer são, geralmente, limitados pelos serviços oferecidos pelos protocolos de rede; entretanto, um protocolo de transporte pode oferecer certos serviços mesmo que os protocolos de rede não tenham um serviço equivalente;
1.2 Visão geral da camada de transporte na Internet
Protocolos da internet: TCP – Transmission Control Protocol – (orientado a conexão, confiável) e UDP – User Datagram Protocol – (não orientado a conexão, não confiável)
O criador de uma aplicação 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, serviço de entrega de melhor esforço, não garante entrega, ordem, integridade, não confiável; hospedeiro tem pelo menos um end. da camada rede, end. IP);
TCP e UDP fornecem verificação de integridade (campos de detecção de erros nos cabeçalhos)
TCP: transferência de dados confiável – corretude e ordem (controle de fluxo, números de seqüência, reconhecimentos, temporizadores); controle de congestionamento (serviço dirigido a toda a Internet, não a aplicação solicitante) complexo
2. MULTIPLEXAÇÃO E DEMULTIPLEXAÇÃO
Ampliação do serviço de entrega hospedeiro a hospedeiro (rede) para processo a processo para aplicação que roda nesse hospedeiro (transporte)
Receptor: a camada transporte precisará direcionar a aplicação a receber os dados vindos da camada de rede. Processos podem ter um ou mais sockets.
Demultiplexação: 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.
Multiplexação: no hospedeiro de origem, reunião de dados provenientes de diferentes portas e encapsulamento com informações de cabeçalho para criar segmentos. Portas precisam ter identificadores exclusivos (16 bits: 0-1023: números de porta bem conhecidos) e cada segmento campos especiais para indicar a porta que ele deve ser entregue (campo de número de porta da fonte e campo de número de porta do destino)
• Multiplexação e demultiplexação não orientadas para conexão
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 número de porta de destino. O número da porta fonte é um endereço de retorno
• Multiplexação e demultiplexação orientadas para conexão
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 conexão TCP.
Cliente TCP estabelecendo uma conexão com o servidor (cria um socket TCP para o processo cliente, através do qual os dados irão entrar e sair do processo cliente):
Socket clientSocket = new Socket (“serverHostName”, 6789);
Servidor criando uma nova conexão:
Socket connectionSocket = welcomeSocket.accept();
O servidor olha para o tupla de quatro números e todos os próximos segmentos que chegarem com esses quatro valores serão demultiplexados para esta porta. O servidor pode suportar vários sockets TCP simultâneos
• Servidores Web e TCP
Servidores Web geram um novo processo (cada um com seu próprio socket) ou criam uma nova thread para cada conexão cliente (sem uma correspondência unívoca entre processo e socket, aumenta o desempenho). Obs.: HTTP persistente e não-persistente
3. TRANSPORTE NÃO ORIENTADO PARA A CONEXÃO: UDP
Protocolo de transporte simples, serviço de multip./demultiplexação e verifica erros
A aplicação praticamente fala com o IP
Mensagens do processo aplicação + campos n° porta fonte e destino + 2 campos
Não há apresentação entre remetente e destinatário
DNS é um protocolo da camada de aplicação que utiliza UDP
Porque UDP:
- não há controle de congestionamento, nem insistência no envio, assim logo que uma aplicação envia uma mensagem ela é encapsulada e colocada na rede, não tem que esperar, ideal para aplicações em tempo real, que podem admitir algumas perdas, mas não atrasos.
- não há apresentação inicial (há no TCP), não induz atrasos para estabelecer conexão
- não há estados (há no TCP) de conexão nos sistemas finais, não usa buffers/parâmetros
- a sobrecarga nos pacotes é pequena: 8 bytes (no TCP são 20 bytes)
...