O que o TCP / UDP adiciona ao "IP bruto"?

18

Eu sei que o TCP e o UDP são construídos sobre o IP, e eu sei as diferenças entre o TCP e o UDP, mas estou confuso sobre o que exatamente é "IP bruto". Seria justo dizer que o TCP e o UDP implementam o IP, mas esse IP, por si só, não é capaz de transferir dados? Ou o IP é uma forma de comunicação de nível muito baixo, que é ainda mais abstraída pelo TCP e UDP?

John Dorian
fonte
2
Para aprofundar alguns dos comentários abaixo (não o suficiente para uma resposta completa, apenas por uma questão de clareza): IP é um protocolo que transporta dados. TCP ou UDP também são protocolos que transportam dados. O TCP e o UDP geralmente ficam no topo do IP; portanto, para o IP, a carga útil dos dados pode ser TCP ou UDP. A Ethernet é frequentemente usada para transportar IP. Assim, por exemplo, um quadro Ethernet pode carregar um pacote IP como carga útil de dados e esse pacote IP talvez transportar um segmento TCP como carga útil, e assim por diante. Você acaba com uma pilha de protocolos como este goo.gl/1uEYtC
jwbensley
3
O IP certamente transfere dados - ele carrega esses pacotes TCP / UDP, por exemplo. Geralmente, não é utilizável em aplicativos. O UDP é um protocolo muito bruto sobre o IP, mas já adiciona números de porta , permitindo que vários serviços manuseiem o tráfego UDP simultaneamente em um sistema. Caso contrário, você teria apenas tantos serviços quanto endereços de IP.
Luaan 15/02/16

Respostas:

23

IP é um protocolo de camada 3 . TCP / UDP são protocolos da camada 4 . Cada um deles serve a propósitos diferentes.

A camada 3 é responsável pela entrega de ponta a ponta . Sua única função é adicionar o que for necessário a um pacote para obter um pacote de um host para outro.

A camada 4 é responsável pela entrega de serviço a serviço . Sua única função é segregar fluxos de dados. Seu computador pode ter vários programas em execução, cada um que envia / recebe bits para o fio. IE: você pode ter várias guias do navegador executando, transmitindo rádio pela Internet, executando um download, executando alguns torrents legais , usando um aplicativo de bate-papo etc. Todos recebem 1s e 0s da conexão e a Camada 4 segrega cada fluxo de dados no aplicativo exclusivo que precisa deles. Aqui está uma ilustração:

L4 segregando fluxos de dados

O IP não pode entregar um pacote para o serviço / aplicativo correto. E o TCP / UDP não pode entregar um pacote de uma extremidade da Internet para a outra.

O TCP e o IP trabalham juntos para permitir que ambos alcancem o "objetivo final" da comunicação na Internet.

Os dados que precisam passar de um host para outro são gerados pelas camadas superiores do modelo OSI.

Esses dados são transmitidos para o L4, que adicionará as informações necessárias para fornecer os dados de serviço para serviço, como um cabeçalho TCP com uma porta de origem e de destino. Os dados e o cabeçalho L4 agora são referidos como um segmento.

Em seguida, o segmento será passado para L3, que adicionará as informações necessárias para entregar o segmento de ponta a ponta, como um cabeçalho IP com um endereço IP de origem e de destino. O cabeçalho L3 e o segmento agora podem ser chamados de pacotes.

Esse processo é conhecido como Encapsulamento e Desencapsulamento (ou algumas vezes decapsulamento). Aqui está uma animação de como funciona:

Encapsulamento e Desencapsulamento, usado com permissão da Practical Networking.net

Se isso não fizer sentido, sugiro ler mais sobre o modelo OSI e como cada camada tem responsabilidades diferentes que trabalham juntas para realizar a movimentação de um pacote pela Internet .

Eddie
fonte
7
Observe que a Internet segue apenas vagamente o modelo OSI.
user253751
2
inside an IP header is usually a TCP or UDP headernão está correto, o cabeçalho TCP / UDP não está dentro do cabeçalho IP, está dentro da parte de dados do pacote IP.
Eborbob
"Sua única função é segregar fluxos de dados", enquanto isso é verdade principalmente para o UDP (há também uma soma de verificação, mas meh) que certamente não é verdade para o TCP.
Peter Green
1
@immibis É verdade, mas ainda não vi onde seguir o modelo OSI levou a uma implementação escancarada ou a um travesti de entendimento. Na maioria das vezes, e especialmente para alguém que está se aproximando das tecnologias da Internet, é mais valioso continuar pensando nas restrições do modelo OSI.
Eddie
@Eborbob Eu posso ver como está errado, dependendo de como olha a frase. Honestamente, todo esse parágrafo poderia usar uma reformulação, tentarei chegar a ela mais tarde esta noite. Obrigado por apontar isso.
Eddie
6

O IP pode transmitir dados muito bem, o problema é o que acontece quando esses dados chegam ao outro lado. A única informação de identificação são os endereços IP dos hosts e um número de protocolo. Nenhuma delas fornece nenhuma maneira de distinguir para qual soquete os dados são.

É possível que os programas usem o IP diretamente através do que é conhecido como "soquete bruto", mas a falta de um mecanismo adequado para decidir qual soquete enviar dados gera preocupações de segurança e desempenho (o kernel precisa enviar os dados para todos os soquetes brutos para um determinado número de protocolo). Por esse motivo, a capacidade de abrir "soquetes brutos" geralmente é restrita ao root (ou o equivalente da sua plataforma).

O UDP é uma camada mínima sobre IP. Ele adiciona números de porta para identificar para qual soquete os dados são e uma soma de verificação (para rejeitar pacotes corrompidos). O aplicativo permanece responsável por lidar com pacotes perdidos, controlar o congestionamento e dividir os dados em pacotes de tamanho apropriado.

O TCP é um protocolo mais complexo que, além de fornecer números de porta e somas de verificação, divide os fluxos de bytes em pacotes, remonta novamente ao seu destino e fornece recursos de controle e recuperação de congestionamentos.

Peter Green
fonte
4

IP é um protocolo OSI camada 3, enquanto TCP e UDP são protocolos OSI camada 4. Como um protocolo da camada 3, o IP pode transportar muitos protocolos diferentes da camada 4. TCP e UDP são provavelmente os mais comuns, mas não são os únicos. Os protocolos da camada 4 são os aplicativos que usam como conexões de ponta a ponta. O IP transporta os protocolos da camada 4 de rede para rede (host para host). Os protocolos da camada 2, como ethernet, transportam protocolos da camada 3 em uma LAN.

Você deve pesquisar o modelo OSI, mas perceba que é um modelo conceitual, e o mundo real geralmente não corresponde exatamente.

Ron Maupin
fonte