Redes de Computadores Protocolos de comunicação: TCP, UDP
Introdução ao TCP/IP Transmission Control Protocol/ Internet Protocol (TCP/IP) é um conjunto de protocolos de comunicação utilizados para a troca de dados entre computadores em ambientes de redes locais ou remotas. As especificações dos protocolos TCP/IP são públicas e genéricas, o que permite sua implementação por diversos fabricantes. O Transmission Control Protocol / Internet Protocol (TCP/IP) utiliza-se de dois diferentes protocolos: TCP: camada de transporte. IP: camada de rede. O modelo TCP/IP é similar ao modelo OSI.
Protocolo TCP/IP Camada 1 Acesso à Rede A camada de Acesso à Rede ou Interface de Rede, consiste dos processos de acesso à rede física. Esta camada interage com o hardware, permitindo que as demais camadas do modelo TCP/IP sejam independentes do meio físico ou do hardware utilizado na comunicação. Camada 2 Internet A camada de Internet ou camada de Rede, é responsável pelo endereçamento dos equipamentos envolvidos na comunicação de rede e pelo roteamento dos dados pelas diversas redes que eles atravessarão. O IP Internet Protocol é o principal protocolo dessa camada.
Camada 3 Transporte Protocolo TCP/IP A camada de Transporte fornece serviço de entrega de dados fim-a-fim (host-a-host). São dois os protocolos desta camada: TCP Transmission Control Protocol: é um protocolo orientado a conexão e garante a entrega dos dados, corretos e na mesma sequência em que foram transmitidos. UDP User Datagram Protocol: não é orientado a conexão, não garante a entrega dos dados, mas gera menos sobrecarga (overhead) que o TCP.
Camada 4 Aplicação Protocolo TCP/IP A camada de Aplicação fornece serviços as aplicações e processos que utilizam a rede. Qualquer usuário pode criar suas aplicações, pois o TCP/IP é uma arquitetura aberta. Exemplos de protocolos de aplicação são: HTTP Hyper Text Transfer Protocol, Protocolo de Transferência de Hipertexto, Internet. FTP File Transfer Protocol, Transferência de Arquivos. SMTP e-mail, Simple Mail Transfer Protocol, Protocolo de Transferência de Mail. POP e-mail, Post Office Protocol, Protocolo de Correio.
Portas TCP - Conceitos O uso do conceito de portas permite que vários programas estejam em funcionamento, ao mesmo tempo, no mesmo computador, trocando informações com um ou mais serviços/servidores. As portas TCP são identificadas entre 1 a 65536 (2^16). Cada porta pode ser usada por um programa (processo) ou serviço diferente. Portanto, teoricamente seria possível ter até 65536 serviços diferentes ativos simultaneamente em um mesmo servidor, usando um endereço IP válido. As portas TCP de 1 a 1023 são reservadas para serviços mais conhecidos e utilizados. Além do endereço IP, qualquer pacote que circula na rede precisa conter também a porta TCP a que se destina. É isso que faz com que um pacote chegue até o servidor Web e não ao servidor FTP instalado na mesma máquina.
TCP Transmission Control Protocol Normalizado pelo IETF como RFC 793; O mais conhecido da camada de transporte (TCP/IP suite); Protocolo orientado à ligação; Estabelece a ligação lógica entre duas aplicações; Transposta os dados entre elas; Termina a ligação. Criado para assegurar a fiabilidade comunicações de dados.
TCP Fiabilidade Estabelecimento fiável de ligação; Transmissão fiável de dados; Encerramento fiável da ligação.
TCP Estabelecimento de Ligação Faz-se através da troca de três mensagens: Three-way handshake (aperto de mão a três tempos); O mínimo e suficiente para assegurar o estabelecimento da ligação; São utilizadas mensagens: De sincronização (SYN Synchronize); De confirmação (ACK Acknowledged).
TCP 3-Way Handshake Tempo Tempo Envia SYN Recebe SYN Envia SYN + ACK Recebe SYN + ACK Envia ACK Recebe ACK Comunicação Estabelecida!!!
TCP Transmissão Fiável Confirmação de recepção: O receptor confirma, através de uma mensagem curta (Acknowledgment), que recebeu o segmento enviado; Retransmissão: Se a confirmação não for recebida dentro de um período determinado, o segmento é reenviado;
Portas UDP Além das 65536 portas TCP, temos o mesmo número de portas UDP. Embora seja um protocolo menos usado que o TCP, o UDP continua presente nas redes atuais pois oferece uma forma alternativa de envio de dados, onde ao invés da confiabilidade é privilegiada velocidade e simplicidade. Vale lembrar que, tanto o TCP, quanto o UDP, trabalham na camada 4 do modelo OSI (Transporte).
Portas UDP O conceito de porta UDP é idêntico ao conceito de portas TCP, embora tecnicamente existam diferenças na maneira como as portas são utilizadas em cada protocolo. A idéia é a mesma, por exemplo, se um usuário estiver utilizando vários programas baseados em UDP, ao mesmo tempo no seu computador, é através do uso de portas, que o sistema operacional sabe a qual programa se destina cada pacote UDP que chega. O lado do host de cada programa que usa UDP escuta as mensagens que chegam no seu número de porta conhecido. Todos os números de porta de servidor UDP menores que 1.023 (e alguns números mais altos) são reservados e registrados pela Internet Assigned Numbers Authority (IANA, autoridade de números atribuídos da Internet).
Comparação entre TCP e UDP Geralmente, as diferenças na maneira como UDP e TCP entregam os dados assemelham-se às diferenças entre um telefonema e um cartão postal: O TCP funciona como um telefonema, verificando se o destino está disponível e pronto para a comunicação. O UDP funciona como um cartão postal as mensagens são pequenas e a entrega é provável, mas nem sempre garantida.
Portas: Exemplos Exemplos da portas mais comuns estão na tabela abaixo: Número de porta TCP Descrição 21 FTP Servidor FTP File Transfer Protocol 23 TELNET Servidor Telnet 25 SMTP 53 DNS 80 HTTP SMTP Simple Mail Transfer Protocol (Envio de e-mail) Transferências de zona DNS (Domain Name System, sistema de nomes de domínios) Servidor da Web (HTTP, Hypertext Transfer Protocol, protocolo de transferência de hipertexto)
Comparação entre TCP e UDP TCP UDP Portas: de 1 até 65535 Portas: (idem ao TCP) de 1 até 65535 Serviço orientado por conexão; uma sessão é Serviço sem conexão; nenhuma sessão é estabelecida entre os hosts. estabelecida entre os hosts. Garante a entrega através do uso de Não garante ou confirma a entrega ou confirmações e entrega seqüenciada dos seqüência os dados dados. Os programas que usam TCP têm garantia de transporte confiável de dados. TCP é mais lento, necessita de maior sobrecarga e pode oferecer suporte apenas à comunicação ponto a ponto. Quando usar o TCP: Banco de Dados; Envio e recebimento de e-mails; FTP; Acesso à internet via HTTP; Exemplos: E-commerce; (Submarino, Saraiva, etc) Webmail; Jogos on-line; Os programas que usam UDP são responsáveis por oferecer a confiabilidade necessária ao transporte de dados. UDP é rápido, necessita de baixa sobrecarga e pode oferecer suporte à comunicação ponto a ponto e ponto a vários pontos Quando usar o UDP: Fluxo de Dados em Real Time: Multicasting: Broadcasting; DNS E no geral, serviços que admitem certa perda de dados; Exemplos de uso: Youtube, e outros serviços de streming tanto de áudio, quando de áudio e vídeo; P2P; Skype, e inúmeros serviços de VOIP;
Segmentos TCP e UDP TCP UDP