TCP/IP Adriano Lhamas, Berta Batista, Jorge Pinto Leite Março de 2007
Pilha TCP/IP Desenvolvido pelo Departamento de Defesa dos EUA Objectivos: garantir a comunicação sob quaisquer circunstâncias garantir a confiabilidade da transmissão Constituído por 4 (quatro) níveis 2
Pilha TCP/IP 3
Pilha TCP/IP: Nível Acesso à Rede Também designado por camada host-a-rede Assegura que um pacote IP estabeleça efectivamente uma ligação física com os meios físicos da rede Define os procedimentos para estabelecer uma interface com o hardware de rede e para aceder ao meio de transmissão 4
Pilha TCP/IP: Nível Acesso à Rede Funções: Mapeamento de endereços IP para endereços físicos (MAC s) Encapsulamento de pacotes IP em quadros (frames) Define a conexão com os meios físicos da rede 5
Pilha TCP/IP: Nível Internet Assegura a selecção do melhor caminho para os pacotes viajarem na rede O principal protocolo deste nível é o IP (Internet Protocol) Não efectua qualquer controlo de erros 6
Pilha TCP/IP: Nível Internet Funções: Determinação do melhor caminho Comutação de pacotes 7
Pilha TCP/IP: Nível Transporte Oferece serviços de transporte desde o host de origem até ao host de destino Forma uma conexão lógica entre emissor e receptor Efectua a segmentação e des-segmentação dos dados do nível superior (aplicação) 8
Pilha TCP/IP: Nível Transporte Inclui os serviços UDP e TCP 9
Pilha TCP/IP: Nível Transporte Em UDP e TCP, tem as funções: Segmentação dos dados Envio dos segmentos de um dispositivo para outro Em TCP (apenas), tem ainda as funções: Estabelecimento de conexões Controlo de fluxo através da utilização de janelas móveis Confiabilidade garantida pelos números de sequência e confirmações 10
Pilha TCP/IP: Nível Transporte 11
Pilha TCP/IP: Nível Aplicação Trata de protocolos de alto nível, representação dos dados, codificação e controlo de diálogos Inclui especificações para aplicações comuns: Transferência de dados Correio electrónico Login remoto Gestão de rede Resolução de nomes 12
Pilha TCP/IP: Nível Aplicação 13
Pilha TCP/IP: Nível Aplicação FTP (File Transfer Protocol) Utiliza o TCP Serviço confiável orientado a conexões Transfere ASCII e binário TFTP (Trivial File Transfer Protocol) Utiliza o UDP Serviço não confiável não orientado a conexões Mais rápido do que o FTP NFS (Network File System) Protocolo de sistema de arquivos distribuídos SMTP (Simple Mail Transfer Protocol) Transmissão de correio electrónico Apenas texto simples 14
Pilha TCP/IP: Nível Aplicação Telnet Acesso em modo terminal a um equipamento remoto Cliente telnet: host local Servidor telnet: host remoto SNMP (Simple Network Manegement Protocol) Monitoriza e controla dispositivos de rede Gere configurações Recolhe dados estatísticos DNS (Domain Name System/Server) Converte um nome no endereço IP correspondente 15
IPv4 Para que dois sistemas comuniquem entre si, devem ser capazes de se identificarem mutuamente, de forma inequívoca Endereço IPv4 Constituído por 32 bits Representado como quatro números decimais separados entre si por um. (ponto) formato decimal pontuado 16
IPv4 Exemplo 194.67.12.18 Mais fácil de entender e representar do que escrito na forma binária 11000010.01000011.00001100.00010010 17
IPv4 Um endereço IPv4 é constituído por: Um identificador da rede Um identificador do host dentro da rede Rede Host A atribuição e definição do endereço IPv4 é da responsabilidade da IANA (Internet Assigned Numbers Authority) 18
IPv4 A IANA definiu um conjunto de conceitos para simplificar e ordenar os endereços IPv4 Classes A classe é definida pelo byte mais significativo do endereço (1º byte) Classe A: 0xxxxxxx de 0 a 127 Classe B: 10xxxxxx de 128 a 191 Classe C: 110xxxxx de 192 a 223 Classe D: 1110xxxx de 224 a 239 reservada para multicast Classe E: 11110xxx de 240 a 247 reservada para uso futuro Está sugerida uma nova representação da classe C e novas classes F, G, H e K Nova classe C: 1100xxxx de 192 a 207 Classe F: 11010xxx de 208 a 215 Classe G: 110110xx de 216 a 219 Classe H: 1101110x de 220 a 221 Classe K: 1101111x de 222 a 223 19
IPv4 Independentemente da classe, a divisão entre endereço de rede e endereço de host é efectuada por uma máscara de rede A máscara de rede é constituída por um 1 em cada bit que representa a rede e um 0 em cada bit que representa um espaço de endereçamento de host A máscara de rede inicia-se sempre no bit mais significativo, consecutivamente (não se pode ter um 0 seguido de um 1 como máscara) 20
IPv4 O resultado da multiplicação lógica (operação AND) de um endereço IPv4 pela sua máscara de rede resulta no endereço da rede O endereço de rede representa um endereço que engloba todos os equipamentos pertencentes a essa rede Por definição, a colocação de todos os bits do espaço representativo dos hosts a 1 representa o endereço de broadcast O endereço de broadcast representa um endereço a que respondem todos os hosts pertencentes a essa rede 21
IPv4 Exemplo: Endereço IP: 194.65.13.17 Máscara de rede: 255.255.255.0 194 11000010 65 01000001 255 11111111 255 11111111 194 11000010 65 01000001 13 00001101 17 00010001 255 11111111 0 00000000 13 00001101 0 00000000 O endereço de rede é 194.65.13.0 O endereço de broadcast é 194.65.13.255 (colocação de todos os bits do último byte a 1) Os endereços que podem ser utilizados por hosts são todos os compreendidos entre o endereço de rede e o endereço de broadcast 22
IPv4 Cada classe tem uma máscara de rede típica Classe A: 255.0.0.0 Classe B: 255.255.0.0 Classe C: 255.255.255.0 A máscara de rede pode ser representada em formato decimal pontuado (255.255.255.0, por exemplo) ou como a soma dos bits a 1 contados a partir do mais significativo (/24 notação CIDR, Classless Interdomain Routing) 23
IPv4 Alguns endereços são reservados Endereço de rede Endereço de broadcast Endereços especiais 0.0.0.0/8 (esta rede) 255.255.255.255 (qualquer broadcast) 14.0.0.0/8 24.0.0.0/8 39.0.0.0/8 127.0.0.0/8 (endereço de loopback) 128.0.0.0/16 etc (ver RFC 3330) 24
IPv4 Os endereços IPv4 dividem-se ainda em públicos (visíveis na Internet) ou privados (para uso local) Os endereços privados de cada classe são Classe A 10.0.0.0/8 Classe B 172.16.0.0/16 a 172.31.0.0/16 Classe C 192.168.x.0/24 Os endereços privados são restringidos pelos activos de encaminhamento de se propagarem para a Internet 25
IPv4 Um endereço de uma determinada classe com a máscara de rede típica dessa classe designa-se por classfull Exemplos 15.0.0.0/8 (255.0.0.0) 172.30.0.0/16 (255.255.0.0) 193.168.12.0/24 (255.255.255.0) 26
IPv4 Pode haver necessidade de subdividir uma rede de uma determinada classe em subredes para permitir isolamento de redes, maior segurança, etc. subnetting Pode também haver necessidade de agregar redes contíguas (por exemplo, para se obter um maior espaço de endereçamento para hosts) agregação 27
IPv4 - subnetting Efectuado por reservar bits do espaço de endereçamento dos hosts para mascarar subredes Consiste em adicionar bits à máscara de rede a partir do bit mais significativo do espaço de hosts Tendo cada bit dois valores possíveis (0 e 1), o número de subredes criado é dado por 2 n sendo n o número de bits utilizados para a divisão em subredes 28
IPv4 O endereço IP fica então dividido em rede, subrede, e host Rede Subrede Host Se temos 2 n redes, o número de endereços IP s existentes em cada rede (incluindo o de rede e de broadcast) é dado por 256/2 n 29
IPv4 - subnetting Exemplo: Partindo do endereço classe? 205.0.0.0 com máscara de rede 255.255.255.0,e roubando dois bits para mascarar subredes teremos: Bits utilizados para mascarar subredes: 2 Número de subredes criado: 2 2 = 4 Número de endereços IP em cada subrede: 256/4 = 64 Endereços IP utilizáveis para hosts por subrede: 62 30
IPv4 - subnetting Se cada subrede tem 64 endereços IP, o endereço IP de cada subrede é: 0 (zero) 64 (0 + 64) 128 (64 + 64) 192 (128 + 64) Qual o endereço de broadcast de cada subrede? 31
IPv4 - subnetting Esta operação é válida a partir de qualquer classe Só é necessário ter em atenção ao calcular os endereços de broadcast e espaço de endereçamento de hosts os eventuais bytes à direita 32
IPv4 - subnetting Classe A, rede original 12.0.0.0/8, divisão em 8 subredes Bits necessários? 3 (2 3 = 8) Endereços de rede? 12.0.0.0/11, 12.32.0.0/11, 12.64.0.0/11, 12.96.0.0/11, 12.128.0.0/11, 12.160.0.0/11, 12.192.0.0/11, 12.224.0.0/11 Endereços de broadcast? 12.31.255.255, 12.63.255.255, 12.95.255.255, 12.127.255.255, 12.159.255.255, 12.191.255.255, 12.223.255.255, 12.255.255.255 Número de endereços para hosts em cada subrede? 2 5 *2 8 *2 8 2 (rede e broadcast de cada subrede) = 2.097.150 33
IPv4 - agregação A agregação é a operação inversa ao subnetting Efectua-se retirando bits à máscara de rede por forma a juntar num mesmo endereço várias redes 34
IPv4 - agregação Redes 200.200.0.0/24 00000000 200.200.1.0/24 00000001 Podemos agregar? Se roubarmos 1 bit à máscara de rede, estamos a juntar os dois endereços pretendidos Redes agregadas: 200.200.0.0 Máscara: 11111111.11111111.11111110.00000000 (/23) 35
IPv4 - agregação Devemos ter o cuidado na agregação de só incluir os endereços pretendidos Podemos incluir na agregação redes não utilizadas se estivermos a tratar de endereços privados Se as redes forem públicas, devemos ter mais cuidado 36
IPv4 - agregação Como agregar as redes 192.168.0.0/24, 192.168.1.0/24 e 192.168.2.0/24? 0 00000000 1 00000001 2 00000010 Agregação efectuada roubando dois bits à máscara de rede 11111111.11111111.11111100.00000000 255.255.252.0 (/22) Incluída também a rede 192.168.3.0/24 37
IPv4 - agregação Como agregar as redes 193.168.0.0/24, 193.168.1.0/24 e 193.168.2.0/24? 0 00000000 1 00000001 2 00000010 Agregação efectuada em duas redes roubando um bit à máscara de rede 11111111.11111111.11111110.00000000 255.255.254.0 (/23) Agregação: 193.168.0.0/23 + 193.168.2.0/24 38
Portos / serviços Para possibilitar a existência de vários diálogos em simultâneo na rede, é usado o conceito de porto (port) Usado tanto no TCP como no UDP Qualquer pedido de um host em TCP/UDP é enviado com a informação de endereço/porto de saída (emissor), e dirigido a um endereço/porto de destino (receptor) 39
Portos / serviços A IANA regulamenta/sugere portos definidos para serviços conhecidos (HTTP 80, SMTP 25, FTP 20 dados e 21 controlo, telnet 23, DNS 53, TFTP 69,...) Qualquer comunicação que não envolve um número de porto pré-definido utiliza um porto aleatório acima de 1023 (até 65535) Well known ports 0 a 1023* Registered ports 1024 a 49151* Dynamic/Private ports 49152 a 65535 * Estes portos não devem ser utilizados sem registo na IANA 40
Portos / serviços Ao acedermos a um servidor/serviço, é indiferente o nosso porto de saída É vulgarmente auto-assignado um porto de saída no nosso computador, ficando assim o par endereço/porto de origem completo O endereço/porto de destino é o referente ao serviço a que pretendemos aceder Caso queiramos criar uma aplicação cliente/servidor, necessitamos: Configurar no servidor um porto para o objectivo pretendido Configurar o cliente para aceder ao servidor exactamente no porto adoptado 41