В этом вопросе будут рассмотрены некоторые потенциальные заблуждения или недоразумения.
На диаграмме 2 показано представление «стека» программного обеспечения, которое компьютер (ПК) будет использовать для создания, обработки и отправки сообщения через Интернет на другой компьютер.
Все ли типы компьютеров - смартфоны / телевизоры / игровые приставки и т. Д. Используют этот формат?
(В связи с этим) есть ли разница между сотовым интернетом и Wifi / Ethernet?
А как насчет однофункциональных устройств, которые, по-видимому, не имеют слоя «Application» - например, веб-камера, световые переключатели или термостаты?
Наличие этих заблуждений требует включения объяснения следующего (чтобы обеспечить контекст для последующего обсуждения):
- Что такое интернет
- Что такое набор протоколов TCP / IP
- Что такое приложение
Тогда вопросы будут адресованы напрямую.
Обратите внимание, что с учетом их важности и сложности, целый ряд книг был написан на основе набора протоколов TCP / IP. Определения и пояснения здесь будут взяты в основном из Википедии, Иллюстрированного тома TCP / IP, том 1, второе издание: «Протоколы » Стивенса и Фолла, а также Учебное и техническое руководство IBM по TCP / IP .
1. Интернет
Интернет является технически глобальной сети (WAN) , но более полезный способ думать это как своего рода supernetwork (сети сетей) или совокупность различных взаимосвязанных соединенных чистых работ. Вот изображение путей маршрутизации через часть Интернета:
- Интернет состоит из множества подключенных сетей
- Сеть может состоять из 1 или более систем ( хост )
- Подключенная система обычно работает на некоторой аппаратной платформе
- существует значительная разница в типах систем, подключенных к сетям, и оборудовании, на котором они работают
Интересное прочтение о том, как работает Интернет, можно найти в статье Arstechnica. Как работает Интернет: подводное волокно, мозги в банках и коаксиальные кабели .
Итак, как разные системы, работающие на разных аппаратных платформах, подключенных к разным сетям, могут взаимодействовать друг с другом? Как возможна связь между таким огромным, неоднородным набором систем и сетей? Как все это может происходить одновременно?
2. Интернет-протокол
Ответ предоставляется набором протоколов Интернета, также известным как набор протоколов TCP / IP. Эти вопросы были рассмотрены в процессе проектирования архитектуры Интернета (Иллюстрированный TCP / IP, раздел 1.1: Архитектурные принципы):
Несколько целей руководствовались созданием интернет-архитектуры. В [C88] Кларк рассказывает, что основная цель состояла в том, чтобы «разработать эффективный метод для мультиплексного использования существующих взаимосвязанных сетей». Суть этого утверждения заключается в том, что архитектура Интернета должна быть способна соединять несколько различных сетей, и что несколько действий должны иметь возможность работать одновременно в полученной взаимосвязанной сети .
Из пакета интернет-протокола (Википедия):
Набор протоколов Интернета - это концептуальная модель и набор протоколов связи, используемых в Интернете и аналогичных компьютерных сетях.
Пакет интернет-протоколов обеспечивает сквозную передачу данных, определяя, как данные должны быть пакетированы, адресованы, переданы, направлены и получены . Эта функциональность организована в четыре уровня абстракции, которые используются для сортировки всех связанных протоколов в соответствии с областью применения сети.
Один из способов представить набор протоколов TCP / IP - это спецификация того, как процессы, работающие в разных системах и в разных сетях, могут взаимодействовать друг с другом. По сути, набор протоколов TCP / IP обеспечивает стандарт для межпроцессного взаимодействия.
Любая система, которая правильно реализует набор протоколов TCP / IP, может использовать предоставляемые ею функциональные возможности, чтобы позволить своим процессам обмениваться данными через Интернет. Фактически, чтобы процессы могли обмениваться данными через Интернет с другими процессами, запущенными на удаленных системах в других сетях, система должна использовать совместимые со стандартами протоколы набора TCP / IP.
3. Приложения
Из прикладного программного обеспечения (Википедия):
Прикладная программа (сокращенно приложение или приложение) - это компьютерная программа, предназначенная для выполнения группы скоординированных функций, задач или действий на благо пользователя. Примеры приложения включают в себя текстовый процессор, электронную таблицу, бухгалтерское приложение, веб-браузер, медиаплеер, авиационный симулятор полета, консольную игру или редактор фотографий. Коллективное прикладное программное обеспечение существительного относится ко всем приложениям вместе. Это контрастирует с системным программным обеспечением, которое в основном связано с работой компьютера.
Приложение может рассматриваться как процесс пользовательского пространства, работающий в системе. В дополнение к приведенным выше примерам это может включать такие программы, как (не в режиме ядра) компьютерные вирусы, веб-серверы, приложения для камер и программы агрегации данных датчиков.
Когда приложение передает и получает данные через Интернет, оно должно использовать реализацию пакета протоколов TCP / IP своей хост-системы. Из прикладного уровня (Википедия):
В TCP / IP прикладной уровень содержит протоколы связи и методы интерфейса, используемые при межпроцессном обмене данными по компьютерной сети Интернет-протокола (IP). Прикладной уровень только стандартизирует связь и зависит от базовых протоколов транспортного уровня для установления каналов передачи данных между хостами и управления обменом данными в модели клиент-сервер или одноранговой сети.
Прикладной уровень набора протоколов TCP / IP включает в себя такие протоколы, как протокол передачи файлов (FTP), система доменных имен (DNS) и, возможно, наиболее известный протокол передачи гипертекста (HTTP).
Например, протокол HTTP уровня приложения указывает, как данные передаются между двумя процессами, работающими (обычно) в разных системах: клиентском приложении, веб-браузере и серверном приложении, процесс веб-сервера.
Разъяснение потенциальных заблуждений
На диаграмме 2 показано представление «стека» программного обеспечения, которое компьютер (ПК) будет использовать для создания, обработки и отправки сообщения через Интернет на другой компьютер.
Набор протоколов TCP / IP не является программным стеком. Из Технопедии :
Программный стек - это группа программ, которые работают в тандеме для получения результата или достижения общей цели. Программный стек также относится к любому набору приложений, которые работают в определенном и определенном порядке для достижения общей цели, или к любой группе утилит или рутинных приложений, которые работают как набор. Устанавливаемые файлы, программные определения продуктов и исправлений могут быть включены в программный стек. Одним из популярных программных стеков на основе Linux является LAMP (Linux, Apache, MYSQL, Perl или PHP или Python). WINS (Windows Server, Internet Explorer, .NET, SQL Server) - это популярный программный стек на базе Windows.
Скорее, это стек протоколов, обычно реализуемый ядром (также из Technopedia ):
Стек протоколов относится к группе протоколов, которые выполняются одновременно и которые используются для реализации набора сетевых протоколов.
Протоколы в стеке определяют правила взаимодействия для многоуровневой сетевой модели, например, в моделях OSI или TCP / IP. Чтобы стать стеком, протоколы должны быть совместимыми и иметь возможность соединяться как вертикально между уровнями сети, так и горизонтально между конечными точками каждого сегмента передачи.
Все ли типы компьютеров - смартфоны / телевизоры / игровые приставки и т. Д. Используют этот формат ?
Набор протоколов TCP / IP - это независимая от оборудования и операционной системы спецификация связи, а не формат . Если процесс, работающий на одной аппаратной платформе, должен взаимодействовать с процессом, работающим в удаленной системе на другой аппаратной платформе, и связь осуществляется через Интернет, то системы должны
- правильно реализовать набор протоколов TCP / IP и
- соответствующие протоколы в этом наборе должны использоваться для обеспечения межпроцессного взаимодействия
(В связи с этим) есть ли разница между сотовым интернетом и Wifi / Ethernet?
Моя интерпретация этого вопроса такова: «Есть ли разница в том, как мобильное устройство подключается к сети GSM, и в способе, которым мобильное устройство подключается к сети WiFi?»
Разница заключается в уровне сетевого интерфейса.
Этот вопрос показывает плохое описание набора протоколов TCP / IP на диаграмме в статье, на которую ссылается этот вопрос. Для справки вот схема:
Самый нижний уровень, называемый «аппаратным обеспечением», должен называться канальным уровнем , уровнем управления доступом к среде (MAC) или уровнем сетевого интерфейса .
Из IBM "Учебное пособие и технический обзор по TCP / IP" стр. 34:
Уровень сетевого интерфейса, также называемый канальным уровнем или канальным уровнем, является интерфейсом для реального сетевого оборудования. Этот интерфейс может обеспечивать или не обеспечивать надежную доставку и может быть ориентирован на пакет или поток. Фактически, TCP / IP не определяет здесь какой-либо протокол, но может использовать практически любой доступный сетевой интерфейс, что иллюстрирует гибкость уровня IP. Примерами являются IEEE 802.2, X.25 (который сам по себе надежен), ATM, FDDI и даже SNA.
Вот правильное и превосходное изображение (из Руководства по TCP / IP ):
Причина, по которой обсуждение уровня сетевого интерфейса является релевантным, заключается в том, что именно на этом уровне существует различие в способе подключения сотового / мобильного устройства к сети GSM по сравнению с сетью WiFi.
при подключении к сети GSM протокол уровня сетевого интерфейса, используемый для обработки соединения между мобильным устройством и базовой приемопередающей станцией (BTS), обычно определяется 3G
при подключении к беспроводной точке доступа WiFi (WAP) используемый протокол определяется стандартом IEEE 802.11 .
А как насчет однофункциональных устройств, которые, по-видимому, не имеют слоя «Приложения» - например, веб-камера, выключатели света или термостаты?
Как описано ранее, протоколы на уровне приложений набора протоколов TCP / IP обеспечивают стандарт для обмена данными приложений между процессами.
Слои являются концептуальными. Они не находятся в системе или на аппаратной платформе.
На подключенных к сети камерах, выключателях освещения и термостатах могут быть запущены процессы, которые обмениваются данными через Интернет с процессами, запущенными в удаленных системах (проверка обновлений прошивки, обмен данными с сервером и т. Д.). Эти процессы или приложения будут использовать реализацию набора протоколов TCP / IP для осуществления этого межпроцессного взаимодействия.
Набор протоколов TCP / IP и встроенные системы («IoT»)
Хотя существует множество различных приложений, использующих разные протоколы прикладного уровня, работающие на традиционных ПК или серверах, не так много различий в том, как аппаратные платформы подключаются к своим соответствующим точкам доступа (сетевой интерфейс / канальный уровень). Это в основном выполняется проводной или беспроводной через Ethernet.
Ситуация несколько иная, когда речь идет о большом разнообразии встроенных систем, которые взаимодействуют через TCP / IP. Вот иллюстрация этого (из Postscapes ):
Для получения дополнительной информации см. Эти статьи:
Понимание протоколов в интернете вещей
Стандарты и протоколы IoT
Руководство по технологии IoT