Questão O TCP deve usar IP?


É verdade que TCP é curto para TCP / IP e eles significam a mesma coisa?

É possível para TCP para ser construído em cima de outro protocolo além IP?


104


origem


Por que não? Eu poderia ter visto TCP sobre código morse uma vez. - soandos
Um exemplo seria um túnel ICMP, que usa TCP sobre ICMP. Mas é verdade que não é usual construir o TCP em cima de qualquer coisa que não seja IP. Normalmente, a camada de acesso à rede é aquela que usa uma gama mais ampla de protocolos e canais (como bongôs). - Mister Smith
@TomWijsman Tentei um fracasso? Pelo que entendi, qualquer problema que eles tiveram a ver com a solução de problemas e interoperabilidade, em vez de qualquer dificuldade em fazer com que o TCP funcionasse. - tylerl
@harper Com código Morse regular, 200 caracteres / minuto certamente não são desconhecidos para operadores habilidosos, e 100 c / min (20 wpm) é definitivamente alcançável pela maioria das pessoas com prática suficiente. É claro que, nessas velocidades, você não ouve cada personagem individualmente, mas sim o som das palavras. (Dizem que a marca registrada de um operador habilidoso é que eles se lembram da conversa, mas não das palavras usadas.) No entanto, imagino que os caracteres de 100 c / min espaçados a uma velocidade geral de 50-60 c / min seriam possíveis com taxas de erro de caracteres insignificantes. - Michael Kjörling
@harper Depende do seu nível de precisão exigido. Para conversas largas (rag-mastigando, em linguagem de radioamadorismo), obter uma palavra aqui e ali errada não é realmente um problema, porque o contexto é mais importante do que as palavras exatas usadas. Para o tráfego de telegramas, comunicações de emergência / socorro e assim por diante, particularmente se o texto for cifrado, todas as palavras e, na verdade, todos os caracteres devem ser (não apenas recebidos, mas também) copiadocorretamente (e legivelmente). Note que eu disse que 200 c / min "não é inédito"; não é comum. 100 c / min, no entanto, é bastante comum nas bandas de radioamadores. - Michael Kjörling


Respostas:


TCP e IP (v4 e v6) são definitivamente separáveis, e um não implica o outro, como provado pelo exemplo do TCP sobre IPX (RFC 1791).

No entanto, o TCP não pode ser construído apenas qualquer protocolo de rede. Duas razões:

  1. Não há campo de tamanho de segmento no cabeçalho TCP (apenas o Deslocamento de dados, que fornece o tamanho do cabeçalho TCP). Portanto, o TCP funcionará apenas com um protocolo de camada inferior que inclui informações suficientes para calcular o tamanho do segmento TCP (ou seja, o tamanho da carga útil do protocolo de camada inferior). Essa suposição é verdadeira para o IPv4 (RFC 791), IPv6 (RFC 2460) e IPX (RFC 1791). Mas não é verdade em geral, por exemplo, não para portadores de aves (RFC 1149) (ver nota a).
  2. O TCP é projetado apenas para funcionar em um protocolo de rede sem conexão. O TCP efetivamente não funciona em determinados protocolos de rede orientados a conexão (por exemplo, o serviço de taxa de bits constante ATM), porque as duas funções de controle de taxa de combate levam a um desempenho muito ruim ou imprevisível. Outro exemplo degenerado é o TCP em um túnel TCP.

A especificação TCP, RFC 793, não é uma boa fonte para decidir esta questão, porque admite que deixa sua interface com a camada inferior em grande parte não especificada.

Nota a) Para TCP para remontar datagramas impressos em pequenas folhas de papel (carregadas por pombos ou uma rede corvid mais inteligente), o tamanho da carga teria que ser escrito em um local padrão. Alternativamente, uma camada de adaptação poderia determinar heuristicamente o tamanho do segmento. O scanner óptico usado na implementação da pilha de host da especificação de portadores aviários (RFC 1149) incluiu tal camada de adaptação heurística, mas permanece não documentada.


12



Tecnicamente preciso (tanto quanto eu posso dizer), completo, apoiado por referências, claro e light-hearted. Eu daria a isso um punhado de votos positivos que eu poderia. - Scott


Eu não li o todo RFC mas a linguagem na seção 1.4 parece sugerir que qualquer protocolo de "nível inferior" pode ser usado.

A interface entre TCP e protocolo de nível inferior é essencialmente   não especificado, exceto que é assumido que existe um mecanismo pelo qual o   dois níveis podem passar informações de maneira assíncrona entre si.   Normalmente, espera-se que o protocolo de nível inferior especifique   interface. O TCP foi projetado para funcionar em um ambiente muito geral de   redes interconectadas. O protocolo de nível inferior que é assumido   ao longo deste documento é o protocolo da Internet.


