Prévia do material em texto
Disciplina Programação para Redes Unidade 1 Redes de Computadores: Protocolos e suas funcionalidades Aula 1 Conceitos e Fundamentos dos protocolos de redes Introdução Nesta aula vamos começar apresentando a metodologia por trás do surgimento dos protocolos de rede e seu importante papel na criação da internet. Feita a conceituação inicial acerca dos protocolos, vamos trabalhar com a divisão feita entre os modelos OSI e TCP e seu papel na estrutura de camadas que utilizamos atualmente na construção lógica das redes. Com o seu progresso nesta aula, estudante, você será capaz de compreender melhor a infraestrutura das redes que for diagnosticar ou gerenciar, o que lhe permitirá prover soluções rápidas e e�cientes. Estudante, que tal aprender mais a respeito dos protocolos e com isso se destacar nos projetos e na gestão de redes? Bons estudos! Disciplina Programação para Redes O surgimento dos principais Protocolos Embora o conceito de redes de computadores �gure quase que restrito ao mundo da computação, quando um comentário geral é feito a alguém de outra área do conhecimento, �ca claro que o conceito remete à conectividade entre computadores de uma empresa e onde incluímos as impressoras. Mas a internet é também uma rede de computadores, embora use todo tipo de hardware que muitas vezes não é encontrado em uma pequena rede local de uma empresa. Fugindo do senso comum, temos a de�nição da principal função das redes de computadores apresentada por Bay Disciplina Programação para Redes e Bluning (2016), como o conjunto de dispositivos capazes de realizar um �uxo de comunicação entre seus diferentes pontos, com agilidade e e�ciência. A ideia por trás da construção de uma rede, fugindo da noção de que se trata de um emaranhado de cabos, conectores e computadores, é de promover uma infraestrutura segura de alta disponibilidade para facilitar a troca de informações. Para uni�car a internet, tornando-a uma grande e vasta rede, foi necessário o desenvolvimento de diversos recursos como os protocolos de rede. Estes protocolos, aplicados às redes, permitiram a comunicação de sistemas e dispositivos construídos sob modelos diferentes, que funcionam em sistemas operacionais diferentes e que foram escritos em linguagens de programação diferentes. Dessa forma, a tarefa aplicada aos protocolos de comunicação foi padronizar diversos aspectos das redes de computador, principalmente no que diz respeito ao importante processo da comunicação entre dispositivos. Neste sentido, de acordo com Bay e Bluning (2016), podemos de�nir os protocolos como as regras que os diversos dispositivos de uma rede vão utilizar para sua interconexão e consequente troca de dados. Assim, os protocolos acabam por ser comparados a uma linguagem universal que uniformiza comportamentos, ações e respostas, e com isso a própria internet se tornou possível. Imagine, estudante, a internet sem os protocolos: centenas de redes isoladas com complexos e lentos dispositivos de comunicação. Mas a uniformidade oferecida pelo conceito de protocolo não signi�ca que exista apenas um protocolo; existem diversos, alguns com abordagem semelhante e outros com foco em ações distintas. O processo de comunicação interno e externo a uma rede ocorre com a aplicação de diversos protocolos em conjunto, pois é preciso controlar a comunicação feita entre os hosts diretamente, o �uxo dessa informação, o desempenho da rede em geral e a sua segurança. Protocolos de rede. Fonte: elaborada pelo autor. Disciplina Programação para Redes Nesta perspectiva, podemos a�rmar que todo e qualquer protocolo de rede tem grande importância em sua estrutura, assim como seu próprio modelo de camadas. Se os protocolos uni�cam regras de comunicação, as camadas da rede permitem a uni�cação do formato de alguns serviços, bem como a ocultação de aspectos e informações não integrais ao processo de comunicação entre hosts e equipamentos em uma rede. Dessa forma, os protocolos de comunicação devem atuar entre camadas, ou melhor, um protocolo vai agir na mesma camada em cada parte do nó que está con�gurado. Neste momento podemos apresentar que a estrutura de protocolos e camadas fornece mais uma de�nição de redes, pois da soma das camadas com os protocolos de comunicação temos a arquitetura de rede. A somatória dos diversos protocolos que fazem parte da estrutura de comunicação de uma rede é representada pela sua pilha, uma pilha de protocolos. Por �m, em sua hierarquia, as camadas de uma arquitetura de redes são constituídas de forma que sempre atuam para a sua camada superior e cuja estrutura apresenta duas abordagens: o modelo OSI (Open System Interconnection) e o modelo TCP/IP (Transmission Control Protocol/Internet Protocol). Modelos de Divisão Embora existam diversas linguagens de programação e dezenas de fabricantes de componentes, salvo muitas similaridades e coincidências, isso representa um cenário extremamente eclético, o que faz com que seja vital a existência dos protocolos. Disciplina Programação para Redes Para controlar a comunicação entre dispositivos, muitas vezes diferentes, os protocolos oferecem o modelo de padronização que torna a troca de informações possível. Mas os protocolos dependem da forma com que a rede é estruturada, e suas camadas. Estas camadas são vitais para o processo que faz a construção do pacote que levará algo de um host para outro. Assim, podemos a�rmar que são os pacotes que fazem a comunicação, e os protocolos e camadas da rede fazem a oferta da infraestrutura usada para essa colaboração. Cabe aos protocolos fazer tanto o processo de envio de um pacote quanto seu recebimento, na outra ponta, o que signi�ca, na linguagem computacional, que essa tecnologia é bidirecional. Existem dois principais modelos de referência para a construção de sistemas e ferramentas e para a conexão de computadores em rede: o modelo OSI e o modelo TCP/IP: OSI: esse modelo é referência da ISO [Organização Internacional para Padronização] e é formado por sete camadas de funções, sendo que nunca foi aceito na prática. Apesar disso, os nomes das camadas desse projeto são bastante utilizados. Nesse modelo cada protocolo realiza uma atividade, que corresponde a uma camada; Modelo TCP/IP: esse modelo foi baseado no modelo OSI, mas possui menos camadas que ele. Ele envolve um conjunto de protocolos que são utilizados para realizar a comunicação entre computadores de uma rede. (BARRETO, ZANIN; SARAIVA 2018, p. 96) Embora o modelo OSI ofereça grande base conceitual para a estrutura das redes atuais, o modelo TCP/IP se sobressaiu e teve origem em um momento bastante caótico em relação à diferença de linguagem entre os dispositivos e equipamentos e onde a necessidade de se estabelecer uma comunicação e�ciente era primordial. Essa janela de tempo compreende os anos que seguem desde o início de seu desenvolvimento pela DARPA (Defence Advanced Research Projects Agency), em 1975. Disciplina Programação para Redes Camadas dos modelos OSI e TCP/IP. Fonte: adaptada de Póvoa (2016 apud BARRETO, ZANIN E SARAIVA, 2018, p. 97). Para muitos especialistas, sempre existirá uma porção do modelo OSI dentro do modelo TCP/IP, embora sua implementação o leve a caminhos diferentes. Em ambos os casos o que ocorre, quando existe o envio de um pacote na rede, é denominado processo de comunicação, que comumente apresenta algumas fases como o estabelecimento da ligação entre os dispositivos, a troca de dados em questão e, por �m, a desocupação da conexão. O grande destaque do modelo TCP/IP não é o menor número de camadas, pois é fato que desde 1992 a esmagadora maioria das novas redes vem sendo desenvolvida sob o modelo, o que facilita em questões importantes como os custos do projeto e as questões de segurança. Foram mais de 24 anos para que a concepção de um modelo inovador de metodologia de conexão e gerenciamento pudesse se espalhar pela rede mundial de computadores assim como pelas redes locais das empresas. A própria DARPA (Defense Advanced ResearchProjects Agency) facilitou a adoção do modelo referencial TCP/IP, pois foi pelo projeto da DARPA que foi criada, no mesmo período, a rede mundial que hoje conhecemos por internet. A diferença, em termos de criação, para com o modelo referencial OSI, é que este modelo foi criado pela ISO (Defense Advanced Research Projects Agency), entidade responsável pela criação da padronização de processos e criadora das certi�cações mais buscadas pelas empresas de alta competitividade. Podemos concluir que os diferentes protocolos de uma rede são importantes para que seja compreendido o funcionamento da estrutura de redes. Ao compreender a função e atribuição de cada protocolo, o pro�ssional é capaz de intervir com maior assertividade e buscar sempre o melhor desempenho e segurança. Funções dos Protocolos de Rede Disciplina Programação para Redes A comunicação dentro de uma rede de computadores é feita de forma que dispositivos diferentes, em construção e/ou linguagem, possam interagir entre si na troca de mensagem. Uma das mais importantes características dos protocolos de rede está na sua capacidade de veri�car, validar os dados transmitidos entre dispositivos. Dessa forma, de acordo com Barreto, Zanin e Saraiva (2018), embora a função geral dos protocolos seja permitir a comunicação entre dispositivos de uma rede e entre redes, cada protocolo apresenta seu próprio conjunto de regras destinadas a controlar e a regular tal comunicação, portanto, a transferência de dados. Disciplina Programação para Redes Funções dos protocolos de rede. Fonte: elaborada pelo autor. Independentemente se o tema for as redes de computadores, qualquer processo estruturado de comunicação requer regras rígidas para que seja feito com qualidade. Por esse motivo, os protocolos são percebidos como os supervisores que tanto controlam quanto harmonizam a transmissão de dados, oferecendo qualidade e disponibilidade. Para Barreto, Zanin e Saraiva (2018), os protocolos são facilmente observados no uso de um sistema, quando, por exemplo, um download de um arquivo é feito da internet. Neste exemplo tem-se o uso de uma rede em que o FTP (File Transfer Protocol – Protocolo de Transferência de Arquivo) realiza o procedimento. Disciplina Programação para Redes Protocolos de rede por camada. Fonte: elaborada pelo autor. Por se tratar de uma estrutura lógica que atua na promoção do processo de comunicação entre dispositivos, podemos dizer que os protocolos cuidam exclusivamente deste processo, o que não se con�gura como verdade. Outro ponto a se considerar se refere às mensagens, pois a a�rmação anterior remete muito a uma comunicação explícita, como a transmissão de uma ideia, mas dentre os protocolos existem os que trabalham na camada de transporte e os que lidam com algum tipo de comunicação, como o e-mail, e que estão alocados na camada de Aplicação, como os protocolos de e-mail do tipo SMTP, POP3, IMAP, que realizam a transmissão das mensagens de e-mail dos hosts. Já um protocolo que não realiza a transmissão de mensagens, mas sim a segurança deste processo, é o SSH (Secure Shell). O SSH usa uma chave pública para oferecer ao usuário a garantia de que está acessando um servidor legítimo. Outro protocolo que não faz a comunicação é o TELNET, pois oferece o modelo para a criação de acessos remotos por meio de uma interface web. Sendo o protocolo TCP/IP a base da comunicação em rede, seu uso é extremamente comum, e o segundo da lista é tão conhecido quanto ele e �gura soberano em um cenário de computação em nuvem, conectada: o protocolo HTTPS. Este protocolo está atrelado ao endereço de domínio dos sites da internet, não requer qualquer intervenção do usuário e criptografa o acesso do navegador web ao recurso que ele aponta. Videoaula: Conceitos e Fundamentos dos protocolos de redes Disciplina Programação para Redes Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. No vídeo desta aula vamos revisar os principais protocolos de rede e internet, e seu importante papel na comunicação em rede. Faremos também uma apresentação de alguns serviços que podem ser acessados por um terminal SSH, bem como os principais clientes de código aberto como versões do famoso PuTTY, o MobaXterm e até uma extensão SSH para navegadores web. Saiba mais Uma das melhores formas de se �xar um conteúdo é compreender sua aplicação no mundo real, mas no caso dos protocolos isso é inevitável, pois cada um tem sua aplicação. Pensando nisso, recomendamos a leitura do artigo "Um Estudo sobre Protocolos de Comunicação para Ambientes de Internet das Coisas" que fala da integração dos protocolos de comunicação com algo extremamente atual e inovador: a internet das coisas. Referências https://sol.sbc.org.br/index.php/eradrs/article/view/2984 https://sol.sbc.org.br/index.php/eradrs/article/view/2984 Disciplina Programação para Redes BARRETO, J. dos S.; ZANIN, M.; SARAIVA, M. de O. Fundamentos de redes de computadores. Porto Alegre: SAGAH, 2018. BAY, E.; BLUNING, P. H. Fundamentos de redes de computadores. Indaial: Uniasselvi, 2016. Aula 2 Os serviços realizados pelos protocolos de rede Introdução Disciplina Programação para Redes Nesta aula vamos tratar dos serviços de rede oferecidos graças aos diversos protocolos, e desta forma começaremos com os serviços gerais oferecidos no contexto da internet como a própria rede WAN, comumente utilizada para conectar redes distantes. Trataremos também de protocolos como o TCP/IP e o FTP, entre outros. Também argumentaremos a respeito dos serviços no modelo de redes cliente/servidor, como os gateways, e, por �m, os serviços dentro do escopo das redes WAN, aprofundando nos protocolos ADSL e ATM. Compreender esses importantes protocolos é vital para uma atuação assertiva em desenvolvimento, implementação, gestão e manutenção das redes de computadores. Portanto, que tal estudar esses importantes protocolos? Serviços de Rede na Internet Disciplina Programação para Redes Com os diversos protocolos, e em destaque os de rede como o TCP/IP, por exemplo, torna-se viável a existência de uma rede que permite a interligação de diversas outras redes, o que pode ser denominado internet. A internet como uma vasta rede apresenta uma in�nidade de serviços que podem ser classi�cados como serviços cliente-servidor e até os oriundos de redes WAN (Wide Area Network). Neste sentido, e de acordo com Barreto, Zanin e Saraiva (2018, p. 103), a internet pode ser representada como um conjunto de dispositivos interligados por diversas redes e em que o principal objetivo de tal conexão é o compartilhamento de informações. Podemos, portanto, perceber a internet como um conjunto de redes criado a partir dos protocolos TCP/IP. Um importante serviço na internet é a transferência de arquivos via FTP (File Transfer Protocol), responsável por permitir que arquivos sejam enviados e recebidos por um servidor ou instância de serviço na nuvem de forma organizada e simpli�cada. O FTP se tornou popular na década de 2000 com o aumento de pro�ssionais de design de portais web, pois era utilizado como mecanismo seguro para o envio dos arquivos dos sites criados no domínio em que seriam executados. Outro importante serviço oferecido pela internet (e redes locais também) é o DNS, que signi�ca Domain Name System e que, conforme apresentam Barreto, Zanin e Saraiva (2018, p.103), realiza o controle dos nomes das páginas (de seus domínios), convertendo-os em endereços IP. Disciplina Programação para Redes Principais serviços web. Fonte: elaborada pelo autor. Outro serviço importante na internet são os protocolos IPv4 e seu sucessor, o IPv6, cujo objetivo é estabelecer a comunicação entre computadores e demais dispositivos conectados à rede. Vale ressaltar que ambos os protocolos IPv4 e IPv6 permitem a identi�cação dos diferentes dispositivos de uma rede, e que o IPv4é quase tão antigo quanto a própria internet, tendo sido criado na década de 1980. Um dos serviços mais utilizados por praticamente todos os usuários de redes da internet é o e- mail, derivado do termo em inglês electronic mail (correio eletrônico), que faz o processo de envio e recebimento de mensagens locais ou via web. Existem duas formas de se gerenciar o serviço de e-mail: na primeira o usuário faz o download das mensagens para seu computador, eliminando tais mensagens no servidor. Na segunda forma as mensagens são exibidas em algum sistema ou aplicação e não são deletadas do servidor, ou seja, independentemente de onde o usuário estiver, se ele entrar em sua conta de e-mail será capaz de ler suas mensagens. O modelo em que o download elimina os e-mails do servidor é o POP3 (Post O�ce Protocol), e o segundo é denominado IMAP (Internet Message Access Protocol). Apresentando outros protocolos de grande importância para a internet e as redes locais temos o SSH (Secure Socket Shell) e o Telnet. Existe uma semelhança, pois ambos os protocolos permitem o acesso remoto por meio de boa criptogra�a somada aos tradicionais processos de autenticação de dados. O quadro a seguir apresenta outros protocolos de internet igualmente relevantes: Disciplina Programação para Redes Protocolos de internet. Fonte: elaborado pelo autor. São diversas as atuações dos protocolos de internet: comunicação, agilidade, segurança etc., e é preciso que o gestor de rede ou responsável pelo TI da empresa saiba as principais con�gurações para que sua gestão seja sempre e�ciente. Do ponto de vista do usuário de internet, os protocolos permitem uma navegação segura, rápida e e�ciente. Serviços de Rede Cliente-Servidor Disciplina Programação para Redes Dentro das redes de computadores é muito comum o uso de serviços variados do tipo cliente- servidor e para os pro�ssionais que promovem tais produtos, e assim cabe ao pro�ssional de redes estar sempre conectado com o mundo da tecnologia para ser capaz de oferecer aos clientes os melhores serviços da rede. Os gateways representam outro serviço a ser oferecido dentro da tecnologia das redes e da internet. Esse termo representa, na língua inglesa, um portão ou portal de entrada, portanto, para a TI, da internet, os gateways são considerados intermediários nos processos de troca de informação. Funções dos gateways. Fonte: elaborada pelo autor. Os gateways podem ser lógicos na forma de sistemas con�gurados em uma estação de trabalho, ou um hardware dedicado para a oferta de seus serviços. Gateways auxiliam a interligação de redes mesmo quando apresentam protocolos distintos, e são capazes de permitir o compartilhamento de internet, entre outras funções. Um grande exemplo do uso dos gateways são os �rewalls, pois sua estrutura de funcionamento faz com que todo o tráfego da internet para e do computador seja conduzido por ele e através dele. Assim, o �rewall é o portão de entrada e saída de um computador em relação à internet (WAN) e à sua rede local. Outro importante serviço em con�gurações servidor/cliente é o DHCP (Dynamic Host Con�guration Protocol) que permite a con�guração de IPs dinâmicos em redes que usam o protocolo TCP/IP. O DHCP entra em cena quando não se promove a con�guração manual dos endereços IP de uma rede. Embora existam diversas vantagens ao uso de IPs estáticos, como na con�guração de estações de trabalho a servidores e outros recursos de uso constante, em redes com grande número de elementos o processo de con�guração de IPs pode ser lento e passível de erros. Disciplina Programação para Redes O DHCP atua por meio do Escopo e do Superescopo. Com o Escopo, apresenta o intervalo completo para os endereços IP que podem ser atribuídos por uma rede. Já o Superescopo representa a junção de vários escopos para que diversas sub-redes sejam suportadas. Para con�gurações cliente-servidor, uma forma de se obter a ponte entre as origens e os destinos das solicitações são os proxys. Outro uso para os proxys é o bloqueio de páginas da web, portanto, ele atua como um intermediário entre o cliente e os servidores com os quais ele mantém contato em suas requisições. Uma forma de observar a atuação dos proxys como intermediários está na sua função de permitir a conexão do computador a alguma rede externa, como a internet. Um endereço local necessita do proxy para ter a capacidade de enviar suas solicitações ao respectivo servidor. Um excelente exemplo do proxy são as redes ponto a ponto (P2P ou Peer to Peer), em que existe uma conexão entre usuários para a troca de arquivos. Vale ressaltar que tal modelo de rede coloca o usuário como provedor do controle que normalmente está sob a tutela do servidor. Assim, sempre que uma solicitação é feita ao servidor ela deverá ser processada pelo proxy, o que faz com que o IP deste proxy �que armazenado no cache do lado do servidor. E nessa relação do proxy com os servidores, ele deve manter elevada segurança impedindo ataques de hackers. O serviço realizado pelo proxy depende das con�gurações feitas por seu administrador, o administrador da rede. Por �m, com o proxy bem con�gurado, o administrador da rede tem melhores condições de controlar quais páginas estão sendo acessadas pelos seus hosts, o que lhe concede a possibilidade de implementar bloqueios a sites indesejados no ambiente corporativo. O bloqueio de sites entra em um outro tópico igualmente interessante: o das políticas de segurança, pois a con�guração dos bloqueios a sites e até mesmo a instalação de aplicativos deve ter origem em uma política de segurança. Serviços de Rede WAN Disciplina Programação para Redes As redes WAN (Wide Area Network), diferentemente das redes locais (LAN), representam a conexão de computadores e outros equipamentos em longas distâncias. O mundo empresarial faz extenso uso das redes WAN como uma forma prática e con�ável de se criar redes por meio da conexão de diversas redes locais. Um dos serviços disponíveis nas redes WAN é o protocolo ADSL (Asymmetric Digital Subscriber Line), que em português signi�ca “Linha de Assinante Digital Assimétrica”. O protocolo ADSL realiza a comunicação de dados digital sobre a linha telefônica, e passou a se popularizar na década de 1990, logo quando surgiu. A respeito desta tecnologia, de acordo com Barreto, Zanin e Saraiva (2018, p. 106), ela utiliza a linha telefônica nas frequências da faixa de 300Hz a 4.000Hz – frequência de transmissão que não é utilizada na linha telefônica. Essa separação de frequências permitiu que os usuários de internet liberassem suas linhas telefônicas para ligações comuns, algo que não era possível com as chamadas conexões discadas. Disciplina Programação para Redes ADSL e a separação de frequências. Fonte: elaborada pelo autor. Existem os que chamam o ADSL, como a tecnologia que transformou cobre em ouro, pois foi capaz de explorar uma infraestrutura defasada e lenta (se considerada a tecnologia de conexões discadas) baseada em cabos de cobre, e alcançar altas velocidades. A divisão de frequências para voz, upload e download é assimétrica, o que concede o “A” à sua sigla. Para compreender o porquê das diferentes frequências temos que voz recebe a menor delas, pois sua faixa é o su�ciente para chamadas telefônicas com qualidade. O fato de o upload representar frequência menor que o download é uma questão de estatística, pois no acesso à internet é muito mais comum que sejam feitas requisições para exibição de sites e downloads do que o envio de arquivos para a web. Outro serviço importante é o ATM (Asynchronous Transfer Mode) criado, de acordo com Werner (2020), para a convergência de tecnologias e serviços como as transmissões de TV do tipo HDTV, transferências multimídia, bibliotecas e serviços como os demandados na educação a distância e na telemedicina. Dessa forma, as redes ATM são redes de comutação que permitem altas taxas de transferência de dados e utilizam o modelo de hierarquia proposto pelo OSI (Open Systems Intercommunication), masapenas as camadas de aplicação, enlace e a camada física. Existe, entretanto, uma subdivisão na junção das camadas de enlace e física que, para o modelo ATM, tornam-se as camadas de controle/usuário, a camada de adaptação (AAL ou ATM Adaptation Layer), camada ATM e, por �m, a camada física. Para Werner (2020), na camada física é feito o transporte físico, a transferência entre nós de uma rede; já a camada ATM promove o chaveamento das células. Na camada de adaptação ATM ocorre o gerenciamento do tráfego heterogêneo. Vale ressaltar que a camada de adaptação da ATM pode ser construída de diferentes maneiras, de acordo com as adaptações feitas. Disciplina Programação para Redes As redes ATM são velozes porque atuam com a transmissão de células ou pacotes de tamanho �xo, e o é processo feito por meio do envio assíncrono, composto dos seguintes componentes: Equipamentos de usuários: são as estações de trabalho, os servidores e até mesmo aparelhos telefônicos de PABX. Equipamentos de acesso à interface ATM: hubs, roteadores, switches e bridges. Equipamentos de rede: switches, roteadores e equipamentos de transmissão diversos. Dentre os benefícios da tecnologia ATM temos o fato de que o uso das células de tamanho pequeno otimiza a velocidade geral da rede, e essa metodologia facilita o gerenciamento da banda. Outras vantagens das redes ATM são a sua capacidade de integrar os diversos tipos de tráfego, como voz, dados e vídeo, sem qualquer distinção quanto à sua aplicação em redes privadas ou públicas. Videoaula: Os serviços realizados pelos protocolos de rede Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. No vídeo desta aula trataremos dos domínios na web e do DNS, sua importância, como fazer sua con�guração, quais são suas funcionalidades e como escolher o melhor servidor DNS. Poderemos compreender melhor a importância dos domínios e do trabalho realizado pelo DNS em manter esse serviço funcionando com qualidade. Saiba mais Disciplina Programação para Redes Para complementar os conhecimentos indicamos o artigo "ATM: O que é?" que trata das redes ATM, seu histórico, vantagens e restrições. Referências https://www.teleco.com.br/tutoriais/tutorialatm/pagina_1.asp Disciplina Programação para Redes BARRETO, J. dos S.; ZANIN, M.; SARAIVA, M. de O. Fundamentos de redes de computadores. Porto Alegre: SAGAH, 2018. RIOS, R. O. Protocolos e serviços de redes. Colatina: CEAD/Ifes, 2011. Disponível em: http://redeetec.mec.gov.br/images/stories/pdf/eixo_infor_comun/tec_inf/081112_protserv_rede s.pdf. Acesso em: 9 abr. 2022. SOUZA, D. C. de et al. Gerenciamento de redes de computares. Porto Alegre: SAGAH, 2021. WERNER, J. Infraestrutura de redes de computadores. Indaial: Uniasselvi, 2020. Aula 3 Modelo de Referência OSI Introdução Estudante, vamos conhecer o modelo de referência OSI, criado pela ISO e responsável por oferecer uma padronização de protocolos que permitem a comunicação con�ável e segura entre redes construídas sob linguagens e metodologias diferentes. Portanto, nesta aula vamos dialogar a respeito das sete camadas deste modelo: física, enlace, rede, transporte, sessão, apresentação e, por �m, a camada que interage com o usuário da rede e seus sistemas: a camada de aplicação. Este modelo é vital para a criação de redes capazes de se conectar com as demais redes e permitir que sejam desenvolvidas diversas soluções que facilitem o processo de comunicação de rede. http://redeetec.mec.gov.br/images/stories/pdf/eixo_infor_comun/tec_inf/081112_protserv_redes.pdf http://redeetec.mec.gov.br/images/stories/pdf/eixo_infor_comun/tec_inf/081112_protserv_redes.pdf Disciplina Programação para Redes Bons estudos! Camadas: Física e Enlace As redes se interligam, pois são construídas com base em modelos de referência. Para fazer uma analogia basta pensar nas ferrovias e no fato de que um trem somente poderá transitar em ferrovias construídas por outras empresas se a bitola (distância entre os trilhos) for a mesma. As redes de computador não têm bitola, mas contam com seus protocolos, capazes de permitir a comunicação entre redes baseadas em sistemas diferentes e cuja construção, tanto das redes quanto dos protocolos, tem origem em um modelo referencial, denominado OSI (Open System Interconnection). O modelo OSI foi criado pela entidade notoriamente conhecida por desenvolver padrões e normas, a ISO (International Standards Organisation), cujo principal objetivo é padronizar a comunicação entre hosts. A �gura a seguir exibe suas sete camadas, que são utilizadas pelas empresas para construir protocolos e sistemas: Disciplina Programação para Redes Camadas do modelo OSI. Fonte: adaptada de Bay e Bluning (2016, p. 78). A camada de número 1, física, realiza, como a nomenclatura indica, a conexão física entre os dispositivos de uma rede fazendo inclusive a normatização da quantidade e �nalidade dos pinos dos conectores utilizados no seu cabeamento. De acordo com Bay e Bluning (2016), é na camada física que são iniciadas as conexões entre hosts e a validação do meio em que será realizada a transmissão de dados, além de sincronizar o começo e o �m das conexões criadas. A camada física também se encarrega da sincronização �nal, ou seja, do encerramento da conexão, um recurso de extrema importância para a segurança entre os elementos interligados na rede. Essa camada promove a garantia da entrega dos pacotes enviados e o faz, dentre outros processos, por meio do controle de voltagem e do tempo consumido para a entrega. Na sequência temos a camada de enlace, responsável por somar segurança e estabilidade ao canal de comunicação criado na camada física, mantendo o processo livre de erros e, com isso, criando uma transmissão de dados de qualidade. De acordo com Bay e Bluning (2016), existe uma resolução encontrada pela camada de enlace para promover a comunicação da camada física com segurança e agilidade: trata-se da divisão em quadros dos dados que serão enviados, conduzindo a fragmentação da informação. Assim, os pacotes fragmentados são enviados com uma menor possibilidade de erro, e mesmo se um erro vier a ocorrer, será em apenas um ou outro pacote, não na mensagem inteira. O erro de uma porção da mensagem é muito mais fácil de se corrigir e recuperar do que o erro de uma mensagem completa. A segunda função da camada de enlace, importante para o bom funcionamento das redes, é a de controlar, sincronizar a velocidade com que a comunicação entre hosts será realizada. Portanto, é a camada de enlace que vai determinar a velocidade da rede. Disciplina Programação para Redes Na prática essa solução resolve o problema de velocidade quando um dos hosts envolvidos tem velocidade menor, pois sem qualquer controle o host de maior velocidade pode encaminhar uma grande quantidade de pacotes que não vai ser processada pelo host de menor velocidade a tempo, provocando um gargalo que pode ser prejudicial ao sistema envolvido. Logo, a camada de enlace faz a homogeneização da velocidade entre hosts. Camadas: Transporte, Sessão e Rede Como sua nomenclatura indica, a camada de rede faz a gestão dos eventos que ocorrem dentro da estrutura lógica de uma rede, ou seja, a determinação do caminho, da rota pela qual o pacote vai conseguir alcançar o host �m, de destino. Podemos, então, a�rmar que nessa camada os pacotes conhecem o caminho que devem percorrer na rede ou entre redes. Além de apresentar o caminho dos pacotes na rede, essa camada se encarrega de controlar o processo de forma que sejam evitados os congestionamentos, que ocorrem quando um número de pacotes é superior à capacidade que determinado host tem de processar em tempo. Esse gargalo, popularmente denominado congestionamento, é passível de ocorrer em qualquer um dos pontos nos quais encontra hosts, podendo ser no host de saída, em algum host intermediárioou no host �nal, destino do pacote enviado. Dependendo do tamanho e aplicação da rede, um pacote pode transitar por um grande número de hosts, o que aumenta consideravelmente suas chances de �car temporariamente preso em Disciplina Programação para Redes alguma �la de processamento, acrescendo seu tempo de resposta e prejudicando a performance geral da respectiva rede. Vale ressaltar que, em geral, a camada de rede faz o processamento da informação e dos problemas que podem ocorrer no seu caminho até o host de destino, determinando a melhor rota a se seguir. A camada de transporte, que permanece no modelo TCP/IP (derivado do OSI), atua no recebimento das informações geradas pela camada de enlace e pode promover novamente o fatiamento em porções menores, e assim garante que os hosts de destino recebam tais pacotes. Nesta camada, tal como apresentam Barreto, Zanin e Oliveira (2018), ocorre o transporte de todas as partes daquilo que um host envia para que outro host processe em seu sistema, e usa de mecanismo próprio para buscar assegurar que o pacote chegue corretamente ao host de destino. Neste momento do modelo OSI temos a chamada conexão �m a �m, entre hosts, para que uma informação atravesse a rede (ou redes) e chegue ao seu host de destino, da mesma forma que a logística se encarrega de levar uma encomenda de um endereço (como um centro de distribuição) até o destino, como a residência de um cliente. Se as demais camadas apenas conectam hosts no caminho dos pacotes enviados, a camada de transporte conecta quem envia a quem recebe devidamente o pacote e, portanto, cabe a esta camada elencar uma série de regras e garantir a integridade do processo, salvaguardando as informações que por ela trafegam. A camada seguinte, como seu nome indica, promove a criação das sessões entre hosts. Esse evento é vital principalmente para os processos de segurança, uma vez que se um host se comunica com outro, é preciso que abra uma porta lógica, e tal porta não deve permanecer inde�nidamente aberta sob o risco de ser explorada por aplicações maliciosas. Dessa forma, a camada de sessão estabelece as sessões necessárias e faz o controle do diálogo que ocorre entre os hosts, mantendo a ordem, ou seja, estabelecendo uma mediação que indica a cada host o momento de enviar algum pacote ou solicitação. Fazendo um paralelo, é o mesmo processo que ocorre em um debate entre candidatos a algum cargo público, em que um apresentador controla quem fala e quanto, por quanto tempo etc. Disciplina Programação para Redes Principais características das camadas de transporte, sessão e rede. Fonte: elaborada pelo autor. De acordo com Bay e Bluning (2016), essa sincronização da comunicação entre hosts requer constante análise para que sejam evitados erros, e para fomentar a atividade de gerenciamento de token (uma forma de senha para a segurança e identi�cação das operações, dos diálogos). Portanto, com o uso dos tokens, a camada de sessão evita que os hosts realizem uma operação repetida e simultaneamente, prevenindo colisões de pacotes e falhas de sincronização. Camadas: Apresentação e Aplicação Disciplina Programação para Redes Aproximando-se da camada �nal temos a camada de apresentação, responsável por gerenciar a sintaxe e a semântica daquilo que transita pela rede – em outras palavras, faz a padronização do formato dos dados que por ela serão transmitidos. De acordo com Bay e Bluning (2016), na camada de apresentação são determinadas a forma e a linguagem que vão reger o processo de transmissão e recepção de mensagens, pacotes em todos os ativos envolvidos. Essa determinação ocorre para que as informações sejam compreendidas, e para que a informação correta seja enviada, recebida pelo respectivo host. Sem uma normatização quanto forma e linguagem, os hosts poderiam, em muitas ocasiões, não ser capazes de interpretar o que recebem da rede, ou seja, �cariam impedidos de processar suas requisições, pois não saberiam qual linguagem usar para transcrever o comando e seu conteúdo. Conforme Barreto, Zanin e Oliveira (2018), as responsabilidades da camada de apresentação incluem a tradução das informações de trocas dentro do modo de sequência alfanumérica, e antes de os transmitir, transforma-os em �uxos de bits. Neste processo as informações são transformadas de qualquer formato para um formato comum a toda a rede. Outra responsabilidade da camada de apresentação está na criptogra�a, capaz de manter o sigilo das informações que por ela transitam. Por �m, realiza o processo de compactação, responsável por diminuir a quantidade de bits que trafegarão pela rede, melhorando seu desempenho. Disciplina Programação para Redes Características das camadas de apresentação e aplicação. Fonte: elaborada pelo autor. A última camada, ou melhor, aquela que mais se aproxima do usuário da rede, é a camada de aplicação, e nela é implementada a maioria dos protocolos, como POP, SMTP, HTTP, SSH e tantos outros. É conhecida por promover o acesso à rede ao usuário, portanto, ao seu software. Essa camada aplica a interface necessária para que serviços como o e-mail funcionem corretamente. Para Bay e Bluning (2016), essa é a camada que interage com o usuário e com seus sistemas, os serviços que deseja utilizar. Na camada de aplicação ocorre o principal tratamento dado à informação e seu preparo para que seja encaminhada ao host de destino. Um dos protocolos que atua ativamente nesse processo é o conhecido HTTP (Hyper Text Transfer Protocol), que no processo de solicitação de uma página web pelo usuário envia o endereço ao servidor que hospeda o respectivo site. Da parte do servidor ocorre o processo de envio, ao navegador do usuário, da exibição do site web solicitado. De acordo com Barreto, Zanin e Oliveira (2018, p. [s.p]), podemos elencar os seguintes exemplos relativos à camada de aplicação: Terminal virtual de rede: software de um terminal físico que possibilita ao usuário conectar-se a um host remoto. O computador se comunica com o terminal, que se comunica com o host. Isso ocorre porque o host acredita estar se conectando com um dos seus próprios terminais, possibilitando então que o usuário se conecte. Transferência, acesso e gerenciamento de arquivos: possibilita que o usuário tenha acesso a um host remoto, recuperando informações do seu computador remoto para utilização em um computador local. Disciplina Programação para Redes Serviço de correio: fornece uma base para encaminhamentos e armazenamentos de e-mail. Serviço de diretório: fornece fontes de banco de dados distribuído e acesso a informações globais sobre diversos objetos e serviços. Portanto, a camada de aplicação abstrai para a camada de apresentação as diferentes sintaxes dos múltiplos sistemas utilizados pelos usuários, uniformizando a apresentação dos dados das solicitações e exibições (resultado das solicitações). Assim, os diferentes sistemas de um computador que fazem comunicação com a rede passam por esta camada para fazer sua comunicação com os demais componentes. Videoaula: Modelo de Referência OSI Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. No vídeo desta aula vamos nos aprofundar na camada de transporte, resgatando suas funções dentro do modelo OSI e falando a respeito de seus principais protocolos como o TCP, o UDP e aprimorando os conhecimentos acerca dos processos de segmentação, controle de conversas entre hosts, de forma a compreender como é capaz de oferecer a conexão �m-a-�m entre hosts. Saiba mais Disciplina Programação para Redes O modelo OSI é um modelo de referência, ou seja, seu objetivo é orientar para que sejam desenvolvidos sistemas e aplicações que sejam capazes de se comunicar entre si mesmo que seus sistemas sejam construídos em linguagens diferentes. Portanto o artigo "Modelo OSI: O que é, para que serve e qual a sua importâncianos protocolos de rede de computadores?" faz uma apresentação interessante sobre a importância deste modelo na construção das redes. Referências https://www.informatique-mania.com/pt/materiel/modele-osi/ https://www.informatique-mania.com/pt/materiel/modele-osi/ Disciplina Programação para Redes BARRETO, J. dos S.; ZANIN, A.; OLIVEIRA, M. de. Fundamentos de redes de computadores. Porto Alegre: SAGAH, 2018. BAY, E.; BLUNING, P. H. Fundamentos de redes de computadores. Indaial: Uniasselvi, 2016. Aula 4 Modelo de Referência TCP/IP Introdução Disciplina Programação para Redes Estudante, vamos compreender como é a estrutura lógica do modelo de referência para a construção de redes, o TCP/IP. Começaremos apresentando o modelo e seus principais conceitos. Falaremos de cada uma das camadas, incluindo a camada de acesso à rede, que permite a comunicação entre os hosts e outros dispositivos da rede de forma física. Também trataremos da camada de internet, que viabiliza o envio de pacotes entre hosts. Ao trabalharmos com a camada de transporte e diversas outras camadas, perceberemos semelhanças e diferenças entre os modelos TCP/IP e o OSI, pois esta camada em particular existe em ambos os modelos e faz a preparação para o transporte físico host-to-host. Por �m, trabalharemos com a camada de apresentação, ressaltando sua distinção em relação à camada homônima e presente no modelo OSI Compreender esses fundamentos de rede certamente lhe tornarão um pro�ssional completo, pois você será capaz de codi�car softwares ou projetar redes de forma mais consistente e elegante. Gostou disso? Vamos em frente. Principais Conceitos do Modelo TCP/IP Disciplina Programação para Redes De forma geral, a comunicação busca a construção de estruturas que podem ser compartilhadas, modelos que ajudam emissor e receptor a estabelecer um diálogo, e o mesmo ocorre nas redes de computador. De fato, as redes computacionais são estruturas físicas e lógicas desenvolvidas para permitir que computadores e outros dispositivos se comuniquem. Com a internet pulverizada em todo o planeta (a maior rede), �ca fácil compreender a necessidade de se criar um modelo de referência. Estudante, imagine se cada empresa desenvolvedora de sistemas ou hardware criasse sua própria internet? Um dos modelos de referência com grande impacto nas redes de computadores é o modelo baseado no protocolo TCP/IP (Transmission Control Protocol/Internet Protocol). O TCP/IP foi desenvolvido pela Agência de Projetos e Pesquisa Avançada (ARPA), do Departamento de Defesa dos Estados Unidos, e sua estrutura contempla as seguintes camadas: interface de rede, internet, transporte e aplicação. Esse modelo é denominado como referência para que desenvolvedores e empresas que oferecem hardware de rede construam seus equipamentos, e que tais equipamentos se comuniquem com outros criados de forma diferente. Existe um segundo modelo, que carrega a mesma relevância para o desenvolvimento de redes e que tem grande semelhança: o modelo OSI (Open System Interconnection), que por sua vez apresenta sete camadas, o que leva às seguintes comparações: A camada host-rede, ou interface de rede, do modelo TCP/IP, pode ser comparada às camadas física e de enlace de dados do modelo OSI. Disciplina Programação para Redes A camada de internet do modelo TCP/IP pode ser equiparada à camada de rede do modelo OSI. A camada de transporte recebe a mesma denominação nos dois modelos. A camada de aplicação do modelo TCP/IP pode ser entendida como um agrupamento das funções das camadas de sessão, apresentação e aplicação do modelo OSI, ou seja, as três camadas mais altas do modelo OSI são representadas no TCP/IP por uma única camada de aplicação. (BARRETO; ZANIN; OLIVEIRA 2018, p. 71) A respeito do protocolo TCP/IP, Barbosa et al. (2020) a�rmam que se trata de um padrão aberto, e pode ser utilizado como os códigos abertos de muitos softwares. Assim, qualquer empresa pode utilizar o modelo para criar seus sistemas ou equipamentos. Esse protocolo apresentará os padrões que permitirão a perfeita integração dos dispositivos e sistemas criados com o que já existe no mercado. Comparativo entre os modelos OSI e TCP/IP. Fonte: elaborada pelo autor. Podemos a�rmar que em cada camada ocorre uma parte do processo de comunicação de rede, portanto esse processo faz com que seja universalizada a comunicação entre hosts. Dentro do TCP/IP suas camadas realizam as mesmas funções, em quatro momentos, que o modelo OSI realiza em 7, e apresenta também uma perspectiva de operação hierarquizada. Trabalhando com as diferenças entre os modelos, temos que o modelo TCP/IP permite que sejam criadas as regras dentro de cada camada, diferente do modelo OSI, que já oferece a referência completa do papel que tais camadas devem desempenhar. Uma grande vantagem do Disciplina Programação para Redes modelo TCP/IP está na sua aderência a um pacote muito coerente de protocolos, como DNS, DHCP, Telnet, FTP, HTTP, POP3, IMAP, SMTP, do que se observa no OSI. A grande desvantagem desse modelo (TCP/IP) é revelada quando o desenvolvedor ou pro�ssional de TI se depara com redes que não são construídas com essas referências, esse pacote de protocolos, ou seja, se a rede não atua com TCP/IP, utilizar esse modelo não traria resultados. Camadas de Internet e Transporte no TCP/IP Podemos a�rmar que os modelos de referência de redes criaram uma estrutura capaz de permitir o desenvolvimento de redes em que seus hosts pudessem se comunicar com outros membros. Esse fato isoladamente promoveu uma grande revolução e acendeu a chama da corrida pelo desenvolvimento tecnológico tanto para o hardware (com destaque para os chips processadores) quanto para o software. Mas essa evolução só se concretizou devido à criação dos modelos de referência, como o TCP/IP, que em sua camada de internet é responsável por interligar os diferentes hosts em diferentes redes, mesmo que sejam feitos em plataformas distintas, por objeto ou não. Na camada de rede, os hosts são capazes, de acordo com Bay e Bluning (2016), de enviar pacotes com vários destinos e alcances variados, e isso ocorre pois foi desenvolvido um especí�co modelo de comunicação, muito popular e praticamente utilizado em todo e qualquer dispositivo ou hardware de rede: o protocolo IP (Internet Protocol). Podemos dizer que a maior tarefa realizada pela camada de internet é a entrega garantida dos pacotes que os hosts enviam, mas complementa essa função com acessórios importantes como o controle de congestionamento e uma estrutura lógica capaz de realizar o roteamento Disciplina Programação para Redes destes pacotes. O que essa camada referencia como procedimento é muito semelhante com o proposto pela camada de REDE no modelo OSI. Interações da camada de internet no modelo TCP/IP. Fonte: elaborada pelo autor. A camada de transporte atua praticamente centralizada nos protocolos TCP (Transmission Control Protocol) e UDP (User Datagram Protocol), e é conhecida como uma camada host-to- host, assim como o protocolo IP, ou seja, promove o transporte físico dos pacotes entre dispositivos de uma rede. Dessa forma, os protocolos TCP, UDP e o SCTP (Stream Control Transmission Protocol) são considerados, de acordo com Barreto, Zanin e Oliveira (2018), de nível de transporte, pois sua tarefa é entregar as mensagens encaminhadas pelos hosts aos seus destinatários. O quadro a seguir apresenta os conceitos desses protocolos: Disciplina Programação para Redes Protocolos da camada de transporte. Fonte: Barreto, Zanin e Oliveira (2018, p. 77). Essa camada de transporte opera em situações de serviço não con�áveis e o faz de forma e�ciente, pois isola as aplicações dos eventuais problemas que afetem esta con�abilidade como perdas ou pacotes duplicados. Outra grande vantagem é que nessa camada os pacotes podem ser entregues diretamente em uma aplicação. Voltando a mencionar o modelo OSI, podemos a�rmar que tal camada também existe neste modelo e que oferece seusserviços à camada superior, de sessão, e faz uso dos serviços oferecidos pela camada de rede, que a antecede. No modelo OSI também existem os serviços con�áveis e não con�áveis, embora denominados con�rmados e não con�rmados. Com a camada de transporte menos fechada em uma hierarquia, como no modelo OSI, a transferência de pacotes na rede é feita de forma e�ciente, con�ável e com baixo uso de dados no host-to-host, e essa estrutura lógica permite a mitigação de erros de forma a garantir que os dados cheguem intactos no destino. Camadas de Acesso a Rede no TCP/IP Disciplina Programação para Redes Vamos compreender os dois extremos do modelo de referência para o desenvolvimento de redes baseado em TCP/IP, relacionando a camada de acesso à rede com a camada que interage diretamente com o usuário. De acordo com Bay e Bluning (2016), a camada de acesso à rede está no limite da fronteira lógico/física de uma rede, ou seja, nela é feita a conexão física dos hosts e demais dispositivos da rede. É, portanto, nesta camada que as informações são preparadas, inseridas para serem enviadas pelo meio convencionado. Para o modelo OSI, a camada de acesso à rede concentra a função de duas camadas, a de enlace e a física. Para Barbosa et al. (2020), o controle de comunicação é realizado nessa camada e o processo é feito host-to-host, e com isso podemos a�rmar que a comunicação é efetivada de fato. Essa comunicação não é apenas lógica, mas física, pois a camada busca meios para que as informações a ela encaminhadas transitem com qualidade e agilidade. Sendo a camada de nível mais baixo, a camada de acesso à rede é a forma com que o modelo referencial TCP/IP usou para organizar as interações entre meios lógico e físico. Quando todas as outras camadas concluem a aplicação de seus protocolos, cabe a esta camada realizar o processo físico de comunicação entre os hosts envolvidos, também chamados de nós em uma rede. Vale ressaltar que a comunicação em uma rede pode ser via cabos (coaxial, par trançado ou ótico) ou ainda sem �o, com o padrão wi-�. Na �gura a seguir podemos compreender melhor os protocolos utilizados na estrutura das camadas do modelo TCP/IP: Disciplina Programação para Redes Protocolos do modelo TCP/IP por camada. Fonte: elaborada pelo autor. De acordo com Barbosa et al. (2020), embora a camada de internet abstraia as diferenças de plataformas, linguagens e codi�cação, ela estabelece a rota de envio dos pacotes, mas é na camada de acesso à rede que existe o foco na comunicação, no acompanhamento de todo o caminho percorrido pelos pacotes enviados. Comparando as camadas de acesso à rede com a camada de aplicação, temos a interação do usuário em dois momentos: na solicitação em meio lógico e no trânsito de sua solicitação. Claro que o usuário não interfere com a camada de acesso à rede, ao menos não diretamente. A camada de aplicação, para o modelo TCP/IP, abstrai as camadas de sessão e apresentação individualizadas no modelo referencial OSI, e o processo foi feito pelo fato de que tais camadas exercem funções menos críticas, buscando uma nova abordagem. Para Bay e Bluning (2016), a camada de aplicação é uma nova proposta em detrimento ao modelo OSI, portanto não apresenta camada de sessão e apresentação. Neste modelo, a camada de apresentação mantém (quando comparada com sua contraparte no modelo OSI) a geração de protocolos de comunicação de alto nível responsáveis por receber os comandos direto de seus usuários. Os protocolos da camada de aplicação de uso direto por seus usuários são HTTP, DNS, FTP, POP etc. Videoaula: Modelo de Referência TCP/IP Este conteúdo é um vídeo! Disciplina Programação para Redes Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. No vídeo desta aula, para �xar melhor a relação entre os modelos TCP/IP e OSI vamos apresentar as principais diferenças, e fazer um diálogo entre as vantagens e desvantagens de cada modelo na construção de redes seguras, ágeis e com elevado e con�ável desempenho. Saiba mais Aproveitando que nesta aula �zemos algumas comparações e distinções entre os modelos TCP/IP e OSI, sugerimos o artigo "Qual a diferença entre o modelo OSI e o modelo TCP/IP?" que lhe permitirá realçar esta comparação com novos argumentos. Referências https://www.datarain.com.br/blog/qual-diferenca-entre-modelo-osi-e-modelo-tcpip/ Disciplina Programação para Redes ARBOSA, C. da S. et al. Arquitetura TCP/IP I. Porto Alegre: SAGAH, 2020. BARRETO, J. dos S.; ZANIN, A.; OLIVEIRA, M. de. Fundamentos de redes de computadores. Porto Alegre: SAGAH, 2018. BAY, E.; BLUNING, P. H. Fundamentos de redes de computadores. Indaial: Uniasselvi, 2016. Aula 5 Revisão da unidade Modelos de Referência para Redes Computacionais Disciplina Programação para Redes Nesta unidade, o tema central foram os modelos de referência para o desenvolvimento de redes e dos seus protocolos que permitiram a criação de redes capazes de se interconectar com outras redes desenvolvidas em linguagens distintas. Por meio de modelos como o OSI e TCP/IP foi possível conceber o que hoje se denomina internet: a maior rede de computadores. As redes, neste contexto, permitem que computadores e dispositivos se conectem diretamente ou pela internet para uso pessoal, corporativo ou cientí�co, o que signi�ca que não se trata apenas de interligar componentes, mas também de oferecer os mais variados serviços, como o tão conhecido e-mail e o protocolo TCP/IP, que permite a identi�cação de computadores e dispositivos de rede, e o Protocolo de Transferência de Arquivos (FTP), capaz de conectar ao host as instâncias de armazenamento de dados, entre outros. Dentro do modelo de referência OSI, o desenvolvedor encontra a direção que precisa para a padronização da relação entre as camadas, sendo capaz de desenvolver sistemas e componentes que atuem dentro desta estrutura e que possam se integrar a qualquer rede desenvolvida de acordo com tal referencial. De acordo com Barreto, Zanin e Saraiva (2018), o modelo OSI tem sete camadas de funções, e em cada camada são dispostos protocolos especí�cos. A comparação entre os dois modelos é constante e origina centenas de artigos cientí�cos, para demonstrar que, embora tenham o número de camadas diferente, é possível enxergar muita in�uência do modelo OSI nas camadas, mesmo que em menor número. Portanto, existem os comportamentos das camadas do modelo OSI que são absorvidos por uma única camada do modelo TCP/IP, como ocorre entre as camadas de aplicação, apresentação e sessão no OSI, que se tornam apenas a camada de apresentação do modelo TCP/IP. Disciplina Programação para Redes Dessa forma, embora exista um limite de atuação do desenvolvedor, ele pode optar pela abordagem para a solução que vai desenvolver dentro das camadas OSI: física, enlace, rede, transporte, sessão, apresentação e, por �m, a camada que interage com o usuário da rede e seus sistemas: a camada de aplicação. Para o desenvolvimento dos sistemas e componentes de rede, outro modelo que entra em cena e que apresenta elevada popularidade é o TCP/IP, que incorpora as camadas do modelo OSI à sua maneira, unindo em alguns momentos, e modi�cando-a em outros. Logo, existe grande similaridade entre os dois modelos, o que signi�ca que as referências das camadas são mantidas, ao menos em seu contexto geral, e que dentro a implementação e a hierarquia entre camadas serão diferente a depender do modelo ao qual estamos nos referindo. Vale destacar que tanto OSI quanto TCP/IP apresentam grande importância na constituição do que temos como a internet, a rede mundial de computadores, mas que são apenas de modelos de referência. Tais modelos são uma forma de estabelecer uma linguagem genérica com a qual desenvolvedores se tornam capazes de desenvolver seus produtos, mantendo um núcleo comum que permite universalizar a integração de tal produto com todasas redes desenvolvidas neste referencial. Videoaula: Revisão da unidade Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. No vídeo desta aula vamos conversar a respeito dos modelos de referência para a construção das redes de computadores, e sua in�uência no desenvolvimento da Internet. Também trabalharemos as aplicações desses modelos e seus principais protocolos, e ressaltaremos que são modelos apenas de referência e que têm tanto similaridades quanto diferenças. Estudo de Caso Disciplina Programação para Redes A internet apresentou uma nova dinâmica ao mundo. Desde sua criação, por volta de 1969, a internet, ou melhor, a maior rede de computadores do mundo, começou a promover várias mudanças na sociedade, na vida urbana e principalmente nos negócios. Em parte, a também conhecida web ajudou na popularização dos computadores pessoais, o que fez com que muitas empresas surgissem para explorar os novos mercados rami�cados como consequência dessa nova onda. Embora o nascimento dessa grande rede tenha sido motivado pela necessidade de se criar um formato capaz de manter a sua integridade, mesmo que vários de seus nós (computadores) perdessem conexão, o que surgiu em seguida – e que vem surgindo em maior velocidade a cada dia – foram inúmeros serviços, criando um mercado consumidor inteiramente novo. A versão moderna da internet está voltada para a oferta de recursos computacionais antes limitados às redes locais, como as máquinas virtuais e até mesmo a recém-criada Computação Quântica. Dessa forma, as empresas estão realizando uma grande parte de seus processos em plataformas do que foi denominado Computação em Nuvem, pois conseguem acesso a recursos avançados por uma fração do valor que deveriam investir caso tais recursos fossem disponibilizados localmente. A grande questão levantada por toda essa presença em meio virtual na web está ligada à segurança das operações. Em sua história, uma das primeiras conexões feitas entre computadores e pela internet foi realizada entre duas universidades, diferente da realidade atual, na qual temos extensas redes empresariais criadas via WAN (Wide Area Network), e com isso informações e dados sensíveis e sigilosos trafegam constantemente e de forma on-line nas redes públicas. Para sua expansão, uma empresa de alimentos criou uma segunda linha de produtos baseada em ingredientes do Norte e do Nordeste do Brasil, o que levou ao projeto de construção de sua segunda unidade na cidade de Fortaleza, no Ceará. Dentre as características do projeto, a Disciplina Programação para Redes empresa manterá uma estrutura de TI maior do que tem atualmente, tanto em equipamentos quanto em pro�ssionais. A preocupação da empresa, que ainda usa discretamente serviços na nuvem, é a segurança de seus dados, pois as operações entre as duas unidades serão coordenadas em sua sede, no interior de São Paulo. Seu papel como consultor de TI será assegurar a criação dessa nova rede. Para dar continuidade ao projeto, você deverá demonstrar a tecnologia/protocolo que usará para estabelecer uma conexão segura entre as �liais, e apresentar as principais características que reforçam e atendam às necessidades de conectividade e�ciente, ao mesmo tempo que estabelece uma elevada proteção pra os dados da empresa. ______ Re�ita A segurança oferecida por alguns protocolos é elevada, mesmo assim problemas e ataques são frequentes. Seria o fator humano e social o responsável? Videoaula: Resolução do Estudo de Caso Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. As conexões seguras, tão importantes para criação de redes WAN entre �liais de uma empresa, são necessárias, pois ocorrem principalmente dentro da infraestrutura das redes públicas. Como um todo, a internet é dividida em três tipos de redes: públicas, privadas e híbridas. As redes públicas são conhecidas como o meio pelo qual a esmagadora maioria das empresas e usuários comuns, pessoa física, consomem recursos como hospedagem, e-mail e muitos serviços em nuvem. As redes privadas são destinadas a empresas que mantêm um tráfego on-line de alto volume, mas, embora ofereçam uma segurança consideravelmente superior, demandam investimentos maiores para sua implementação. As redes híbridas seriam a somatória das melhores qualidades de ambas as redes, pública e privada, e se destinam a aplicações que ao mesmo tempo demandam mobilidade dos dados e segurança elevada. Para que a empresa mantenha seus serviços e processos dentro de uma rede WAN em uma rede pública, será necessário o uso de um protocolo que permita tal comunicação oferecendo uma segurança de alto nível, como o que se propõe com o SSH (Secure Shell), que pode oferecer tanto agilidade e velocidade quanto segurança, aspectos desejados pela empresa. De forma geral, o SSH é um protocolo de comunicação do tipo cliente/servidor para redes TCP/IP, e permite a realização da conexão entre computador e servidor de forma remota, inclusive para que seja realizado o processo de con�guração deste servidor, ideal para o momento inicial de implementação dessa nova unidade em fortaleza, no Ceará. Entre seus principais atributos, o SSH permite que o nó conectado ao servidor realize a instalação de bancos de dados, Disciplina Programação para Redes gerenciadores diversos e outros sistemas, além de ser capaz de realizar alterações no servidor em hospedagem de sites de forma consideravelmente rápida e facilitada. Para o projeto de conexão entre as duas �liais, principalmente no que diz respeito à segurança, o SSH oferece como principais atributos dois elementos de destaque: a autenticação dupla e a criptogra�a. A autenticação dupla signi�ca que tanto o terminal quanto o servidor estão autenticados e, assim, nenhum dado que transita entre esses dois pontos pode ser interpretado, mesmo que for interceptado. Essa segurança é severamente aumentada pela criptogra�a dos pacotes criados na comunicação pelo SSH. Portanto, trabalhar com a criptogra�a simétrica, assimétrica e de hash, criando um sistema de proteção para sua conexão que não compromete o desempenho e agiliza os processos de transferência de arquivos, seria a solução ideal para o problema proposto. Resumo Visual A criação dos modelos de referência foi a forma encontrada para o desenvolvimento de redes capazes de se conectarem entre si, mesmo que seus componentes e sistemas sejam desenvolvidos de forma diferente e com linguagem diferente. Vale ressaltar que os modelos não são redes, e sim representações da operação das respectivas redes. Portanto, dentro de cada modelo, o desenvolvedor tem de seguir os conceitos de cada camada, mas ainda tem total liberdade para implementar sua própria estratégia. O desenvolvedor não pode escolher os protocolos que aplica nas diferentes camadas, pois ao determinar que segue um dos principais modelos, compreende que os demais desenvolvedores assim o farão. Por �m, podemos entender que os modelos são uma linguagem neutra para a universalização das redes, ou seja, cada desenvolvedor pode muito bem manter sua linguagem de criação desde Disciplina Programação para Redes que respeite os preceitos do modelo, o que deve gerar sistemas e componentes capazes de se integrar perfeitamente a qualquer rede que siga o referido modelo. Protocolos e modelos OSI e TCP/IP. Fonte: elaborada pelo autor. Referências Disciplina Programação para Redes BARRETO, J. dos S.; ZANIN, M.; SARAIVA, M. de O. Fundamentos de redes de computadores. Porto Alegre: SAGAH, 2018. , Unidade 2 Protocolos de comunicação TCP, UDP,e Sockets Aula 1 Conceitos sobre a Camada de Transporte (TCP E UDP) Introdução Disciplina Programação para Redes Estudante, nesta aula será tratado otema da camada de transporte dentro do modelo referencial de redes TCP/IP e suas especi�cidades. Nesta temática serão abordados os protocolos de comunicação TCP e UDP, e como cada um tem seu próprio papel na comunicação entre hosts. A camada de transporte representa os processos e protocolos necessários para que seja realizada a comunicação, e o faz de forma extremamente diferente dentro do que de�nem seus principais protocolos. O primeiro protocolo a ser tratado será o TCP, que realiza a sincronização com a outra ponta em um processo de handshake triplo, ao passo que o UDP realiza o seu envio sem garantir que o pacote chegue intacto ao outro lado, embora ofereça grande qualidade. Bons estudos! Camada de Transporte: Principais Protocolos Disciplina Programação para Redes Para uma rede de computadores, embora todas as suas camadas (de seu modelo de referência) sejam vitais ao processo geral, existe elevada importância no que ocorre em sua camada de transporte. Vale considerar que é nessa etapa que de fato ocorre a comunicação da respectiva rede. Portanto, a relevância da camada de transporte vem do fato de que nela ocorrem os processos responsáveis pela conexão entre os nós de uma rede e entre redes diversas para que seja feita a transmissão de dados e informações. De acordo com Bay e Bluning (2016), para esta comunicação ponto a ponto são necessários diversos protocolos de forma que tudo ocorra com e�ciência e principalmente velocidade e economia de recursos. Os principais protocolos dessa camada são: TCP (Transmission Control Protocol) e UDP (User Datagram Protocol), descritos a seguir: Disciplina Programação para Redes Características dos protocolos TCP e UDP. Fonte: elaborada pelo autor. De forma geral, a diferença entre o UDP e o TCP é o fato de que o primeiro não foca conexão e muito menos con�abilidade, mas isso não deve ser visto como algo necessariamente negativo, pois proporciona uma facilidade ao processo de envio de um dado entre hosts. Outro ponto de divergência, que tem relação com segurança, diz respeito ao processo de handshake (aperto de mão, em português), que neste caso representa a formalização da conexão ponto a ponto. Para o TCP o handshake é triplo, sendo feito em três etapas denominadas SYN, SYN-ACK, ACK, ou seja, o primeiro host sincroniza (SYN, SYNchronize), o segundo sincroniza e con�rma (SYN- ACK, ou SYNchronize-ACKnowledgment), e por �m responde ao primeiro com um (ACK, ou ACKnowledgment), concluindo o processo. Já para o UDP o processo de handshake é desnecessário para que uma conexão seja criada. Dentro dos processos realizados pela camada de transporte entra em cena um conceito importante: o dos soquetes, também conhecidos como portas. Para Bay e Bluning (2016), as portas se constituem como o meio pelo qual os protocolos devem atuar. Os processos que esses protocolos realizam serão conduzidos por portas especí�cas representadas por números cujo tamanho é de 16 bits. Portanto, o processo de transporte entre hosts apresenta duas amarrações distintas: a primeira, relativa ao host que recebe determinado pacote, e a segunda com relação à porta de comunicação que vai ser utilizada. Cada porta deve ser alocada a um único processo para que os dados sejam corretamente entregues para seu tratamento no host de destino. Embora uma porta não possa receber mais do que um único processo, tem a capacidade de receber múltiplas conexões simultaneamente. Conforme apresentam Bay e Bluning (2016), a IANA (Internet Assigned Numbers Authority) coordena as portas (soquetes) existentes e tem em seu registro um total de 65.535 portas, muitas delas apresentando suas respectivas funções e processos. Disciplina Programação para Redes O fato de uma porta permitir apenas um processo não signi�ca que este processo não possa ser alterado, substituído por outro, embora tal modi�cação seja altamente não recomendada, pois impacta diretamente diversos outros processos. Mas fato é que, em nome da segurança, algumas portas podem sofrer modi�cações nas suas funções para que sejam mais bem ajustadas a inibir ataques cibernéticos. As alterações ao processo de um soquete são severamente impactantes ao sistema em geral, dessa forma, somente podem ser realizadas com o consentimento de toda a rede que a utiliza, caso contrário tal modi�cação tende a causar falhas ou di�culdade de se criar uma conexão. A seguir, algumas das principais portas e seus usos alocados: Portas e serviços. Fonte: adaptado de Bay e Bluning (2016). Um fato interessante a respeito dos processos dos soquetes é que eles podem ser solicitados ao IANA por qualquer usuário, e como consequência determinada porta passa a ser padronizada a determinado serviço, embora não seja algo exclusivo. Conceitos sobre o Protocolo TCP/IP Disciplina Programação para Redes A internet oferece ao mundo uma única e gigantesca rede de computadores conectados por meio de uma padronização e universalização, construída por elementos denominados protocolos, e dentre eles, o responsável por permitir tal comunicação é o TCP/IP (Transmission Control Protocol/Internet Protocol) ou Protocolo de Controle de Transmissão/Protocolo de Internet. Este protocolo fora desenvolvido em 1969 pelo Departamento de Defesa dos Estados Unidos e para a ARPANET, que anos depois foi rebatizada como INTERNET, cujo objetivo era de normatizar as fontes de comunicação, para agilizar a troca de grandes volumes de dados entre computadores, mesmo que distantes. Para Comer (2016), a tarefa desempenhada pelo TCP é severamente complexa, pois é capaz de trabalhar com processos não con�áveis, ou seja, de entrega não garantida, embora o faça de forma con�ável para as aplicações atendidas. Assim, cabe ao protocolo TCP ser capaz de promover a compensação do sistema em caso de perda, dano, atraso ou até duplicidade de determinado pacote, e tal processo auxilia na prevenção de sobrecargas a rede. Um aspecto importante acerca do que foi construído com o protocolo TCP/IP é a con�abilidade, pois para os desenvolvedores o processo de comunicação oferecido é seguro e con�ável, ou seja, não existe uma preocupação se um pacote enviado pelo seu sistema vai ser ou não entregue. Neste contexto, Comer (2016) complementa a�rmando que o TCP/IP é con�ável a ponto de se garantir que se uma aplicação enviar dados a uma impressora, por exemplo, é certo que o programador deste sistema não terá que se preocupar se a rede vai encaminhar a requisição ao equipamento. Disciplina Programação para Redes Essa con�abilidade e tranquilidade é criada pela adaptação da semântica normalmente utilizada pelas linguagens de computação convencionais, ou seja, tanto o software criado quanto o protocolo que o comunica na rede apresentam essa equiparação de semântica. Com o protocolo TCP/IP o serviço de transporte é con�ável e capaz de agilmente solucionar problemas complexos, o que faz com que seja o protocolo adotado na esmagadora maioria das aplicações web. Características do TCP/IP. Fonte: elaborada pelo autor. O TCP/IP é um conjunto de protocolos e oferece também nomenclatura a um modelo arquitetural de referência de mesmo nome, que por sua fez faz a comunicação em rede utilizando diversos protocolos distribuídos em cada uma de suas camadas. Um dos principais protocolos do modelo referencial TCP/IP é o DHCP (Dynamic Host Con�guration Protocol). Dentro das redes TCP/IP, o DHCP realiza a distribuição dos endereços IP de uma rede de forma dinâmica, ou seja, não estática. Cada nó de uma rede, cada host deve ter um endereço IP válido em ordem de se conectar a uma rede, à internet e utilizar seus serviços. Portanto, o protocolo TCP/IP representa uma linguagem que determina a forma com que os computadores farão sua comunicação, dentro de uma rede ou na internet. O TCP/IP também representa um conjunto de protocolos que desempenham tarefas distintas no processo de comunicação de uma rede desenvolvida neste modelo referencial. Conceitos sobre o User Datagram Protocol (UDP) Disciplina Programaçãopara Redes Semelhante ao TCP, o UDP (User Datagram Protocol) utiliza os soquetes no processo de comunicação, mas faz isso de uma forma completamente diferente, a começar pela ausência do handshake, ou seja, não realiza a criação de uma conexão (denominado connectionless). Para Bay e Bluning (2016), o UDP faz algo até estranho, do ponto de vista de um protocolo de rede: cria a comunicação sem abrir uma conexão antes. Dessa forma, ele já inicia pelo envio do pacote para o host de destino. De acordo com essa característica, podemos compreender que não existe processo algum semelhante ao handshake do TCP, portanto, não é feita nenhuma sincronização entre hosts, muito menos con�rmação de entrega. A ausência do handshake signi�ca que o UDP não é orientado a conexão e, assim, não se compromete com a entrega dos dados que manipula e muito menos é capaz de oferecer qualquer controle ou medida relativa a um possível congestionamento de dados. Seu processo é relativamente simples: o emissor gera o pedido de envio e o protocolo envia para o destino, embora não tenha qualquer conhecimento que o destino está ativo, funcional, logo, não pode oferecer qualquer garantia de que o pacote enviado foi efetivamente entregue. Disciplina Programação para Redes Características do UDP. Fonte: elaborada pelo autor. Embora toda essa falta de gerenciamento e con�rmação por parte do UDP possa sinalizar um protocolo falho, incompleto, para Bay e Bluning (2016) essa característica se traduz em grande agilidade e performance, o que o torna especialista na transmissão de dados. Pensando nessa característica, podemos a�rmar que o UDP se encaixa perfeitamente em um processo muito popular na internet: o streaming de vídeo em tempo real e as chamadas de vídeo/voz, feitas pelo IP, o VoIP (Voice over IP). As transmissões do tipo streaming ao vivo não demandam qualquer con�rmação de entrega, pois o transmissor não tem qualquer garantia de que existem expectadores em sua transmissão. Não seria nada prático uma transmissão ao vivo cujo sistema exigisse con�rmação de recebimento da outra parte, pois neste caso ele somente poderia assistir uma parte do vídeo quando con�rmasse a parte anterior. Isso signi�ca que caso um streaming ao vivo fosse criado sobre o protocolo TCP a transmissão jamais seria contínua, principalmente pela relação que este protocolo tem com casos de perda de pacotes ou atrasos. No TCP, a transmissão seria interrompida com grande frequência, tornando-a algo distante de um vídeo e muito mais próximo de uma lenta apresentação de slides. Re�etindo a respeito da relação entre o protocolo UDP e o streaming de vídeo, o fato de não oferecer qualquer controle de congestionamento deixa de se apresentar como problema, pois a dinâmica do serviço prestado não tem tal medida de desempenho como integral para o sucesso da operação. O UDP não vai oferecer ao host emissor informações acerca do status do host de destino de seus pacotes, pois este dado não é necessário à sua atividade. A falta de conexão no UDP não representa a ausência de problemas, apenas signi�ca que em casos de pacotes faltantes, corrompidos ou de algum nível de congestionamento dentro da Disciplina Programação para Redes interface de rede, entra em cena a aplicação que está realizando a transmissão que eventualmente descarta algum pacote para que se mantenha o �uxo do streaming constante. Videoaula: Conceitos sobre a Camada de Transporte (TCP E UDP) Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. No vídeo desta aula vamos complementar o tema do papel dos protocolos TCP e UDP na comunicação das redes e suas aplicações indicadas, diferenças e vantagens. Por �m, trataremos do processo de streaming de vídeo pelo ponto de vista dos protocolos de rede e como o protocolo UDP, apesar de não realizar handshake, mostra-se ideal a este tipo de comunicação em rede. Saiba mais Disciplina Programação para Redes A sugestão de leitura deve apresentar novos argumentos acerca da camada de transporte dos modelos referenciais de rede TCP/IP e o OSI, ressaltando as funções e aplicações dos protocolos TCP e UDP. Referências BAY, E.; BLUNING, P. H. Fundamentos de redes de computadores. Indaial: Uniasselvi, 2016. COMER, D. E. Redes de computadores e internet. Porto Alegre: Bookman, 2016. WERNER, J. Infraestrutura de redes de computadores. Indaial: Uniasselvi, 2020. Aula 2 A Interface Socket Introdução https://gitbook.ganeshicmc.com/redes/camadadetransporte Disciplina Programação para Redes Estudante, nesta aula trataremos dos soquetes de rede, elementos importantes para a conexão entre sistemas desenvolvidos sob a arquitetura cliente/servidor. Começaremos com a descrição de sua função na comunicação de duas vias do tipo bidirecional entre cliente e servidor e como sua construção inclui uma porção maior, de 32 bits, representada pelo endereço IP, e uma porção menor, a sua porta, composta por um numeral de 16 bits. Apresentaremos as faixas de portas de soquete alocadas e controladas pela entidade IANA. A faixa inicial, do 0 ao 1024, apresenta as denominadas common ports, e as demais faixas e formas de utilização. Por �m, compreenderemos o processo de criação dos soquetes e como se diferenciam sutilmente para cliente e servidor. Bons estudos. Principais conceitos da Interface Socket Disciplina Programação para Redes De forma geral, os soquetes são considerados o �m de um �uxo de comunicação conhecido como um �uxo de duas vias, ou seja, two-way communication, e com atributos semelhantes aos de um terminal. Os soquetes não são entidades físicas, são estruturas de dados utilizadas pelos aplicativos para a comunicação dentro do modelo cliente/servidor. Esse modelo cliente/servidor é caracterizado por ser uma arquitetura de aplicação distribuída; por um lado temos os que demandam, requerem serviços, os clientes, por outro, aqueles que oferecem estes serviços, os fornecedores, denominados servidores. Neste contexto, os soquetes fazem com que duas portas se comuniquem dentro de uma rede, sendo uma a fonte da mensagem e a outra seu destino. Essa comunicação pode ser limitada a um mesmo computador, ou a uma rede. Exempli�cando, temos que no caso da comunicação de rede, essas portas são representadas pelo numeral que acompanha o endereço de IP após o símbolo dos dois pontos, como em 127.0.0.1:8808. Assim, para soquetes de rede temos os que demandam o uso do protocolo TCP/IP, os soquetes TCP/IP. Um grande exemplo do uso dos soquetes do tipo TCP/IP são os navegadores de internet e o acesso remoto a servidores pelo serviço de SSH (Secure Shell). Dentro do que se determina o modelo de padrão de protocolos de rede OSI (Open System Interconnection), os soquetes estão situados entre as camadas de transporte e aplicação. Com os soquetes ocorre a comunicação two-way, bidirecional entre processos de aplicações e entre computadores conectados em redes locais ou WAN. De acordo com Forouzan e Mosharraf (2013), na camada de aplicação do modelo OSI a comunicação será feita entre os soquetes. Dentro do sistema, ou da rede, o soquete vai receber o pedido do cliente e enviar a resposta, e do lado do servidor, o soquete representa o pedido de um cliente que será processado para que seja obtida a resposta. A �gura a seguir ilustra a sequência de eventos do uso de um soquete: Disciplina Programação para Redes Esquema de uso de sockets. Fonte: adaptada de Forouzan e Mosharraf (2013 p. 39). Os soquetes trabalham com dados não estruturados, o que faz com que sejam identi�cados como uma comunicação de baixo nível. Assim, trabalham seus dados como �uxos não estruturados. A falta de estrutura não é algo �nal a esse processo, uma vez que passa a receber tal estrutura de suas aplicações. Dessa forma, soquetes são a soma de um endereço de IP e seu respectivo protocolo de transporte e porta, o que concede