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

Рис. 2

Структура стека TCP/IP

Краткая характеристика протоколов

Так как стек TCP/IP был разработан до появления модели взаимодействия открытых систем ISO/OSI, то, хотя он также имеет многоуровневую структуру, соответствие уровней стека TCP/IP уровням модели OSI достаточно условно.

Протоколы TCP/IP делятся на 4 уровня

Самый нижний (уровень IV) соответствует физическому и канальному уровням модели OSI. Этот уровень в протоколах TCP/IP не регламентируется, но поддерживает все популярные стандарты физического и канального уровня: для локальных сетей это Ethernet, Token Ring, FDDI, Fast Ethernet, 100VG-AnyLAN, для глобальных сетей - протоколы соединений "точка-точка" SLIP и PPP, протоколы территориальных сетей с коммутацией пакетов X.25, frame relay. Разработана также специальная спецификация, определяющая использование технологии ATM в качестве транспорта канального уровня. Обычно при появлении новой технологии локальных или глобальных сетей она быстро включается в стек TCP/IP за счет разработки соответствующего RFC, определяющего метод инкапсуляции пакетов IP в ее кадры.

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

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

К уровню межсетевого взаимодействия относятся и все протоколы, связанные с составлением и модификацией таблиц маршрутизации, такие как протоколы сбора маршрутной информации RIP (Routing Internet Protocol) и OSPF (Open Shortest Path First), а также протокол межсетевых управляющих сообщений ICMP (Internet Control Message Protocol). Последний протокол предназначен для обмена информацией об ошибках между маршрутизаторами сети и узлом - источником пакета. С помощью специальных пакетов ICMP сообщается о невозможности доставки пакета, о превышении времени жизни или продолжительности сборки пакета из фрагментов, об аномальных величинах параметров, об изменении маршрута пересылки и типа обслуживания, о состоянии системы и т.п.

Следующий уровень (уровень II) называется основным. На этом уровне функционируют протокол управления передачей TCP (Transmission Control Protocol) и протокол дейтаграмм пользователя UDP (User Datagram Protocol). Протокол TCP обеспечивает надежную передачу сообщений между удаленными прикладными процессами за счет образования виртуальных соединений. Протокол UDP обеспечивает передачу прикладных пакетов дейтаграммным способом, как и IP, и выполняет только функции связующего звена между сетевым протоколом и многочисленными прикладными процессами.

Верхний уровень (уровень I) называется прикладным. За долгие годы использования в сетях различных стран и организаций стек TCP/IP накопил большое количество протоколов и сервисов прикладного уровня. К ним относятся такие широко используемые протоколы, как протокол копирования файлов FTP, протокол эмуляции терминала telnet, почтовый протокол SMTP, используемый в электронной почте сети Internet, гипертекстовые сервисы доступа к удаленной информации, такие как WWW и многие другие. Остановимся несколько подробнее на некоторых из них.

Протокол пересылки файлов FTP (File Transfer Protocol) реализует удаленный доступ к файлу.

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

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

Протокол SNMP (Simple Network Management Protocol) используется для организации сетевого управления. Изначально протокол SNMP был разработан для удаленного контроля и управления маршрутизаторами Internet, которые традиционно часто называют также шлюзами. С ростом популярности протокол SNMP стали применять и для управления любым коммуникационным оборудованием - концентраторами, мостами, сетевыми адаптерами и т.д. и т.п. Проблема управления в протоколе SNMP разделяется на две задачи.

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

Вторая задача связана с контролируемыми переменными, характеризующими состояние управляемого устройства. Стандарты регламентируют, какие данные должны сохраняться и накапливаться в устройствах, имена этих данных и синтаксис этих имен. В стандарте SNMP определена спецификация информационной базы данных управления сетью. Эта спецификация, известная как база данных MIB (Management Information Base), определяет те элементы данных, которые управляемое устройство должно сохранять, и допустимые операции над ними.

Модель OSI (Open System Interconnect Reference Model, Эталонная модель взаимодействия открытых систем) представляет собой универсальный стандарт на взаимодействие двух систем (компьютеров) через вычислительную сеть.

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

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

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

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

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

