A Internet Pedro Veiga © Pedro Veiga - FCUL Tópicos a Abordar Génese da Internet A Arquitectura do TCP/IP Evolução e normalização na Internet O Nível IP O Nível de transporte: TCP e UDP O Nível de aplicação • SMTP, MIME, FTP, TELNET • DNS, NNTP, SNMP Protocolos de Routing Evolução do protocolo IP - o IPv6 © Pedro Veiga - FCUL Internet - O que é ? A designação Internet aplica-se hoje para identificar a rede que foi criada durante a parte final da década de 80 pela fusão de um conjunto de redes Estas redes usavam várias tecnologias de rede A Internet usa, actualmente, na sua maioria os protocolos TCP/IP © Pedro Veiga - FCUL Génese da Internet ARPANET • Rede de linhas dedicadas a 50 kbps PRNET - Packet Radio Net • Rede a 40/100 kbps baseada em rádios spread spectrum SATNET - Packet Satellite Network • Rede de 64 kbps no Intersat IV TCP/IP protocolo desenvolvido entre 1974 e 1978 (4 versões) para interligar estas redes Vinton Cerf e Robert Kahn © Pedro Veiga - FCUL Génese da Internet Objectivo: Rede de alta fiabilidade • Alta tolerância a falhas dos níveis de transmissão Baseada em datagramas Os protocolos TCP e IP Liderança técnica controlada pelo IETF • Internet Engineering Task Force • Modo de normalização eficiente e pragmático Evolução “ajudada” pelo UNIX - O UNIX da Universidade de Berkeley © Pedro Veiga - FCUL Software para TCP/IP Muitos Fornecedores Muitos Consumidores Produtos baratos Produtos “public domain” Produtos muito testados: • Muito fiáveis • De alta qualidade • Muito eficientes Disponíveis do PC ao Mainframe © Pedro Veiga - FCUL Comparação com o Modelo OSI Aplicações TCP IP Interface à rede © Pedro Veiga - FCUL IP - Internet Protocol Protocolo de rede baseado em datagramas serviço sem ligação (CL) Datagramas podem ter até 64 kB (total) Datagrama (PDU) do IP tem 2 componentes Header (uma parte fixa de 20 bytes e uma parte opcional de comprimento variável) Texto (dados) © Pedro Veiga - FCUL Formato Header IP Versão IHL Tipo de Serviço D M F F Identificação TTL Compr. Total Protocolo Offset do fragmento Checksum do Header Endereço Origem Endereço Destino Opções © Pedro Veiga - FCUL Significado dos Campos Versão - Número da versão do protocolo IHL - IP Header Length em múltiplos de 32 bits (campos opcionais) Tipo de serviço - permite às aplicações indicarem o tipo de aplicação (nível de rede pode adaptar-se às diferentes exigências das aplicações) • • PRECEDENCE (0 a 7) D (low delay), T (high troughput), R (high reliability) Comprimento Total - do Header + Dados (max. 64k bytes) Identificação - pacotes podem ser fragmentados quando atravessam a rede. Todos os bocados de um mesmo pacote tem a mesma identificação © Pedro Veiga - FCUL Significado dos campos DF - Don´t fragment MF - More fragments (todos os fragmentos tem este bit a 1, excepto o último) Offset do fragmento - quando há fragmentação TTL (Time to Live) - tempo máximo que os pacotes podem demorar na rede antes de serem destruídos (max. 255 seg) Protocolo - tipo de protocolo de transporte usado (por exemplo, TCP) Checksum do header - para controlo de erros Opções - segurança, routing, notificação erros, ... © Pedro Veiga - FCUL Endereços IP Os endereços IP são de 32 bits Identificam de modo unívoco um sistema que funciona em IP Endereços são atribuídos pelo operador de rede • A IANA • O RIPE © Pedro Veiga - FCUL Endereços IP Classe A (7 bits rede, 24 bits host) Classe B(14 bits rede, 16 bits host) Classe C (21 bits rede, 8 bits host) Multicast (28 bits multicast) © Pedro Veiga - FCUL Endereços IP Classe A - 128 com 16 milhões de elementos de rede cada Classe B - 16384 redes de 65536 elementos de rede cada Classe C - cerca de 2 milhões de redes com 256 elementos de rede cada Network mask - permite separação lógica de partes de uma rede O formato “humano” • 146.193.32.34 © Pedro Veiga - FCUL O ICMP Internet Control Message Protocol Protocolo “acessório” ao nível IP Usado pelos nós da rede para relatar erros • • • • • DESTINATION UNREACHABLE TIME EXCEEDED ECHO REQUEST e ECHO REPLY TIMESTAMP REQUEST e TIMESTAMP REPLY ... Também usado para teste © Pedro Veiga - FCUL Interface à Rede Ponto forte do IP Suporte a variados suportes de comunicação Ethernet Linha série / linha comutada SLIP - Serial Line IP PPP - Point to Point Protocol X.25 Frame Relay ... © Pedro Veiga - FCUL Nível de Transporte TCP - Transmission Control Protocol Nível de transporte orientado à ligação (CO) UDP - User Datagram Protocol Nível de transporte sem ligação (CL) Ambos funcionam sobre IP TCP é semelhante a OSI/TP4 © Pedro Veiga - FCUL TCP Nível de transporte recebe mensagens arbitrárias para transmitir e: • Fragmenta-as em pedaços inferiores a 64k • Trata de retransmissões de pacotes • Trata de reordenações de pacotes • Trata de tempos expirados (timeouts) • Efectua controlo de fluxo (janela de 16 bits - número de bytes) •TCP numera as mensagens com 32 bits © Pedro Veiga - FCUL PDU do TCP Porto destino Porto origem Número de sequência Confirmação de “piggyback” Compr. Header Flags Checksum Janela Apontador de urgente Opções (0 ou mais palavras de 32 bits) DADOS © Pedro Veiga - FCUL PDU do TCP Portos - pontos de origem e destino dos dados (TSAP) Checksum - para controlo de erros Comprimento Header - número de bytes do header (em palavras de 32 bits) Flags • • • • • URG - Urgent pointer em uso SYN e ACK - usados para pedir e conceder ligações FIN - terminar ligação RST - reset à ligação EOM - fim de mensagem © Pedro Veiga - FCUL PDU do TCP Janela - dimensão da janela do protocolo (número de pacotes que podem ser transmitidos sem confirmação) Número de sequência - numeração dos pacotes para reordenação, detecção de duplicações Apontador de urgente - Apontador para PDU (relativo ao presente) onde se encontram dados urgentes Opções - para finalidades diversas associadas principalmente à gestão do software dos sistemas que realizam o TCP © Pedro Veiga - FCUL Portos Registados No destino é o modo de “endereçamento” das aplicações Na origem é a identificação das aplicações utilizadoras Alguns Exemplos: • smtp • telnet • ftp © Pedro Veiga - FCUL UDP Não é necessário estabelecer ligação Não há garantia de entrega Porta origem Comprimento Porta destino Checksum Dados © Pedro Veiga - FCUL API de Transporte - sockets socket Criação de um TSAP de um dado tipo bind Associa um nome ASCII a um socket já criado listen accept connect Cria uma fila para aceitar pedidos de ligação Retira um pedido de ligação da fila, ou espera por uma ligação inicia uma ligação com um socket remoto shutdown termina a ligação de um socket send envia uma mensagem através de um socket recv recebe uma mensagem num socket select verificar, num conjunto de sockets, se podem ser lidos ou escritos © Pedro Veiga - FCUL Winsock API análoga a do BSD Adaptada às especificidades do ambiente Windows “Event Driven” Base de “quase todo” software TCP/IP de rede em ambiente Windows • winsock.dll © Pedro Veiga - FCUL Ponte de Transporte - RFC1006 Fornecer um serviço de transporte OSI sobre a pilha TCP/IP Aplicação Apresentação Sessão Transporte TCP IP © Pedro Veiga - FCUL As Aplicações As principais aplicações existentes na Internet são: • • • • • • Correio electrónico Terminal remoto Transferência de ficheiros Directory Name System - DNS Conferências Electrónicas WWW © Pedro Veiga - FCUL Correio Electrónico (e-mail) Protocolos SMTP e MIME SMTP - Simple Mail Transfer Protocols MIME - Multipurpose Internet Mail Extensions • Compatível com o transporte SMTP • Perspectiva (mais uma vez) pragmática do IETF © Pedro Veiga - FCUL SMTP RFC 821 e RFC-822 (SMTP - Simple Mail Transfer Protocol) Sistema orientado a texto simples de implementar sobre muitos mecanismos de transporte não há distinção entre cabeçalhos e corpo das mensagens, a não ser em identificadores especiais dos campos do cabeçalho só ASCII linhas até 72 caracteres © Pedro Veiga - FCUL Endereços [email protected] top-dom • códigos ISO dos países (2 letras); ou • gov, edu, mil, net, com sub-dom : devem adaptar-se à estrutura da hierarquia onde o utilizador se insere Exº • [email protected] • [email protected] © Pedro Veiga - FCUL RFC 822 - Header Fields Sender To Received from Received by Received via Received with From Reply-to Cc Bcc In-Reply-To References Subject Keywords Date Message-ID Comments Endereço de quem envia Endereço do destinatário Donde veio a mensagem Quem recebeu a mensagem Em que meio físico chegou Que protocolo foi usado Nome da pessoa que enviou a mensagem Endereço a quem responder Cópias para ... Cópias ocultas para ... Referência da mensagem a que se refere a resposta Outras mensagens referenciadas Assunto Palavras chave Data Identificação da mensagem Comentários © Pedro Veiga - FCUL MIME Multipurpose Internet Mail Extensions Suporte a correio multimédia na Internet Mensagem composta de várias partes (body parts) Cada parte é codificada e apresentada de um modo adequado Transporte sobre SMTP Necessário um “agente de mail” especial Suporte, por exemplo, de texto (vários conjuntos de caracteres), audio, video, binários, process. de texto, folhas de cálculo, ... © Pedro Veiga - FCUL DNS Sistema de suporte à identificação simbólica de sistemas Suporte à identificação de recursos na rede e seus atributos Sistema crucial para o bom funcionamento actual da Internet Pouco visível ao utilizador final © Pedro Veiga - FCUL DNS Sistema hierárquico Baseado em • root servers • servidores primários de cada domínio • servidores secundários Caching de informação com limites de validade ns.dns.pt © Pedro Veiga - FCUL DNS em Portugal Gerido pela FCCN Entidades que podem registar domínios • • • • Nomes Empresas Publicações ADMD X.400 Marcas registadas Forte crescimento em 1998 © Pedro Veiga - FCUL DNS em Portugal © Pedro Veiga - FCUL WWW - World Wide Web A aplicação que fez a Internet acessível ao utilizador não especializado Sistema desenvolvido inicialmente no CERN Baseada num sistema de HiperTexto Páginas MultiMédia • • • • Texto formatado Imagens Estáticas Vídeo Som Cada página pode conter HiperLigações a outras páginas © Pedro Veiga - FCUL WWW - World Wide Web Baseia-se no paradigma Cliente-Servidor Servidor contem um conjunto de informações organizadas em páginas As páginas estão associadas numa estrutura lógica através das HiperLigações Cliente (aquilo que a pessoa usa para navegar na WEB) acede à informação nos servidores através de um protocolo específico - HTTP HTTP - Hypertext Transfer Protocol © Pedro Veiga - FCUL SNMP Protocolo de Gestão da Internet O que é gerir a rede ? • Actividade de monitorar/observar e controlar a rede Monitorar a rede para verificar o seu estado de funcionamento e identificar potenciais problemas Controlar a rede para a reconfigurar e adaptar a um ambiente operacional e à sua dinâmica © Pedro Veiga - FCUL Gestão de Rede • Gestão de configuração Estabelecer o modo de interligação e funcionamento dos vários componentes • Gestão de falhas Idenfiticar e agir quando ocorrem problemas • Gestão de contabilização Obter informação sobre o uso da rede • Gestão de segurança Controlar a segurança na rede e identificar tentativas da sua violação © Pedro Veiga - FCUL Modelo de Gestão • Agente de Gestão • Entidade localizada em cada equipamento a gerir e que fornece informação sobre o estado desse equipamento • Estação/Consola de gestão • Entidade localizada na rede, que interroga os vários agentes de gestão e colecciona e trata a informação que recebe dos agentes de gestão (informação trocada em SNMP) • Informação de gestão fornecida por cada equipamento depende das suas características (MIB - Management Information Base) A inclusão de gestão na rede deve perturbar o mínimo o funcionamento global da rede © Pedro Veiga - FCUL