Imagem digital Configuração de 640 x 480 e 24 bits/pixel (RGB) 7,37 Mbits Solução → compactação Imagem digital - compactação - JPEG Joint Photographic Experts Group Definido no padrão internacional 10918 Possui quatro modos com várias opções Um dos principais é o modo sequencial com perdas para imagens RGB de 24 bits Imagem digital - JPEG - seq. com perdas JPEG no modo sequencial com perdas (fonte: Tanenbaum) Preparação do bloco Uso de luminância (Y) e crominância (I e Q) Melhor compactação Criação de matrizes Divisão em blocos Redução das matrizes de crominância Imagem digital - JPEG - seq. com perdas Matrizes após a preparação do bloco (fonte: Tanenbaum) (a) entrada em RGB (b) após a preparação do bloco Transformação discreta de cossenos (Discrete Cosine Transformation - DCT) Imagem digital - JPEG - seq. com perdas Exemplo de DCT para a matriz Y (fonte: Tanenbaum) (a) (a) um bloco da matriz Y (b) (b) coeficientes da DCT Imagem digital - JPEG - seq. com perdas DCT - cálculo dos coeficientes quantizados (fonte: Tanenbaum) Imagem digital - JPEG - seq. com perdas DCT - ordem de transmissão (fonte: Tanenbaum) Imagem digital - JPEG - seq. com perdas Após a varredura aplica-se a codificação runlenght No exemplo, informa-se que são 38 zeros Por último, Huffman utiliza-se uma codificação Códigos mais curtos para os valores mais comuns Códigos mais longos para os valores pouco comuns de Vídeo Olho humano milissegundos retém imagens por alguns Sequência exibida a 50 ou mais quadros (imagens) por segundo → olho não percebe imagens discretas Vídeo analógico Imagem bidimensional representada voltagem variante no tempo Vários formatos como uma NTSC PAL SECAM Formatos diferem quanto ao número de linhas de varredura, relação entre os eixos vertical e horizontal e número de quadros por segundo Vídeo analógico NTSC (fonte: Tanenbaum) Vídeo analógico Formatos usam 25 ou 30 quadros/s Oscilação na imagem Solução → exibe-se primeiro as linhas ímpares e depois as pares (entrelaçamento) Vídeo digital Configuração de 1024 x 768, 24 bits/pixel e 25 quadros/s 472 Mbps Solução → compactação Vídeo digital - MPEG Motion Picture Experts Group Padrão de áudio e vídeo digital Mais utilizados MPEG-1 MPEG-2 MPEG-4 Vídeo digital - MPEG-1 Padrão internacional 11172 Formato 352 x 240 com 24 bits/pixel e 25 quadros/s Sem compactação → 50,7 Mbps 1,5 Mbps Só aceita imagens entrelaçadas) Dividido em três partes Áudio Vídeo Sistema Integra as duas partes progressivas (não Vídeo digital - MPEG-1 MPEG-1 (fonte: Tanenbaum) Vídeo digital - MPEG-1 Compactação de vídeo Redundância espacial Redundância temporal Vídeo digital - MPEG-1 Quatro tipos de quadros I (Intracoded) Codificados com uma variante do JPEG Um ou dois por segundo P (Predictive) Usa blocos chamados macroblocos 16 x 16 na luminância 8 x 8 na crominância Diferenças macrobloco a macrobloco em relação ao último quadro são codificadas Vídeo digital - MPEG-1 Quadros consecutivos (fonte: Tanenbaum) Utilidade dos quadros P vários macroblocos iguais Vídeo digital - MPEG-1 Quatro tipos de quadros (cont.) B (Birectional) Diferenças macrobloco a macrobloco em relação a um quadro anterior ou seguinte são codificadas D (DC-coded) Usados para possibilitar a exibição de uma imagem de baixa resolução quando utiliza-se um avanço ou um retrocesso rápido Vídeo digital - MPEG-1 Relação entre quadros I, P e B (fonte: http://bmrc.berkeley.edu/frame/research/mpeg/mpeg_overview.html) Vídeo digital - MPEG-2 Padrão internacional 13818 Formatos 352 x 240 → compatibilidade retroativa com MPEG-1 720 x 480 → NTSC 1440 x 1152 → HDTV 1920 x 1080 → HDTV 4 a 8 Mbps Aceita imagens entrelaçadas e progressivas Aumenta o tamanho do bloco usado na DCT de 8 x 8 para 10 x 10 para melhorar a qualidade Usa os quadros I, P e B Vídeo digital - MPEG-4 Trata imagens como objetos Chega a 4096 x 4096 Possui flexibilidade na escolha da taxa Pode-se codificar o áudio separado do vídeo Protocolos da camada aplicação Definem como processos de uma aplicação trocam mensagens Mais especificamente definem Tipos de mensagens trocadas Sintaxe dos vários tipos de mensagens Ex.: campos Semântica dos campos Regras para determinar quando e como um processo envia e responde a mensagens Protocolo é um pedaço da aplicação de rede Aplicações Necessitam dos seguintes serviços de um protocolo de transporte Transferência de dados Confiável Não confiável Banda passante Aplicações podem ser sensíveis ou não à banda passante Temporização Aplicações podem ser sensíveis ou não ao atraso Aplicações Exemplo de aplicações (fonte: Kurose) Aplicação file transfer e-mail Web documents real-time audio/video stored audio/video jogos interativos msg instantânea Perdas Banda Sensível ao atraso sem perdas sem perdas sem perdas tolerante elástica elástica elástica áudio: 5 Kb-1 Mb vídeo:10 Kb-5 Mb igual à anterior kbps elástica não não não sim, 100’s mseg tolerante tolerante sem perda sim, segundos sim, 100’s mseg sim e não Serviços do transporte na Internet TCP Transferência de dados confiável Orientado a conexão Controle de congestionamento Controle de fluxo UDP Transferência de dados não confiável Não orientado a conexão Sem controle de congestionamento Sem controle de fluxo Serviços do transporte na Internet Exemplo de aplicações (fonte: Kurose) Protocolo de aplicação Protocolo de transporte e-mail acesso a terminais remotos Web transferência de arquivos streaming multimídia smtp [RFC 5321] telnet [RFC 854] http [RFC 2616] ftp [RFC 959] http (Youtube) TCP TCP TCP TCP UDP ou TCP servidor remoto de arquivos telefonia via Internet NFS sip ou proprietário (ex.: Skype) UDP ou TCP tipicamente UDP Aplicação Aplicações DNS Transferência de arquivos (FTP) Correio eletrônico Web Compartilhamento de arquivos P2P Outras DNS Sistema de nomes de domínio (Domain Name System) Serviço de diretórios da Internet Nomes são mais fáceis de lembrar Descrito nas RFCs 1034, 1035 e outras DNS consiste em Banco de dados distribuído implementado em uma hierarquia de nomes Protocolo da camada aplicação que permite que hospedeiros consultem o banco de dados DNS Usa o UDP e a porta 53 Dados armazenados em ASCII Não é uma aplicação com a qual o usuário interage diretamente Complexidade nas bordas da rede DNS Serviços providos Tradução de nomes de hospedeiros para endereços IP Apelidos de hospedeiros Nome de hospedeiro é chamado nome canônico Apelidos de servidor de correio eletrônico Pode-se obter o nome canônico a partir do apelido Distribuição de carga Realizada entre servidores replicados Conjunto de endereços IP associado a um único nome canônico Respostas do DNS contêm o conjunto de endereços É feito um rodízio na ordem dos endereços DNS - tradução de nome para end. IP Banco de dados distribuído e hierárquico Anteriormente os hospedeiros e seus endereços eram armazenados somente em um arquivo hosts.txt Arranjo centralizado não seria escalável Ponto de falha Volume de tráfego Atraso para clientes distantes do banco de dados Dificuldade de manutenção DNS - tradução de nome para end. IP Composto de Servidores DNS locais Três tipos (classes) de servidores de nomes Raiz De domínio de alto nível (Top-Level Domain – TLD) Com autoridade DNS - tradução de nome para end. IP Servidores de nomes raiz Treze servidores na Internet (2006) espalhados pelo mundo Servidores de nomes TLD ou de nível superior Responsáveis por domínios de alto nível Com, org, net, edu, gov, br, uk, ca etc. (genéricos e de países - ISO 3166) Servidores de nomes com autoridade Responsáveis por domínios das organizações Domínios de segundo nível DNS - tradução de nome para end. IP Exemplo de servidores DNS (fonte: Kurose) DNS - tradução de nome para end. IP Espaço de nomes do DNS é dividido em zonas não superpostas Zona inclui os hospedeiros administrados diretamente por um servidor Zona contém uma parte da árvore e servidores de nomes que armazenam informações referentes à zona Zona contém um servidor principal (obtêm suas informação a partir do disco) e servidores secundários (obtêm suas informações a partir do servidor principal) DNS - tradução de nome para end. IP Exemplo de parte do espaço de nomes DNS (fonte: Tanenbaum) Exemplo de interação entre servidores DNS (fonte: Kurose) O hospedeiro em cis.poly.edu quer o endereço IP para gaia.cs.umass.edu Servidor de nomes local da Polytechnique é dns.poly.edu Servidor de nomes com autoridade para gaia.cs.umass.edu é dns.umass.edu (erro na figura) Exemplo de interação entre servidores DNS (fonte: Kurose) 1) Consulta ao servidor de nomes local 2) Consulta ao servidor de nomes raiz 3) Resposta com servidores TLD responsáveis por edu 4) Consulta ao servidor de nomes TLD 5) Resposta com servidor de nomes com autoridade responsável por umass.edu 6) Consulta ao servidor de nomes com autoridade DNS - tradução de nome para end. IP Consultas podem ser Recursivas Transfere a tarefa para o servidor consultado No exemplo, de cis.poly.edu para dns.poly.edu Iterativas Servidor responde com o nome de outro servidor a ser contactado No exemplo, todas as outras consultas DNS - tradução de nome para end. IP Uso de cache Melhora o desempenho em relação ao atraso Diminui a quantidade de mensagens DNS enviadas Qualquer servidor pode responder, mesmo que não tenha autoridade para o nome Frequentemente são feitos caches de servidores TLD Para evitar os servidores raiz DNS - registros de recursos Banco de dados DNS é constituído de registros de recursos DNS mapeia nomes de domínios em registros de recursos Domínios possuem registros de recursos associados a eles Armazenados nos servidores de nomes DNS - registros de recursos Campos (Name, Value, Type, TTL) Se Type A → Name = nome do hospedeiro, Value = endereço IP (relay1.bar.foo.com, 145.37.93.126, A) NS → Name = nome do domínio, Value = nome de um servidor de nomes com autoridade que responde a consultas relativas aos hospedeiros do domínio (foo.com, dns.foo.com, NS) CNAME → Name = apelido do hospedeiro, Value = nome canônico do hospedeiro (foo.com, relay1.bar.foo.com, CNAME) MX → Name = apelido do hospedeiro, Value = nome canônico do servidor de correio eletrônico (foo.com, mail.bar.foo.com, MX) DNS - registros de recursos Formato (Name, Value, Type, TTL) (cont.) TTL Tempo de vida útil do registro Determina quando o registro deve ser removido de um cache Exemplo de parte do DNS para cs.vu.nl (fonte: Tanenbaum) DNS - mensagens Formato das mensagens DNS (fonte: Kurose)