Вернемся к примеру: приложения не знают о том, что их данные преобразуются именно путем фрагментации/сборки, им достаточно знать то, что нижний уровень предоставляет им некий “правильный” сервис преобразования данных. Если же для какой-то другой сети понадобится не фрагментация/сборка пакетов, а, скажем, перестановка местами четных и нечетных бит, то процессы рассматриваемого уровня будут заменены, но приложения ничего не заметят, так как их интерфейсы с нижележащим уровнем стандартизованы, а конкретные действия нижележащих уровней скрыты от них.

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

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

1.1.1. Уровни модели OSI

Ниже перечислены (в направлении сверху вниз) уровни модели OSI и указаны их общие функции.

Уровень приложения (Application) - интерфейс с прикладными процессами.

Уровень представления (Presentation) - согласование представления (форматов, кодировок) данных прикладных процессов.

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

Транспортный уровень (Transport) - обеспечение безошибочного сквозного обмена потоками данных между процессами во время сеанса.

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

Канальный уровень (Data Link) - управление каналом передачи данных, управление доступом к среде передачи, передача данных по каналу, обнаружение ошибок в канале и их коррекция.

Физический уровень (Physical) - физический интерфейс с каналом передачи данных, представление данных в виде физических сигналов и их кодирование (модуляция).

1.1.2. Инкапсуляция и обработка пакетов

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

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

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

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

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

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

1.2. Стек протоколов TCP/IP

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

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

Рис. 1.2.1. Стек протоколов TCP/IP

Стек протоколов TCP/IP делится на 4 уровня: прикладной (application ), транспортный (transport ), межсетевой (internet ) и уровень доступа к среде передачи (network access ). Термины, применяемые для обозначения блока передаваемых данных, различны при использовании разных протоколов транспортного уровня - TCP и UDP, поэтому на рисунке 1.2.1 изображено два стека. Как и в модели OSI, данные более верхних уровней инкапсулируются в пакеты нижних уровней (см. рис. 1.2.2).

Рис. 1.2.2. Пример инкапсуляции пакетов в стеке TCP/IP

Примерное соотношение уровней стеков OSI и TCP/IP показано на рис. 1.2.3.

Рис. 1.2.3. Соотношение уровней стеков OSI и TCP/IP

Ниже кратко рассматриваются функции каждого уровня и примеры протоколов. Программа, реализующая функции того или иного протокола, часто называется модулем, например, “IP-модуль”, “модуль TCP”.

1.2.1. Уровень приложений

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

Распространенными примерами приложений являются программы telnet, ftp, HTTP-серверы и клиенты (WWW-броузеры), программы работы с электронной почтой.

Для пересылки данных другому приложению, приложение обращается к тому или иному модулю транспортного уровня.

1.2.2. Транспортный уровень

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

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

На транспортном уровне работают два основных протокола: UDP и TCP .

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

Данными для TCP является не интерпретируемая протоколом последовательность пользовательских октетов, разбиваемая для передачи по частям. Каждая часть передается в отдельном TCP-сегменте. Для продвижения сегмента по сети между компьютером-отправителем и компьютером-получателем модуль TCP пользуется сервисом межсетевого уровня (вызывает модуль IP).

Более подробно работа протокола TCP рассматривается в главе 3 .

Все приложения, приведенные как пример в предыдущем пункте, пользуются услугами TCP.

UDP (User Datagram Protocol, протокол пользовательских дейтаграмм) фактически не выполняет каких-либо особых функций дополнительно к функциям межсетевого уровня (протокола IP, см. и гл. 2). Протокол UDP используется либо при пересылке коротких сообщений, когда накладные расходы на установление сеанса и проверку успешной доставки данных оказываются выше расходов на повторную (в случае неудачи) пересылку сообщения, либо в том случае, когда сама организация процесса-приложения обеспечивает установление соединения и проверку доставки пакетов (например, NFS).

Пользовательские данные, поступившие от прикладного уровня, предваряются UDP-заголовком, и сформированный таким образом UDP-пакет отправляется на межсетевой уровень.

UDP-заголовок состоит из двух 32-битных слов:

Значения полей:

Source Port - номер порта процесса-отправителя.

Destination Port - номер порта процесса-получателя.

Length - длина UDP-пакета вместе с заголовком в октетах.

Checksum - контрольная сумма. Контрольная сумма вычисляется таким же образом, как и в TCP-заголовке (см. п. 3.2); если UDP-пакет имеет нечетную длину, то при вычислении контрольной суммы к нему добавляется нулевой октет.

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

