Читаем Linux API. Исчерпывающее руководство полностью

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

Рис. 54.2.Протоколы семейства TCP/IP

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

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

Это важный аспект многоуровневого сетевого протокола. Пример инкапсуляции протоколов семейства TCP/IP показан на рис. 54.4. Ключевая идея заключается в том, что при поступлении с более высокого уровня информация (например, данные программы, TCP-сегмент или IP-датаграмма) никак не интерпретируется, а просто помещается в пакет того типа, который используется в текущем протоколе, маркируется соответствующим заголовком и передается на уровень ниже. При переходе снизу вверх происходит обратный процесс: данные распаковываются.

На рис. 54.4 этого не видно, но принцип инкапсуляции распространяется на канальный уровень, где IP-датаграммы упаковываются в так называемые сетевые кадры. То же самое можно сказать и об уровне приложения, где данные могут быть упакованы каким-то особым образом.

Рис. 54.3.Многоуровневое взаимодействие на основе протоколов TCP/IP

Рис. 54.4.Инкапсуляция на разных уровнях TCP/IP

54.3. Канальный уровень

Самым низким уровнем на рис. 54.2 является канальный; он состоит из драйвера устройства и физического интерфейса (сетевой карты), соединенного с реальными сетевыми коммуникациями (например, с телефонным проводом, коаксиальным или оптическим кабелем). Этот уровень предназначен для физической передачи данных внутри сети.

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

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

Одной из особенностей канального уровня, играющей важную роль в понимании протокола IP, является максимальный размер передаваемого блока информации (англ. maximum transmission unit, MTU). В настоящем контексте это максимальный размер кадра. Данное значение может отличаться в разных протоколах канального уровня.

Команда netstat — i выводит список сетевых интерфейсов в системе, включая их MTU.

54.4. Сетевой уровень: IP

Над канальными протоколами находится сетевой уровень, который занимается доставкой пакетов (данных) от исходного узла к конечному. Этот уровень выполняет целый ряд разных задач, включая следующие:

• разбиение данных на небольшие фрагменты, подходящие для передачи через канальный уровень (если нужно);

• маршрутизацию данных по интерсети;

• вспомогательные функции для транспортного уровня.

В стеке TCP/IP основным протоколом является сетевой уровень IP. Реализация IP, которая появилась в системе 4.2BSD, имела версию 4 (IPv4). В начале 1990-х была разработана новая, шестая версия данного протокола (IPv6). Наиболее заметная разница между ними заключается в том, что для определения подсетей и узлов в IPv4 используются 32-разрядные адреса, а в IPv6 — 128-разрядные (это делает доступным куда более широкий диапазон адресов). IPv4 все еще преобладает на просторах Интернета, однако в ближайшие несколько лет он должен быть вытеснен протоколом IPv6. Обе версии IP поддерживают транспортные протоколы более высокого уровня, в том числе TCP и UDP.

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных