O TCP deve usar IP?

104

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

É possível que TCP seja construído sobre outro protocolo além de IP ?

    
por Pacerier 16.07.2012 / 22:18

14 respostas

12

TCP e IP (v4 & 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 sobre 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 ), o IPv6 ( RFC 2460 ) e IPX ( RFC 1791 . Mas não é verdade em geral, por exemplo, não para transportadoras aviárias ( RFC 1149 ) (veja 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 essa questão , porque admite que deixa sua interface com a camada inferior em grande parte não especificada.

Note a) Para TCP remontar os 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 hosts da especificação de portadores de aves ( RFC 1149 ) incluiu tal camada de adaptação heurística, mas permanece sem documentação.

    
por 22.10.2015 / 19:29
88

Eu não li a RFC inteira, mas o idioma na seção 1.4 parece sugerir que qualquer nível "protocolo pode ser usado.

The interface between TCP and lower level protocol is essentially unspecified except that it is assumed there is a mechanism whereby the two levels can asynchronously pass information to each other. Typically, one expects the lower level protocol to specify this interface. TCP is designed to work in a very general environment of interconnected networks. The lower level protocol which is assumed throughout this document is the Internet Protocol.

    
por 16.07.2012 / 22:31
76

Internet Protocol Suite

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

O TCP / IP é frequentemente usado como uma forma abreviada de dizer " O Internet Protocol Suite " e geralmente inclui outro padrão protocolos. Quando as pessoas dizem TCP / IP, elas geralmente incluem UDP sobre IP (no qual o UDP é usado em vez do TCP) e muitos outros protocolos, como ARP, ICMP, DNS, SNMP e outros protocolos da camada de aplicativos.

Camada de Aplicação

Os aplicativos usam protocolos da camada de aplicativos, 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 houver outros, eu 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 global Tráfego IP

Camada entre redes

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 conectar múltiplas LANs)

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.

Apêndice1-Umanotasobreprotocolosdecamadadetransporte

OsúnicosprotocolosdecamadadetransporteemusosignificativoemredesqueusamoInternetProtocolSuitesãooTCPeoUDP.

†Apenaspordiversão,eumediotráfegoemminhaLAN(muito)pequena,queincluiNetBIOS(sobreTCP),SSH,Rsync,E-mail,atualizaçõesdesoftware,DNS,conversasgeraissobrecaixasdoWindowsealgunsoutrostiposdetráfego.

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

Why didn’t you build a whole new protocol, rather than using UDP? Middle boxes on the Internet today will generally block traffic unless it is TCP or UDP traffic

(minha ênfase)

    
por 16.07.2012 / 23:12
34

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 documento original por Vint Cerf e Bob Kahn, o 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 sendo muito parecido com IP. . Você poderia argumentar que extensões para IP (como o IPSec) são efetivamente protocolos alternativos da camada 3, então você vai lá.

    
por 17.07.2012 / 10:00
22

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 TCP acima deles, mas não há motivo para você não conseguir.

    
por 17.07.2012 / 04:43
8

TCP e IP são como manteiga em vez de pão.

Você pode emparelhar qualquer outra coisa que funcione com ambos os protocolos, mas esses dois são tão complementares que são apenas uma maneira confiável confiável para transferir dados e preencher 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?

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

    
por 17.07.2012 / 21:16
6

I have always heard that TCP is short for TCP/IP

Na verdade, significa Protocolo de Controle de Transmissão sobre Protocolo da Internet

and they mean the same thing.

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 telefônico ou sinais de trânsito. Ele fornece o controle básico de conectar dois pontos do sistema.

O

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

Em conjunto, o TCP / IP fornece um sistema confiável de transferência de dados de e para 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 que é responsável por pegar os dados e dividi-los, enviá-los, remontar os dados recebidos, verificar os dados e reenviá-los, se necessário.

Existem incontáveis explicações com analogias e detalhes técnicos disponíveis, especialmente em formato de vídeo . DifferenceBetween.net tem uma particularmente boa sobre este assunto assunto . p>

However, is it not possible for TCP to be built on top of another protocol besides IP?

Sim, você pode criar um sistema alternativo para TCP que use IP. Dê uma olhada no Internet Protocol Suite para obter alguns detalhes.

    
por 16.07.2012 / 22:36
5

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.

Desde que exista 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.

    
por 17.07.2012 / 02:05
3

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, essa rede os designers gostam de ter em mente ao criar e combinar protocolos).

