Não sou particularmente conhecedor da Internet, e as tecnologias de IoT são especialmente confusas para mim. Eu estava lendo este white paper de Stanford sobre estrutura da Internet. No diagrama 2, ele 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?
O sistema operacional importa?
(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.
networking
wifi
protocols
BestMillimeter
fonte
fonte
Respostas:
Existem alguns possíveis equívocos ou mal-entendidos na pergunta que serão abordados neste post.
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):
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:
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):
Do Internet Protocol Suite (Wikipedia):
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 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):
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
O conjunto de protocolos TCP / IP não é uma pilha de software. Da Technopedia :
Pelo contrário, é uma pilha de protocolos, geralmente implementada pelo kernel (também da Technopedia ):
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
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:
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 .
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
fonte
Para que algo seja trocado na internet, ele precisará passar por uma pilha de IP em algum lugar.
O protocolo IP é definido pelo RFC 791 , portanto o OS / Firmware precisa cumpri-lo, seja ele qual for.
Simplificando um pouco, a diferença aqui estará no sinal de rádio da camada 1 (físico) x sinal elétrico nos fios. Mais detalhes na página da wiki da Open Systems Interconnection model (modelo OSI) .
Todos eles servem para transpor a camada 3 (Rede), IP, no caso aqui, em seus meios específicos.
A Camada de Aplicação está relacionada a um protocolo de comunicação específico (HTTP, SSH, etc.), não precisa ser uma aplicação como Chrome ou Firefox, por exemplo.
Geralmente esses protocolos serão implementados sobre o TCP , alguns sobre o UDP quando há um desejo de não bloquear a espera do reconhecimento ou quando obter um pacote desatualizado não faz sentido (chamadas de voz, streaming). Existem outros protocolos da camada 4, mas geralmente para usos específicos, como o ICMP
ping
. O TCP é o protocolo de escolha quando você deseja garantir a chegada de alguns dados ao destino.Para um 'dispositivo remoto', como o termostato no seu exemplo, ele pode usar protocolos já existentes, como HTTP, ou usar um proprietário para enviar seus dados, que ainda estarão na camada de Aplicação, pois geralmente não será apenas um transporte. protocolo.
Isso pode ser feito apenas na camada 4, mas isso precisa criar um novo protocolo e a sobrecarga geralmente não vale a pena e torna o sistema incompatível com os outros. Usar padrões abertos é uma abordagem melhor na minha humilde opinião.
fonte
Embora seja verdade que qualquer dispositivo conectado à Internet use TCP / IP (ou UDP) para comunicação, é realmente o próximo nível na pilha em que as coisas ficam interessantes.
Qualquer dispositivo IoT moderno usará o TLS para fornecer criptografia e autenticação. Isso impede (em teoria) qualquer outra pessoa de observar ou interferir nas mensagens que estão sendo passadas. Uma consideração importante da pilha TCP / IP é que muitas das informações transmitidas podem ser observadas trivialmente - e isso geralmente leva muito facilmente a falhas de segurança.
Os dispositivos não precisam se conectar à Internet 'na fonte'; portanto, não é necessário implementar o TCP por bluetooth (como exemplo). Você também pode ver os dispositivos IoT usando protocolos de telefone celular (como SMS ou textos regulares) como seu salto final. Eventualmente, esses protocolos (selecionados de alguma forma para o ambiente instalado) provavelmente serão conectados à "Internet" por um dispositivo de hub.
fonte
Todos os dispositivos que desejam usar o TCP sobre IP precisam de uma pilha TCP / IP.
O protocolo é padronizado, para que dispositivos de diferentes fabricantes ou usando sistemas operacionais diferentes possam se entender.
Observe que o TCP garante que os pacotes de dados cheguem ou o remetente será notificado sobre sua perda. O TCP seria usado quando você não puder perder dados sem estar ciente deles (por exemplo, comunicação com seu banco).
Há também o UDP, que envia pacotes e "espera que eles cheguem lá". Isso pode ser usado, por exemplo, para streaming de música ou vídeo, onde a perda de alguns quadros não é fatal.
A parte importante é a padronização.
fonte
A pilha em si é um conceito virtual. Cada camada da pilha modifica os bits finais enviados pelo meio físico (ondas de rádio ou outros sinais eletrônicos). Não existe uma regra que diga que cada camada da pilha deve ser projetada em uma única unidade de código ou hardware discreto. Por exemplo, os chips iEthernet combinam as camadas TCP, IP, MAC e PHY, deixando aos desenvolvedores a tarefa de implementar o TLS e os aplicativos.
Dito isto, todos os bits devem estar em conformidade com os vários protocolos envolvidos e, por esse motivo, geralmente é mais fácil projetar cada camada como uma entidade separada, para que possam ser testados e verificados independentemente. A maioria dos dispositivos, incluindo smartphones, TVs inteligentes e consoles de jogos, normalmente compra seus chips de terceiros especializados em alguma área. Por exemplo, a maioria dos telefones usa apenas um dos poucos chips bluetooth diferentes; isso significa que o fabricante não precisa se preocupar em reinventar a roda com cada novo produto.
Em teoria, alguns dispositivos pequenos e especializados podem ter apenas um único processador com SoC (Software on Chip) incorporado que lida com todas as camadas da rede (aplicativo, TLS, TCP, IP, PHY) como uma única unidade de código discreta. Não consigo encontrar exemplos concretos agora, mas não me surpreenderia se alguns dispositivos de função pequenos, de baixo consumo de energia ou dedicados combinassem todas as camadas da pilha em uma única unidade para reduzir o consumo de energia (prolongar a vida útil da bateria). Produtos maiores e mais complicados, como televisores, telefones e sistemas de jogos, provavelmente têm pelo menos três camadas (aplicativo, sistema operacional e peças de hardware), enquanto uma torradeira pode ter apenas 1 ou 2 camadas.
Nota: Não estou dizendo que a torradeira específica que vinculei tenha 1 ou 2 camadas, mas seria lógico se fosse projetada dessa maneira, sendo um dispositivo de propósito único.
fonte