88



O próprio IP foi implementado em muitas tecnologias de rede, mesmo pombos-correio. As aves foram realmente usadas para demonstrar a entrega de pacotes ICMP Ping, com uma perda de pacotes de 55% (aparentemente devido a erro do operador) e latências variando de uma a duas horas. Seria possível executar o TCP em cima disso, mas a configuração da conexão exigiria muitos pássaros .... - RBerteig
Sobre o comentário da RBerteig; considere um pombo transportador carregando um cartão mini-SDHC. Há a diferença entre latência e taxa de transferência. :-) - Michael Kjörling
@ MichaelKjörling Isso não iria interoperar com a RFC 1149: "O datagrama IP é impresso, em um pequeno rolo de papel". - kmkaplan
@kmkaplan A menos que o datagrama tenha sido impresso na etiqueta do cartão SDHC. É como o clichê de vários filmes - "oh, na verdade está no disco rígido!" - Jon Hanna
Teria que ter alguns buracos seriamente grandes no firewall para permitir que as transportadoras aviárias passassem. - squillman


Suíte de Protocolo da Internet

O TCP não é curto para TCP / IP.

O TCP / IP é freqüentemente usado como uma forma abreviada de dizer "O Internet Protocol Suite"e geralmente inclui outros protocolos padrão. Quando as pessoas dizem TCP / IP, geralmente incluem UDP sobre IP (em que UDP é usado em vez de TCP) e muitos outros protocolos como ARP, ICMP, DNS, SNMP e outras camadas de aplicação protocolos.

Camada de aplicação

Aplicativos usam protocolos de camada de aplicativo, como SMTP (para email). Estes ficam em um dos dois protocolos de camada de transporte - TCP e UDP. Alguns protocolos de camada de aplicativo usarão um ou ambos de UDP e TCP, mas a maioria é usada com apenas um protocolo de camada de transporte.

Camada de transporte

TCP e UDP são dois protocolos de camada de transporte usados ​​no Internet Protocol Suite. Se há outros, não os conheço e quaisquer outros representariam um uso especializado extremamente pequeno.  Outros protocolos de camada de transporte foram definidos - seu uso provavelmente representa apenas uma pequena proporção do tráfego IP global

Camada de Internetwork

Embora seja teoricamente possível usar o TCP em algo diferente de IP, na prática, o TCP é sempre usado sobre IP - o Internet Protocol. IP move pacotes entre redes (pense em IP como conectando várias LANs juntas)

Camada de Interface de Rede

A Ethernet é apenas a família mais popular de protocolos de camada de link de baixo nível nos quais o TCP / IP é transportado, mas o TCP / IP também é amplamente usado em ATMs e outros.

IP layer diagram From bootdiscs.net


Apêndice 1 - Uma nota sobre protocolos de camada de transporte

Os únicos protocolos de camada de transporte em uso significativo nas redes que usam o Internet Protocol Suite são o TCP e o UDP.

† Apenas por diversão, eu medi o tráfego em minha LAN (muito) pequena, que inclui NetBIOS (sobre TCP), SSH, Rsync, E-mail, atualizações de software, DNS, conversas gerais sobre caixas do Windows e alguns outros tipos de tráfego.Wirshark Protocol Hierarchy Statistics

Observe também esta declaração no Google FAQ para o seu protocolo QUIC

Por que você não criou um protocolo totalmente novo, em vez de usar o UDP? Caixas centrais na Internet hoje geralmente bloqueiam o tráfego, a menos que seja tráfego TCP ou UDP

(minha ênfase)


76



Trouxe-me todo o caminho de volta para 1996 e o ​​modelo OSI en.wikipedia.org/wiki/OSI_model - Rudi
Existem mais de 2 protocolos de camada de transporte: en.wikipedia.org/wiki/Transport_layer#Protocols - Stuart Blackler
@StuartBlackler: Ponto interessante, obrigado. Existe algum (diferente de TCP e UDP) que não se enquadra no que eu chamo de categoria "uso extremamente pequeno de especialistas" e que são usados ​​sobre IP? Se eu medir o tráfego IP em um Ponto de troca de Internetque proporção dos protocolos da camada de transporte seria diferente de TCP ou UDP? - RedGrittyBrick
Tome DCCP por exemplo, ainda é um novo protocolo, mas imagino que nos próximos anos você verá mais aplicativos usarem o protocolo. Razão que eu não acho que é mainstream ainda é porque eu não acredito que há suporte para isso no Windows. Pense nisso como UDP com controle de congestionamento. Pode ser muito útil para muitos aplicativos, como Skype e jogos :) Dê uma olhada nisso. Para responder a sua pergunta, é provavelmente uma quantidade muito pequena no momento - Stuart Blackler
@Rudi err, você deve perceber que não é o modelo de referência OSI, e se você perceber isso, então não engane as pessoas a pensar que é. É o modelo / arquitetura TCP / IP ... Às vezes, a arquitetura TCP / IP é descrita com a terminologia do OSI, o modelo de referência OSI. Mas as 4 camadas mostradas e com esses nomes, é muito TCP / IP não OSI. Nenhum problema com o post do vermelho, mas seu comentário é enganoso na melhor das hipóteses. - barlop


