Инкапсуляция и извлечение данных

Инкапсуляция и извлечение данных

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

Рассмотрим в качестве примера передачу содержимого файла с помощью протокола FTP (File Transfer Protocol — протокол передачи файлов) в сети Ethernet. При этом используется стек протоколов TCP/IP. Размер файла может превышать максимальный размер пакета данных, допустимый в TCP/IP или Ethernet. В этом случае содержимое файла должно быть разбито на несколько фрагментов. На различных уровнях стека протоколов к каждому из этих фрагментов добавляется заголовок и, возможно, суффикс (служебная информация, следующая за передаваемыми данными). Заголовок и суффикс содержат информацию, необходимую для того, чтобы система могла передавать и обрабатывать остальную часть пакета. Результат действий по инкапсуляции данных показан на рис. 3.2. На самом деле ситуация может быть более сложной. На некотором уровне стека протоколов пакет может быть разбит на несколько фрагментов меньшего размера, так, например, драйверы Ethernet могут разбить IP-пакет на два Ethernet-кадра. Подобные действия могут выполнять и маршрутизаторы. При этом заголовки IP, TCP и FTP, показанные на рис. 3.2, остаются в одном из кадров и не дублируются в другом кадре. Однако если на некотором уровне стека протоколов пакет разбивается на кадры, то на том же уровне стека на принимающем узле эти кадры обязательно объединяются в исходный пакет. Точно так же дело обстоит в том случае, если разбиение пакета выполнит маршрутизатор.

В зависимости от используемого стека протоколов и даже от состава стека, структура пакета может отличаться от представленной на рис. 3.2. Например, если для обмена данными используется Web-броузер, то вместо заголовка FTP, показанного на рис. 3.2, в составе пакета будет присутствовать заголовок HTTP. Если же для подключения компьютера к сети будут использованы сетевые карты и драйверы, отличные от Ethernet, то заголовок и суффикс Ethernet будут заменены на заголовок и суффикс, соответствующие другой сетевой технологии. Заметьте, что при передаче пакета из одной локальной сети в другую маршрутизатор реально выполняет подобную замену, т.е. удаляет существующие заголовок и суффикс и включает вместо них заголовок и суффикс другой сети. Такая процедура выполняется несколько раз за время перемещения пакета по Internet, но содержащиеся в составе пакета, доставляются в неизменном виде.

Рис. 3.2. При перемещении вниз по стеку протоколов исходные данные разбиваются на фрагменты. К каждому фрагменту добавляется служебная информация, обеспечивающая передачу пакета по сети и восстановление на принимающем узле исходных данных

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

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Инкапсуляция и С++

Из книги Сущность технологии СОМ. Библиотека программиста автора Бокс Дональд

Инкапсуляция и С++ Предположим, что вам удалось преодолеть проблемы с транслятором и компоновщиком, описанные в предыдущем разделе. Очередное препятствие при построении двоичных компонентов на C++ появится, когда вы будете проводить инкапсуляцию (encapsulation), то есть


Инкапсуляция

Из книги Как функции, не являющиеся методами, улучшают инкапсуляцию автора Мейерс Скотт

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


Инкапсуляция и функции – не члены

Из книги Информатика и информационные технологии: конспект лекций автора Цветкова А В

Инкапсуляция и функции – не члены Мы теперь видим, что приемлемый способом оценки инкапсуляции является количество функций, которые могли бы быть разрушены, если изменяется реализация класса. В этом случае становится ясно, что класс с n методами более инкапсулирован, чем


Минимальность и инкапсуляция

Из книги Информатика и информационные технологии автора Цветкова А В

Минимальность и инкапсуляция В "Эффективном использовании C++" (Effective C++), я приводил доводы в пользу интерфейсов класса, которые являются полными и минимальный [10]. Такие интерфейсы позволяют клиентам класса делать что-либо, что они могли бы предположительно хотеть делать,


34. Инкапсуляция

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю


Извлечение данных из объектов рисунка с помощью специального мастера

Из книги AutoCAD 2010 автора Орлов Андрей Александрович

Извлечение данных из объектов рисунка с помощью специального мастера Рассмотрим порядок работы с мастером извлечения данных.1. Запустите команду вставки таблицы в рисунок (допустим, что рисунок содержит некоторые объекты, атрибуты которых вы хотели бы внести в эту


Инкапсуляция

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

Инкапсуляция Первым принципом ООП является инкапсуляция. По сути, она означает возможность скрыть средствами языка несущественные детали реализации от пользователя объекта. Предположим, например, что мы используем класс DatabaseReader, который имеет два метода Open() и Close().//


Добавление и извлечение данных: стековая природа CIL

Из книги TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) автора Фейт Сидни М

Добавление и извлечение данных: стековая природа CIL Высокоуровневые языки .NET (например, такие как C#) пытаются максимально скрыть низкоуровневые сложности. Одним из аспектов разработки .NET, который оказывается скрытым особенно хорошо, является тот факт, что CIL является


Извлечение данных из объектов с помощью специального мастера

Из книги MySQL 5.0. Библиотека программиста автора Гольцман Виктор Иосифович

Извлечение данных из объектов с помощью специального мастера Рассмотрим порядок работы с мастером извлечения данных.1. Запустите команду вставки таблицы (допустим, что документ содержит некоторые объекты, атрибуты которых вы хотели бы внести в эту таблицу (рис. 4.54)).


Инкапсуляция действий со ссылками

Из книги Восстановление данных на 100% автора Ташков Петр Андреевич

Инкапсуляция действий со ссылками Теперь накоплено достаточно подтверждений того, что любая система моделирования и разработки ПО должна поддерживать понятие ссылки, а, следовательно, и динамические псевдонимы. Как теперь справиться с неприятными последствиями?


4.4. Извлечение данных из пакетов

Из книги Операционная система UNIX автора Робачевский Андрей М.

4.4. Извлечение данных из пакетов В соревнованиях по многоборью спортсмены сначала преодолевают один из участков вплавь, далее пересаживаются на велосипед и т.д. Протокол IP работает подобным же образом: датаграмма перемещается из одной среды передачи в другую (из одного


2.5. Извлечение данных из таблиц

Из книги Справка по SQL автора

2.5. Извлечение данных из таблиц Для получения информации из таблиц базы данных используются запросы – SQL-команды, начинающиеся с ключевого слова SELECT. В этом разделе вы познакомитесь со структурой запросов.Простые запросыЗнакомство с запросами начнем с наиболее простой


Извлечение данных из RAID-0

Из книги автора

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


Инкапсуляция IP

Из книги автора

Инкапсуляция IP При работе в локальной сети на базе технологии CSMA/CD возможны два варианта инкапсуляции датаграмм IP в кадры уровней LLC и MAC.Первый заключается в использовании кадров Ethernet 2.0. В этом случае поле данных (1500 октетов) полностью принадлежит IP-датаграмме, a SAP


Извлечение данных. Оператор SELECT

Из книги автора

Извлечение данных. Оператор SELECT Оператор SELECT Оператор SELECT осуществляет выборку из базы данных и имеет наиболее сложную структуру среди всех операторов языка SQL. Практически любой пользователь баз данных в состоянии написать простейший оператор SELECT типаSELECT * FROM