s de Computadores Arquitetura e odelos de Referência odelo OSI/ISO odelo TCP/IP Evolução na comunicação Comunicação sempre foi uma necessidade humana, buscando aproximar comunidades distantes Sinais de fumaça Pombo-correio Telégrafo (século XIX) - Código orse s Telefônicas s de Distribuição: TV, Rádio, TV a cabo Reinaldo Gomes reinaldo@cefet-al.br Camadas de Protocolos s são complexas uitos componentes: Roteadores s de vários tipos Aplicações Protocolos Hardware, software QUESTÃO: Há alguma esperança de organizar a arquitetura de uma? Ou pelo menos nossa discussão sobre s? Organização de uma viagem aérea Uma série de passos Camadas de Funcionalidade da companhia aérea Camadas: cada camada implementa um serviço Via suas próprias ações internas Confiando em serviços fornecidos pela camada inferior Por que as Camadas? Convivendo com sistemas complexos A estrutura explícita permite identificação, o relacionamento das partes de um sistema complexo Um modelo de referência em camadas permite a discussão da arquitetura odularização facilita a manutenção, atualização do sistema As mudanças na implementação de uma camada são transparentes para o resto do sistema Ex.: novas regras para embarque de passageiros não afetam os procedimentos de decolagem 1
Software de s Por que projetar em camadas? Para reduzir a complexidade do problema em subproblemas menores Dividir para conquistar Para permitir a substituição/evolução i ã de tecnologias em um nível sem afetar os demais Para permitir diferentes opções de configuração em cada nível, de acordo com as necessidades da, custos, performance, fornecedores etc. Software de s Arquitetura em camadas Host A Host B Nível 4 Protocolo de nível 4 Nível 4 Interface 3/4 Nível 3 Protocolo de nível 3 Nível 3 Interface 2/3 Nível 2 Protocolo de nível 2 Nível 2 Interface 1/2 Nível 1 Protocolo de nível 1 Nível 1 eio Físico O conceito de camadas Software de s H4 H3 H4 1 H3 H4 2 Protocolo de nível 4 Protocolo de nível 3 H2 H3 H4 1 T2 H2 H3 H4 2 T2 Protocolo de nível 2 eio Físico Software de s Protocolo de nível 4 Protocolo de nível 3 Protocolo de nível 2 H4 H3 H4 1 H3 H4 2 H2 H3 H4 1 T2 H2 H3 H4 2 T2 Arquiteturas de s de Computadores eio Físico 2
O modelo R-OSI da ISO Arquiteturas de s de Computadores Host A Fronteira da sub- Roteador Roteador Host B APDU PPDU SPDU TPDU Pacote Frame Bit Para reduzir a complexidade do projeto, s de computadores são organizados em camadas hierárquicas Camada: programa ou processo, implementado por hardware ou software, que se comunica com o processo correspondente na outra máquina Protocolo: conjunto de regras e convenções que governam a conversação de processos de uma camada Interface: limite entre as camadas adjacentes Arquitetura da : conjunto de camadas, protocolos e interfaces O modelo R-OSI da ISO O modelo R-OSI da ISO Trata das características ecânicas, eletro/óptica, funcionais e de procedimentos para conexão entre entidades da camada de Transmite uma sequência de bits Não se preocupa com o significado das informações Trata o fluxo de dados no entre transmissor e receptor: arcação/detecção de frames no fluxo de bits da camada Controle de fluxo Detecção e correção de erros Acesso ao meio compartilhado Não permite ligação entre s distintas O modelo R-OSI da ISO O modelo R-OSI da ISO Controla as operações na sub-: Roteamento: estático ou dinâmico Controle de congestionamento Interconexão de s Informações sobre a contabilidade do tráfego Tratar problemas de tráfego inter-s Não garante que o pacote chegue ao destino Divide as mensagens em pacotes É a primeira camada fim-a-fim Deve garantir: Comunicação fim-a-fim confiável ultiplexação/splitting de conexões Controle de fluxo fim-a-fim 3
O modelo R-OSI da ISO O modelo R-OSI da ISO Permite que aplicações em hosts diferentes partilhem uma sessão Provê: Sessões de trabalho (controle de diálogo) Controle de token Sincronização Sessões de trabalho Dar sintaxe e semântica aos dados trocados entre os dois lados envolvidos Realiza transformações necessárias nos dados: Tradução dos dados Compressão de textos Criptografia Conversão de padrões O modelo R-OSI da ISO O modelo R-OSI da ISO Provê serviços que suportam diretamente as aplicações do usuário, como: Correio eletrônico Transferência de arquivos Acesso a banco de dados Independência do Sistema Operacional Não define as aplicações em si! Host A Dado AH Dado PH Dado SH Dado TH Dado NH Dado DH Dado Bits DT Host B Divisão em camadas: comunicação lógica Cada camada: Distribuída Entidades implementam as funções da camada em cada nó Entidades realizam ações, trocam mensagens entre pares Divisão em camadas: comunicação lógica Ex.: Apanha dados da Acrescenta endereço, verificação de erros e outras informações para montar um datagrama Envia datagrama ao parceiro Espera pelo reconhecimento do parceiro Analogia: correio dados ack dados dados 4
Divisão em camadas: comunicação dados dados Camadas de Protocolos e dados Cada camada recebe dados de cima Acrescenta um cabeçalho de informação para criar uma nova unidade de dados Passa a nova unidade de dados para a camada abaixo Ht HnHt HnHt Hl fonte destino Ht HnHt HnHt Hl mensagem segmento datagrama quadro O modelo TCP/IP O modelo TCP/IP Inter-s Fronteira da sub- Inter- Inter- Inter-s TELNET TCP FTP STP UDP DNS - - - - Inter-s IP Host A Roteador Roteador Host B / LAN 802 X.25 AT O odelo de Referência TCP/IP Arquitetura TCP/IP É o modelo de referência usado pela ARPANET (sucessora de todas as WANs) e pela Internet. ARPANET Patrocinada pelo DoD (US Department of Defense) Conectava centenas de universidades e agências do governo através de linhas telefônicas alugadas s de satélite e de rádio dificuldade de conexão com protocolos existentes arquitetura de referência nova Principais objetivos do projeto: conectar múltiplas s de forma eficiente e contínua (sem arestas) 5
O odelo de Referência TCP / IP Nome do modelo de referência TCP/IP tem origem nos 2 principais protocolos. Primeiramente definido por Cerf e Kahn em 1974 Outros objetivos: Confiabilidade em caso de perda de HW da sub (preocupação do DoD em caso de guerra. Destino e origem devem poder se comunicar mesmo que alguns roteadores intermediários caiam Arquitetura flexível para atender aplicações diversas. Exs: transferência de arquivos e transmissão de voz em tempo real O odelo de Referência TCP / IP OSI s TCP / IP Transpote Inter- (Internet) Host/ (Interface de ) - } Ausentes A Camada Inter- (INTERNET) Escolheu-se uma do tipo comutação de pacotes, baseada em uma camada inter-s com serviços sem conexão Permite aos hosts lançarem pacotes sobre a, sendo que cada um é transmitido independentemente para o destino (potencialmente numa diferente) Pacotes podem chegar numa ordem diferente da de envio. Camada superior ordena se necessário A Camada Inter- (INTERNET) Analogia com o correio comum. Caminho percorrido pelas cartas é transparente para o usuário Camada internet define formato oficial dos pacotes e o protocolo IP (Internet Protocol) Principal função é garantir a entrega no destino correto Roteamento É semelhante em funcionalidade à camada de s do modelo OSI. A Camada de Projetada para permitir que entidades cooperadoras na origem e destino conversem entre si como na camada de do modelo OSI Define 2 protocolos fim-a-fim TCP UDP A Camada de Tansporte TCP (Transfer Control Protocol) Protocolo que implementa serviço com conexão confiável O fluxo de bits, dividido em pacotes, é enviado pela camada internet, reagrupado e ordenado pelo processo TCP no destino Transmissão de dados sem erros Também realiza controle de fluxo 6
A Camada de Tansporte UDP (User Datagram Protocol) Oferece serviço sem conexão e não confiável para aplicações que não precisam do seqüenciamento e controle de fluxo do TCP e / ou providenciam isto por conta própria Exs: serviços cliente servidor do tipo pedido resposta e transmissão de voz e vídeo (rapidez mais importante que confiabilidade) A Camada de Não foi identificada a necessidade de camadas de sessão e de apresentação no modelo TCP / IP. Experiência com modelo OSI mostrou que estas camadas são de pouca utilidade para a maioria das aplicações Contém protocolos de nível mais alto A Camada de Terminal virtual (TELNET: serviço que permite login remoto de usuário), Transferência de arquivos (FTP: fornece meio para a transferência de dados entre máquinas), e Correio eletrônico (STP: Simple ail Transfer Protocol) inicialmente, mail era tratado como tipo de transferência de arquivos, depois ganhou tratamento especial. A Camada de DNS (Domain Name Service): mapeia nome dos hosts para endereços na. NNTP (Network News Transfer Protocol): transferência de artigos de notícias. HTTP (Hypertext Transfer Protocol): protocolo usado para acessar páginas da WWW. A Camada de Interface de odelo TCP / IP não especifica muito bem o que acontece abaixo da camada Inter- Host deve se conectar com usando algum protocolo através do qual ele pode enviar pacotes IP Protocolo não definido e varia de host para host e de para Não é muito discutido na bibliografia Comparação entre odelos de odelos têm em comum: odelo de camadas de protocolos conceitualmente independentes Funcionalidade das camadas é semelhante. Exs Camadas abaixo e até a de fornecem um serviço de transferência fim a fim, independente de, para processos de aplicações que desejam se comunicar. Camadas acima são usuárias, ligadas às aplicações, dos serviços de. 7
Comparação entre odelos de Diferenças entre os modelos (não entre pilhas de protocolos): 3 conceitos centrais bem diferenciados pelo OSI (uma de suas principais contribuições) SERVIÇOS: Cada camada fornece serviços para camada superior. odelo especifica o que cada camada faz, não como o serviço é implementado ou acessado INTERFACES: Especifica como camada superior acessa serviço da inferior. Especifica parâmetros usados e resultados que podem ser esperados. Não especifica como o serviço é implementado PROTOCOLOS: entre os pares é questão decidida pelo projetista e não especificada pelo modelo. Protocolos de uma camada podem ser alterados sem alterar as outras camadas Comparação entre odelos de Idéias comuns a programação orientada a objetos: Objeto (camada) tem conjunto de métodos (operações) que processos externos à camada invocam. As semânticas dos métodos definem o conjunto de serviços que o objeto oferece. Os parâmetros e resultados formam a interface do objeto. O código interno do objeto é seu protocolo e não é visível ou de interesse externamente ao objeto. Comparação entre odelos de O modelo TCP / IP originalmente não distingüia entre os conceitos I, II e III. Tentaram fazer isto posteriormente inspirados no OSI. Ex: a camada inter- só fornece serviços ENVIE PACOTE IP e RECEBA PACOTE IP Protocolos são mais bem escondidos no OSI e podem ser alterados facilmente com mudança de tecnologia. Este é o objetivo de uma arquitetura em camadas Comparação entre odelos de odelo de referência OSI projetado antes dos protocolos odelo não é ajustado a conjunto de protocolos específicos odelo mais geral Por outro lado, projetistas do OSI não tinham muita experiência de implementação, e portanto não tinham boa idéia de como deveriam ser as funcionalidades de cada camada Ex: originalmente, camada de só tratava de s ponto a ponto. Surgimento de s broadcast nova subcamada anexada ao modelo Comparação entre odelos de Projetistas de s reais usando OSI e protocolos existentes descobriram que protocolos não correspondiam às especificações de serviços Anexar subcamadas ao modelo. Comitê imaginou que cada país teria sua própria gerenciada pelo governo e usando protocolos OSI. Não tratou conexão inter-s. Não corresponde ao que aconteceu na prática. Comparação entre odelos de No modelo TCP / IP: 1o protocolos: modelo foi ajustado para descrever protocolos existentes. Ajuste perfeito protocolo/modelo. Problema: odelo não descreve outras pilhas de protocolos Não descreve bem s não TCP/IP. 8
Comparação entre odelos de Diferenças práticas: OSI tem 7 camadas e TCP / IP tem 4 OSI fornece serviço com e sem conexão na camada de e só serviço com conexão na camada de (camada visível à - usuário) TCP / IP fornece só serviço sem conexão na camada de e ambos (com e sem conexão) na camada de Criticas ao odelo OSI e seus protocolos Hoje parece que projetistas do OSI foram atropelados Quando protocolos do padrão OSI apareceram, o TCP/IP já era usado de forma generalizada nas universidades (na época um mercado importante) OSI apareceu: empresas só desenvolveriam novo conjunto de protocolos se pressionadas Uma esperava pela outra OSI não aconteceu Criticas ao odelo OSI e seus protocolos Tecnologia e Implementação Ruim odelo e protocolos associados tinham defeitos A escolha de 7 camadas foi mais política que técnica Camadas de sessão e apresentação são praticamente vazias As camadas de de dados e de s estão tão cheias que foi necessário subdividí-las em subcamadas com funções diferenciadas odelo OSI com definições de serviços e protocolos muito complexo, difícil de implementar e ineficiente. Ex: Algumas funções como endereçamento, controle de fluxo e controle de erros, ocorrem em várias camadas Criticas ao odelo OSI e seus protocolos Decisão de colocar determinada função em camada específica nem sempre é óbvia. Terminal virtual originalmente estava na camada de apresentação. Foi para a camada de porque comitê teve dificuldade em determinar utilidade para camada de apresentação. Não houve acordo sobre as camadas onde segurança e criptografia e gerenciamento de s deveriam estar ficaram fora do modelo. Crítica ao odelo TCP/IP Projetos de SW requerem diferenciação entre especificação e implementação. TCP/IP não faz isto odelo não distingüe bem conceitos de serviço, Interface e Protocolo TCP/IP não é boa orientação para projetar novas s com novas tecnologias Não é geral e não descreve bem outras pilhas Camada de Interface de não é uma camada no sentido usual do termo É interface (entre camadas de e ) Distinção interface X camada é crucial Crítica ao odelo TCP/IP odelo TCP / IP não distingüe (nem menciona) camadas e de que são completamente diferentes. Bom modelo deve incluí-las como camadas separadas Camada : características ti de transmissão de fios de cobre, fibras óticas e comunicação sem fios Camada de : delimita início e fim de quadros e os envia com grau desejado de confiabilidade 9
Crítica ao odelo TCP/IP Protocolos IP e TCP bem projetados e implementados, mas muitos dos outros foram desenvolvidos para fins muito específicos. Implementações destes protocolos distribuídas gratuitamente uito usados e difíceis de serem substituídos 10