TCP/IP

O Transmission Control Protocol e o Internet Protocol (TCP/IP) são um conjunto podrão de protocolos desenvolvidos no final dos anos 1970 pela Defense Advanced Research Projects Agency (DARPA) como uma forma de comunicação entre diferente tipos de computadores e redes de computadores. TCP/IP é a força motora da Internet, e é portanto o mais popular conjunto de protocolos da Terra.

Introdução ao TCP/IP

Os dois protocolos componentes do TCP/IP lidam com diferentes aspectos da computação em rede. Internet Protocol, o "IP" do TCP/IP é um protocolo de sem conexão que lida somente com o roteamento de pacotes da rede utilizando o datagrama de IPs como unidade básica das informações de rede. O datagrama do IP consiste de um cabeçaho seguido de uma mensagem. O TCP (Transmission Control Protocol - Protocolo de Controle de Transmissão)

Configurando TCP/IP

A configuração do protocolo TCP/IP consiste em diversos elementos, que podem ser editados nos arquivos de configuração apropriados, ou optando-se por soluções como o servidor de DHCP (Protocolo de Configuração Dinâmica de Hosts), que por sua vez pode ser configurado para prover as configurações TCP/IP necessárias para cada cliente de rede automaticamente. Esses valores da configuração precisam ser definidos corretamente, de maneira que que facilite o funcionamento em rede do seu sistema Ubuntu.

Os elementos básicos de configuração do TCP/IP e seus objetivos são os seguintes:

  • Endereço IP O Endereço de IP é uma string de identificação única, expressa em quatro números decimais, que vão de zero (0) à duzentos e cinquenta e cinco (255), separada por pontos, com cada um dos quatros números representado oito (8) bits do endereço, para um tamanho total de trinta e dois (32) bits para todo o endereço. Este formato é chamado de notação decimal com pontos.

  • Netmask A Máscara de Subrede (ou simplesmente netmask) é uma máscara de bits locais, ou alguns marcadores que separam porções de endereços IPs relacionados à uma rede de uma subrede. Por exemplo, na Classe C, a máscara padrão é 255.255.255.0, que mascara os primeiros três bytes do endereço IP e permite somente o último byte do endereços disponível para a alocação e especificação de hosts ou subredes.

  • Network Address The Network Address represents the bytes comprising the network portion of an IP address. For example, the host 12.128.1.2 in a Class A network would use 12.0.0.0 as the network address, where twelve (12) represents the first byte of the IP address, (the network part) and zeroes (0) in all of the remaining three bytes to represent the potential host values. A network host using the private IP address 192.168.1.100 would in turn use a Network Address of 192.168.1.0, which specifies the first three bytes of the Class C 192.168.1 network and a zero (0) for all the possible hosts on the network.

  • Broadcast Address The Broadcast Address is an IP address which allows network data to be sent simultaneously to all hosts on a given subnetwork rather than specifying a particular host. The standard general broadcast address for IP networks is 255.255.255.255, but this broadcast address cannot be used to send a broadcast message to every host on the Internet because routers block it. A more appropriate broadcast address is set to match a specific subnetwork. For example, on the private Class C IP network, 192.168.1.0, the broadcast address is 192.168.1.255. Broadcast messages are typically produced by network protocols such as the Address Resolution Protocol (ARP) and the Routing Information Protocol (RIP).

  • Gateway AddressUm Gateway Address é o endereço IP direto de uma rede particular, ou host em uma rede, podendo se estender. Se uma rede de host não define-se ao comunicar com outra rede de host, e aquele host não é localizado em uma mesma rede, então um gateway deve ser usado. Em muitos casos, o Gateway Anddress será de um roteador na mesma rede, que vai habilitar o trafico de passagem em outras redes ou hosts, tais como Internet hosts. O valor definido a um Gateway Address deve ser correto, ou seu sistema não será capaz de alcançar nenhum host ligado na mesma rede.

  • Endereço do Servidor de Nomes Endereços de servidores de nome representam o endereço IP do sistema de Serviço de Nomes de Domínio (Domain Name Service - DNS), que resolve nomes de hosts de rede para endereços IP. Há três níveis de endereços de servidor de nomes, que podem ser especificados em ordem de precedência: O servidor de nomes Primário, o servidor de nomes Secundário e o servidor de nomes Terciário. Para que seu sistema possa resolver nome de hosts da rede para seus endereços IP correspondentes, você deve especificar um endereço de servidor de nomes válido o qual você esteja autorizado a utilizar na configuração de TCP/IP do seu sistema. Em muitos casos esses endereços podem e devem ser fornecidos pelo seu provedor de serviços de rede, mas há muitos servidores de nomes gratuitos e acessíveis publicamente, como os servidores Level3 (Verizon) com endereços de IP de 4.2.2.1 a 4.2.2.6.

    [Dica]

    O Endereço de IP, a Máscara de rede (netmask), o Endereço de rede, Endereço de broadcast, e o Endereço de Gateway são, em geral, especificados com as diretivas apropriadas no arquivo /etc/network/interfaces. O endereço do Servidor de Nomes (DNS) é em geral especificado pela diretiva nameserver no arquivo /etc/resolv.conf. Para maiores informações, veja a página de manual para interfaces ou resolv.conf respectivamente, com os seguintes comandos a serem digitados no terminal:

    Acesse o sistema de páginas de manual para interfaces com o seguinte comando:

    man interfaces
    

    Acesse o sistema de páginas de manual para resolv.conf com o seguinte comando:

                    
                      man resolv.conf
                    
                  