При получении пакета от межсетевого уровня модуль UDP проверяет контрольную сумму и передает содержимое сообщения прикладному процессу, чей номер порта указан в поле “Destination Port”.

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

Максимальная длина UDP-сообщения равна максимальной длине IP-дейтаграммы (65535 октетов) за вычетом минимального IP-заголовка (20) и UDP-заголовка (8), т.е. 65507 октетов. На практике обычно используются сообщения длиной 8192 октета.

Примеры прикладных процессов, использующих протокол UDP: NFS (Network File System - сетевая файловая система), TFTP (Trivial File Transfer Protocol - простой протокол передачи файлов), SNMP (Simple Network Management Protocol - простой протокол управления сетью), DNS (Domain Name Service - доменная служба имен).

1.2.3. Межсетевой уровень и протокол IP

Основным протоколом этого уровня является протокол IP (Internet Protocol).

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

Не все компьютеры могут непосредственно связаться друг с другом; часто для того, чтобы передать дейтаграмму по назначению, требуется направить ее через один или несколько промежуточных компьютеров по тому или иному маршруту. Задача определения маршрута для каждой дейтаграммы решается протоколом IP.

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

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

Если модуль IP по какой-либо причине не может доставить дейтаграмму, она уничтожается. При этом модуль IP может отправить компьютеру-источнику этой дейтаграммы уведомление об ошибке; такие уведомления отправляются с помощью протокола ICMP, являющегося неотъемлемой частью модуля IP. Более никаких средств контроля корректности данных, подтверждения их доставки, обеспечения правильного порядка следования дейтаграмм, предварительного установления соединения между компьютерами протокол IP не имеет. Эта задача возложена на транспортный уровень.

Многие IP-адреса имеют эквивалентную форму записи в виде доменного имени (например, IP-адрес 194.84.124.4 может быть записан как maria.vvsu.ru). Преобразование между этими двумя формами выполняется службой DNS (Domain Name Service). Доменные имена обсуждаются в курсе “Введение в Интернет”, служба DNS рассматривается в курсе “Технологии Интернет” . Доменные имена введены для удобства использования человеком. Все TCP/IP-процессы и коммуникационное оборудование используют только IP-адреса.

Протоколы IP и ICMP подробно рассмотрены в главе 2 .

1.2.4. Уровень доступа к среде передачи

Функции этого уровня:

  • отображение IP-адресов в физические адреса сети (MAC-адреса, например, Ethernet-адрес в случае сети Ethernet). Эту функцию выполняет протокол ARP (см. раздел 2.6);
  • инкапсуляция IP-дейтаграмм в кадры для передачи по физическому каналу и извлечение дейтаграмм из кадров. При этом не требуется какого-либо контроля безошибочности передачи (хотя он может и присутствовать), поскольку в стеке TCP/IP такой контроль возложен на транспортный уровень или на само приложение. В заголовке кадров указывается точка доступа к сервису (SAP, Service Access Point) - поле, содержащее код протокола межсетевого уровня, которому следует передать содержимое кадра (в нашем случае это протокол IP);
  • определение метода доступа к среде передачи - то есть способа, с помощью которого компьютер устанавливает свое право на произведение передачи данных (передача токена, опрос компьютеров, множественный доступ с детектированием коллизий и т.п.).
  • определение представления данных в физической среде;
  • пересылка и прием кадра.

Стек TCP/IP не подразумевает использования каких-либо определенных протоколов уровня доступа к среде передачи и физических сред передачи данных. От уровня доступа к среде передачи требуется наличие интерфейса с модулем IP, обеспечивающего передачу дейтаграммы между уровнями. Также требуется обеспечить преобразование IP-адреса узла сети, на который передается дейтаграмма, в MAC-адрес. Часто в качестве уровня доступа к среде передачи могут выступать целые протокольные стеки, тогда говорят об IP поверх ATM, IP поверх IPX, IP поверх X.25 и т.п.

Введение

Из рисунка 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.

Лекция-1 альтернативная (очень грамотная от CISCO)

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

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

Поясню на примере: открывая любую страничку в интернете, сервер (где находится открываемая страничка) пересылает в Ваш браузер данные (гипертекстовый документ) по протоколу HTTP. Благодаря протоколу HTTP Ваш браузер, получая данные с сервера, знает, как их требуется обработать, и успешно обрабатывает их, показывая Вам запрашиваемую страничку.

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

