Software de Rede Willamys Araújo Tópicos da Aula de hoje • • • • • Hierarquias de protocolos (camadas) Questões de projeto relacionadas às camadas Serviços oferecidos por camadas Primitivas de Serviços Relacionamento entre serviços e protocolos Software de Rede • Nas primeiras redes de computadores os aspectos relacionados ao hardware foram colocados como prioridade e os aspectos de software em segundo plano. • No entanto logo foi percebida a fundamental importância dos mecanismos de software de uma rede, e, em função disto, os softwares de rede são altamente estruturados. Software de Rede • Os conceitos relacionados a esta estruturação são de vital importância para a compreensão de todos os aspectos relacionados à arquitetura de redes como um todo. Hierarquia de Protocolos Hierarquia de Protocolos • Em redes de computadores, um protocolo é um acordo entre as partes que se comunicam, estabelecendo como se dará a comunicação. • Para reduzir a complexidade do projeto, a maioria das redes é organizada como uma pilha de camadas ou níveis, colocadas umas sobre as outras. Hierarquia de Protocolos • O numero de camadas, o nome, o conteúdo e a função de cada camada diferem de uma rede para outra. • No entanto, em todas as redes o objetivo de cada camada e oferecer determinados serviços as camadas superiores, isolando essas camadas dos detalhes de implementação desses recursos. Hierarquia de Protocolos • A camada n de uma máquina se comunica com a camada n de outra. • As regras e convenções usadas nesse diálogo são conhecidas como protocolo de camada n. • Na realidade, os dados não são transferidos diretamente da camada n de uma máquina para a camada n de outra máquina. Hierarquia de Protocolos Hierarquia de Protocolos • Entre cada par de camadas adjacentes existe uma interface. • Esta define as operações e os serviços que a camada inferior tem a oferecer à camada que se encontra acima dela. • Isso alem de reduzir o volume de informações que deve ser passado de uma camada para outra, • Simplificam a substituição da implementação de uma camada por uma implementação completamente diferente. Hierarquia de Protocolos • Um conjunto de camadas e protocolos é chamado de arquitetura de rede. • Uma arquitetura de rede deve conter informações suficientes para permitir que um programador desenvolva software/hardware de cada camada. • Uma lista de protocolos usados por um determinado sistema é chamado pilha de protocolos. Hierarquia de Protocolos Hierarquia de Protocolos • Vejamos um exemplo mais técnico: – Uma mensagem M é produzida por um processo que funciona na camada 5; – A camada 4 coloca um cabeçalho no início da mensagem para identificá-la; – A camada 3, por limitações no tamanho das mensagens, divide a mensagem M em duas partes: M1 e M2. – A camada 2 então adiciona não só um cabeçalho no começo de cada fragmento, mas também no fim. – Por fim a camada transmite fisicamente a mensagem Hierarquia de Protocolos Questões de projetos relacionadas às camadas Questões de projetos relacionadas às camadas • Todas as camadas precisam de um mecanismo para identificar os transmissores e os receptores • Como em geral uma rede tem muitos computadores, e alguns deles tem vários processos, é necessário um meio para que um processo de uma maquina especifique com quem ela deseja se comunicar. • Isso é feito através do endereçamento. Questões de projetos relacionadas às camadas • Transferência de dados – Em alguns sistemas, os dados são transferidos em apenas um sentido; – em outros, os dados trafegam em ambos os sentidos. – O protocolo também deve definir a quantos canais lógicos corresponde a conexão e quais são suas prioridades. Questões de projetos relacionadas às camadas • Controle de Erros – é uma questão importante, pois os circuitos de comunicação física não são perfeitos. – o receptor deve ter algum meio para informar ao transmissor quais mensagens foram recebidas corretamente e quais não foram. Questões de projetos relacionadas às camadas • Controle de fluxo – Nem todos os canais de comunicação preservam a ordem das mensagens enviadas a eles. – Uma questão que afeta cada nível é como impedir que um transmissor rápido envie uma quantidade excessiva de dados a um receptor mais lento Questões de projetos relacionadas às camadas • Mensagens arbitrariamente longas – Nos diversos níveis existe a falta de habilidade de todos os processos para aceitarem essas mensagens – Essa propriedade nos leva ao uso de mecanismos para desmontar, transmitir e remontar mensagens – Uma questão relacionada é o que fazer quando os processos insistem em transmitir dados em unidades tão pequenas que o envio de cada uma separadamente se torna ineficiente. Questões de projetos relacionadas às camadas • Roteamento – Quando houver vários caminhos entre a origem e o destino, uma rota deverá ser escolhida. Questões de projetos relacionadas às camadas • Multiplexação e Demultiplexação – Quando for inconveniente configurar uma conexão isolada para cada par de processos de comunicação, a camada subjacente pode decidir usar a mesma conexão para diversas conversações não relacionadas entre si. Serviços oferecidos por camadas Serviços oferecidos por camadas • As camadas podem oferecer dois tipos diferentes de serviços às camadas situadas acima delas: – Serviços orientado a conexões – Serviços sem conexões Serviços oferecidos por camadas • Serviços orientados a conexões – Se baseiam no sistema telefônico. • Para falar com alguém, você tira o fone do gancho, disca o numero, fala e, em seguida, desliga. – Na maioria dos caos a ordem é preservada; – os bytes chegam na ordem em que foram enviados. Serviços oferecidos por camadas • Serviços sem conexão – Se baseiam no sistema postal. – Cada mensagem carrega o endereço de destino completo. – e cada uma delas e roteada (encaminhada) através do sistema, independentemente de todas as outras. – Também chamado de serviço de datagramas. Serviços oferecidos por camadas Primitivas de Serviço Primitivas de Serviço • Um serviço é especificado formalmente por um conjunto de primitivas (operações) disponíveis para que um processo do usuário acesse o serviço. • Essas primitivas informam ao serviço que ele deve executar alguma ação ou relatar uma ação executada por uma entidade par. Primitivas de Serviço O Relacionamento entre serviços e protocolos O Relacionamento entre serviços e protocolos • Serviços e protocolos são conceitos diferentes, embora sejam confundidos com freqüência. • Serviço – é um conjunto de primitivas (operações) que uma camada oferece à camada situada acima dela. – define as operações que a camada esta preparada para executar em nome de seus usuários, mas não informa absolutamente nada sobre como essas operações são implementadas. – se relaciona a uma interface entre duas camadas, sendo a camada inferior o fornecedor do serviço e a camada superior o usuário do serviço. O Relacionamento entre serviços e protocolos • Protocolo – é um conjunto de regras que controla o formato e o significado dos pacotes ou mensagens que são trocadas pelas entidades pares contidas em uma camada. O Relacionamento entre serviços e Os serviços estão protocolos relacionados as interfaces entre camadas. Os protocolos se relacionam aos pacotes enviados entre entidades pares de maquinas diferentes.