Versão mais simples: os protocolos são como caixas nas quais 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 juntas e podem ser usadas juntas; mas pode muito bem ser usado com outros protocolos. Isso acontece com bastante frequência: você pode usar o 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 o seu sucesso .

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

    
por 17.07.2012 / 16:19
2

Acho que é possível executar o transporte TCP over IPX, se você quiser ser retro.

    
por 17.07.2012 / 18:41
2

However, is it not possible for TCP to be built on top of another protocol besides IP?

Além do clássico TCP / IPv4 e TCP / IPv6, alguns protocolos experimentais foram projetados, por exemplo:

Quase TCP sobre UDP (atou)

As part of our Net100 and Probe efforts in improving bulk transfers over high speed, high latency networks, we have developed an instrumented and tunable version of TCP that runs over UDP. The UDP TCP-like transport serves as a test-harness for experimenting with TCP-like controls at the application level similar to TReno.

E iproxy: executando serviços TCP em UDP , que é mais divertido:

iproxy comprises of a client-side proxy and a server-side proxy that allows arbitrary TCP/IP services to run over Broadcast, Multicast or Unicast UDP. It was originally conceived as a method to configure servers that had not been given an IP address on the LAN using an web-based interface.

Então você vê: TCP em UDP unicast, e até TCP em broadcast ou multicast UDP !

AFAIK apenas TCP / IPv4 e TCP / IPv6 desfrutam de uma grande implantação.

    
por 18.07.2012 / 04:50
2

A resposta é não! Por exemplo, há um RFC antigo descrevendo TCP sobre IPX: link

Para aqueles com memórias curtas, o IPX era o protocolo Novell Netware: link

    
por 18.07.2012 / 12:05
2

Implementações de TCP sobre vários protocolos que suportam o transporte de um datagrama básico já existem. Na verdade, a necessidade não é nem mesmo especificar as informações de roteamento (o TCP nem precisa de IP para trabalhar, apenas um link serilado com um destinatário implícito seria suficiente).

Então você tem TCP implementado no topo do UDP (vantagem: você usa uma única porta no lado do "servidor", ou você pode incorporá-lo em uma conexão existente transportando vários canais multiplexados). Somente o nível de IP fornece o roteamento, mas o TCP não precisa dele. Tudo o que importa é que o conceito de um MTU é fornecido pela camada inferior.

Isso permite que o protocolo ignore as limitações do NAT traversal, sem precisar registrar uma porta de tradução UPnP para um host específico. Permite o ajuste independente do MTU e do MSS, otimizado para cada cliente, em vez de cada roteador compartilhado intermediário. Outros protocolos de roteamento são possíveis (inclusive para a entrega via redes Multicast e broadcast). E você tem a escolha dos mecanismos de segurança.

Um exemplo de uso é Gogo6.net (que implementa seu canal de transporte IPv6 sobre uma sessão TCP usando uma reimplementação do TCP sobre UDP v4 (ele funciona na maioria dos roteadores de acesso doméstico que ainda têm um endereço IPv4 e nem sempre suportam o método UPnP, sem qualquer necessidade de configurá-lo por usuários usando um número de porta constante específico para o aplicativo, mesmo quando ele não estiver em execução)

Outros exemplos são encapsular TCP sobre HTTP (ou HTTPS) versão 1.1 com a extensão "streamed" nativa. A maioria das VPNs que permitem a conexão de redes pela Internet fará o mesmo. A ponte pode até mesmo encapsular vários protocolos: Ethernet, PPP, IPv4 e IPv6 (estendendo apenas o segmento LAN ou Ethernet local), NetBEUI / LanMan, descoberta de roteador (dentro da rede em ponte), inclusive no modo raw (permitindo DHCPv4 ou DHCPv6) a rede em ponte. O HTTPS é usado porque o encapsulamento via HTTPS também permite criptografia e autenticação para estabelecer e proteger a ponte, mas não exige autenticação / criptografia de ponta a ponta para clientes e servidores pela rede em ponte e porque os roteadores são altamente otimizados para HTTP e HTTPS.

    
por 18.07.2012 / 01:54
1

Existem exemplos de sistemas de comunicação nas forças armadas usando TCP, mas não IP, já que o caminho de comunicação é uma conexão de tipo serial que não é roteada através de roteadores, etc. Se você olhar para um pacote TCP antes dele Campos de IP, parece facilmente possível não usar IP se o protocolo de "roteamento" for diferente.

    
por 09.01.2013 / 00:18

Tags