Не будем сильно отвлекаться, "Сетевая модель" нужная тема для тех, кто хочет стать специалистом. Эта статья состоит из 3х частей и для Вас, Я постарался написать не скучно, понятливо и коротко. Для получения подробностей, или получения дополнительного разъяснения отпишитесь в комментариях внизу страницы, и я непременно помогу Вам.

Мы, как и в Сетевой Академии Cisco рассмотрим две сетевые модели: модель OSI и модель TCP/IP (иногда её называют DOD), а заодно и сравним их.

Эталонная сетевая модель OSI

OSI расшифровывается как Open System Interconnection. На русском языке это звучит следующим образом: Сетевая модель взаимодействия открытых систем (эталонная модель). Эту модель можно смело назвать стандартом. Именно этой модели придерживаются производители сетевых устройств, когда разрабатывают новые продукты.

Сетевая модель OSI состоит из 7 уровней, причем принято начинать отсчёт с нижнего.

Перечислим их:

    7. Прикладной уровень (application layer)

    6. Представительский уровень или уровень представления (presentation layer)

    5. Сеансовый уровень (session layer)

    4. Транспортный уровень (transport layer)

    3. Сетевой уровень (network layer)

    2. Канальный уровень (data link layer)

    1. Физический уровень (physical layer)

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

Прикладной уровень

Прикладной уровень или уровень приложений(application layer) – это самый верхний уровень модели. Он осуществляет связь пользовательских приложений с сетью. Эти приложения нам всем знакомы: просмотр веб-страниц (HTTP), передача и приём почты (SMTP, POP3), приём и получение файлов (FTP, TFTP), удаленный доступ (Telnet) и т.д.

Представительский уровень

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

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

Вот так и работает этот уровень с протоколами (стандартами) изображений (JPEG, GIF, PNG, TIFF), кодировок (ASCII, EBDIC), музыки и видео (MPEG) и т.д.

Сеансовый уровень

Сеансовый уровень или уровень сессий(session layer) – как видно из названия, он организует сеанс связи между компьютерами. Хорошим примером будут служить аудио и видеоконференции, на этом уровне устанавливается, каким кодеком будет кодироваться сигнал, причем этот кодек должен присутствовать на обеих машинах. Еще примером может служить протокол SMPP (Short message peer-to-peer protocol), с помощью него отправляются хорошо известные нам СМСки и USSD запросы. И последний пример: PAP (Password Authentication Protocol) – это старенький протокол для отправки имени пользователя и пароля на сервер без шифрования.

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

Транспортный уровень

Транспортный уровень (transport layer) – этот уровень обеспечивает надёжность передачи данных от отправителя к получателю. На самом деле всё очень просто, например вы общаетесь с помощью веб-камеры со своим другом или преподавателем. Нужна ли здесь надежная доставка каждого бита переданного изображения? Конечно нет, если потеряется несколько битов из потокового видео Вы даже этого не заметите, даже картинка не изменится (м.б. изменится цвет одного пикселя из 900000 пикселей, который промелькнет со скоростью 24 кадра в секунду).

А теперь приведем такой пример: Вам друг пересылает (например, через почту) в архиве важную информацию или программу. Вы скачиваете себе на компьютер этот архив. Вот здесь надёжность нужна 100%, т.к. если пару бит при закачке архива потеряются – Вы не сможете затем его разархивировать, т.е. извлечь необходимые данные. Или представьте себе отправку пароля на сервер, и в пути один бит потерялся – пароль уже потеряет свой вид и значение изменится.

Таким образом, когда мы смотрим видеоролики в интернете, иногда мы видим некоторые артефакты, задержки, шумы и т.п. А когда мы читаем текст с веб-страницы – потеря (или скжение) букв не допустима, и когда скачиваем программы – тоже все проходит без ошибок.

На этом уровне я выделю два протокола: UDP и TCP. UDP протокол (User Datagram Protocol) передает данные без установления соединения, не подтверждает доставку данных и не делает повторы. TCP протокол (Transmission Control Protocol), который перед передачей устанавливает соединение, подтверждает доставку данных, при необходимости делает повтор, гарантирует целостность и правильную последовательность загружаемых данных.

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

Сетевой уровень

Сетевой уровень (network layer) – этот уровень определяет путь, по которому данные будут переданы. И, между прочим, это третий уровень Сетевой модели OSI, а ведь существуют такие устройства, которые как раз и называют устройствами третьего уровня – маршрутизаторы.

