PROTOCOLOS DE COMUNICAÇÃO - PRT Protocolo TCP/UDP Aplicação Transmission Control Protocol ( TCP ) Transporte User Datagram Protocol ( UDP ) Internet Interface de rede PROTOCOLOS DE COMUNICAÇÃO - PRT TCP/UDP Transport Control Protocol(TCP) – Oferece verificação de erro e controle de fluxo extensivos para garantir a entrega bem sucedida de dados. O TCP é um protocolo baseado em conexão. Nos Protocolos orientados a conexão, cada pacote de dados enviado • rede recebe uma confirmação, e o emissor registra mensagens de pela status para a garantia da entrega dos pacotes. A conexão é encerrada ao final da transmissão. • User Datagram Protocol(UDP) – Oferece uma capacidade reduzida de controle de erros. É um protocolo sem conexão, ou seja, os datagramas enviados do emissor ao receptor, não são controlados com mensagens de recebimento,e assim a transmissão dos dados não é tão confiável como o TCP. PROTOCOLOS DE COMUNICAÇÃO - PRT PROTOCOLO TCP • • • • ORIENTADO A CONEXÃO CONEXÃO CONFIÁVEL FIM-A-FIM SOCKET = PORT TCP + END. IP CONTROLE DE FLUXO – JANELA DESLIZANTE • CONTROLE DE ERROS – CHECKSUM • VÁRIAS CONEXÕES SIMULTÂNEAS PROTOCOLOS DE COMUNICAÇÃO - PRT Processamento Orientado por fluxo – Processa dados em um fluxo O TCP formata os dados em segmentos de tamanho variável, que serão passados a camada internet. Reorganização – Quando os dados chegam ao destino fora de ordem, O TCP reorganiza os dados para restaurar a ordem original. Controle de Fluxo – Garante que a transmissão de dados não ultrapassará os tamanhos de buffer (capacidade da máquina destino de processar as informações.) Término da Conexão – O recurso de fechamento de uma conexão, garante que todos os segmentos foram enviados e recebidos antes que uma conexão fosse fechada. PROTOCOLOS DE COMUNICAÇÃO - PRT Portas e Soquetes Camada de Aplicação F T P 21 Camada de Transporte T E L N E T S M T P D N S 23 25 53 TCP H T T P 80 S N M P 161 Números de Portas UDP Porta é um endereço interno predefinido como uma via da aplicação para a camada de transporte ou vice-versa.Um host cliente entra em contato com a aplicação de FTP de um servidor via a porta 21 do TCP. PROTOCOLOS DE COMUNICAÇÃO - PRT Portas e Soquetes Soquete – É um endereço formado pela junção do endereço IP com o número de porta . Por exemplo, o soquete 200.110.131.141.80 refere-se à porta 80 no host com o endereço 200.110.131.141. Portas TCP/UDP mais utilizadas padronizadas pelo IANA: FTP = 21 TELNET=23 SMTP=25 HTTP=80 POP3=110 SNMP=161 DNS=53 PROTOCOLOS DE COMUNICAÇÃO - PRT The TCP Service Model Port 21 23 25 69 79 80 110 119 Protocol FTP Telnet SMTP TFTP Finger HTTP POP-3 NNTP Use File transfer Remote login E-mail Trivial File Transfer Protocol Lookup info about a user World Wide Web Remote e-mail access USENET news Some assigned ports. PROTOCOLOS DE COMUNICAÇÃO - PRT Tanto o TCP quanto o UDP usam números de porta (ou soquete) para passar as informações às camadas superiores. Os números de portas são usados para manter registro de diferentes conversações que cruzam a rede ao mesmo tempo. Os desenvolvedores de aplicações de software concordaram em usar os números de portas bem conhecidos que estão definidos no RFC1700. Conversações, que não envolvem aplicações com números de portas bem conhecidos, recebem números de porta que foram selecionados aleatoriamente em um conjunto específico. Esses números de portas são usados como endereços de origem e destino no segmento TCP. Algumas portas são reservadas no TCP e no UDP , embora possa não haver aplicações para suportá-los. Os números de portas têm os seguintes conjuntos atribuídos: •Números abaixo de 255 - para aplicações públicas •Números de 255 a 1023 - atribuídos às empresas para aplicações comerciais. •Números acima de 1023 - não são regulamentados Os sistemas finais usam números de portas para selecionar as aplicações corretas. Os números de portas de origem são atribuídos dinamicamente pelo host de origem, normalmente são números maiores do que 1023. PROTOCOLOS DE COMUNICAÇÃO - PRT TCP Header. PROTOCOLOS DE COMUNICAÇÃO - PRT PROTOCOLO TCP 0 4 8 15 16 Número do port de origem 16 bits 31 Número do port de destino 16 bits Número de Seqüência 32 bits Número de Reconhecimento 32 bits Tam. Cab. 4 bits Reservado 6 bits U A P R S F R C S S Y I G K H T N N Soma Verificadora TCP 16 bits 20 bytes Tamanho da janela 16 bits Indicador de Urgência 16 bits Dados PROTOCOLOS DE COMUNICAÇÃO - PRT A seguir, definições dos campos no segmento TCP: •porta de origem - número da porta que fez a chamada •porta de destino - número da porta chamada •número de seqüência - número usado para garantir a seqüência correta dos dados de chegada •número de confirmação - próximo octeto TCP esperado •HLEN - número de palavras de 32 bits no cabeçalho •reservado - definido como zero •janela - número de octetos que o remetente está disposto a aceitar •checksum - checksum calculado do cabeçalho e dos campos de dados •indicador de urgência - indica o final dos dados urgentes •dados - dados do protocolo da camada superior PROTOCOLOS DE COMUNICAÇÃO - PRT Handshake Triplo TCP Abrir Conexão Os hosts TCP estabelecem uma sessão orientada para conexão com outro usando um handshake triplo. Uma seqüência de conexão handshake triplo/aberta sincroniza a conexão nas duas extremidades antes dos dados serem transferidos. A troca de números de seqüência de introdução, durante a seqüência de conexão, é importante. Ela garante que dados perdidos, devido a problemas de transmissão que possam ocorrer mais adiante, possam ser recuperados. PROTOCOLOS DE COMUNICAÇÃO - PRT Handshake Triplo TCP Abrir Conexão Host A Host B Send SYN (seq = x) Receive SYN (seq = x) Send SYN (seq = y, ack = x+1) Receive SYN (seq = y, ack = x+1) Send ACK (ack = y+1 ) Receive ACK (ack = y + 1) PROTOCOLOS DE COMUNICAÇÃO - PRT Primeiro, um host inicia uma conexão pelo envio de um pacote indicando seu número de seqüência inicial x com um determinado bit no cabeçalho definido para indicar um pedido de conexão. Então, o outro host recebe o pacote, grava o número de seqüência x, responde com uma confirmação x + 1 e inclui seu próprio número de seqüência inicial y. O número de confirmação x + 1 significa que o host recebeu todos os octetos até x, inclusive, e que está esperando x + 1 em seguida. A retransmissão e confirmação positiva, ou PAR (Positive acknowledgment and retransmission), é uma técnica comum que muitos protocolos usam para fornecer confiabilidade. Com a PAR, a origem envia um pacote, aciona um timer e espera por uma confirmação antes de enviar o próximo pacote. Se o timer expirar antes da origem receber uma confirmação, a origem retransmitirá o pacote e iniciará novamente o timer. PROTOCOLOS DE COMUNICAÇÃO - PRT Transmissor Receptor Envia 1 Recebe 1 Envia ack 2 Recebe ack 2 Envia 2 Recebe 2 Envia ack 3 Recebe ack 3 Envia 3 Recebe 3 Envia ack 4 Recebe ack 4 • Tamanho da janela = ?? PROTOCOLOS DE COMUNICAÇÃO - PRT Janela Deslizante TCP Transmissor Receptor Envia 1 Envia 2 Envia 3 Recebe 1 Recebe 2 Recebe 3 Envia ack 4 Recebe ack 4 Envia 4 Envia 5 Recebe 4 Envia 6 Recebe 5 Recebe 6 Envia ack 7 Recebe ack 7 • Tamanho da janela = 3 PROTOCOLOS DE COMUNICAÇÃO - PRT • • • • CONTROLE DE FLUXO TCP JANELA DESLIZANTE CONEXÃO FULL-DUPLEX TAMANHO DE JANELA VARIÁVEL JANELA OFERECIDA (SEGUNDO O RECEPTOR) JANELA USÁVEL 1 2 3 ENVIADO E RECONHECIDO 4 5 ENVIADO, NÃO RECONHECIDO 6 7 8 9 PODE ENVIAR IMEDIATAMENTE 10 11 NÃO PODE ENVIAR, ATÉ QUE A JANELA SE MOVA PROTOCOLOS DE COMUNICAÇÃO - PRT O tamanho da janela determina a quantidade de dados que pode ser transmitida de uma vez antes de receber uma confirmação do destino. Quanto maior o tamanho da janela (bytes), maior a quantidade de dados que o host pode transmitir. Depois que um host transmitir o número de bytes da janela dimensionada, ele tem de receber uma confirmação de que os dados foram recebidos antes de poder enviar mais mensagens. Por exemplo, com um tamanho de janela 1, cada segmento individual (1) tem de ser confirmado antes que o próximo segmento possa ser enviado. O TCP usa confirmações de espera, o que significa que o número da confirmação se refere ao octeto que é esperado em seguida. A parte "móvel" da janela móvel, refere-se ao fato de que o tamanho seja negociado dinamicamente durante a sessão TCP. Isso resulta em uso ineficiente da largura de banda pelos hosts. PROTOCOLOS DE COMUNICAÇÃO - PRT O janelamento é um mecanismo de controle de fluxo que exige que o dispositivo de origem receba uma confirmação do destino depois de transmitir uma determinada quantidade de dados. Por exemplo, com um tamanho de janela três, o dispositivo da origem pode enviar três octetos ao destino. Ele deve então, aguardar por uma confirmação. Se o destino receber os três octetos, ele enviará uma confirmação ao dispositivo da origem, que agora poderá transmitir mais três octetos. Se, por algum motivo, o destino não receber os três octetos, por exemplo, devido à sobrecarga de buffers, ele não enviará uma confirmação. Por não receber a confirmação, a origem saberá que os octetos deverão ser retransmitidos e que a taxa de transmissão deverá ser diminuída. O TCP fornece a seqüência de segmentos com uma confirmação de referência de encaminhamento. Cada datagrama é numerado antes da transmissão. Na estação receptora, o TCP reagrupa os segmentos em uma mensagem completa. Se um número de seqüência estiver faltando na série, aquele segmento será retransmitido. Os segmentos que não forem confirmados dentro de um dado período de tempo serão retransmitidos. PROTOCOLOS DE COMUNICAÇÃO - PRT PROTOCOLO UDP • • • • • • SEM CONEXÃO SEM CONFIABILIDADE ENTREGA DATAGRAMA PARA O IP CONCEITO DE PORTA UDP VÁRIAS CONEXÕES SIMULTÂNEAS PSEUDO HEADER (como o TCP) PROTOCOLOS DE COMUNICAÇÃO - PRT User Datagram Protocol (UDP) é o protocolo de transporte sem conexão da pilha de protocolos TCP/IP. O UDP é um protocolo simples que troca datagramas, sem confirmações ou entrega garantida. O processamento de erros e a retransmissão de erros devem ser tratados por outros protocolos. O UDP não usa janelamento ou confirmações, portanto, os protocolos da camada de aplicação fornecem a confiabilidade. O UDP é projetado para aplicações que não precisam colocar seqüências de segmentos juntas. Os protocolos que usam o UDP são: •TFTP •SNMP •DHCP •DNS (Domain Name System) PROTOCOLOS DE COMUNICAÇÃO - PRT Introduction to UDP The UDP header. PROTOCOLOS DE COMUNICAÇÃO - PRT PROTOCOLO UDP 0 4 8 15 16 31 Endereço IP de origem 32 bits Pseudo Header UDP Endereço IP de destino 32 bits Zero 8 bits Protocolo (17) 8 bits Tamanho do datagrama UDP 16 bits Número do port de origem 16 bits Número do port de destino 16 bits Tamanho do datagrama UDP 16 bits Soma Verificadora UDP 16 bits Dados Header UDP PROTOCOLOS DE COMUNICAÇÃO - PRT Camada de Rede Aplicação Internet Protocol ( IP ) Transporte Address Resolution Protocol ( ARP ) Internet Reverse Address Resolution Protocol ( RARP ) Interface de rede Internet Control Message Protocol ( ICMP ) Hardware PROTOCOLOS DE COMUNICAÇÃO - PRT Protocolos ARP/RARP ARP(Address Resolution Protocol) é um protocolo TCP/IP que é utilizado para determinar o endereço físico que corresponde a um endereço IP. Através de quadros em broadcast com a pergunta: Quem possuir este endereço IP, responda-me com o seu endereço MAC correspondente, é feito o mapeamento do endereço físico em função do endereço IP. Esta resposta é mantida numa tabela chamada de cache nos hosts e roteadores. Cada entrada da tabela, por padrão, é dinâmica. No windows NT os pares de endereços físico/IP expiram de dois a dez minutos.As entradas podem ser incluídas com PINGS de outro computador ou roteador. PROTOCOLOS DE COMUNICAÇÃO - PRT Eu escutei aquele broadcast, sou eu. Aqui está meu endereço Ethernet. Eu preciso do endereço Ethernet de 131.108.3.2 • 131.108.3.1 131.108.3.2 • IP : 131.108.3.2 = ??? IP : 131.108.3.2 = Ethernet : 0800.0020.1111 • PROTOCOLOS DE COMUNICAÇÃO - PRT Protocolos ARP/RARP RARP(Reverse ARP); Faz o mapeamento do endereço IP, em função do endereço físico conhecido; É usado em estações sem disco.Para estações com discos, o endereço IP é armazenado do disco e recuperado durante o processo de Boot; O protocolo RARP só é usado durante o processo de Boot: uma vez obtido o endereço IP, a estação armazena-o em sua memória. PROTOCOLOS DE COMUNICAÇÃO - PRT Eu escutei aquele broadcast. O endereço IP é 131.108.3.25 Qual é meu endereço IP ? SERVIDOR RARP Ethernet = 0800.0020.1111 IP = ??? Ethernet = 0800.0020.1111 IP = 131.108.3.25 • Mapeia Ethernet IP • ARP e RARP são implementados diretamente no topo da camada de enlace PROTOCOLOS DE COMUNICAÇÃO - PRT Protocolo ICMP(Internet Control MessageProtocol) Aplicação Transporte Destino Inalcançável ICMP Internet Interface de rede Hardware Eco ( ping ) Outros PROTOCOLOS DE COMUNICAÇÃO - PRT Protocolo ICMP(Internet Control MessageProtocol) O ICMP foi desenvolvido com a finalidade de alertar o emissor de algum problema ocorrido durante o percurso da mensagem. ICMP é o sistema de comunicação da camada IP, e está implementado em hosts e roteadores.As mensagens de erros enviadas pelo ICMP são roteadas de volta ao host que gerou o datagrama original. O ICMP é transportado em pacotes IP, assim sendo, suas mensagens são roteáveis. O par echo request/reply é útil para identificar problemas de roteamento,roteadores com defeito ou falhas de cabeamento de rede.Um exemplo é o comando PING que verifica se um host está ativo. PROTOCOLOS DE COMUNICAÇÃO - PRT ICMP Eu não sei como chegar em Z! Enviarei uma mensagem ICMP. Enviar dados para Z. A Rede de dados Para Z Destino Inalcançável • Destino Inalcançável Host ou porta inalcançável Rede inalcançável PROTOCOLOS DE COMUNICAÇÃO - PRT ICMP B está alcançável ? Sim, eu estou aqui. A B ICMP eco ICMP resposta do eco • Eco e Resposta ao Eco Gerados pelo comando ping Resposta do eco é uma resposta bem sucedida de um comando ping; porém, os resultados podem incluir outras mensagens ICMP, como destinos inalcançáveis, timeouts, etc. PROTOCOLOS DE COMUNICAÇÃO - PRT PING Rede Ip Roteador C 10.0.1.1 10.0.0.1 Roteador A Roteador B PING 10.0.1.1 Sending 5, 100 byte ICMP Echos to timeout is 2 seconds: ! ! ! ! ! Success rate is 100 percent, round-trip min/avg/max = 1/3/4 ms PROTOCOLOS DE COMUNICAÇÃO - PRT TELNET Telnet é um protocolo de terminais virtuais que é uma parte do protocolo TCP/IP, permite acessar remotamente equipamentos ( roteadores, host ) de uma rede IP. Ao utilizarmos o protocolo Telnet, estabelecemos uma sessão de comunicação entre os hosts na rede para monitoramento de status ou configuração. Um roteador possibilita ter várias sessões Telnet simultâneas, sendo limitado na capacidade de cada fabricante. PROTOCOLOS DE COMUNICAÇÃO - PRT Telnet 192.168.1.100 • Telnet < Endereço IP do equipamento remoto > Rede IP Telnet 192.168.1.254 192.168.2.254 PROTOCOLOS DE COMUNICAÇÃO - PRT TRACE O comando TRACEroute éum comando usado para rastrear as rotas(caminhos) ,tomadas pelos datagramas enquanto trafegam do seu computador, passando por vários gateways até chegar ao seu destino. O trace aproveita o valor TTL ( Time-To-Live ) de um datagrama. Inicialmente são enviados datagramas teste com um valor TTL igual a um. Ao chegar no primeiro roteador,o TTL é decrementado de uma unidade, chegando a TTL=0 . Nesta condição é enviado de volta um datagrama de resposta com as informações do roteador ( nome, end. IP,.. ). Quando o roteador de origem recebe este datagrama envia outro com TTL = 2, e assim por diante até chegar ao host de destino. PROTOCOLOS DE COMUNICAÇÃO - PRT TRACE • Qual caminho os pacotes estão tomando ? Rede Ip Recife TTL=1 131.108.12.3 João Pessoa Natal TTL=2 131.108.16.2 TRACE Maceió Type escape to abort. Tracing the route to Maceió (131.108.33.5) 1 João Pessoa (131.108.12.3) 1000 msec 8 msec 4 2 Natal (131.108.16.2 ) 8 msec 8 msec 8msec 3 Maceió (131.108.33.5) 8 msec 8 msec 4 msec TTL=3 Maceió 131.108.33.5