Roteamento IP

IP routing is a means of specifying and discovering paths in a TCP/IP network along which network data may be sent. Routing uses a set of routing tables to direct the forwarding of network data packets from their source to the destination, often via many intermediary network nodes known as routers. There are two primary forms of IP routing: Static Routing and Dynamic Routing.

Roteamento estático envolve adição manual de rotas IP à tabela de roteamento do sistema, e isso é normalmente feito pela manipulação da tabela de roteamento com o comando route. O Roteamento estático tem muitas vantagens sobre o roteamento dinâmico, como a simplicidade de implementação em redes pequenas, previsibilidade (a tabela de roteamento é sempre formada previamente, e dessa forma a rota é precisamente a mesma todas as vezes que ela é usada), e baixa carga nos roteadores e links de rede devido à ausência de um protocolo de roteamento dinâmico. Entretanto, roteamento estático apresenta algumas desvantagens também. Por exemplo, roteamento estático está limitado a pequenas redes e não é muito escalável. O roteamento estático também falha completamente no caso de uma parada na rede e falhas ao longo das rotas devido a correção natural da rota.

Dynamic routing depends on large networks with multiple possible IP routes from a source to a destination and makes use of special routing protocols, such as the Router Information Protocol (RIP), which handle the automatic adjustments in routing tables that make dynamic routing possible. Dynamic routing has several advantages over static routing, such as superior scalability and the ability to adapt to failures and outages along network routes. Additionally, there is less manual configuration of the routing tables, since routers learn from one another about their existence and available routes. This trait also eliminates the possibility of introducing mistakes in the routing tables via human error. Dynamic routing is not perfect, however, and presents disadvantages such as heightened complexity and additional network overhead from router communications, which does not immediately benefit the end users, but still consumes network bandwidth.

TCP e UDP

TCP é um protocolo de conexão, oferecendo correção de erro e entrega garantida de dados via o que é conecido como controle de fluxo. O controle de fluxo determina quando o fluxo de certos dados devem ser parados, e previamente quais pacotes de dados devem ser re-enviados devido a problemas como colisões, por exemplo, deste modo assegurando a entrega exata e completa dos dados. TCP é tipicamente usado em trocas de informações importantes tal como transações de banco de dados.

O User Datagram Protocol (UDP), por outro lado, é um protocolo de conectividade que raramente lida com a transmissão de dados importantes porque falta controle de fluxo ou qualquer outro método para assegurar a entrega confiável dos dados. UDP comumente é usado em aplicações como áudio e vídeo, onde é consideravelmente mais rápido que TCP devido à falta de correção de erro e controle de fluxo, e onde a perda de alguns pacotes não é catastrófico, geralmente.

ICMP

O Internet Control Messaging Protocol (ICMP) é uma extensão do Internet Protocol (IP) como definido na Petição Para Comentários (RFC) #792 e apoia pacotes de rede contendo controle, erro, e mensagens de informação. ICMP é usado por aplicações de rede como a utilidade de ping, que pode determinar a disponibilidade de um host de rede ou dispositivo. Exemplos de mensagens de erro retornadas por ICMP que são útil a ambos hosts de rede e para dispositivos tal como roteadores, incluem Destino Inacessível e Tempo de Esperera Excedido.

Serviços

Daemons (serviços) são aplicações especiais do sistema que tipicamente executam continuamente em segundo plano e esperam requisições para as funções que eles fornecem a outras aplicações. Muitos daemons são rede-cêntrico; isso é, um grande número de daemons executando em segundo plano em um sistema Ubuntu podem fornecer funcionalidades a redes relacionadas. Alguns exemplos de daemons de rede incluem o Hyper Text Transport Protocol Daemon (httpd), que fornece funcionalidade de servidor de Internet; o Secure SHell Daemon (sshd), que fornece identificação (login) remota segura e capacidade de transferência de arquivo; e o Internet Message Access Protocol Daemon (imapd), que fornece serviços de correio eletrônico (e-Mail).