A razão pela qual o TCP / IP é uma abreviação tão comum (em oposição a, digamos, UDP / IP ou SCTP / IP) é porque os dois protocolos foram projetados juntos, e no artigo original de Vint Cerf e Bob Kahn, os dois conceitos foram combinados em um único protocolo. Logo em seguida, eles foram divididos em IP para fornecer roteamento e TCP para fornecer controle de fluxo, multiplexação, detecção de erros, etc. Não foi até seis anos depois que o UDP foi introduzido para fornecer uma camada de multiplexação "leve" sem o restante do sobrecarga envolvida com o TCP.

Ainda assim, TCP e IP são duas coisas separadas e completamente e intencionalmente independentes. O fato de o TCP não exigir IP é imediatamente aparente com o fato de que o TCP pode ser executado sem modificações tanto no IPv4 quanto no IPv6, que são dois protocolos completamente diferentes.

Com um pouco de trabalho, você poderia criar um protocolo concorrente para IP que serviria aos mesmos propósitos, mas provavelmente teria que conter a maioria, se não todos os mesmos recursos, e provavelmente acabaria se parecendo muito com IP, de qualquer maneira. Você poderia argumentar que as extensões para IP (como o IPSec) são efetivamente protocolos alternativos da camada 3, então lá você vai.


34



Correto - a primeira versão do TCP incluiu a funcionalidade do IP. Talvez outra razão pela qual as pessoas digam "TCP / IP" é que na grande maioria das vezes quando você está enviando dados via IP, você quer garantir que tudo seja entregue e na ordem correta, então você usa o TCP. Por exemplo, todo o tráfego HTTP e FTP usa o TCP. Uma categoria de exceções é dados em tempo real; O Skype, por exemplo, usa o UDP, porque você prefere obter o pacote mais recente em uma conversa do que parar tudo para obter um que você perdeu. - Nathan Long


Você pode substituir o IP por outra coisa. Na verdade, é exatamente isso que você está fazendo quando está usando o TCP via IPv6. O TCP ainda é TCP, mas o IP é v6 em vez de v4.

AFAIK, ninguém criou nenhum outro protocolo de camada 3 para trabalhar com o TCP acima deles, mas não há motivo para você não conseguir.


22





TCP e IP são como manteiga sobre pão.

Você pode emparelhar qualquer outra coisa que funcione com qualquer protocolo, mas esses dois são assim complementar é só um gostoso maneira confiável para transferir dados e encher a barriga com dados da internet. Ele lubrifica o tubo para permitir que outros alimentos secos e handshaking de dados apoiem esse emparelhamento. Mas de modo algum é exclusivo.

Q  No entanto, não é possível que o TCP seja construído sobre outro protocolo além do IP?

UMA  Sim, é possível. Eu gosto dos exemplos de código Morse e Pigeon do TCP sem IP.


8





Eu sempre ouvi que o TCP é curto para TCP / IP

Na verdade, significa Protocolo de controle de transmissão pelo protocolo da Internet

e eles significam a mesma coisa.

Isso não está correto.

Primeiro, a Ethernet é o sistema de hardware de baixo nível que controla como as peças de hardware reais funcionam.

Em seguida, pense em IP como um sistema de telefone ou sinais de trânsito. Ele fornece o controle básico de conectar dois pontos do sistema juntos.

TCP por outro lado, é mais como um sistema de mensagens ou um oficial de controle de tráfego que direciona mensagens / carros para o ponto correto.

Em conjunto, o TCP / IP fornece um sistema confiável de transferência de dados para e de quaisquer dois dispositivos conectados.

Com a Internet, quando você deseja enviar ou receber dados, a parte IP do sistema é a parte que controla as conexões reais de hardware com os fios (ou ondas sem fio). A parte TCP do sistema é o software responsável por pegar os dados, dividi-los, enviá-los, remontar os dados recebidos, verificar os dados e reenviá-los, se necessário.

tem incontáveis ​​explicações com analogias e detalhes técnicos disponíveis, especialmente em forma de vídeo. DifferenceBetween.net tem um particularmente bom sobre este exato sujeito.

No entanto, não é possível que o TCP seja construído sobre outro protocolo além do IP?

Sim, você poderia de fato criar um sistema alternativo para TCP que usa IP. Dê uma olhada no Suíte de Protocolo da Internet para alguns detalhes.