Все мы слышали об IP-адресе, вот это и осуществляет протокол IP (Internet Protocol). IP-адрес – это логический адрес в сети.

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

Как об IP-адресе все слышали и о команде ping – это работает протокол ICMP.

Те самые маршрутизаторы (с которыми мы и будет работать в дальнейшем) используют протоколы этого уровня для маршрутизации пакетов (RIP, EIGRP, OSPF).

Вся вторая часть курса CCNA (Exploration 2) о маршрутизации.

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

Канальный уровень (data link layer) – он нам нужен для взаимодействия сетей на физическом уровне. Наверное, все слышали о MAC-адресе, вот он является физическим адресом. Устройства канального уровня – коммутаторы, концентраторы и т.п.

IEEE (Institute of Electrical and Electronics Engineers - Институт инженеров по электротехнике и электронике) определяет канальный уровень двумя подуровнями: LLC и MAC.

LLC – управление логическим каналом (Logical Link Control), создан для взаимодействия с верхним уровнем.

MAC – управление доступом к передающей среде (Media Access Control), создан для взаимодействия с нижним уровнем.

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

Типичных представителей на этом уровне много. PPP (Point-to-Point) – это протокол для связи двух компьютеров напрямую. FDDI (Fiber Distributed Data Interface) – стандарт передаёт данные на расстояние до 200 километров. CDP (Cisco Discovery Protocol) – это проприетарный (собственный) протокол принадлежащий компании Cisco Systems, с помощью него можно обнаружить соседние устройства и получить информацию об этих устройствах.

Физический уровень

Физический уровень (physical layer) – самый нижний уровень, непосредственно осуществляющий передачу потока данных. Протоколы нам всем хорошо известны: Bluetooth, IRDA (Инфракрасная связь), медные провода (витая пара, телефонная линия), Wi-Fi, и т.д.

Подробности и спецификации ждите в следующих статьях и в курсе CCNA. Вся первая часть курса CCNA (Exploration 1) посвящена модели OSI.

В первой части мы разобрали Сетевую модель OSI. Теперь давайте разберем модель TCP/IP.

Сетевая модель TCP/IP

Модель TCP/IP принято называть моделью DOD (Department of Defense - Министерство обороны США).

От сетевой модели OSI, модель DOD (или TCP/IP) отличается количеством уровней. Здесь их всего 4 (начну, как и в первой статье с верхнего):

    4. Уровень приложений (Application)

    3. Транспортный уровень (Transport)

    2. Сетевой уровень (Internet)

    1. Уровень сетевого доступа (Network Access)

Как не странно, но четырех уровней DOD хватает, для того, чтобы покрыть семь уровней модели OSI. Хоть и есть некоторые разногласия. В целом, если не вдаваться в подробности, уровень приложений (Application) модели DOD соответствует трём верхним уровням модели OSI (application, presentation, session), транспортный уровень соответствует транспортному, а сетевой – сетевому соответственно и уровень сетевого доступа соответствует двум нижним модели OSI (data link, physical).

А если вдаваться в подробности, то нужно начать с того, что сетевая модель TCP/IP была разработана значительно раньше модели OSI. Модель TCP/IP сформировывалась уже на существующих протоколах, а вот OSI наоборот – сначала создали модель, а затем протоколы для неё, от этого у каждой свои плюсы и минусы. OSI более современная модель, поэтому в интернете обсуждают чаще её, а вот протоколы используются TCP/IP стека (группы, стопки (одного на другом)) основанные на модели DOD.

Вот Вы уже и знакомы с двумя сетевыми моделями, очень подробно они описаны в CCNA Exploration 1 - Network Fundamentals Version 4.0 English

Продолжим изучать работу и взаимодействие всех уровней.

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

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

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

Например, Ваш компьютер использует все 7 уровней, маршрутизатор – 3 нижних уровня, коммутатор – только 2 нижних уровня.

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

Теперь перейдем к самому процессу инкапсуляции, декапсуляции.

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

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

Эти данные опускаются с уровня приложений, на уровень представления данных.

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

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

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

Логические сетевые адреса – это всем известные IP-адреса, еще наверное непонятно что обозначают цифры и точки в них, но вскоре, этот пробел в знаниях заполнит соответствующая информация;)

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

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

Физические адреса устройств – это MAC-адреса.

