Existem alguns possíveis equívocos ou mal-entendidos na pergunta que serão abordados neste post.
No diagrama 2, mostra uma representação da "pilha" de software que um computador (PC) usaria para criar, processar e enviar uma mensagem, através da Internet, para outro computador
Todos os tipos de computadores - smartphones / TVs / consolas de jogos, etc. usam este formato?
(A este respeito) existe alguma diferença entre internet celular e Wifi / Ethernet?
E os dispositivos de função única que não parecem ter uma camada "Aplicativo" - por exemplo, câmera conectada à web, interruptores de luz ou termostatos.
A presença desses conceitos errôneos requer a inclusão de uma explicação do seguinte (a fim de fornecer contexto para a discussão subsequente):
- O que é a Internet
- O que é o conjunto de protocolos TCP / IP
- O que é uma aplicação
Em seguida, as perguntas serão abordadas diretamente.
Observe que, dada sua importância e complexidade, uma série inteira de livros foi escrita no conjunto de protocolos TCP / IP. As definições e explicações aqui serão extraídas principalmente da Wikipedia, TCP / IP Volume 1 ilustrado 1ª edição: Os protocolos de Stevens e Fall e do Tutorial TCP / IP e visão geral técnica da IBM .
1. A Internet
A Internet é tecnicamente um Wide Area Network (WAN) , mas uma maneira mais útil para pensar sobre isso é como uma espécie de SuperNetwork (uma rede de redes) ou um agregado de diversos inter- conectadas líquidas obras. Aqui está uma imagem dos caminhos de roteamento através de uma parte da Internet:
- A Internet consiste em muitas redes conectadas
- Uma rede pode consistir em 1 ou mais sistemas ( host )
- Um sistema conectado normalmente é executado em algum tipo de plataforma de hardware
- existe uma variação significativa nos tipos de sistemas conectados às redes e no hardware em que são executados
Uma leitura divertida sobre como a Internet funciona pode ser encontrada no artigo da Arstechnica: Como a Internet funciona: fibra submarina, cérebros em potes e cabos coaxiais .
Então, como diferentes sistemas em execução em diferentes plataformas de hardware conectadas a redes diferentes são capazes de se comunicar? Como é possível a comunicação entre uma variedade tão vasta e heterogênea de sistemas e redes? Como tudo isso pode acontecer simultaneamente?
2. O conjunto de protocolos da Internet
A resposta é fornecida pelo conjunto de protocolos da Internet, também conhecido como conjunto de protocolos TCP / IP. Essas questões foram consideradas durante o processo de design da arquitetura da Internet (TCP / IP ilustrado, seção 1.1: princípios arquitetônicos):
Vários objetivos orientaram a criação da arquitetura da Internet. Em [C88], Clark relata que o objetivo principal era “desenvolver uma técnica eficaz para a utilização multiplexada das redes interconectadas existentes”. A essência dessa afirmação é que a arquitetura da Internet deve ser capaz de interconectar várias redes distintas e que várias atividades devem poder executar simultaneamente na rede interconectada resultante .
Do Internet Protocol Suite (Wikipedia):
O conjunto de protocolos da Internet é o modelo conceitual e o conjunto de protocolos de comunicação usados na Internet e em redes de computadores similares.
O conjunto de protocolos da Internet fornece comunicação de dados de ponta a ponta, especificando como os dados devem ser empacotados, endereçados, transmitidos, roteados e recebidos . Essa funcionalidade é organizada em quatro camadas de abstração, usadas para classificar todos os protocolos relacionados de acordo com o escopo da rede envolvida.
Uma maneira de pensar no conjunto de protocolos TCP / IP é como uma especificação de como os processos executados em diferentes sistemas e redes diferentes podem se comunicar. Em essência, o conjunto de protocolos TCP / IP fornece um padrão para comunicação entre processos.
Qualquer sistema que implemente corretamente o conjunto de protocolos TCP / IP pode usar a funcionalidade que fornece para permitir que seus processos se comuniquem pela Internet. De fato, para que os processos se comuniquem pela Internet com outros processos executados em sistemas remotos em outras redes, um sistema deve utilizar protocolos de conjunto de TCP / IP compatíveis com os padrões.
3. Aplicações
Do software de aplicação (Wikipedia):
Um programa de aplicativo (aplicativo ou aplicativo para abreviar) é um programa de computador projetado para executar um grupo de funções, tarefas ou atividades coordenadas para o benefício do usuário. Exemplos de um aplicativo incluem um processador de texto, uma planilha, um aplicativo de contabilidade, um navegador da web, um media player, um simulador de vôo aeronáutico, um jogo de console ou um editor de fotos. O software de aplicativo substantivo coletivo refere-se a todos os aplicativos coletivamente. Isso contrasta com o software do sistema, que está principalmente envolvido na execução do computador.
Um aplicativo pode ser pensado como um processo de espaço do usuário em execução em um sistema. Além dos exemplos listados acima, isso pode incluir programas como vírus de computador (modo não-kernel), servidores da Web, aplicativos de câmera e programas de agregação de dados de sensores.
Quando um aplicativo transmite e recebe dados pela Internet, deve utilizar a implementação do conjunto de protocolos TCP / IP do sistema host. Na camada Aplicativo (Wikipedia):
No TCP / IP, a camada de aplicativo contém os protocolos de comunicação e os métodos de interface usados nas comunicações processo a processo através de uma rede de computadores IP. A camada de aplicativo padroniza apenas a comunicação e depende dos protocolos subjacentes da camada de transporte para estabelecer canais de transferência de dados host a host e gerenciar a troca de dados em um modelo de rede cliente-servidor ou ponto a ponto.
A camada de aplicativo do conjunto de protocolos TCP / IP inclui protocolos como FTP (File Transfer Protocol), DNS (Domain Name System) e provavelmente o mais famoso protocolo de transferência de hipertexto (HTTP).
Como exemplo, o protocolo da camada de aplicativos HTTP especifica como os dados são transmitidos entre 2 processos em execução em (geralmente) sistemas diferentes: o aplicativo cliente, um navegador da web e o aplicativo do servidor, o processo do servidor da web.
Esclarecimento de possíveis equívocos
No diagrama 2, ele mostra uma representação da "pilha" de software que um computador (PC) usaria para criar, processar e enviar uma mensagem, pela Internet, para outro computador.
O conjunto de protocolos TCP / IP não é uma pilha de software. Da Technopedia :
Uma pilha de software é um grupo de programas que trabalham em conjunto para produzir um resultado ou atingir um objetivo comum. A pilha de software também se refere a qualquer conjunto de aplicativos que funcione em uma ordem específica e definida em direção a um objetivo comum, ou a qualquer grupo de utilitários ou aplicativos de rotina que funcionem como um conjunto. Arquivos instaláveis, definições de software de produtos e patches podem ser incluídos em uma pilha de software. Uma das mais populares pilhas de software baseadas em Linux é o LAMP (Linux, Apache, MYSQL, Perl ou PHP ou Python). O WINS (Windows Server, Internet Explorer, .NET, SQL Server) é uma pilha de software popular baseada em Windows.
Pelo contrário, é uma pilha de protocolos, geralmente implementada pelo kernel (também da Technopedia ):
Uma pilha de protocolos refere-se a um grupo de protocolos que são executados simultaneamente e são empregados para a implementação do conjunto de protocolos de rede.
Os protocolos em uma pilha determinam as regras de interconectividade para um modelo de rede em camadas, como nos modelos OSI ou TCP / IP. Para se tornar uma pilha, os protocolos devem ser interoperáveis, podendo conectar-se verticalmente entre as camadas da rede e horizontalmente entre os pontos finais de cada segmento de transmissão.
Todos os tipos de computadores - smartphones / TVs / consolas de jogos, etc. usam este formato ?
O conjunto de protocolos TCP / IP é uma especificação de comunicação independente de hardware e sistema operacional, não um formato . Se um processo em execução em uma plataforma de hardware precisar se comunicar com um processo em execução em um sistema remoto em uma plataforma de hardware diferente e a comunicação ocorrer pela Internet, os sistemas deverão
- implementar corretamente o conjunto de protocolos TCP / IP e
- os protocolos apropriados nesse conjunto devem ser usados para realizar a comunicação entre processos
(A este respeito) existe alguma diferença entre internet celular e Wifi / Ethernet?
Minha interpretação desta pergunta é "Existe alguma diferença na maneira como um dispositivo móvel se conecta a uma rede GSM e na maneira como um dispositivo móvel se conecta a uma rede WiFi?"
A diferença está na camada da interface de rede.
Esta pergunta expõe a má representação do conjunto de protocolos TCP / IP no diagrama no artigo vinculado na pergunta. Para referência, aqui está o diagrama:
A camada mais baixa, chamada de "hardware", deve ser chamada de camada de link , camada de controle de acesso à mídia (MAC) ou camada de interface de rede .
Na página "Visão geral técnica e técnica do TCP / IP" da IBM 34:
A camada da interface de rede, também chamada camada de link ou camada de link de dados, é a interface para o hardware de rede real. Essa interface pode ou não fornecer uma entrega confiável e pode ser orientada por pacotes ou fluxos. De fato, o TCP / IP não especifica nenhum protocolo aqui, mas pode usar quase qualquer interface de rede disponível, o que ilustra a flexibilidade da camada IP. Exemplos são IEEE 802.2, X.25 (que é confiável por si só), ATM, FDDI e até SNA.
Aqui está uma representação correta e superior (do Guia TCP / IP ):
A razão pela qual a discussão sobre a camada da interface de rede é relevante é que é nessa camada que há uma diferença na maneira como um dispositivo celular / móvel se conecta a uma rede GSM versus uma rede WiFi.
ao conectar-se a uma rede GSM, o protocolo da camada de interface de rede empregado para lidar com a conexão entre o dispositivo móvel e a estação base do transceptor (BTS) é normalmente especificado por 3G
ao conectar-se a um ponto de acesso sem fio WiFi (WAP), o protocolo usado é especificado pelo padrão IEEE 802.11 .
E os dispositivos de função única que não parecem ter uma camada "Aplicativo" - por exemplo, câmera conectada à Web, interruptores de luz ou termostatos
Conforme descrito anteriormente, os protocolos na camada de aplicativos do conjunto de protocolos TCP / IP fornecem um padrão para a troca de dados de aplicativos entre processos.
As camadas são conceituais. Eles não residem em um sistema ou em uma plataforma de hardware.
As câmeras, interruptores de luz e termostatos conectados à Web podem ter processos em execução neles que se comunicam pela Internet com processos em sistemas remotos (verificação de atualizações de firmware, troca de dados com um servidor etc.). Esses processos, ou aplicativos, utilizarão a implementação do conjunto de protocolos TCP / IP para realizar essa comunicação entre processos.
O conjunto de protocolos TCP / IP e os Sistemas Incorporados ("IoT")
Embora haja uma variedade de aplicativos diferentes utilizando diferentes protocolos da camada de aplicativos em execução em PCs ou servidores tradicionais, não há muita variação em termos de como as plataformas de hardware se conectam aos seus respectivos pontos de acesso (interface de rede / camada de enlace de dados). É realizado principalmente com ou sem fio via Ethernet.
A situação é um pouco diferente quando se trata da grande variedade de sistemas embarcados que se comunicam via TCP / IP. Aqui está uma ilustração disso (do Postscapes ):
Para mais informações, consulte estes artigos:
Compreendendo os protocolos atrás da Internet das coisas
Padrões e protocolos de IoT
Guia da tecnologia da Internet das coisas