1 Protocolo TCP/UDP Aplicação Transmission Control Protocol ( TCP )Transporte Internet Interface de rede Transmission Control Protocol ( TCP ) User Datagram Protocol ( UDP )
2 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 pela rede recebe uma confirmação, e o emissor registra mensagens de 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.
3 PROTOCOLO TCP ORIENTADO A CONEXÃO CONEXÃO CONFIÁVEL FIM-A-FIMSOCKET = PORT TCP + END. IP CONTROLE DE FLUXO JANELA DESLIZANTE CONTROLE DE ERROS CHECKSUM VÁRIAS CONEXÕES SIMULTÂNEAS
4 Processamento Orientado por fluxo – Processa dados em um fluxoO 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.
5 Portas e Soquetes F T S D H S T E M N T N P L T S T M N P P P E TCamada de Aplicação 21 23 25 53 80 161 Números de Portas Camada de Transporte TCP 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.
6 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 refere-se à porta 80 no host com o endereço Portas TCP/UDP mais utilizadas padronizadas pelo IANA: FTP = 21 TELNET=23 SMTP=25 HTTP=80 POP3=110 SNMP=161 DNS=53
7 The TCP Service Model Some assigned ports. Port Protocol Use 21 FTPFile transfer 23 Telnet Remote login 25 SMTP 69 TFTP Trivial File Transfer Protocol 79 Finger Lookup info about a user 80 HTTP World Wide Web 110 POP-3 Remote access 119 NNTP USENET news Some assigned ports.
8 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 para aplicações públicas Números de 255 a atribuídos às empresas para aplicações comerciais. Números acima de 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.
9 TCP Header.
10 PROTOCOLO TCP 0 4 8 15 16 31 Número do port de origem 16 bits Número do port de origem 16 bits Número do port de destino 16 bits Número de Seqüência 32 bits Número de Reconhecimento 32 bits 20 bytes URG ACK PSH RST SYN FIN Tam. Cab. 4 bits Reservado 6 bits Tamanho da janela 16 bits Soma Verificadora TCP 16 bits Indicador de Urgência 16 bits Dados
11 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
12 Handshake Triplo TCP Abrir ConexãoOs 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.
13 Handshake Triplo TCP Abrir ConexãoHost A Host B Send SYN (seq = x) Receive SYN (seq = y, ack = x+1) Receive SYN (seq = x) Send SYN (seq = y, ack = x+1) Receive ACK (ack = y + 1) Send ACK (ack = y+1 )
14 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.
15 Tamanho da janela = ?? Transmissor Receptor Envia 1 Recebe 1Envia 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 = ??
16 Janela Deslizante TCP Tamanho da janela = 3 Transmissor ReceptorEnvia 1 Envia 2 Recebe 1 Envia 3 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
17 TAMANHO DE JANELA VARIÁVELCONTROLE DE FLUXO TCP JANELA DESLIZANTE CONEXÃO FULL-DUPLEX TAMANHO DE JANELA VARIÁVEL JANELA OFERECIDA (SEGUNDO O RECEPTOR) JANELA USÁVEL ENVIADO, NÃO RECONHECIDO NÃO PODE ENVIAR, ATÉ QUE A JANELA SE MOVA ENVIADO E RECONHECIDO PODE ENVIAR IMEDIATAMENTE
18 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.
19 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.
20 PROTOCOLO UDP SEM CONEXÃO SEM CONFIABILIDADEENTREGA DATAGRAMA PARA O IP CONCEITO DE PORTA UDP VÁRIAS CONEXÕES SIMULTÂNEAS PSEUDO HEADER (como o TCP)
21 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)
22 Introduction to UDP The UDP header.
23 PROTOCOLO UDP 0 4 8 15 16 31 Endereço IP de origem 32 bits 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 Header UDP Tamanho do datagrama UDP 16 bits Soma Verificadora UDP 16 bits Dados
24 Camada de Rede Aplicação Internet Protocol ( IP ) Address ResolutionProtocol ( ARP ) Reverse Address Resolution Protocol ( RARP ) Internet Control Message Protocol ( ICMP ) Transporte Internet Interface de rede Hardware
25 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.
26 Eu escutei aquele broadcast, sou eu. Aqui está meu endereço Ethernet. Eu preciso do endereço Ethernet de IP : = ??? IP : = Ethernet :
27 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.
28 ARP e RARP são implementados diretamente no topo da camada de enlaceEu escutei aquele broadcast. O endereço IP é Qual é meu endereço IP ? SERVIDOR RARP Ethernet = IP = ??? Ethernet = IP = Mapeia Ethernet IP ARP e RARP são implementados diretamente no topo da camada de enlace
29 Protocolo ICMP(Internet Control MessageProtocol)Aplicação Destino Inalcançável Eco ( ping ) Outros Transporte ICMP Internet Interface de rede Hardware
30 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.
31 ICMP A Destino Inalcançável Rede de dados 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
32 ICMP A B Eco e Resposta ao EcoB 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.
33 PING Rede Ip 10.0.1.1 10.0.0.1 Echo Request Echo Request PING 10.0.1.1Roteador C Echo Request Roteador A Echo Request Roteador B PING 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
34 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.
35 Telnet Rede IP Telnet < Endereço IP do equipamento remoto > Telnet < Endereço IP do equipamento remoto > Rede IP Telnet
36 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.
37 TRACE Rede Ip Qual caminho os pacotes estão tomando ? TRACE Maceió João Pessoa TTL=3 TTL=1 Recife Natal TTL=2 TRACE Maceió Type escape to abort. Tracing the route to Maceió ( ) 1 João Pessoa ( ) 1000 msec 8 msec 4 2 Natal ( ) msec 8 msec 8msec 3 Maceió ( ) 8 msec 8 msec 4 msec