Принципы и понятия сетевой архитектуры, страница 2

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

Сетевые службы

Каждый сетевой уровень модели ISO/OSI обеспечивает определенный сервис для вышележащих уровней. Другими словами, вышележащий уровень полагается на функции выполняемые своим “соседом”. Каждый сетевой уровень, за исключением физического, добавляет функциональности предыдущему, расположенному ниже уровню. Набор свойств и функций, которым обладает определенный сетевой уровень, называется сетевой службой.

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

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

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

В рамках одной и той же сети для обеспечения одной и той же сетевой службы могут применяться различные методы передачи данных. Эти методы по-другому называются “режимы”. Другими словами, режим определяет, каким образом сетевая служба осуществляет операцию. В одном режиме сетевая служба может корректировать ошибки данных, а в другом — нет. Разработчики реализуют различные режимы в сетевых протоколах. Если вам нужно, чтобы сетевая служба выполнила операцию в определенном режиме, обратитесь к тому протоколу, который его обеспечивает. Например, если вашему приложению требуется коррекция ошибок, обратитесь к тому протоколу, который ее осуществляет. Другими словами, приложение должно использовать протокол с коррекцией ошибок в качестве режима сетевой службы. Если существующие протоколы не обеспечивают требуемый режим, вам придется написать собственный.

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

Сетевые службы, ориентированные на соединение

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