É verdade que TCP é uma abreviação de TCP / IP e significa a mesma coisa?
É possível que o TCP seja construído sobre outro protocolo além do IP ?
É verdade que TCP é uma abreviação de TCP / IP e significa a mesma coisa?
É possível que o TCP seja construído sobre outro protocolo além do IP ?
Respostas:
TCP e IP (v4 e v6) são definitivamente separáveis, e um não implica o outro, como comprovado pelo exemplo de TCP sobre IPX ( RFC 1791 ).
No entanto, o TCP não pode ser construído sobre qualquer protocolo de rede. Duas razões:
A especificação TCP, RFC 793 , não é uma boa fonte para decidir esta questão, pois admite que deixa sua interface com a camada inferior em grande parte não especificada.
Nota a) Para o TCP remontar datagramas impressos em pequenas folhas de papel (transportadas por pombos ou por uma rede corvid mais inteligente), o tamanho da carga útil teria que ser escrito em um local padrão. Como alternativa, uma camada de adaptação pode determinar heuristicamente o tamanho do segmento. O scanner óptico usado na implementação da pilha host das especificações das transportadoras aviárias ( RFC 1149 ) incluiu uma camada de adaptação heurística, mas permanece sem documentos.
Eu não li a RFC inteira, mas o idioma na seção 1.4 parece sugerir que qualquer protocolo de "nível inferior" possa ser usado.
A interface entre o TCP e o protocolo de nível inferior é essencialmente não especificada, exceto que se supõe que exista um mecanismo pelo qual os dois níveis possam transmitir informações de forma assíncrona. Normalmente, espera-se que o protocolo de nível inferior especifique essa interface. O TCP foi projetado para funcionar em um ambiente muito geral de redes interconectadas. O protocolo de nível inferior assumido neste documento é o Protocolo da Internet.
TCP não é abreviação de TCP / IP.
O TCP / IP é frequentemente 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 (no qual UDP é usado em vez de TCP) e muitos outros protocolos como ARP, ICMP, DNS, SNMP e outros protocolos da camada de aplicação.
Os aplicativos usam protocolos da camada de aplicativos, como SMTP (para email). Eles estão em um dos dois protocolos da camada de transporte - TCP e UDP. Alguns protocolos da camada de aplicação usarão um ou ambos UDP e TCP, mas a maioria é usada com apenas um protocolo da camada de transporte.
TCP e UDP são dois protocolos da camada de transporte usados no Internet Protocol Suite. Se existem outros que não os conheço e outros representariam um uso especializado muito pequeno. Outros protocolos da camada de transporte foram definidos - seu uso provavelmente representa apenas uma pequena proporção do tráfego IP global †
Embora possa ser teoricamente possível usar o TCP em algo que não seja o IP, na prática o TCP é sempre usado sobre o IP - o Protocolo da Internet. O IP move pacotes entre redes (pense no IP como conectando várias LANs)
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 ATM e outros.
Os únicos protocolos da camada de transporte em uso significativo em redes que usam o Internet Protocol Suite são TCP e UDP.
† Apenas por diversão, medi o tráfego na minha LAN (muito) pequena, que inclui NetBIOS (sobre TCP), SSH, Rsync, E-mail, atualizações de software, DNS, conversas gerais na caixa do Windows e alguns outros tipos de tráfego.
Observe também esta declaração nas perguntas frequentes do Google para o protocolo QUIC
Por que você não construiu um protocolo totalmente novo, em vez de usar o UDP? Hoje, as caixas intermediárias da Internet geralmente bloqueiam o tráfego, a menos que seja tráfego TCP ou UDP
(minha ênfase)
A razão pela qual 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 depois, eles foram divididos em IP para fornecer roteamento e TCP para fornecer controle de fluxo, multiplexação, detecção de erros etc. Somente seis anos depois 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, pois ele pode ser executado sem modificação no IPv4 e no IPv6, que são dois protocolos completamente diferentes.
Com um pouco de trabalho, você poderia criar um protocolo concorrente para IP que atendesse aos mesmos propósitos, mas provavelmente teria que conter a maioria, senão todos os mesmos recursos, e provavelmente acabaria parecendo muito com IP de qualquer maneira. Você poderia argumentar que as extensões ao IP (como IPSec) são efetivamente protocolos alternativos da camada 3, e pronto.
Você pode substituir o IP por outra coisa. Na verdade, é exatamente isso que você faz quando usa o TCP sobre 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á razão para que você não possa.
TCP e IP são como manteiga sobre pão.
Você pode emparelhar qualquer outra coisa que funcione com qualquer um dos protocolos, mas esses dois são tão complementares que é apenas uma maneira confiável e agradável de transferir dados e encher a barriga com dados da Internet. Lubrifica o tubo para permitir que outros alimentos secos e handshake de dados também apóiem esse emparelhamento. Mas de forma alguma é exclusivo.
P 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 pombo do TCP sem IP.
Eu sempre ouvi dizer que TCP é a abreviação de TCP / IP
Na verdade, significa Transmission Control Protocol over Internet Protocol
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 no IP como um sistema telefônico ou sinais de trânsito. Ele fornece o controle básico de conectar o sistema dois pontos juntos.
Por outro lado, o TCP é mais como um sistema de mensagens ou um oficial de controle de tráfego que direciona as mensagens / carros para o ponto correto.
Tomados em conjunto, o TCP / IP, fornece um sistema de transferência confiável 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 a conexão real do hardware com os fios (ou ondas sem fio). A parte TCP do sistema é o software responsável por coletar e decompor os dados, enviá-los, remontar os dados recebidos e verificar os dados e reenviá-los, se necessário.
Existem inúmeras explicações com analogias e detalhes técnicos disponíveis, especialmente na forma de vídeo . A DiferençaBetween.net tem uma opinião particularmente boa sobre esse assunto exato .
No entanto, não é possível que o TCP seja construído sobre outro protocolo além do IP?
Sim, você pode realmente criar um sistema alternativo para o TCP que use IP. Dê uma olhada no Internet Protocol Suite para obter alguns detalhes.
> 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 ao TCP". No entanto, mostrar que existem alternativas ao TCP não implica necessariamente nem sugere que existem alternativas ao IP.
TCP é um protocolo de 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 / outro computador.
IP é um protocolo de camada 3. Ele fornece transporte de um host para outro.
Contanto que exista um protocolo que possa hospedar a transferência de dados host, o TCP funcionará.
Portanto, o TCP pode ser implementado em qualquer protocolo, mas apenas fizemos o IP. IP é simples e faz o trabalho.
Não há necessidade de outro protocolo da camada 3.
Ao projetar uma rede, você deve 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 designers de rede gostam) lembre-se de 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, depois a menor em uma caixa um pouco maior, etc. Escolher um conjunto de protocolos é escolher que tipo de caixas você usará para cada " camada "que envolve sua mensagem.
TCP e IP são protocolos para duas camadas independentes, criadas em conjunto e que podem ser usadas em conjunto; 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 a chave para seu sucesso .
(O TCP e o IP têm algumas funcionalidades que foram projetadas especificamente para que funcionem juntas, o que é algo que os puristas costumam reclamar, mas na verdade não impedem que você as interfira com outros protocolos)
Eu acho que é possível executar o transporte TCP sobre IPX, se você quiser se tornar retro.
No entanto, não é possível que o TCP seja construído sobre outro protocolo além do IP?
Além dos clássicos TCP / IPv4 e TCP / IPv6, alguns protocolos experimentais foram projetados, por exemplo:
Como parte de nossos esforços Net100 e Probe para melhorar as transferências em massa em redes de alta velocidade e alta latência, desenvolvemos uma versão instrumentada e ajustável do TCP que é executada em UDP. O transporte UDP do tipo TCP serve como um recurso de teste para experimentar controles do tipo TCP no nível do aplicativo semelhante ao TReno.
E iproxy: executando serviços TCP em UDP , o que é mais divertido:
O iproxy é composto por um proxy do lado do cliente e um proxy do lado do servidor que permite que serviços TCP / IP arbitrários sejam executados sobre Broadcast, Multicast ou Unicast UDP. Foi originalmente concebido como um método para configurar servidores que não receberam um endereço IP na LAN usando uma interface baseada na Web.
Então você vê: TCP no UDP unicast e até TCP no UDP broadcast ou multicast !
Somente o AFAIK TCP / IPv4 e TCP / IPv6 desfrutam de uma grande implantação.
A resposta é não! Por exemplo, há uma RFC antiga que descreve o TCP sobre IPX: http://tools.ietf.org/html/rfc1791
Para aqueles com pouca memória, o IPX era o protocolo Novell Netware: http://en.wikipedia.org/wiki/Internetwork_Packet_Exchange
Já existem implementações de TCP sobre vários protocolos que suportam o transporte de um datagrama básico. De fato, nem é necessário especificar as informações de roteamento (o TCP nem precisa de IP para trabalhar, apenas um link serila com um destinatário implícito seria suficiente).
Portanto, você tem o TCP implementado no topo do UDP (vantagem: você usa uma única porta no lado do "servidor" ou 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 MTU seja fornecido pela camada inferior.
Isso permite que o protocolo ignore as limitações da passagem NAT, sem a necessidade de registrar uma porta de conversão UPnP para um host específico. Ele permite o ajuste independente do MTU e MSS, otimizado para cada cliente, e não por cada roteador compartilhado intermediário. Outros protocolos de roteamento são possíveis (inclusive para entrega via multicast e redes de broadcast). E você tem a escolha dos mecanismos de segurança.
Um exemplo de uso é o Gogo6.net (que implementa seu canal de transporte IPv6 em uma sessão TCP usando uma reimplementação do TCP sobre UDP v4 (funciona na maioria dos roteadores de acesso doméstico que ainda possuem apenas um endereço IPv4 e nem sempre suportam o método UPnP ; sem a necessidade de configurá-lo pelos usuários usando um número de porta constante específico para o aplicativo, mesmo quando não estiver em execução)
Outros exemplos são encapsular a versão 1.1 do TCP sobre HTTP (ou HTTPS) com sua extensão "transmitida" nativa. A maioria das VPNs que permitem a conexão de redes pela Internet fará o mesmo. A ponte pode até 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 bruto (permitindo DHCPv4 ou DHCPv6) em a rede em ponte. O HTTPS é usado porque o encapsulamento por HTTPS também permite criptografia e autenticação para estabelecer e proteger a ponte, mas não requer autenticação / criptografia de ponta a ponta para clientes e servidores na rede em ponte e porque os roteadores são altamente otimizados para HTTP e HTTPS.
Existem exemplos de sistemas de comunicação nas forças armadas usando TCP, mas não IP, pois o caminho de comunicação é uma conexão do tipo serial que não é roteada através de roteadores, etc. Se você observar o pacote TCP antes de encabeçar com campos IP, parece facilmente possível não usar IP se o seu protocolo de "roteamento" for diferente.