Pilha de protocolos de interligação em redes TCP/IP

O TCP/IP é um conjunto de protocolos que especificam como deve ocorrer o transporte de dados em geral através de conexões que interligam tanto redes locais como redes remotas espalhadas por todo o mundo, além de ser usado na Internet global.

Seus dois protocolos mais importantes são o TCP e o IP.

TCP (Transmission Control Protocol)

O Transmission Control Protocol ou Protocolo de Controle de Transmissão é um protocolo que fornece serviço de transporte confiável de dados.

O TCP é um protocolo da camada de transporte do modelo OSI e como tal tem a função de receber dados do usuário vindos das camadas superiores e dividi-los em blocos de dados chamados de segementos, pacotes ou datagramas.

Como o TCP é um protocolo confiável, ele atribui a cada segmento um número que indica a ordem em que cada pacote deve ser entregue, além de números que serão usados em cálculos e verificações no momento da entrega dos datagramas.

E para garantir que os dados cheguem intactos, o TCP forma uma conexão com o destinatário que é caracterizada pela constante troca de mensagens que ocorre entre os dois computadores a fim de assegurar o correto envio dos datagramas. Ou seja, a conexão executada pelo TCP é abstrata, pois não ocorre, de fato, uma conexão física entre os hosts, mas sim uma conexão lógica que é encerrada assim que os dados são totalmente enviados.

Do ponto de vista de um programa aplicativo, o serviço oferecido pelo TCP tem sete características importantes:

  • Orientação à conexão. O TCP fornece serviço orientado à conexão em que um aplicativo deve primeiro solicitar uma conexão com um destino, e então usar a conexão para transferir dados.

  • Comunicação ponto-a-ponto. Cada conexão de TCP tem exatamente duas extremidades.

  • Confiabilidade completa. O TCP garante que os dados enviados através de uma conexão serão entregues exatamente como enviados, sem dados faltando ou fora de ordem.

  • Comunicação Full Duplex. Uma conexão de TCP permite que os dados fluam em uma ou outra direção e permite que um ou outro programa aplicativo envie dados a qualquer hora. O TCP pode armazenar nos buffers dados que partem e que chegam em ambas as direções, possiblitando que um aplicativo envie dados e então continue uma computação enquanto os dados estão sendo transferidos.

  • Interface de Stream. Dizemos que o TCP fornece uma interface de stream em que um aplicativo envia uma seqüência de contínua de octetos através de uma conexão. Isto é, o TCP não fornece a noção de registros e não garante que os dados serão entregues ao aplicativo receptor em pedaços do mesmo tamanho que foram transferidos pelo aplicativo remetente.

  • Partida de conexão confiável. O TCP exige que quando dois aplicativos crien uma conexão, ambos devem concordar com a nova conexão; os pacotes duplicados usados em conexões anteriores não parecerão ser repostas válidas ou de outra forma interferirão com a nova conexão.

  • Desligamento de conexão graciosa (Graceful Connection Shutdown). Um programa aplicativo pode abrir uma conexão, enviar quantias arbitrárias de dados e então requisitar o fechamento da conexão. O TCP garante a entrega confiável de todos os dados antes de fechar a conexão.

IP (Internet Protocol)

O protocolo que define o mecanismo de transmissão sem conexão e não-confiável é conhecido como Internet Protocol, e é normalmente citado por suas iniciais IP. O IP oferece três definições importantes. Primeira, o protocolo IP define a unidade básica de transferência de dados utilizada através de uma interligação em redes TCP/IP. Assim, ela especifica o formato exato de todos os dados à medida que ela passa pela interligação em redes TCP/IP. Segunda, o software IP desempenha a função de roteamento, escolhendo um caminho por onde os dados serão enviados. Terceira, além da especificação formal e precisa de formato de dados e de roteamento , o IP inclui um conjunto de regras que concentram a idéia da entrega não-confiável de pacotes. As regras definem como os hosts e os roteadores devem processar os pacotes, como e quando as mensagens de erro devem ser geradas e as condições segundo as quais os pacotes podem ser descartados. O IP é uma parte tão fundamental do projeto que uma interligação em redes TCP/IP às vezes é denominada uma tecnologia baseada em IP.