Networking and communication
the field of networking and communication includes the analysis, design, implementation, and use of local, wide-area, and mobile networks that link computers together. A própria Internet é uma rede que torna possível que quase todos os computadores do mundo se comuniquem.
uma rede informática liga computadores através de uma combinação de sinais de luz infravermelha, transmissões de ondas de rádio, linhas telefónicas, cabos de televisão e ligações por satélite. O desafio para os cientistas da computação tem sido a de desenvolver protocolos (regras padronizado para o formato e a troca de mensagens), que permitem os processos em execução em computadores host para interpretar os sinais que recebem, e a exercer significativa “conversas” a fim de realizar tarefas em nome do usuário. Protocolos de rede também incluem controle de fluxo, que impede um remetente de dados de balançar um receptor com mensagens que ele não tem tempo para processar ou espaço para armazenar, e controle de erro, que envolve a detecção de erro de transmissão e revenda automática de mensagens para corrigir tais erros. (Para alguns detalhes técnicos de detecção e correção de erros, ver teoria da informação.)
a normalização dos protocolos é um esforço internacional. Uma vez que, de outra forma, seria impossível para diferentes tipos de máquinas e sistemas operacionais se comunicarem entre si, a principal preocupação tem sido que os componentes do sistema (computadores) sejam “abertos”.”Esta terminologia vem dos padrões de comunicação de interconexão de sistemas abertos (OSI), estabelecidos pela Organização Internacional de normalização. O modelo de referência OSI especifica padrões de Protocolo de rede em sete camadas. Cada camada é definida pelas funções em que se baseia a partir da camada abaixo dela e pelos serviços que fornece à camada acima dela.
na parte inferior do protocolo encontra-se a camada física, contendo regras para o transporte de bits através de uma ligação física. A camada de ligação de dados lida com “pacotes” de tamanho padrão de dados e adiciona confiabilidade na forma de detecção de erros e bits de controle de fluxo. As camadas de rede e transporte dividem as mensagens nos pacotes de tamanho padrão e encaminham-nas para os seus destinos. A camada de sessão suporta interações entre aplicações em duas máquinas comunicantes. Por exemplo, ele fornece um mecanismo com o qual inserir checkpoints (salvando o estado atual de uma tarefa) em uma longa transferência de arquivos de modo que, em caso de falha, apenas os dados após o último checkpoint precisam ser retransmitidos. A camada de apresentação está relacionada com funções que codificam dados, de modo que sistemas heterogêneos podem se engajar em uma comunicação significativa. Ao mais alto nível são protocolos que suportam aplicações específicas. Um exemplo de tal aplicação é o file transfer protocol (FTP), que regula a transferência de arquivos de uma máquina para outra.
o desenvolvimento de redes e protocolos de comunicação também gerou sistemas distribuídos, nos quais computadores ligados em uma rede compartilham dados e tarefas de processamento. Um sistema de banco de dados distribuído, por exemplo, tem um banco de dados espalhado entre (ou replicado em) diferentes sites de rede. Os dados são replicados em” sites espelho”, e a replicação pode melhorar a disponibilidade e confiabilidade. Um DBMS distribuído gerencia um banco de dados cujos componentes são distribuídos através de vários computadores em uma rede.Uma rede cliente-servidor é um sistema distribuído no qual a base de dados reside em um computador (o servidor) e os usuários se conectam a este computador através da rede de seus próprios computadores (os clientes). O servidor fornece dados, e responde às solicitações de cada cliente, enquanto cada cliente acessa os dados no servidor de uma forma que é independente e ignorantes da presença de outros clientes acessando o mesmo banco de dados. Os sistemas cliente-servidor exigem que as ações individuais de vários clientes para a mesma parte do banco de dados do servidor sejam sincronizadas, de modo que os conflitos sejam resolvidos de uma forma razoável. Por exemplo, as reservas de companhias aéreas são implementadas usando um modelo cliente-servidor. O servidor contém todos os dados sobre os próximos voos, tais como reservas atuais e atribuições de assentos. Cada cliente quer acessar estes dados com a finalidade de reservar um voo, obter uma atribuição de assento, e pagar o voo. Durante este processo, é provável que dois ou mais pedidos do cliente queiram acessar o mesmo voo e que haja apenas um lugar para ser atribuído. O software deve sincronizar estas duas solicitações para que o assento restante seja atribuído de forma racional (geralmente para a pessoa que fez o pedido primeiro).Outro tipo popular de sistema distribuído é a rede peer-to-peer. Ao contrário das redes cliente-servidor, uma rede peer-to-peer assume que cada computador (usuário) conectado a ele pode agir tanto como um cliente e como um servidor; assim, todos na rede são um peer. Esta estratégia faz sentido para grupos que compartilham coleções de áudio na Internet e para organizar redes sociais como LinkedIn e Facebook. Cada pessoa conectada a essa rede recebe informações de outros e compartilha suas próprias informações com outros.