Стек tcp ip инкапсуляция данных. Инкапсуляция пакетов и промежуточные узлы

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

  • процесс передает сообщение к UDP в соответствии с парой гнездовых адресов и длины данных;
  • UDP получает данные, дополненные заголовком UDP;
  • UDP передает пользовательскую дейтаграмму к IP с гнездовым адресом;
  • IP дополняет свой заголовок, который использует значение 17 в поле протокола, указывающее, что данные поступили от UDP-протокола;
  • IP-дейтаграмма дополняет и добавляет собственный заголовок (при необходимости и окончание) и передает его к физическому уровню;
  • физический уровень кодирует биты в электрические или оптические сигналы и посылает их отдалённой машине.

См. также

Ссылки

  • Стратегии межсетевого взаимодействия: инкапсуляция (туннелирование) протоколов

Wikimedia Foundation . 2010 .

Смотреть что такое "Инкапсуляция (компьютерные сети)" в других словарях:

    У этого термина существуют и другие значения, см. Туннелирование. Туннелирование (от англ. tunnelling проложение туннеля) в компьютерных сетях процесс, в ходе которого создается защищенное логическое соединение между двумя конечными… … Википедия

    - (лат. in в, capsula коробочка; итал. incapsulare закупоривать) 1. Изоляция, закрытие чего либо мешающего, ненужного, вредного с целью исключения отрицательного влияния на окружающее. (Поместить радиоактивные отходы в капсулу, закрыть… … Википедия

    Инкапсуляция в компьютерных сетях это метод построения модульных cетевых протоколов, при котором логически независимые функции сети абстрагируются от нижележащих механизмов путём включения или инкапсулирования в более высокоуровневые объекты.… … Википедия

    Инкапсуляция (биология) Инкапсуляция (базы данных) Инкапсуляция (программирование) Инкапсуляция (компьютерные сети) Инкапсуляция (химия) … Википедия

    В компьютерных сетях и телекоммуникациях, Псевдопроводная технология (pseudo wire) обеспечивает эмуляцию традиционных сервисов по сетям с коммутацией пакетов. Псевдопроводная технология позволяет прозрачно передавать ATM, Frame relay, Ethernet,… … Википедия

    Сеть хранения данных, СХД (англ. Storage Area Network, SAN) представляет собой архитектурное решение для подключения внешних устройств хранения данных, таких как дисковые массивы, ленточные библиотеки, оптические приводы к серверам… … Википедия

    Технология VPN (англ. Virtual Private Network … Википедия

    VPN (англ. Virtual Private Network виртуальная частная сеть) логическая сеть, создаваемая поверх другой сети, например Интернет. Несмотря на то, что коммуникации осуществляются по публичным сетям с использованием небезопасных протоколов, за счёт… … Википедия

    Под межсетевым взаимодействием понимается взаимодействие вычислительных машин в неоднородной (гетерогенной) сети. Использование разных аппаратных и программных компонентов в гетерогенной сети ведет к проблеме обеспечения межсетевого… … Википедия

Открытая система

Уровни модели и их функции

Идеи и построение модели

Вопрос 19. Модель OSI

5. Модель и четыре уровня стека протоколов TCP/IP

В начале 1980-х гг. ряд международных организаций по стандартизации - ISO, ITU-T и некоторые другие - разработали модель, которая сыграла значительную роль в развитии сетей. Эта модель называется моделью взаимодействия открытых систем (Open System Interconnection, OSI), или моделью OSI. Модель OSI определяет различные уровни взаимодействия систем в сетях с коммутацией пакетов, дает им стандартные имена и указывает, какие функции должен выполнять каждый уровень. Модель представляет собой универсальный стандарт на взаимодействие двух систем (компьютеров) через вычислительную сеть.

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

Модель OSI описывает функции семи иерархических уровней и интерфейсы взаимодействия между ними. Каждый уровень определяется сервисом, который он предоставляет вышестоящему уровню, и протоколом - набором правил и форматов данных для взаимодействия объектов одного уровня, работающих на разных компьютерах. Объекты, выполняющие функции уровней, могут быть реализованы в:

ü программном;

ü программно-аппаратном;

ü аппаратном виде.

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

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

2. В модели OSI средства взаимодействия делятся на семь уров ней (перечислены в направлении сверху вниз): 1

ü прикладной уровень (application layer) обеспечивает работу сетевых приложений, с которыми имеют дело пользователи, например электронную почту, передачу файлов, регистрацию и т. п.;

ü представительный уровень (presentation layer) содержит общие структуры данных (на этом уровне происходит согласование представления данных прикладных процессов);



ü сеансовый уровень (session layer) осуществляет аутентификацию, и проверку полномочий, а также обеспечивает постоянное соединение между сетевыми приложениями;

ü транспортный уровень (transport layer) обеспечивает получение данных точно в том виде, в каком они были посланы;

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

ü канальный уровень (data link layer) обеспечивает корректный прием и передачу пакетов в пределах однородной физической сети;

ü физический уровень (physical layer) задает физические параметры сети, например уровни напряжения, типы кабелей, контакты интерфейсов.

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

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

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

4. При продвижении пакета с данными прикладного процесса по уровням сверху вниз каждый новый уровень добавляет к пакету свою служебную информацию в виде заголовка и, возможно, окончания (трейлера) - информации, помещаемой в конец сообщения. Эта операция называется инкапсуляцией данных верхнего уровня в пакет нижнего уровня. Служебная информация предназначается для объекта того же уровня на удаленном компьютере, ее формат и интерпретация определяются протоколом данного уровня. Данные, приходящие с верхнего уровня, могут представлять собой пакеты с уже инкапсулированными данными еще более верхнего уровня.

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

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

Протоколы, основанные на модели OSI. используются редко:

В силу своей не всегда оправданной сложности;

Поэтому модель OSI - опорная база для классификации и сопоставления протокольных стеков.

5. TCP/IP - собирательное название для стека сетевых протоке разных уровней, используемых в Internet. Особенности TCP/IP:

ü открытые стандарты протоколов, разрабатываемые независимо от программного и аппаратного обеспечения;

ü независимость от физической среды передачи;

ü система уникальной адресации;

ü стандартизованные протоколы высокого уровня для распространенных пользовательских сервисов.

Стек протоколов TCP/IP делится на четыре уровня:

ü прикладной (application). Приложения, работающие со стеком TCP/IP, могут также выполнять функции уровней представления и частично сеансового модели OSI. Распространенными примерами приложений являются программы telnet, ftp, WWW-серверы и клиенты (Интернет-браузеры), программы работы с электронной почтой. Для пересылки данных через сеть другому приложению оно обращается к тому или иному модулю транспортного уровня;

ü транспортный (transport ). Протоколы данного уровня обеспечивают прозрачную (сквозную) доставку данных между двумя прикладными процессами. Для передачи и получения данных, отправляемых друг другу, они используют межсетевой уровень. На транспортном уровне работают два основных протокола:

· TCP (Transmission Control Protocol ) - надежный протокол с установлением соединения: он управляет логическим сеансом связи (устанавливает, поддерживает и закрывает соединение) между процессами и обеспечивает надежную (безошибочную и гарантированную) доставку прикладных данных от процесса к процессу;

· UDP (User Datagram Protocol ) - протокол дейтаграмм пользователя - является ненадежным протоколом без установления соединения: это значит, что ни логический сеанс связи, ни надежная доставка прикладных данных этим протоколом не обеспечиваются. Фактически UDP не предоставляет никаких услуг, кроме мультиплексирования пакетов с прикладными данными - то есть направления данных тому или иному приложению в зависимости от номера порта. Услугами UDP пользуются, например, доменная система имен (DNS), сетевая файловая система NFS;

ü сетевой (межсетевой, или Internet ). Основным протоколом этого уровня является протокол IP (Internet Protocol). Этот протокол является центром, вокруг которого строится весь стек TCP/IP.

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

ü уровень доступа к сети (network access), который выполняет следующие функции:

ü отображение IP-адресов в физические адреса сети. Эту функцию выполняет протокол разрешения адресов ARP (Address Resolution Protocol);

ü инкапсуляция IP-дейтаграмм в кадры для передачи по физическому каналу и извлечение дейтаграмм из кадров. При этом не требуется какого-либо контроля безошибочности передачи, поскольку в стеке TCP/IP такой контроль возложен на транспортный уровень или на само приложение;

ü определение метода доступа к среде передачи, то есть cпoсоба, с помощью которого компьютер устанавливает своё право на произведение передачи данных;

ü определение представления (кодирования) данных в физической среде;

ü пересылка и прием кадра.

Часто в качестве уровня доступа к сети выступают целые протокольные стеки; тогда говорят об IP поверх ATM, IP поверх IPX и т. д.

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

При работе в локальной сети на базе технологии CSMA/CD возможны два варианта инкапсуляции датаграмм IP в кадры уровней LLC и MAC.

Первый заключается в использовании кадров Ethernet 2.0. В этом случае поле данных (1500 октетов) полностью принадлежит IP-датаграмме, a SAP адресуется полем "тип пакета", которое содержит значение параметра Ethertype - индекса протокола верхнего уровня. В случае IP это значение равно 0x0800. Значения Ethertype для других протоколов приведены в табл. 6.11.

Таблица 6.11 . Значение Ethertype для некоторых протоколов

Второй вариант предполагает использование формата IEEE 802.3. В этом случае IP-датаграмма инкапсулируется в кадр LLC, а адресация SAP осуществляется в заголовке SNAP с помощью идентификатора Ethertype. При этом поля DSAP и SSAP не используются, и их значения устанавливаются равными 0xAA. Заметим, что в этом случае максимальный размер IP-датаграммы составляет 1492 октета.

При передаче данных TCP/IP в сетях Token Ring используется формат кадра IEEE 802.5, инкапсулирующий кадр LLC с заголовком SNAP, как описано выше.

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

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

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

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

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

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

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

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

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

автора Реймонд Эрик Стивен

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

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

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

Инкапсуляция на основе методов чтения и модификации Давайте снова вернемся к рассмотрению нашего класса Employee. Чтобы "внешний мир" мог взаимодействовать с частным полем данных fullName, традиции велят определить средства чтения (метод get) и модификации (метод set). Например://

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

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

Из книги Сетевые средства Linux автора Смит Родерик В.

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

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

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

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

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

24.5.4 Инкапсуляция защищенной полезной нагрузки Заголовок инкапсуляции защищенной полезной нагрузки протокола IP (IP Encapsulating Security Payload) применяется как для режима транспорта, так и для режима туннеля.Формат этого заголовка показан на рис. 24.8. Получатель использует индекс SPI

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

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

Введение

Из рисунка 1.4 видно, что основная задача канального уровня в семействе протоколов TCP/IP - посылать и принимать (1) IP датаграммы для IP модуля, (2) ARP запросы и отклики для ARP модуля, и (3) RARP запросы и отклики для RARP модуля. TCP/IP поддерживает различные канальные уровни, в зависимости от того какой тип сетевого аппаратного обеспечения используется: Ethernet, Token ring, FDDI (Fiber Distributed Data Interface), последовательные линии RS-232, и так далее.

В этой главе мы подробно рассмотрим канальный уровень Ethernet, два специализированных канальных уровня для последовательных интерфейсов (SLIP и PPP) и драйвер loopback, который присутствует практически во всех реализациях. Ethernet и SLIP это канальные уровни, используемые для большинства примеров в данной книге. Также мы рассмотрим максимальный блок передачи (MTU - Maximum Transmission Unit), который является характеристикой канального уровня и к которой мы обращаемся много раз в этой главе и в следующих. Также мы покажем некоторые расчеты, с помощью которых можно выбрать MTU для последовательной линии.

Ethernet и IEEE 802 инкапсуляция

Термин Ethernet обычно означает стандарт, опубликованный в 1982 году компаниями Digital Equipment Corp., Intel Corp., и Xerox Corp. В настоящее время это основная технология применяемая в локальных сетях использующих TCP/IP. В Ethernet используется метод доступа, называемый CSMA/CD, что обозначает наличие несущей (Carrier Sense), множественный доступ (Multiple Access) с определением коллизий (Collision Detection). Обмен осуществляется со скоростью 10 Мбит/сек, с использованием 48-битных адресов.

Несколько лет спустя Комитет 802 Института инженеров по электротехнике и радиоэлектронике ( IEEE - Institute of Electrical and Electronics Engineers) опубликовал отличающийся набор стандартов. 802.3 описывает полный набор сетей CSMA/CD, 802.4 описывает сети с передачей маркера и 802.5 описывает сети Token ring. Общим для всех них является стандарт 802.2, который определяет управление логическим каналом ( LLC - Logical link control) и который является общим для большинства сетей 802. К сожалению, комбинация 802.2 и 802.3 определяет форматы фрейма отличные от Ethernet ( описывает все детали стандартов IEEE 802).

В мире TCP/IP инкапсуляция IP датаграмм определена в RFC 894 для сетей Ethernet и в RFC 1042 для сетей IEEE 802. В Host Requirements RFC к каждому компьютеру, подключенному к Internet через кабель Ethernet 10 Мбит/сек, предъявляются следующие требования:

  1. Компьютер должен иметь возможность посылать и получать пакеты, инкапсулированные с использованием RFC 894 (Ethernet).
  2. У компьютера должна быть возможность получать пакеты RFC 1042 (IEEE 802), перемешанные с пакетами RFC 894.
  3. Компьютер должен иметь возможность посылать пакеты с использованием инкапсуляции RFC 1042. Если компьютер может посылать оба типа пакетов, то тип пакета должен быть конфигурируемым, а конфигурация по умолчанию должна быть настроена на пакеты RFC 894.

Наиболее широко используется инкапсуляция RFC 894. На рисунке 2.1 показаны два различных метода инкапсуляции. Цифры под каждым квадратиком на рисунке это размер в байтах.

В обоих форматах фрейма используется 48-битовый (6-байтовый) формат представления адресов источника и назначения (802.3 позволяет использование 16-битных адресов, однако обычно используются 48-битные). Это как раз то, что мы называем по тексту аппаратными адресами (hardware addresses). Протоколы ARP и RARP (см. и ) устанавливают соответствие между 32-битными IP адресами и 48-битными аппаратными адресами.

Следующие 2 байта в этих форматах фрейма различаются. Поле длины (length) 802 содержит количество следующих за ним байтов, однако не содержит в конце контрольной суммы. Поле тип (type) в Ethernet определяет тип данных, которые следуют за ним. Во фрейме 802 то же поле типа (type) появляется позже в заголовке протокола доступа к подсети (SNAP - Sub-Network Access Protocol). К счастью, величины, находящиеся в поле длины (length) 802, никогда не совпадают с величинами, находящимися в поле типа (type) Ethernet, поэтому эти два формата фрейма легко различимы.

Во фрейме Ethernet данные следуют сразу после поля тип (type), тогда как во фрейме 802 за ним следуют 3 байта LLC 802.2 и 5 байт SNAP 802.2. Поля DSAP (точка доступа к сервису назначения - Destination Service Access Point) и SSAP (точка доступа к сервису источника - Source Service Access Point) оба установлены в 0xAA. Поле ctrl установлено в 3. Следующие 3 байта, org code установлены в 0. Затем идет 2-байтовое поле тип (type), такое же, как мы видели в формате фрейма Ethernet (дополнительные значения, которые могут появиться в поле типа, описаны в RFC 1340 ).

Поле контрольной суммы ( CRC) определяет ошибки, возникшие при транспортировке фрейма (также оно иногда называется FCS или последовательность контроля фрейма - frame check sequence).

Минимальный размер фреймов 802.3 и Ethernet требует, чтобы размер данных был хотя бы 38 байт для 802.3 или 46 байт для Ethernet. Чтобы удовлетворить этому требованию, иногда вставляются байты заполнения, для того чтобы фрейм был соответствующей длины.

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

Рисунок 2.1 Инкапсуляция IEEE 802.2/802.3 (RFC 1042) и инкапсуляция Ethernet (RFC 894).

Инкапсуляция завершителей

На рисунке 2.5 приведен список некоторых типичных значений MTU, взятых из RFC 1191 . Здесь приведены MTU для каналов точка-точка (таких как SLIP или PPP), однако они не являются физической характеристикой среды передачи. Это логическое ограничение, при соблюдении которого обеспечивается адекватное время отклика при диалоговом использовании. В разделе главы 2 мы рассмотрим, откуда берется это ограничение.

В разделе главы 3 мы воспользуемся командой netstat, чтобы определить MTU для определенного интерфейса.

Network

MTU (байты)

Hyperchannel
16 Мбит/сек Token ring (IBM)
4 Мбит/сек Token ring (IEEE 802.5)
FDDI
Ethernet
IEEE 802.3/802.2
X.25
Точка-точка (с маленькой задержкой)

Рисунок 2.5 Типичные значения максимальных блоков передачи (MTU).

Транспортный MTU

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

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

RFC 1191 описывает механизм определения транспортного MTU (path MTU discovery mechanism). Мы рассмотрим как функционирует этот механизм после того, как опишем фрагментацию ICMP и IP. В разделе главы 11 мы подробно рассмотрим ошибку недоступности ICMP, которая используется в этом механизме, а в разделе главы 11 мы покажем версию программы traceroute, которая использует механизм определения транспортного MTU до пункта назначения. В разделах главы 11 и главы 24 показано, как функционируют UDP и TCP, когда реализация поддерживает определение MTU.

Вычисление загруженности последовательной линии

Если скорость в линии составляет 9600 бит/сек, при этом 1 байт составляет 8 бит плюс 1 старт-бит и 1 стоп-бит, скорость линии будет 960 байт/сек. Передача пакета размером 1024 байта с этой скоростью займет 1066 мс. Если мы используем SLIP канал для диалогового приложения и одновременно с ним работает такое приложение как FTP, которое посылает или принимает пакеты по 1024 байт, мы должны ждать, так как среднее время задержки нашего интерактивного пакета составит 533 мс.

Это означает, что наш диалоговый пакет будет послан по каналу перед любым другим "большим" пакетом. Большинство SLIP приложений предоставляют разделение пакетов по типу сервиса, отправляя диалоговый трафик перед трафиком передачи данных. Диалоговый трафик это, как правило, Telnet, Rlogin и управляющая часть (пользовательские команды, но не данные) FTP.

Естественно, что такое разделение по сервисам несовершенно. Оно не оказывает никакого воздействия на неинтерактивный трафик, который уже поставлен в очередь на передачу (например, последовательным драйвером). Новые модели модемов, которые имеют большие буферы и позволяют сбуферизировать неинтерактивный трафик в буфере модема, что также сказывается на задержке диалогового трафика.

Ожидание в 533 мс неприемлемо для диалогового ответа. С точки зрения человеческого фактора мы знаем, что неприемлемой является задержка дольше чем 100-200 мс [ Jacobson 1990a]. Под задержкой подразумевается время между отправкой пакета и возвращением отклика (как правило, эхо символа).

Уменьшение MTU в канале SLIP до 256 означает, что максимальное время, в течение которого канал может быть занят одним фреймом, составляет 266 мс, и половина от этого (наше среднее время ожидания) составляет 133 мс. Это лучше, однако до сих пор не идеально. Причина, по которой мы выбрали это значение (как сравниваются 64 и 128), заключается в том, чтобы обеспечить лучшее использование канала для передачи данных (как, например, при передаче большого файла). В случае CSLIP фрейма размером 261 байт с заголовком размером в 5 байт (256 байт данных), 98,1% линии используются для передачи данных и 1,9% на заголовки. Уменьшение MTU меньше чем 256 уменьшает максимальное значение пропускной способности линии, которую мы можем получить при передаче данных.

Значение MTU равное 296 для канала точка-точка (рисунок 2.5), подразумевает 256 байт данных и 40 байт TCP и IP заголовков. Так как MTU это величина, о которой IP узнает от канального уровня, это значение должно включать в себя стандартные заголовки TCP и IP. Именно таким образом IP принимает решение о фрагментации. IP ничего не знает о сжатии заголовков, которое осуществляются CSLIP.

Наш расчет средней задержки (половина того времени, которое требуется на передачу фрейма максимального размера) имеет отношение только к каналу SLIP (или каналу PPP), который используется для передачи интерактивного трафика и трафика данных. Когда идет обмен только интерактивным трафиком, время передачи одного байта данных в каждом направлении (в случае сжатого 5-байтового заголовка) составляет примерно 12,5 мс, при скорости 9600 бит/сек. Это хорошо укладывается в диапазон 100-200 мс, о котором мы упоминали ранее. Также заметьте, что сжатие заголовков с 40 до 5 байт уменьшает время задержки для одного байта с 85 до 12,5 мс.

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

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

Краткие выводы

В этой главе рассматривался самый нижний уровень из семейства протоколов Internet, канальный уровень. Мы рассмотрели различие между Ethernet и IEEE 802.2/802.3 инкапсуляциями, и инкапсуляцию, которая используется в SLIP и PPP. Так как оба SLIP и PPP часто используются на медленных каналах, они предоставляют методы, для сжатия общих полей (которые практически всегда неизменны). При этом улучшается время отклика.

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

Мы описали важную характеристику большинства канальных уровней, MTU и соответствующую концепцию транспортного MTU. Используя стандартный MTU для последовательных линий, мы вычислили временную задержку, которая существует в каналах SLIP и CSLIP.

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

Упражнения

Если Ваша система поддерживает команду netstat(1) (см. главу 3, раздел ), используйте ее, чтобы определить интерфейсы в Вашей системе и их MTU.

Стек протоколов TCP/IP располагает средствами поддержки целого ряда физических сетей и транспортных систем, включая технологии IZERNET, DSL, Wi-Fi и т. д.

Управление хостами, а именно аппаратной частью хостов осуществляется на канальном уровне архитектуры TCP/IP. Протоколам более высоких уровней неизвестно как именно используются аппаратные средства. Данные передаются по сети в виде пакетов, пакеты имеют максимальный размер определяемый ограничениями канального уровня. Каждый пакет состоит из заголовка и полезного содержимого. Заголовок содержит информацию о том откуда прибыл пакет и куда он направляется, также в заголовке может быть контрольная сумма, информация характерная для конкретного протокола и другие инструкции касающиеся обработки содержимого пакета. Полезное содержимое пакета – это данные подлежащие пересылке. Название базового блока передаваемых данных зависит от уровня протокола архитектуры стека TCP/IP. На канальном уровне используется термин кадр или фрейм, на уровне IP используется термин пакет, а на транспортном уровне используется термин сегмент. Готовый к отправке пакет передается по стеку протоколов и каждый протокол добавляет собственный заголовок. Таким образом сформированный пакет одного протокола становится полезным содержимым пакета генерируемого следующим протоколом. Эта операция называется инкапсуляция (запечатывание). На принимаемой стороне инкапсулированные пакеты восстанавливаются в обратном порядке при прохождении вверх по стеку.

ARP – протокол преобразования адресов.

Протоколы ARP аппаратно-независимы. Для фактической передачи данных на канальном уровне должны применяться аппаратные адреса (MAC-адреса). Протокол ARP определяет какой именно аппаратный адрес связан с тем или иным IP-адресом. ARP можно применять в любых сетях, которые поддерживают широковещательный режим на канальном уровне. Когда ПК А хочет послать пакет ПК Б он использует протокол ARP для нахождения аппаратного адреса ПК Б. Исход. запрос протокола ARP включает IP-адрес и MAC-адрес запрашивающей стороны, благодаря чему разыскивающее устройство может ответить не посылая собственный ARP-запрос, это позволяет обоим компьютерам узнать адреса друг друга за один сеанс обмена пакетами. Другие компьютеры, слышавшие исходный широковещательный запрос могут записать IP-адрес запрашивающего к себе в свою таблицу. Каждый компьютер, подключенный к сети создает в памяти специальную таблицу, которая называется КЭШем ARP. В этой таблице хранятся результаты последних ARP-запросов.

Формат ip-пакета

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

Маршрутизация в сетях tcp/ip

Термин маршрутизация используется в 2 случаях:

    Процедура поиска сетевого адреса в специальных таблицах для передачи пакета в узел назначения.

    Процесс построения такой таблицы.

Таблица маршрутизации

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

Таблицы маршрутизации ведутся (бывают) статическими, динамическими или комбинированным способом.

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