Эти очень маленькие кусочки данных именуются кадрами или фреймами (одно и тоже). Далее кадры передаются на физический уровень.

На физический уровень кадры передаются уже в виде сигналов битов и следуют через другие сетевые устройства в пункт назначения.

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

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

Сетевая карта сервера принимает биты (на физическом уровне) и преобразует их в кадры (для канального уровня). Канальный уровень в обратной последовательности должен преобразовать кадры в пакеты (для сетевого уровня), только перед преобразованием уровень сначала смотрит на МАС-адрес (физический адрес) получателя, он должен совпадать с MAC-адресом сетевой карты, иначе кадр будет уничтожен. Затем канальный уровень (в случае совпадения MAC-адреса) высчитывает сумму полученных данных и сравнивает полученное значение со значением трейлера. Напомню, что значение трейлера высчитывалось на Вашем компьютере, а теперь оно, после передачи по проводам, сравнивается с полученным значением на сервере и если они совпадают, кадр преобразуется в пакет. Если проверочный код целостности данных рознится – кадр незамедлительно уничтожается.

На сетевом уровне происходит проверка логического адреса (IP-адреса), в случае успешной проверки пакет преобразуется в сегмент, попадая на транспортный уровень.

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

На верхних уровнях запрос (введенный адрес сайта) обрабатывается веб-сервером (проверяется, доступна-ли запрашиваемая веб-страничка).

Этот процесс преобразования сигналов из провода в данные называется процессом декапсуляции .

После того, как страница будет найдена на сервере, она (текст, изображения, музыка) преобразуется в цифровой код, удобный для инкапсулирования. Большой объём данных делится на части и поступает ниже на уровень – транспортный. Там кусочек данных преобразуется в сегмент, только порт назначения теперь будет тот, с которого вы посылали (вспоминайте, 1223). Сегмент преобразуется в пакет, в заголовке которого содержится IP-адрес вашего компьютера и переходит ниже. На канальном уровне пакет в свою очередь преобразуется в кадры и добавляется заголовок и трейлер. В заголовок помещается МАС-адрес назначения (в данном случае это будет адрес шлюза), а в трейлер проверочный код на целостность данных. Далее сетевая карта посылает кадры в виде сигналов по кабелю по направлению к Вашему компьютеру.

Так и происходит сетевой обмен данными, инкапсуляция и декапсуляция.

Вам обязательно надо запомнить, что те кусочки данных (вместе с заголовками), которые переходят с уровня на уровень (с добавлением заголовков или наоборот) называются Protocol Data Unit или PDU . Если перевести литературно на русский язык, то получается фрагмент данных на каждом уровне модели . В первой части CCNA попадаются вопросы связанные с PDU, так что обязательно запомните что это такое;)

Описание сетевых устройств

В этой статье хочу рассказать Вам о существующих сетевых устройствах.

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

На этот вопрос Я дам Вам подробный ответ. После прочтения статьи, Вы будете знать, что есть что, а также какие отличия между ними.

Начнем эту статью с сетевой карты , той самой, которая установлена в Ваш компьютер или ноутбук.

Сетевая карта

Вы можете встретить такие имена: NIC, Network Interface Card, Сетевой адаптер, Ethernet-адаптер, сетевая карта – это всё одно и тоже.

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

По способу реализации сетевой карты в Ваш компьютер можно разделить их на 3 типа: встроенные, внутренние и внешние.

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

Внутренняя – это когда сетевая карта устанавливается внутрь компьютера (системного блока). Это значит, что имеется отдельная сетевая карта, с сетевым разъёмом, вставленная через специальный разъем (PCI, PCI-E, ISA) в материнскую плату. Она может быть вытащена из одного компьютера и вставлена в другой.

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

Отличие модема от адаптера

Часто можно встретить такое название сетевого устройства как модем. В одном магазине мы видим Wi-Fi-модем, а в другом Wi-Fi-адаптер. Так чем же отличается модем от адаптера или от сетевой карты? Сейчас попробуем в этом разобраться (кто немного ленится, может пропустить основную часть исследования и ознакомиться только с его последним предложением).

Исследование: Чем является модем и в чём отличие от адаптера.

Итак, проведем небольшое исследование и выясним что такое модем, что такое адаптер, и чем они отличаются.

Разберем, что обозначают сами слова модем (modem) и адаптер (adapter).

