Интернет: как это работает

Часть 3. TCP/IP и модель OSI

Александр Прохоров

В предыдущих частях статьи мы ввели понятие стека протокола TCP/IP как многоуровневой структуры, совокупности протоколов. Для лучшего понимания взаимодействия уровней в стеке протоколов следует обратиться к справочной модели OSI (Open Systems Interconnection model) — модели взаимодействия открытых систем, которая служит для задания определенных рамок при разработке системы протоколов. OSI-модель была разработана международной организацией ISO (International Organization for Standardization), поэтому иногда ее обозначают как ISO/OSI.

В этой части статьи мы рассмотрим соответствие между стеком протокола TCP/IP и многоуровневой моделью OSI, что поможет лучше понять модель работы стека TCP/IP.

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

Прикладной уровень получает сообщение от некоторого приложения А, запущенного на компьютере 1, обрабатывает эту информацию и добавляет заголовок. Сформировав заголовок, прикладной уровень направляет сообщение вниз по стеку уровню представления данных. Постепенно сообщение обрастает дополнительными заголовками. Сеть передает пакеты от уровня к уровню, и на каждом уровне к сообщению добавляется некоторая дополнительная служебная информация. Таким образом, сообщение состоит из данных (полезной информации) и заголовка (служебной информации). Заголовок содержит информацию, которую необходимо передать соответствующему уровню машины-адресата, чтобы сообщить ему, какую работу он должен выполнить. После того как сообщение поступает на машину-адресат, оно перемещается вверх с уровня на уровень. Каждый уровень обрабатывает свой заголовок, выполняет определенные действия и удаляет соответствующий заголовок.

При передаче сообщения через промежуточный узел (маршрутизатор) происходит обработка заголовков трех уровней — до сетевого (рис. 2). Именно на сетевом уровне производится обработка адресов и маршрутизация.

На рисунках показан основной механизм передачи данных по иерархии протоколов, который называют инкапсуляцией; данные инкапсулируются в пакет следующего уровня (то есть дополняются соответствующими заголовками). Но процесс фрагментации пакетов на рисунках не отражен. Необходимо иметь в виду, что во всех стеках существуют протоколы, отвечающие за фрагментацию сообщения прикладного уровня на блоки, которые укладываются в кадры канального уровня. Например, в стеке TCP/IP эту процедуру выполняет TCP, который нарезает поток байтов, поступающий с прикладного уровня, на пакеты нужного размера. Перед отправкой TCP-пакеты помещаются в оболочку IP-пакетов. Если же в каком-либо месте Сети необходимы более мелкие пакеты, то IP-пакеты могут дополнительно фрагментироваться и затем вновь объединяться в блоки данных TCP. Условно верхние уровни OSI (приложения и представления данных) можно отнести к функциям взаимодействия с приложением, а более низкие уровни — к функциям связи (табл. 1).

А теперь перейдем к описанию уровней OSI.

Прикладной уровень (7) определяет, как приложения взаимодействуют друг с другом. К этому уровню относится набор протоколов, с помощью которых пользователи получают доступ к разделяемым ресурсам: файлам, Web-страницам, сообщениям электронной почты и др. (например, FTP, SMTP, HTTP, Telnet).

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

Сеансовый уровень (5) отвечает за установление, поддержку и прекращение связи между приложениями, работающими в разных частях Сети. Он восстанавливает аварийно оконченные сеансы.

Транспортный уровень (4) обеспечивает приложениям верхнего уровня (сеансовому и прикладному) передачу данных с необходимой степенью надежности. Данный уровень контролирует поток данных, который проходит по маршруту, определенному сетевым уровнем, проверяет правильность передачи блоков данных, правильность доставки в нужный пункт назначения, комплектность, сохранность, порядок следования.

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

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

Физический уровень (1) включает физические аспекты передачи двоичной информации по линии связи. Этот уровень имеет дело с передачей битов по различным физическим каналам связи: витая пара, коаксиальный кабель, оптоволокно и т.п., описывает природу передающей среды (напряжения, частоты и т.д.). Безошибочность здесь желательна, но не обязательна.

Стек протоколов TCP/IP не имеет строгого соответствия семиуровневой структуре OSI и состоит только из четырех уровней, которые тесно коррелируют с уровнями эталонной модели OSI (табл. 2).

Уровень обработки протокола предоставляет протоколы для удаленного доступа (например, Telnet, FTP, SMTP, HTTP и др.).

Уровень взаимодействия хост-компьютеров тесно связан с транспортным и сеансовым уровнями эталонной модели OSI. Этот уровень обеспечивает передачу данных между хост-компьютерами. TCP-протокол (его описание было дано в предыдущих частях данной статьи) является протоколом данного уровня и поддерживает надежную передачу данных: осуществляет управление потоком данных, производит контроль ошибок и переупорядочивает пакеты данных в случае необходимости.

Межсетевой уровень отвечает за маршрутизацию данных внутри Сети и между различными сетями. Маршрутизация пакетов осуществляется на основе протокола IP, который используется для отправки данных из одной сети в другую. Протокол осуществляет проверку IP-пакета на наличие ошибок, но не обеспечивает их восстановления. Таким образом, доставка пакета этим уровнем не гарантируется. IP-протокол не ожидает подтверждения получения отправленных пакетов от узла адресата, эти функции берет на себя более высокий уровень стека. Каждый IP-пакет содержит IP-адрес отправителя и получателя, а также целый ряд другой служебной информации (например, каждый IP-пакет имеет информацию о времени своего существования). Очевидно, что IP-пакет не может путешествовать по Сети вечно и по истечении определенного числа ретрансляций должен уничтожаться. В поле данных IP-пакета находятся сообщения более высокого уровня, в частности TCP.

Уровень доступа к Сети соответствует канальному и физическому уровням в структуре OSI.

КомпьютерПресс 8'2002

1999 1 2 3 4 5 6 7 8 9 10 11 12
2000 1 2 3 4 5 6 7 8 9 10 11 12
2001 1 2 3 4 5 6 7 8 9 10 11 12
2002 1 2 3 4 5 6 7 8 9 10 11 12
2003 1 2 3 4 5 6 7 8 9 10 11 12
2004 1 2 3 4 5 6 7 8 9 10 11 12
2005 1 2 3 4 5 6 7 8 9 10 11 12
2006 1 2 3 4 5 6 7 8 9 10 11 12
2007 1 2 3 4 5 6 7 8 9 10 11 12
2008 1 2 3 4 5 6 7 8 9 10 11 12
2009 1 2 3 4 5 6 7 8 9 10 11 12
2010 1 2 3 4 5 6 7 8 9 10 11 12
2011 1 2 3 4 5 6 7 8 9 10 11 12
2012 1 2 3 4 5 6 7 8 9 10 11 12
2013 1 2 3 4 5 6 7 8 9 10 11 12
Популярные статьи
КомпьютерПресс использует