Camada de Transporte: mudanças entre as edições
Linha 70: | Linha 70: | ||
==Protocolo TCP== | ==Protocolo TCP== | ||
O '''protocolo TCP''', como o UDP, também oferece a '''multiplexação/ | O '''protocolo TCP''', como o UDP, também oferece a '''multiplexação/demultiplexação de aplicações''' através das portas e o mecanismo de '''detecção de erros'''. A grande diferença é que o TCP é um protocolo '''orientado a conexão''' e com '''transferência garantida''', onde os dois processos devem acordar entre eles uma abertura de conexão para que os dados possam ser transferidos. Além destas características, o TCP integra ainda um serviço de '''controle de fluxo''', que assegura que nenhum dos lados da comunicação envie pacotes rápido demais, pois uma aplicação em um lado pode não conseguir processar a informação na velocidade que está recebendo, e um serviço de '''controle de congestionamento''' ajuda a prevenir congestionamentos na rede. | ||
;Conexão TCP: Uma '''conexão TCP''' é uma conexão '''full-duplex''' (isto é, em ambos os sentidos e simultânea) entre o ''host'' emissor e o ''host'' receptor. Uma vez estabelecida à conexão os dois processos podem trocar informações. | ;Conexão TCP: Uma '''conexão TCP''' é uma conexão '''full-duplex''' (isto é, em ambos os sentidos e simultânea) entre o ''host'' emissor e o ''host'' receptor. Uma vez estabelecida à conexão os dois processos podem trocar informações. | ||
O cliente solicita a '''abertura de conexão''' em uma '''porta bem conhecida do servidor''' (por exemplo, porta 80 de um servidor Web) e informa a '''porta origem''' para receber as respostas, além de ajustar outros parâmetros para implementar a '''transferência garantida'''. | O cliente solicita a '''abertura de conexão''' em uma '''porta bem conhecida do servidor''' (por exemplo, porta 80 de um servidor Web) e informa a '''porta origem''' para receber as respostas, além de ajustar outros parâmetros para implementar a '''transferência garantida'''. | ||
Edição das 19h25min de 6 de maio de 2014
Protocolos de Transporte da Internet
Os Protocolos de Transporte da Internet estão situados entre a camada aplicação e a camada rede da Arquitetura Internet e tem a função de prover um canal de comunicação lógico fim-a-fim entre os processos de aplicação rodando em diferentes computadores.
Os dois Protocolos de Transporte da Internet são o TCP e o UDP:
- TCP
- Oferece um serviço orientado a conexão, com transmissão de dados garantida ou livre de erros.
- UDP
- Oferece um serviço não orientado a conexão, com transmissão de dados tipo melhor esforço, portanto sujeita a erros.
Multiplexação/demultiplexação de aplicações através de portas
A camada rede e o protocolo IP são responsáveis por entregar datagramas, ou pacotes IP, de um host a outro host, identificados pelos endereços IP origem e destino.
Como em cada host podem haver vários processos de aplicação rodando, a camada transporte, com os protocolos TCP e UDP, são responsáveis por entregar pacotes, chamados segmentos, de um processo rodando em um host origem a outro processo rodando no host destino, identificados pelos números de porta origem e destino. Este serviço é chamado multiplexação / demultiplexação de aplicações.
- Exemplo 1
- Cliente e servidor HTTP
- Um servidor de aplicações espera conexões em portas bem conhecidas. Por exemplo, um servidor Web utiliza a porta 80 para aceitar conexões. Quando um navegador Web inicia uma seção, ele envia ao servidor um segmento TCP com porta destino 80 e coloca como número de porta origem uma porta que não esteja sendo utilizada no host cliente, por exemplo, a porta 18123. A porta 18123 será onde o cliente vai esperar a resposta do servidor. Quando o servidor recebe o segmento, ele verifica que o mesmo é endereçado a porta 80 e então sabe que se trata da aplicação Web. No envio da resposta o servidor inverte as portas origem e destino. Enviando ao cliente um segmento com porta destino 18123 e origem 80.
- Portas reservadas e portas de uso geral
- Portas de 0 a 1023: Portas reservadas, utilizadas pela aplicações bem conhecidas.
- Portas de 1024 a 65535: Portas de uso geral.
Algumas portas reservadas:
13 TCP daytime Daytime 13 UDP daytime Daytime 20 TCP ftp-data File Transfer [Default Data] 21 TCP ftp File Transfer [Control] 22 TCP ssh SSH Remote Login Protocol 23 TCP telnet Telnet 25 TCP smtp Simple Mail Transfer 53 UDP domain Domain Name Server 80 TCP www-http World Wide Web HTTP 110 TCP pop3 Post Office Protocol - Ver 3 443 TCP https http protocol over TLS/SSL
- Exemplo 2
- Três clientes e um servidor Web
- No host A temos dois processos cliente Web acessando o servidor C (porta 80), cada um identificado por uma porta origem (1028 e 1029, respectivamente). No host B temos outro processo cliente (porta 1155) está acessando o servidor C (porta 80). O servidor encaminha as respostas ao cliente identificando o IP e a porta correspondente.
Protocolo UDP
O protocolo UDP provê um serviço de transporte não orientado a conexão, ou melhor esforço.
Além das informações do IP origem e IP destino e outras informações da camada rede, cada pacote entregue pelo UDP acrescenta a identificação da porta origem e porta destino e um um campo de checksum que implementa um mecanismo de detecção de erros.
- Cabeçalho do protocolo UDP
Checksum
Permite a detecção de erros nos dados transmitidos. Para isto, o emissor UDP faz o complemento de 1 da soma de todos as palavras de 16 bits do pacote e coloca o resultado no campo cheksum.
Por exemplo, suponha que temos três palavras de 16 bits sendo transmitidas:
0110011001100110 0101010101010101 0000111100001111
A soma será
0110011001100110 0101010101010101 +________________ 1011101110111011
Adicionando a terceira palavra a esta soma
1011101110111011 0000111100001111 +________________ 1100101011001010
O complemento de 1 é obtido invertendo cada bit 1 por 0 e vice-versa. Desta forma o complemento da soma será 0011010100110101 o qual será o cheksum. No lado do receptor UDP, todas as palavras de 16 bits recebidas são adicionadas, incluindo o cheksum. Se não houve erros na transmissão, a soma será 1111111111111111. Se um dos bits for 0, então é sabido que houve erros.
Protocolo TCP
O protocolo TCP, como o UDP, também oferece a multiplexação/demultiplexação de aplicações através das portas e o mecanismo de detecção de erros. A grande diferença é que o TCP é um protocolo orientado a conexão e com transferência garantida, onde os dois processos devem acordar entre eles uma abertura de conexão para que os dados possam ser transferidos. Além destas características, o TCP integra ainda um serviço de controle de fluxo, que assegura que nenhum dos lados da comunicação envie pacotes rápido demais, pois uma aplicação em um lado pode não conseguir processar a informação na velocidade que está recebendo, e um serviço de controle de congestionamento ajuda a prevenir congestionamentos na rede.
- Conexão TCP
- Uma conexão TCP é uma conexão full-duplex (isto é, em ambos os sentidos e simultânea) entre o host emissor e o host receptor. Uma vez estabelecida à conexão os dois processos podem trocar informações.
O cliente solicita a abertura de conexão em uma porta bem conhecida do servidor (por exemplo, porta 80 de um servidor Web) e informa a porta origem para receber as respostas, além de ajustar outros parâmetros para implementar a transferência garantida.
- Autoria
- Evandro Cantú / IFPR - Câmpus Foz do Iguaçu