Выбрать главу

Наконец, на прикладном уровне располагаются программы, подключающиеся к сети. У большинства сетевых приложений есть пользовательский интерфейс (например, у веб-браузеров). Впрочем, нас больше интересует та часть программы, которая непосредственно использует сеть. В случае веб-браузера это HTTP. На прикладном уровне работают также важные вспомогательные программы (например, DNS), используемые многими приложениями. Все это обеспечивает функционирование сети.

Последовательность глав нашей книги основана на этой модели. Таким образом, мы не упускаем из виду значение модели OSI для понимания архитектур сетей, но в основном сосредоточиваемся на протоколах, играющих важную практическую роль, начиная с TCP/IP и заканчивая более новыми — 802.11, SONET и Bluetooth.

11 Или уровня представления. — Примеч. ред.

1.7. Стандартизация

Внедрение инноваций в интернет-технологиях зависит как от самих технологий, так и от политических и юридических аспектов. Развитие интернет-протоколов обычно происходит посредством процесса стандартизации, о котором пойдет речь ниже.

1.7.1. Стандартизация и открытый исходный код

Существует множество разработчиков и поставщиков сетевых технологий, и каждый имеет свое представление о том, что и как делать. Без согласования наступил бы полный хаос и пользователи не смогли бы работать. Единственный способ решения этой проблемы — прийти к соглашению относительно сетевых стандартов. Хорошие стандарты не только позволяют различным компьютерам обмениваться информацией, но и расширяют рынок для соответствующих им продуктов. Наращивание рынка ведет к массовому производству, масштабной экономии при разработке, улучшению реализаций и другим преимуществам, снижающим цену и повышающим популярность продукта.

В этом разделе мы вкратце обсудим важный, но мало кому известный мир международной стандартизации. Но сначала поговорим о том, что содержит стандарт. Любой здравомыслящий человек предположил бы, что стандарт описывает, как должен работать протокол, чтобы можно было осуществить хорошую реализацию. И ошибся бы.

Стандарты описывают, что требуется для совместимости с другими продуктами — ни больше ни меньше. Это способствует расширению рынка и росту конкуренции между компаниями на основе качества программных продуктов. Например, стандарт 802.11 описывает несколько скоростей передачи данных. При этом он не указывает, при каких обстоятельствах отправитель должен использовать конкретную скорость, что является ключевым фактором для высокой производительности. Это решение отдается на откуп создателю продукта. Зачастую обеспечить совместимость при таком подходе непросто, ведь существуют разные стандарты, в которых описано множество способов реализации. Например, в случае 802.11 существует столько проблем, что отраслевая группа Wi-Fi Alliance приступила к работе над совместимостью внутри стандарта 802.11. Что касается программно-определяемых сетей, ONF (Open Networking Foundation) пытается разработать как стандарты, так и их реализации с открытым исходным кодом, чтобы гарантировать совместимость протоколов управления с программируемыми сетевыми коммутаторами.

Стандарт задает протокол передачи данных, но не внутренний интерфейс службы (разве что в качестве пояснений к протоколу). Существующие интерфейсы служб обычно защищены патентами. Например, для обмена информацией с удаленным хостом интерфейс между TCP и IP не имеет значения. Важно только то, что удаленный хост понимает TCP/IP. На самом деле TCP и IP часто реализуются вместе, без какого-либо четкого интерфейса между ними. Тем не менее хорошие интерфейсы служб, как и продуманные API (Application Programming Interfaces — программные интерфейсы приложений), важны для использования протоколов, а лучшие из них (например, сокеты Беркли) приобретают большую популярность.

Стандарты делятся на две категории: де-факто и де-юре. Стандарты де-факто (от лат. «фактически») просто возникают сами собой, без какого-либо предварительного плана. HTTP, составляющий основу интернета, появился в качестве стандарта де-факто. Он был включен в первые веб-браузеры, разработанные Тимом Бернерсом-Ли (Tim Berners-Lee) в ЦЕРН, и широко распространился с ростом интернета. Еще один пример — Bluetooth, разработанный компанией Ericsson и теперь используемый повсеместно.

Внедрение стандартов де-юре (от лат. «юридически», «согласно праву»), напротив, происходит на основе правил, описанных неким официальным комитетом стандартизации. Органы международной стандартизации делятся на два класса. Они либо создаются на основе межправительственного договора, либо входят в общественные организации, не связанные государственными соглашениями. В сфере стандартов сетей существует несколько организаций каждого типа, в частности ITU, ISO, IETF и IEEE, которые мы обсудим ниже.