Uma rede de computadores é formada por um conjunto de módulos processadores (computadores, impressoras e outros dispositivos e periféricos) capazes de trocar informações e partilhar recursos, interligados por um sub-sistema de comunicação.
Uma rede (network) pode ser classificada conforme:
- Arquitetura – conjunto de camadas e protocolos de rede. Ex: Ethernet (tecnologia de rede local mais amplamente utilizada), DSL (Integrated Service Digital Network, conhecida popularmente como Linha Dedicada), DSL (Digital Subscriber Line, aproveita a própria rede de telefonia que chega na maioria das residências), etc.
- Extensão geográfica – LAN (Local Area Network), WLAN (Wireless Local Area Network), etc.
- Topologia – diferentes formas nas quais se pode organizar a interligação entre cada um dos nós (computadores) da rede. Ex: anel, barramento, estrela, ponto a ponto, etc.
- Meio de transmissão – através de cabos ou sem fios. Os cabos podem ser coaxial (fio de cobre condutor revestido por um material isolante e rodeado duma blindagem), fibra óptica (pedaço de vidro ou de materiais poliméricos com capacidade de transmitir luz) ou par trançado (pares de fios de cobre revestidos de plástico e entrelaçados um ao redor do outro para cancelar as interferências eletromagnéticas). A rede sem fio pode ser através de radiação infravermelha, micro-ondas ou rádio.
O conector modular usado nas terminações dos cabos de pares trançados é conhecido como RJ45 (padrão Registered jack). Veja mais sobre o padrão para assinalamento de pinos e cabos e como “crimpar” os conectores às terminações dos cabos no link “Manutenção de PCs: aprenda a crimpar cabos de rede“. O RJ11 é um conector usado geralmente na terminação de fios de telefone. Substitui a Tomada Telebras – antigo padrão brasileiro para conexões telefônicas com soquete e um grande plugue de 4cm x 4cm com quatro pinos chatos, três dos quais estão no mesmo sentido e o quarto rotacionado em 90 graus.
Além dos cabos e dispositivos, uma rede possui outros elementos físicos:
- Repetidor – recebe todos os pacotes de cada uma das redes que interliga e os repete nas demais redes sem realizar qualquer tipo de tratamento sobre os mesmos.
- Transceptor – um transmissor e um receptor utilizando componentes de circuito comuns para ambas funções num só aparelho.
- Servidor – sistema de computação centralizada que fornece serviços a uma rede de computadores. Ex: servidor de arquivos, comunicações, disco, impressão, bluetooth.
- Estação de trabalho (workstation) – computador.
- Placa de rede – controla todo o envio e recepção de dados através da rede.
- Concentrador (hub) – transmite ou difunde a informação, tendo, como principal característica, que a mesma informação é enviada para muitos receptores ao mesmo tempo (broadcast).
- Comutador (switch) – reencaminha pacotes (frames) entre os diversos nós. Possui portas, assim como os concentradores (hubs), mas a principal diferença é que o switch segmenta a rede internamente, onde cada porta corresponde um domínio de colisão diferente – isto é, não haverá colisões entre pacotes de segmentos diferentes.
- Roteador (router/gateway) – encaminha pacotes de dados entre redes de computadores, criando um conjunto de redes de sobreposição.
- Modem – vem da junção das palavras modulador e demodulador, ou seja, é um dispositivo eletrônico que modula um sinal digital numa onda analógica, pronta a ser transmitida pela linha telefônica, e que demodulador o sinal analógico e reconverte-o para o formato digital original.
- Porta de Ligação (gateway router) – máquina intermediária geralmente destinada a interligar redes, separar domínios de colisão, ou mesmo traduzir protocolos. Exemplos: roteadores, firewalls, proxy (servidor intermediário que atende as requisições repassando os dados do cliente à frente, podendo alterar a requisição do cliente ou a resposta do servidor ou também armazena dados em forma de cache). Ainda sobre o proxy, se considerarmos que a rede local é uma rede “interna” e a Internet é uma rede “externa”, podemos dizer que o proxy é aquele que permite que outras máquinas tenham acesso externo.
- Ponte (bridge) – dispositivo para interligar duas redes, ignorando os protocolos utilizados nos dois segmentos que liga, já que opera a um nível muito baixo do modelo OSI (nível 2); somente envia dados de acordo com o endereço do pacote. Este endereço não é o endereço IP (internet protocol), mas o MAC (media access control) que é único para cada placa de rede. Os únicos dados que são permitidos atravessar uma bridge são dados destinados a endereços válidos no outro lado da ponte. Desta forma é possível utilizar uma bridge para manter um segmento da rede livre dos dados que pertencem a outro segmento.
Normalmente conecta-se o computador usando um cabo de par trançado entre a placa de rede e o repetidor ou switch. Entretanto, se conectar dois computadores diretamente, deve-se rotear o sinal enviado por uma placa para o lado receptor da outra placa, e vice-versa. Este é o objetivo de um cabo crossover – só se faz necessário quando ambos os componentes não possuem a tecnologia auto-MDIX.
O gateway é um sistema de ligação de várias redes, atuando como um roteador para transmitir pacotes IP (Internet Protocol) entre suas várias interfaces. Este termo frequentemente se refere ao “ponto de saída” de uma rede local no caminho obrigatório para endereços IP externos.
Quando uma rede local usa um intervalo de endereços privado (não roteável na Internet), o gateway precisa implementar mascaramento de endereço para que as máquinas na rede possam se comunicar com o mundo exterior. A operação de mascaramento é um tipo de operação de proxy no nível de rede: cada conexão saindo de uma máquina interna é substituída com uma conexão do próprio gateway (já que o gateway tem um endereço externo e roteável).
O gateway usa um intervalo de portas TCP dedicadas para este objetivo, normalmente com números bastante altos (acima de 60000). Cada conexão vindo de uma máquina interna aparece então para o mundo exterior como uma conexão vindo de uma destas portas reservadas. Porta é um ponto físico (hardware) ou lógico (software), no qual podem ser feitas conexões, ou seja, um canal através do qual os dados são transferidos entre um dispositivo de entrada e o processador ou entre o processador e um dispositivo de saída – ou acesso por dentro e por fora do computador.
Obs.: Um proxy (procurador, em português) é um servidor (um sistema de computador ou uma aplicação) que age como um intermediário para requisições de clientes solicitando recursos de outros servidores, atuando como filtro de conteúdo, providenciando anonimato, etc. No Linux, o pacote Squid é uma opção default do Debian para servidor proxy – seu cache é configurado através do arquivo “/etc/squid/squid.conf” e o filtro com “/etc/squid/squid.conf”.
Veja mais sobre Protocolo de comunicação TCP/IP entre os computadores, o modelo OSI de camadas e a World Wide Web no post Como funciona a internet e na Wikipedia.
Inetd
Inetd (geralemente chamado de “Internet super-server”) é um servidor de servidores do Linux. Ele reduz o número de daemons necessários para atender as requisições de serviços: roda como um só serviço que monitora todos os números de portas desejados; quando uma requisição é recebida, ela é passada para o daemon real para ser processada. Quando iniciado (geralmente na inicialização), o inetd lê o seu arquivo de configuração a partir de /etc/inetd.conf, que define os serviços gerenciados por ele.
Cada linha significativa (não comentada) do arquivo “/etc/inetd.conf” descreve um servidor através de sete campos (separados por espaços): nome do serviço (conforme definido em “/etc/services”), tipo do socket, protocolo (tcp ou udp), flag (wait ou nowait), nome do usuário (e grupo), caminho completo até o daemon executável do programa servidor e argumentos.
O programa tcpd é frequentemente usado no arquivo “/etc/inetd.conf”. Ele permite limitar conexões de entrada aplicando regras de controle de acesso, documentadas na página de manual hosts_access(5), e que são configuradas nos arquivos “/etc/hosts.allow” e “/etc/hosts.deny”.
Socket e diferença entre TCP e UDP
Um socket é um arquivo utilizado na comunicação entre programas, gravado por descritores de arquivos Unix padrão. Quando sistemas Unix realizam qualquer tipo de E/S(Entrada/Saída), eles o fazem lendo ou escrevendo através de um descritor de arquivo (indicador abstrato para acessar um arquivo). Em POSIX, um descritor de arquivo é um inteiro, especificamente do tipo int de C. Existem três descritores de arquivo padrões em POSIX: 0 (Entrada padrão – stdin), 1 (Saída padrão – stdout) e 2 (Erro padrão – stderr). Cada processo possui sua própria tabela do descritor de arquivo, que é um índice para um registro de uma estrutura de dados do núcleo que contém detalhes de todos os arquivos abertos.
Em internet, basicamente existem os sockets “stream” (para conexão TCP) e os “dgram” (para datagrams UDP). Os “Stream Sockets” são fluxos de comunicação confiáveis – se você enviar 2 itens na ordem “1,2”, eles irão chegar chegar na ordem “1,2” no outro extremo do link – por utilizar o “Protocolo de Controle de Transmissão”, mais conhecido como “TCP”. Já os “Datagram Sockets” não são confiáveis – dados podem chegar fora de ordem – pois utilizam “User Datagram Protocol” (UDP). É mais usado em situações nas quais a correção de erros não é exatamente desejada, como na trasmissão de vídeo em tempo real, em que é mais interessante perder alguns trechos (ou distorções) da transmissão do que esperar pelo recebimento de um pacote que se perdeu.
Cada datagrama UDP tem um tamanho e pode ser considerado como um registro indivisível, diferentemente do TCP, que é um protocolo orientado a fluxos de bytes sem início e sem fim. Um cliente UDP pode criar um socket, enviar um datagrama para um servidor e imediatamente enviar outro datagrama com o mesmo socket para um servidor diferente – por isso também é dito que ele é “sem conexão”. Da mesma forma, um servidor poderia ler datagramas vindos de diversos clientes, usando um único socket.
2 comments