Немного больше о том, что составляет объединенную сеть (internetwork). Мы знаем, что интерсеть образуется путем объединения нескольких сетей. С нашей точки зрения, объединение локальной и глобальной сети или объединение двух локальных сетей — обычный способ образования интерсети, однако в индустрии нет единого мнения по поводу терминологии в данной области. Существует два мнемонических правила. Первое — если создание и поддержку сети оплачивают разные организации, то мы имеем дело с интерсетью, а не единой сетью. Второе — если работа основана на применении нескольких технологий (например, широковещательная в одной ее части и двухузловая в другой), то, вероятно, это интерсеть.
Чтобы пойти глубже, мы должны поговорить о том, как могут быть соединены две различных сети. Общее название машины, которая обеспечивает соединение между двумя или более сетями и обеспечивает необходимый перевод, с точки зрения как аппаратного, так и программного обеспечения, это шлюз. Шлюзы различаются по уровням, в которых они работают в иерархии протокола. Начиная со следующего раздела, мы расскажем об уровнях и иерархиях протокола намного больше, но пока предположим, что более высокие уровни более привязаны к приложениям, таким как Web, а нижние уровни более привязаны к каналам передачи, таким как Ethernet.
Так как польза от формирования Интернета — в соединении компьютеров через сети, мы не хотим использовать слишком низкоуровневый шлюз, иначе будем неспособны делать соединения между различными видами сетей. Мы не хотим использовать и слишком высокоуровневый шлюз, иначе соединение будет работать лишь с некоторыми приложениями. Уровень в середине, который нам «в самый раз», часто называют сетевым уровнем, и маршрутизатор является шлюзом, который обрабатывает пакеты на сетевом уровне. Теперь мы можем определить интерсеть, как сеть, у которой есть маршрутизаторы.
1.3. Сетевое программное обеспечение
Когда собирались первые сети, то основное внимание уделялось аппаратуре, а вопросы программного обеспечения откладывались на будущее. Подобная стратегия больше не работает. Сегодняшнее сетевое программное обеспечение в высокой степени структурировано. В следующих разделах мы узнаем, как осуществляется эта структуризация. Описанный подход является краеугольным камнем всей книги и будет часто встречаться и далее.
1.3.1. Иерархия протоколов
Для упрощения структуры большинство сетей организуются в наборы уровней или слоев, каждый последующий возводится над предыдущим. Количество уровней, их названия, содержание и назначение разнятся от сети к сети. Однако во всех сетях целью каждого уровня является предоставление неких сервисов для вышестоящих уровней. При этом от них скрываются детали реализации предоставляемого сервиса.
Такая концепция не нова и используется в вычислительной технике уже давно. Ее вариации известны как сокрытие информации, абстрактные типы данных, свойство инкапсуляции и объектно-ориентированное программирование. Фундаментальной идеей является предоставление неким программным или аппаратным уровнем сервисов своим пользователям без раскрытия деталей своего внутреннего состояния и подробностей алгоритмов.
Уровень n одной машины поддерживает связь с уровнем n другой машины. Правила и соглашения, используемые в данном общении, называются протоколом уровня n. По сути, протокол является договоренностью общающихся сторон о том, как должно происходить общение. По аналогии, когда женщину представляют мужчине, она может протянуть ему свою руку. Он, в свою очередь, может принять решение либо пожать, либо поцеловать эту руку, в зависимости от того, является ли эта женщина американским адвокатом на деловой встрече или же европейской принцессой на официальном балу. Нарушение протокола создаст затруднения в общении, а может и вовсе сделает общение невозможным.
На рис. 1.11 показана пятиуровневая сеть. Объекты, включающие в себя соответствующие уровни на разных машинах, называются равноранговыми или равноправными узлами сети. Именно они общаются при помощи протокола.
В действительности, данные не пересылаются с уровня