Модем (modem). Это слово является акронимом, т.е. аббревиатурой (сокращенным написанием) образованной от начальных букв английских слов mo(dulator) и dem(odulator). Модулятор (лат. modulator - соблюдающий ритм) - устройство, изменяющее параметры несущего сигнала в соответствии с изменениями передаваемого (информационного) сигнала. Демодулятор - детектор радиоприёмного устройства, восстанавливающий информацию из радиосигнала, заложенную в него модулятором.

Проще говоря, модем преобразовывает биты данных в сигнал (соответствующий среде передачи данных) и наоборот, сигнал – в данные.

Адаптер (adapter или adaptor). В переводе на русский получается: переходник, переходное устройство, приспособление, переходная муфта, соединительное устройство, звукосниматель, тот, кто переделывает литературное произведение (адаптирует его). Так как слово Адаптер происходит от Адаптировать, рассмотрим и его. Адаптировать - это значит приспособить, облегчить, настроить.

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

Теперь Я рассмотрю, где и в качестве чего используются эти два слова.

Слово «модем» используется только как устройство модуляции/демодуляции: модем, софт-модем, беспроводной модем, голосовой модем, спутниковый модем, факс-модем.

А вот со словом «адаптер» дела обстоят интереснее: блок питания, адаптер сети, DOF-адаптер, Адаптер-переходник (переходное кольцо для фото-оптики), сетевая карта (плата), интерфейс между устройствами, видеоадаптер, графический адаптер (преобразует графический образ в иную форму). И еще несколько вырезок из предложений, где встречается это слово: «Адаптер, Adapter или Wrapper/Обёртка - структурный шаблон проектирования», «пластиковый адаптер для рта разработан специально для дозированного аэрозоля», «на адаптер для флакона и проткните острием адаптера пробку флакона в центре», «Для узнавания аминокислот в клетке имеются специальные «адаптеры», молекулы транспортной РНК (тРНК).», «стандартные теги итераторов, обратные итераторные адаптеры и итераторы вставки», «Для воспроизведения в видеомагнитофоне ее помещают в специальный адаптер, имеющий внешние размеры стандартной видеокассеты VHS.», «Основная часть современных мышей имеет интерфейс USB, иногда - с адаптером для PS/2.», «"электроскрипка" - С. с адаптером для усиления звука», «электрогитары, на которых колебания струны с помощью адаптера преобразуются в электрические», «Накамерный видеомагнитофон через специальный адаптер жёстко крепился к телевизионной камере, образуя единый блок».

Подведем итоги нашего исследования. Повторюсь, что слово «модем» используется только как устройство модуляции/демодуляции. «Адаптер» же намного более универсальное слово, хоть и имеет общий смысл. Везде, где требуется что-то конвертировать, преобразовать, изменить и приспособить, можно использовать слова «адаптер». Собственно и функции модема подходят под определение адаптера, поэтому мы можем считать эти слова (в пределах сетевых технологий) одинаковыми по значению и при необходимости заменять одно другим. Причем, так как «модем» более ‘узкое’ и специализированное слово, им заменять слово «адаптер» следует с осторожностью. «Адаптером» же наоборот, можно заменить любой «модем».

Сейчас, в век высоких технологий, никого не удивишь сетевой картой, все уже используют 3G-модемы, USB-модемы, GSM-модемы и т.п. Это всё одно и то же. Как показано на рисунке ниже 3G-модем является устройством, которое вставляется в USB порт вашего компьютера, ноутбука или планшета (Помимо USB можно встретить и другие интерфейсы, например PCIMCI). Внутри этого устройства SIM-карта сотового оператора, позволяющая Вам быть подключенным к интернету в зоне покрытия сети этого оператора (например, на даче) или находясь в роуминге (например, за границей).

Есть еще очень похожие устройства: 4G-модемы, WiMAX-модемы – это устройства, работающие по технологии называемой Wireless MAN (стандарт IEEE802.16). Предоставляют доступ к интернету и локальной сети в пределах зоны покрытия. Некоторые коммуникаторы и ноутбуки имеют встроенные WiMAX-адаптеры.

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

Встроенные адаптеры Wi-Fi наблюдаются в тех же устройствах, что и сетевые карты, плюс почти во всех мобильных устройствах.

Внутренние – с виду похожи на обычную сетевую карту с антенной. Не редкость сейчас найти сетевую карту одновременно с модулем Wi-Fi.