6



É um pouco enganador dizer que o IP fornece "conectar" dois pontos juntos. IP fornece uma maneira de enviar individual pacotes de uma máquina para outra; Cada pacote é independente de todos os outros. O TCP fornece a ilusão de um contínuo conexão, o que é realmente uma seqüência de pacotes enviados via IP. - Wyzard
O IP também não está relacionado a hardware ou sinalização física. Isso é tratado por tecnologias de nível inferior, por exemplo, Ethernet. - Wyzard
Há muita coisa errada com essa resposta, e a questão é totalmente ignorada. Primeiro, a Ethernet é apenas um protocolo de camada de enlace que foi usado para transportar IP. Há muitos outros, e a IP não sabe ou não se importa com nenhum deles. IP não tem nada a ver com o hardware; é a camada de roteamento entre as redes, acima do hardware usado para conectá-las. O ponto da questão era se você pode usar TCP em algo diferente de IP, não se você pode usar algo diferente de TCP que usa IP (veja UDP para um exemplo disso). - psusi
@synetech, a questão era não msgstr "outra coisa pode ser usada em IP". Foi "pode ​​TCP ser usado em outra coisa", ou seja, sem IP. - Wyzard
> the fact that !TCP can go over IP does not necessarily mean TCP can go over !IP Huh? Psusi está tentando ser inteligente usando "!" como o "não operador". Seu comentário deve ser lido como: "o fato de que algo que não é TCP pode passar por IP não significa necessariamente que o TCP pode passar por algo que não é IP". É feito em referência à última frase da sua resposta, que mostrou a existência de "sistemas alternativos para TCP". No entanto, mostrar que existem alternativas ao TCP não implica necessariamente nem sugere que existem alternativas ao IP. - Lie Ryan


O TCP é um protocolo da camada 4. Ele fornece transporte garantido de dados na forma de um fluxo ordenado de um processo em um computador para outro processo no mesmo / em outro computador.

IP é um protocolo da camada 3. Ele fornece transporte de um host para outro.

Enquanto houver um protocolo que possa hospedar a transferência de dados, o TCP funcionará.

Assim, o TCP pode ser implementado em qualquer protocolo, mas só fizemos IP. IP é simples e faz o trabalho.

Não há necessidade de outro protocolo de camada 3.


5



E quanto ao IPv6? - curiousguy
E quanto ao IPv6? É só IP. Há interface de envio e recebimento de um pacote permanece o mesmo. Então, o TCP pode usar a mesma função. O sistema operacional pode apenas substituir o ponteiro de função do IPv4 e do IPv6 e ainda funcionaria. Não tenho certeza do que você está dizendo aqui? - snihalani
IPv6 e IPv4 são semelhantecom interfaces semelhantes para camadas superiores, mas certamente não é o mesmo protocolo e não estritamente funcionalmente equivalente também. - curiousguy
Você também pode fingir que o UDP é o mesmo protocolo que o IP, porque eles oferecem interfaces extremamente semelhantes às camadas superiores: definir um local e um endereço de ponto de extremidade remoto, enviar e receber pacotes ... - curiousguy


Quando você projeta uma rede, você tem que escolher um conjunto de protocolos (que são basicamente conjuntos de regras de comunicação entre máquinas), para cada uma das várias "camadas" (que você pode imaginar como diferentes níveis de abstração, que os projetistas de redes gostam de tenha em mente ao criar e combinar protocolos).

Versão mais simples: protocolos são como caixas em que colocamos nossas mensagens. Essas caixas têm tamanhos diferentes, e você coloca sua mensagem na caixa menor, a caixa menor em uma caixa que é um pouco maior, etc. Escolher um conjunto de protocolos é escolher que tipo de caixas você usará para cada " camada "que envolve a sua mensagem.

TCP e IP são protocolos para duas camadas independentes, que foram criadas em conjunto e podem ser usadas juntas; mas pode muito bem ser usado com outros protocolos. Isso acontece com bastante frequência: você pode usar IP junto com um protocolo não-TCP, ou TCP junto com um protocolo não-IP.

A razão pela qual o TCP / IP é uma abreviação tão comum é que esses dois protocolos formaram, juntos, a base da Internet e foram fundamentais para seu sucesso..

(TCP e IP têm algumas funcionalidades que foram projetadas especificamente para que funcionem juntas, o que é algo que os puristas costumam reclamar, mas eles não impedem que você interfira com outros protocolos)


3





Eu acho que é possível executar o TCP sobre o transporte IPX, se você quiser ir retro.


2



Você provavelmente está pensando sobre quando o IPX foi tunnelled sobre TCP / IP. Que, sem surpresa, não durou muito. - andygavin
tools.ietf.org/html/rfc1791 - GDR