2.2. Транспортный уровень моделей osi, tcp/ip. Сколько уровней в сетевой модели tcp ip


Модель стека протоколов TCP/IP и ее особенности. Уровни модели TCP/IP и принципы их работы.

Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжаем изучать основы работы компьютерных сетей, напомню, что эти записи основаны на программе Cisco ICND1 и помогут вам подготовиться к экзаменам CCENT/CCNA. Продолжаем разговор об эталонных моделях и на этот раз мы рассмотрим модель, которая была разработана путем практических наработок, эта модель называется модель стека протоколов TCP/IP, она похожа на модель OSI 7, но имеются и свои отличия, которые довольно значительны и их стоит обсудить, а также обозначить.

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

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

1.15.1 Введение

Содержание статьи:

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

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

1.15.2 Общий принцип работы модели стека протоколов TCP/IP

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

Вообще модель TCP/IP более удобна для сетевого инженера, здесь более четко описаны его границы ответственности. Давайте посмотрим на структуру модели TCP/IP, которая показана на Рисунке 1.15.1.

Рисунок 1.15.1 Модель стека протоколов TCP/IP

Как видим, отличие модели TCP/IP от OSI 7 заключается в количестве уровней, у эталонной модели их семь, в модели стека протоколов их четыре. В модели TCP/IP объединены первых два уровня модели OSI 7 (канальный и физический), здесь первый уровень называется уровень доступа к сети или канальный уровень. На уровне доступа к сети в модели сетка протоколов TCP/IP работают такие технологии и протоколы как: Ethernet, который есть практически в каждой локальной сети, IEEE 802.11 (Wi-Fi), PPP, в общем и целом на первом уровне модели стека протоколов TCP/IP реализуется функционал физического и канального уровней модели OSI 7.

Второй уровень модели TCP/IP соответствует третьему уровню модели OSI 7, в разных источниках вы можете встретить разные названия третьего уровня: уровень сети Интернет, сетевой уровень, межсетевой уровень. Можно сказать, что это основной и самый интересный для сетевого инженера уровень. Так как на этом уровне определяется логическая адресация узлов сети Интернет и, по сути, этот уровень является конечным для сетевого оборудования, за взаимодействие компьютеров на более высоких уровнях уже отвечают конечные устройства: клиентское и серверное оборудование.

Третий уровень модели TCP/IP имеет такое же название, как и в модели OSI – Транспортный уровень, правда в модели OSI этот уровень в порядке нумерации идет четвертым. Транспортный уровень отвечает за надёжность передачи для конечных устройств поверх ненадежной компьютерной сети, в которой в любой момент могут возникать самые разные проблемы. К тому же транспортный уровень помогает различать компьютерам следующее: какой трафик какое приложение генерирует и какому приложению предназначены те или иные пакеты, это возможно благодаря сокетам. На транспортном уровне для нас будут интересны два протокола: TCP, который обеспечивает надежную передачу с установкой соединения, этот протокол используется для передачи данных типа текст, файлов и так далее, а также протокол UDP, этот протокол без установки соединения и используется он для передачи данных в системах реального времени: аудио и видео связь. Про работу служб с установлением соединения и без вы можете узнать из записи, опубликованной ранее.

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

1.15.3 Первый уровень модели TCP/IP или уровень доступа к сети

Первый уровень – это фундамент компьютерной сети, поверх которого строится вся логика взаимодействия. Пожалуй, основной недостаток модели стека протоколов TCP/IP заключается в том, что физический и канальный уровень модели OSI здесь объединены в один под названием уровень доступа к сети или канальный уровень. На мой взгляд, нужно отделять физические процессы, происходящие на первом уровне от логики, которая реализована в канале связи на втором уровне. Хотя тут могут быть возражения в следующем ключе: такие популярные технологии как Ethernet и IEEE 802.11 в контексте модели OSI 7 работают на двух уровнях (канальном и физическом), тогда как в контексте модели TCP/IP эти технологии реализуют свой функционал на одном уровне – уровне доступа.

Итак, на уровне доступа модели TCP/IP решаются физические вопросы, связанные с передачей сигнала в различных средах:

  • максимальный и минимальный допустимые уровни сигнала в среде передачи данных: если с минимальным все более-менее очевидно, то с максимальным немного поясню: с усилением полезного сигнала усиливаются и помехи;
  • какой уровень сигнала нужно принимать за логический ноль (логический ноль – это не отсутствие сигнала), а какой уровень сигнала будет считаться логической единицей;
  • на физическом уровне определяются технические и конструктивные требования к среде передачи данных, например, если передача по медной линии, то тут можно выделить сетевые интерфейсы типа RJ-45 и RJ-11 или, например, витая пара или коаксиальный кабель;
  • данные в чистом виде никогда не передаются по сети, по сети передаются два объединенных сигнала: полезный сигнал с данными (его еще называют модулирующий) и несущий сигнал, процесс объединения этих двух сигналов называется модуляцией, более подробно об этом читайте в книгах, указанных в самой первой теме.

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

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

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

Можно выделить следующие протоколы и технологии, которые работают на канальном уровне модели TCP/IP: Ethernet, IEEE 802.11 WLAN, SLIP, Token Ring, ATM. Первым двум мы выделим по целой части, так как в локальных сетях вы будете чаще всего сталкиваться именно с ними.

Еще на канальном уровне реализуется механизм обнаружения и исправления ошибок при помощи специальных кодов, очень подробно про канальные коды рассказано в книге Бернарда Скляра «Цифровая связь», здесь мы на них не останавливаемся. Из физических устройств, работающих на уровне доступа к сети можно выделить (дополнительно можете почитать про основные физические компоненты компьютерной сети): усилители сигнала, преобразователи сигнала (SFP-модули, медиаконвертеры и т.д.), ретрансляторы, хабы, концентраторы, радио антенны, а также коммутаторы уровня L2, которые будет представлять для нас наибольший интерес, так как их можно и нужно настраивать и у них есть различные по своей полезности механизмы для защиты сети и обеспечения надежности передачи данных.

1.15.4 Второй уровень или уровень сети Интернет

Второй уровень модели TCP/IP называется уровнем сети Интернет, сетевым или межсетевым уровнем. Это один из самых важных уровней для сетевого инженера, так как именно здесь работает протокол IP, отвечающий за логическую адресацию в компьютерных сетях и в сети Интернет, если говорить о частностях. Непосредственно протоколу IP мы уделим целых две части, сначала мы поговорим про версию IPv4, а затем разберемся с версией протокола IPv6. Также на этом уровне работают протоколы динамической маршрутизации, в этом курсе мы разберемся с протоколом RIP, который очень прост, но уже практически нигде не используется. А если будет продолжение, то мы еще будем разбираться с такими замечательными протоколами динамической маршрутизации, как OSPF и EIGRP.

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

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

На межсетевом уровне единица измерения данных или PDU называется пакетом, хотя об этом вы уже догадались, когда я использовал слово IP-пакет. При этом структура заголовка IP-пакета в IPv4 достаточно сильно отличается от структуры пакета в IPv6, как и сами IP-адреса этих протоколов.

Стоит еще добавить, что настройки, производимые на сетевом уровне модели TCP/IP влияют на логику работу компьютерной сети, то есть на ее логическую топологию, в то время как действия выполняемые на первом уровне влияют на физическую топологию компьютерной сети.

1.15.5 Третий или транспортный уровень стека протоколов TCP/IP

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

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

Если говорить про протокол TCP, то данные передаваемые по сети при помощи этого протокола называются сегментами, а вот у данных, передаваемых по сети при помощи протокола UDP имеется другое название – датаграммы/дейтаграммы, кому как удобно, второй вариант я использую чаще. Транспортный уровень гарантирует целостность и правильность поступления данных на конечных устройствах, а также помогает компьютерам разобраться кому какие данные принадлежат, работает это примерно так (смотрите на Рисунок 1.15.2): какому-либо приложению назначается определенный TCP/UDP порт или же этот порт генерируется динамически, допустим со стороны клиента этот порт был сгенерирован динамически, а со стороны серверов порт был задан разработчиками или же системным администратором вручную (если интересно, то вот здесь описан принцип взаимодействия клиент-сервер).

Рисунок 1.15.2 Сильно упрощенная схема взаимодействия на транспортном уровне

Итак, получаем, что у клиентского ПК IP-адрес: 192.168.2.3, а также клиентский ПК выдал клиентскому приложению порт с номером 23678 для установки соединения с первым сервером (пусть приложением будет браузер), а для установки со вторым сервером браузер получил порт 23698. Клиентский ПК делает запросы к веб-серверам, находящимся в одной сети с клиентом: у первого сервера IP-адрес: 192.168.2.8, а у второго: 192.168.2.12, при этом порт серверного приложения как в первом, так и во втором случае одинаковый – 80, также хочу обратить внимание на то, что клиентский ПК сообщает серверам разные порты, на которые нужно слать ответы. Таким образом, если клиентский компьютер хочет сделать запрос к первому серверу, то он использует примерно следующую конструкцию для запроса: 192.168.2.8:80, это означает, что запрос был послан машине с IP-адресом 192.168.2.8 на 80 порт, сервер же пошлет ответ, используя вот такую конструкцию 192.168.2.3:23678. Если же запрос идет на 192.168.2.12:80, то ответ будет передан на 192.168.2.3:23698.

Таким образом происходит разделение трафика и компьютер не путается. Вообще, это описание предельно упрощено, более подробно мы будем говорить о протоколах транспортного уровня в отдельной части, так как эта тема довольно большая и требует отдельного разговора, кстати сказать, в курсах Cisco ICND1 и ICND2 достаточно мало времени уделено транспортному уровню. Здесь же стоит добавить что комбинация IP-адрес + порт транспортного уровня обычно называется сокетом, при этом не имеет значения протокол транспортного уровня (TCP или UDP).

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

1.15.6 Четвертый уровень или уровень приложений

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

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

  • DHCP – протокол, позволяющий динамически выдавать клиентским машинам IP-адреса и другие данные для подключения к сети;
  • DNS – этот протокол придумали люди с дырявой памятью, которые не хотели запоминать IP-адреса, DNS позволяет преобразовывать IP-адреса в доменные имена сайтов и наоборот, для практики можете разобраться с командой nslookup;
  • SNMP – протокол, который используется во всех системах управления и мониторинга компьютерных сетей;
  • SSH – протокол для безопасного удаленного управления, при использовании SSH данные шифруются;
  • Telnet – еще один протокол удаленного управления, этот протокол реализует простой текстовый сетевой интерфейс.

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

Также стоит отметить следующие протоколы, относящиеся к прикладному уровню модели стека протоколов TCP/IP: RDP для удаленного управления компьютером, SMPT, IMAP, POP3 это всё почтовые протоколы для реализации разного функционала, FTP и SFTP это протоколы для передачи файлов по сети, первый использует протокол TCP, а второй более простой использует UDP.

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

1.15.7 Сравнение моделей OSI 7 и TCP/IP, а также поиск компромисса

Прежде чем перейти к сравнению моделей OSI 7 и TCP/IP, нам следует сказать, что модель стека протоколов TCP/IP использовалась для создания сети ARPANET, которая спустя годы превратилась в тот Интернет, которым мы пользуемся, сеть ARPANET – была исследовательской сетью, финансируемой министерством обороны США, эта сеть объединила сотни университетов и правительственных зданий в единую систему передачи данных при помощи телефонных линий, но с развитием технологий появилась спутниковая связь, радиосвязь, связь при помощи оптических линий и появились проблемы с передачей данных во всем этом зоопарке, разработка моделей передачи данных должна была решить возникшие проблемы и в принципе задача была решена.

Давайте же теперь попробуем сравнить эталонную модель сетевого взаимодействия OSI 7 с моделью стека протоколов TCP/IP и посмотрим, чем практическая модель отличается от теоретической. Для начала обратите внимание на Рисунок 1.15.3.

Рисунок 1.15.3 Сравнение эталонных моделей передачи данных TCP/IP и OSI 7

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

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

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

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

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

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

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

Также модель OSI изначально не была рассчитана на то, что когда-нибудь появятся широковещательные сети. Передача данных в сетях, построенных на принципах модели OSI 7, велась от узла к узлу, с вероятностью 99% ваша домашняя сеть и сеть вашего поставщика услуг доступа в Интернет широковещательная. Поэтому разработчикам пришлось вносить коррективы, добавив новый подуровень в модель OSI. Городульки в модели OSI не закончились на канальном уровне, когда на основе модели OSI 7 начали реализовывать первые компьютерные сети, оказалось, что существующие протоколы не соответствуют спецификациям служб, поэтому в модель были добавлены дополнительные подуровни для устранения несоответствия. И в заключении: при разработке модели OSI 7 не был учтен момент интеграции и объединения нескольких небольших сетей в одну большую, предполагалось, что в каждой стране будет одна большая единая сеть, находящаяся под управлением государства.

В TCP/IP все вышло ровным счетом наоборот: сначала были придуманы и реализованы протоколы этой модели, а затем появилась необходимость в том, чтобы создать модель, которая описывает сетевое взаимодействие с использованием этих протоколов. Таким образом протоколы модели стека TCP/IP четко соответствуют уровням и функциям этих уровней. Единственный минус, этот минус не такой значительный для современного мира, заключается в том, что модель стека протоколов TCP/IP не соответствует никаким другим моделям. Минус незначительный, так как большинство компьютерных сетей построены на основе модели TCP/IP и ее протоколов.

Еще одно важное отличие моделей TCP/IP и OSI 7 кроется на сетевом и транспортном уровнях. Модель TCP/IP на сетевом уровне реализуется связь без установления соединения при помощи протокола IP, а на транспортном уровне предлагает два протокола: UPD и TCP. А вот модель OSI 7 предлагает инженерам выбор на сетевом уровне: можно выбрать связь с установлением соединения или без него, а на транспортном уровне есть один протокол, который поддерживает связь только с установлением соединения.

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

  1. Несвоевременность.
  2. Неудачная технология.
  3. Неудачная реализация.
  4. Неудачная политика распространения.

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

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

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

Рисунок 1.15.4 Компромиссная модель сетевого взаимодействия

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

Ее сетевой уровень должен решать задачи объединения нескольких небольших сетей в одну большую. А транспортный уровень должен увеличивать надежность передачи данных по сети, организуя туннельное соединение между конечными участниками обмена данных. Ну а на самом верхнем уровне решаются задачи взаимодействия пользователей с ПК и компьютерной сетью.

1.15.8 Выводы

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

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

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

zametkinapolyah.ru

Сетевая модель TCP/IP, сетевая модель DOD.

В первой части мы разобрали Сетевую модель OSI. Теперь давайте разберем модель 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

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

Заключение

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

Логическое продолжение сетевых моделей – это инкапсуляция. Данные. Сегменты. Пакеты. Кадры или фреймы. Биты. Приступим.

infocisco.ru

Cisco Learning | Сетевые модели TCP/IP и OSI

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

Краткая история создания

На начальном этапе, в 80-х годах, производители компьютеров создавали свои собственные запатентованные сетевые модели. Сетевые модели разных производителей были несовместимы. Это означало, что компьютеры одного производителя не могли создавать сетевое соединение с компьютерами другого производителя. В это время даже у Министерства обороны США была своя сетевая модель – Department of Defense (DOD), которая была опубликована через некоторое время после создания. После появления DOD волонтеры решили использовать ее как основу для создания более сложной сетевой модели. Так появилась сетевая модель TCP/IP, которая оказалась настолько функциональной и логически продуманной, что некоторые производители компьютеров начали использовать именно эту сетевую модель. Начали появляться первые компьютеры разных производителей с возможностью устанавливать сетевое соединение друг с другом. К концу 90-х все производители компьютеров перешли на сетевую модель TCP/IP.

Однако, Международная Организация по Стандартизации (ISO) в середине 90-х завершила создание сетевой модели под названием «Открытые Системы Соединений» (OSI – Open Systems Interconnection). Предполагалось, что OSI станет единым стандартом для всех производителей компьютеров и сетевых устройств, поэтому в середине 90-х годов была предпринята попытка перейти на стандартизированную модель. Но переход не удался. У сетевой модели TCP/IP не было документации, описывающей функции всех ее протоколов, в то время как OSI была полностью задокументирована. Несмотря на то, что TCP/IP и OSI являются несовместимыми моделями, большое количество терминов из документации для OSI было заимствовано для документации по TCP/IP, вследствие чего OSI стала считаться эталонной сетевой моделью. В настоящее время все устройства, осуществляющие передачу данных по сети, используют сетевую модель TCP/IP.

TCP/IP и OSI

TCP/IP ссылается на огромное количество протоколов, описание которых находится в документах под названием RFC. Они находятся в свободном доступе в Интернете. Протоколы и правила были разделены на категории – уровни. Каждый уровень обладает своим набором функций, или сервисов, реализующихся за счет протоколов этого уровня.

Таблица 1.1 Сетевая модель TCP/IP

# TCP/IP(RU) TCP/IP(EN) 4 3 2 1
Приложений Application layer
Транспортный Transport layer
Интернет Internet layer
Канальный (в некоторых источниках Физический) Link layer

Таблица 1.2 Сетевая модель OSI

# OSI(RU) OSI(EN) 7 6 5 4 3 2 1
Приложений Application layer
Презентаций Presentation layer
Сессий Session layer
Транспортный Transport layer
Сетевой Network layer
Канальный Data Link layer
Физический Physical layer

Как сетевой инженер, могу сказать, что важно знать название и порядковый номер каждого уровня. Совет: если вы хотите разбираться в сетях и в сетевом оборудовании, то распечатайте себе обе сетевые модели, представленные выше, и подглядывайте в свои заметки ежедневно. Эти знания помогут вам понять, что означают понятия “коммутатор 2-го уровня”, “коммутатор 3-го уровня” или “L2-канал”, “L3-канал”, а самое главное, – на CCNA экзамене вам точно встретятся вопросы о сетевых моделях.

Таблица 1.3 Пример протоколов каждого уровня

Название уровня Пример протоколов
Приложений HTTP, FTP, SNMP, POP3
Транспортный TCP, UDP
Интернет IP
Физический Ethernet

Что дальше?

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

Если вы нашли в тексте ошибку, выделите текст и нажмите Ctrl + Enter

ID: 45 Created: Oct 19, 2016 Modified Oct 22, 2016

ciscolearning.ru

Уровни стека tcp/ip

Существуют разногласия в том, как вписать модель TCP/IPв модель OSI, поскольку уровни в этих моделях не совпадают. К тому же, модель OSI не использует дополнительный уровень — «Internetworking» — между транспортным и сетевым уровнями. Вот как традиционно протоколы TCP/IP вписываются в модель OSI:

Распределение протоколов по уровням модели OSI

7

Прикладной

напр., HTTP, SMTP, SNMP, FTP, Telnet,SSH,SMB,NFS

6

Представления

напр., XDR, AFP, TLS, SSL

5

Сеансовый

напр., ISO 8327 / CCITT X.225, RPC, NetBIOS, PPTP, L2TP, ASP

4

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

напр., TCP,UDP,SCTP,SPX,RTP,ATP,DCCP,GRE

3

Сетевой

напр., IP,ICMP,IGMP,CLNP,OSPF,RIP,IPX, DDP,ARP,RARP

2

Канальный

напр., Ethernet, Token ring, HDLC, X.25, Frame relay, ISDN, ATM,

1

Физический

напр., электрические провода,радиосвязь,волоконно-оптические провода,Wi-Fi

Обычно в стеке TCP/IP верхние 3 уровня (прикладной, представительский и сеансовый) модели OSI объединяют в один — прикладной. Поскольку в таком стеке не предусматривается унифицированный протокол передачи данных, функции по определению типа данных передаются приложению. Упрощенно интерпретацию стека TCP/IP можно представить так:

Распределение протоколов по уровням модели TCP/IP

4

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

напр.HTTP,RTP,FTP,DNS

3

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

напр., TCP,UDP,SCTP,DCPP( протоколы маршрутизации, работают поверхIP, являются частью сетевого уровня)

2

Сетевой

Для TCP/IP это IP (вспомогательные протоколы, вроде ICMP иIGMP, работают поверх IP, но тоже относятся к сетевому уровню; протокол ARP является самостоятельным вспомогательным протоколом, работающим поверх физического уровня)

1

Доступа к среде

Ethernet,WirelessEthernet,TokenRingфизическая среда и принципы кодирования информации,T1,E1

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

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

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

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

Примеры протоколов канального уровня — Ethernet,IEEE 802.11Wireless Ethernet,SLIP,Token Ring,ATMиMPLS.

Канальный уровень иногда разделяют на 2 подуровня — LLCиMAC.

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

Сетевой уровеньизначально разработан для передачи данных из одной (под)сети в другую. Примерами такого протокола являетсяX.25иIPCв сетиARPANET.

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

ICMP и IGMP расположены над IP и должны попасть на следующий — транспортный — уровень, но функционально являются протоколами сетевого уровня, и поэтому их невозможно вписать в модель OSI.

Пакеты сетевого протокола IPмогут содержать код, указывающий, какой именно протокол следующего уровня нужно использовать, чтобы извлечь данные из пакета. Это число — уникальныйIP-номер протокола. ICMP и IGMP имеют номера, соответственно, 1 и 2.

К этому уровню относятся: DHCP[1],DVMRP,ICMP,IGMP,MARS,PIM,RIP,RIP2,RSVP

studfiles.net

3.2 Модель tcp/ip.

Для обеспечения сетевых взаимодействий между сетевыми объектами каждый из объектов должен понимать другой объект,говорить с ним на одном языке. Другими словами, сетевые объекты должны удовлетворять определенному протоколу, набору правил общения.Поскольку сетевое общение между сетевыми объектами является достаточно сложным процессом, описываемым всеми уровнями моделиOSI, то и набор правил для организации общения достаточно сложен. Для реализации данного набора правил разработаны наборы, илистеки,взаимосвязанных и логически сгруппированных протоколов. Существует достаточно большое количество стеков протоколов, однако наиболее широкое распространение в настоящее время получили два:стек TCP/IPи стекIPX/SPX.

Стек протоколов TCP/IPявляется открытым для дополнения; большинство мировых производителей программного и аппаратного обеспечения поддерживают этот набор протоколов. Очень широкое распространение стекTCP/IPполучил вследствие массовой (особенно в последние годы)популяризации глобальной сети Internet. Изначально данный стек протоколов разрабатывался и применялся при реализации проектаARPAnet.В ходе реализации проектаARPAnet разрабатывались новые протоколы стекаTCP/IP, дополняя его, давая возможность использовать новые сервисы и технологии. Так как сетьARPAnet явилась прародительницей сетиInternet,то и стек протоколовTCP/IPполучил очень широкое распространение. Этот стек не поддерживается каким-либо одним производителем, он модифицируется и дополняется многими компаниями и независимыми разработчиками, однако существует специальная координационная группа, принимающая решения о включении новых протоколов или возможностей в стекTCP/IP. В настоящее время стекTCP/IPявляясь открытым, стал«родным» для большого набора операционных систем. Одной из особенностей работы протоколов данного стека является отличная приспособленность для использования в глобальных сетях, возможность передачи данных на большие расстояния.

В недавнем прошлом, при построении локальных компьютерных сетей активно использовался стек протоколов IPX/SPX,поддерживаемый фирмойNovell.Он является базовым дляоперационных систем семействаNetWare, производимых Novell. СтекIPX/SPXтакже открыт для дополнений и расширений, но все изменения в рамках данного стека протоколов возможны только после их одобрения специальным подразделением Novell.

Кроме кратко рассмотренных стеков протоколов существуют и другие. Сетевые взаимодействия для аппаратных платформ ведущих производителей поддерживаются их собственными сетевыми архитектурами. Для организации взаимодействий между компьютерами, производимыми корпорацией DEC,была разработана архитектураDECnet, включающая в себя протоколы, реализующие задачи, описанные на всех уровнях моделиOSI. Другим крупным производителем вычислительных систем, поддерживающим собственные сетевые архитектуры -корпорацияIBМ.Для организации сетевых взаимодействий специалисты IBM разработали архитектуруSNA(SystemNetworkArchitecture) Именно эта сетевая архитектура и была взята за основу при создании модели описания сетевых взаимодействий - эталонной моделиOSI.

Соответствие уровней стека TCP/IPуровням моделиOSI

Структура IP-пакета

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

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

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

7

WWW, Gopher, WAIS

SNMP

FTP

Telnet

TFTP

SMTP

I

6

5

TCP

UDP

II

4

3

IP

ICMP

RIP

OSPF

ARP

III

2

нерегламентируется : Ethernet, GigabitEthernet,Token Ring,PPP,FDDI,X.25,SLIP,FrameRelay...

IV

1

уровни OSI

уровни TCP/IP

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

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

В отличие от протоколов остальных трех уровней, протоколы прикладного уровня занимаются деталями конкретного приложения и «не интересуются» способами передачи данных по сети. Этот уровень постоянно расширяется за счет присоединения к старым, прошедшим многолетнюю эксплуатацию сетевым службам типа Telnet,FTP,TFTP,DNS,SNMP, HTTP, новых служб, таких, например, как протокол передачи HTTP S .

Основной уровень стека TCP/IP

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

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

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

Уровень межсетевого взаимодействия

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

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

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

Уровень сетевых интерфейсов

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

Уровень сетевых интерфейсов в протоколах TCP/IPне регламентируется, но он поддерживает все популярные стандарты физического и канального уровней: для локальных сетей - этоEthernet, TokenRing,FDDI, FastEthernet, GigabitEthernet, 100VG-AnyLAN, для глобальных сетей- протоколы соединений «точка-точка»SLIPиPPP, протоколы территориальных сетей с коммутацией пакетовX.25,FrameRelay. Разработана также специальная спецификация, определяющая использование технологииATMв качестве транспорта канального уровня.

Рисунок 53 . Соответствие уровней стека TCP/IPуровням моделиOSI

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

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

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

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

Единицы данных протоколов стека TCP/IP

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

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

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

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

I

ПРИКЛАДНЫЕ ПРОТОКОЛЫ  (поток)

II

UDP(дейтаграмма)

TCP(сегмент)

III

IP(пакет илиIP-дейтаграмма)

IV

СЕТЕВЫЕ ИНТЕРФЕЙСЫ  (кадр(фрейм))

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

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

В стеке TCP/IPпринято называтькадрами (фреймами)единицы данных протоколов, на основе которыхIP-пакеты переносятся через подсети составной сети. При этом не имеет значения, какое название используется для этой единицы данных в локальной технологии.

Начало формы

studfiles.net

Сетевые модели OSI и TCP/IP

Вступление

 Бесспорно, можно утверждать: "Зачем вообще нужны эти сетевые модели? Век живу и ни разу не пользовался". И я скажу, вы абсолютно правы. Я сам так рассуждал. Хотя правота заключается лишь в том, что мы, обычные пользователи или начинающие администраторы, можем обойтись без всех этих моделей. Но зачем тогда, спрашивается, они вообще существуют?

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

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

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

Две сетевые модели

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

 Среди основных сетевых моделей существуют две: модель OSI и модель TCP/IP. Иногда можно встретить их как теоретическую и практическую модели.

 Они являются многоуровневыми, что значит четкое разбиение на отдельные уровни. Как сказано выше, каждому уровню четко приписаны функции, которые в пределах одной модели не повторяются. Таким образом модель OSI разбита на 7 уровней, а модель TCP/IP на 4 уровня:

Модель OSIМодель TCP/IP
7. Application LayerApplication Layer
6. Presentation Layer
5. Session Layer
4. Transport LayerTransport Layer
3. Network LayerInternet Layer
2. Data Link LayerNetwork Access Layer
1. Physical Layer

 Модели так изображены не зря. Во первых, уровни модели OSI довольно часто упоминают по номерам (они пронумерованы снизу вверх), в то время как уровни модели TCP/IP называют по именам. А второе - это то, что модель TCP/IP можно описать терминами OSI. Как показано, обе модели имеют идентичные уровни Transport и Internet (Network), на которые возложены соответственно одинаковые задачи. Но, к примеру, модель TCP/IP не различает границы между физическим представлением сигналов, битов на проводах (или в другой среде передачи данных) и способом доступа к тем самым проводам. Это делает модель менее предпочтительной для поисков неполадок, так как, к примеру, битый кабель или разного рода помехи радио-волн не имеют ничего общего с заполненностью таблицы MAC-адресов на свиче.

Более детальное описание

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

  1. Физический уровень (Physical layer). Данные представляются в виде электрических импульсов, пучков света, электромагнитных волн, что кодируют биты. Задача состоит в создании физического канала для отправки битов.
  2. Канальный уровень (Data Link layer). Обеспечивает передачу данных через физический канал.
  3. Сетевой уровень (Network layer). Обеспечивает передачу данных между сетями в пределах области под названием internetwork. Где internetwork - это объединение двух и более сетей с общими принципами маршрутизации (проще сказать, сеть сетей).
  4. Транспортный уровень (Transport layer). Обеспечивает доставку данных конкретному приложению на рабочей станции или сервере. На этом уровне появляется адресация - порты. Так, например, если приходит сообщение на 80-й порт, то оно передается процессу веб-сервера, который слушает этот порт.
  5. Сессионный уровень (Session layer). Создает и управляет диалогами и сессиями между приложениями. Приложение должно различать разные потоки данных в пределах одного соединения. Например, приложение может одновременно запрашивать два файла с одного сервера, при этом оно будет различать потоки.
  6. Уровень представлений (Presentation layer). Здесь данные кодируются, сжимаются или шифруются. Например, отправляя сообщение, его нужно предварительно сжать для уменьшения трафика, то это задача именно этого уровня.
  7. Уровень приложений (Application layer). Организовывает интерфейс между приложениями. Т.е. описывает структуру сообщения понятного приложению.

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

 Обратный процесс к инкапсуляции - декапсуляция. Это процесс извлечения данных, путем отбрасывания служебной информации. Придерживаясь прошлого примера, представим, что получены некие данные. Декапсуляция на канальном уровне будет заключаться в отбросе заголовка, содержащего MAC адреса и трейлера. Полученные данные уже содержат заголовок IP в начале, они передаются на следующий сетевой уровень. Далее на сетевом уровне нету информации нижележащих уровней, что обеспечивает некую независимость от них. Аналогичным образом извлекается полезная нагрузка, путем отбрасывания заголовка и так далее. В самом конце цепочки получаем оригинальное сообщение. В рассмотренных примерах данные на каждом уровне имеют разную структуру, которая называется PDU (Protocol Data Unit). И, естественно, на каждом уровне PDU оригинального сообщения свой:

  7. Уровень приложений - данные (data)  4. Транспортный уровень - сегмент (segment)  3. Сетевой уровень - пакет (packet)  2. Канальный уровень - кадр (frame)  1. Физический уровень - биты (bits)

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

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

 Для жизненного примера вышеописанного, можно предложить примитивную модель для той же устной речи. Рассмотрим такие два уровня выдуманной модели: доставка собеседнику звуков и разбор речи. Таким образом вначале нужно договориться, каким образом принимать звуки. Протоколом здесь будут выступать правила и способы произношения звуков, чтобы собеседник их услышал. Затем услышанные звуки, не важно как и откуда, будут восприняты как отдельные слова, чтобы их понять, нужно договориться об использовании одного языка. Ведь если говорить на одном языке, а пытаться его понимать как другой, ничего не выйдет. Таким образом был продемонстрирован переход из первого уровня на второй, когда собеседник воспринимает речь, путем "декапсуляции" звуков в слова. Если же собеседник хочет что-то сказать, то он слова "инкапсулирует" в звуки, которые уже произносит.

Применение

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

 Модель OSI используется для описания и выявления разного рода неполадок, для классификации сетевого оборудования или отдельного сетевого протокола.

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

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

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

 Устройства третьего уровня работают с пакетами. И потому они ограничивают широковещательный домен.

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

Заключение

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

----------------------------------------Специально для www.quizful.netКопирование материала только с разрешения автора(c) 2009 pasis

www.quizful.net

2.2. Транспортный уровень моделей osi, tcp/ip

Транспортный уровень моделей OSI и TCP/IP одинаков как по функциям, так и по названию (см. рис.1.6). TCP/IP – это комбинация двух протоколов. Протокол IP функционирует на сетевом Уровне 3 OSI модели, он является протоколом без предварительного соединения типа connectionless, который обеспечивает наилучшую доставку через сеть (best-effort delivery), но без гарантий, т.е. доставка не надежная. Протокол TCP работает на транспортном Уровне 4 OSI модели и является протоколом типа connection-oriented, т.е. ориентированным на предварительное соединение, которое обеспечивает контроль потока и надежность доставки. Когда эти протоколы объединены, они обеспечивают более широкий объем услуг. Объединение протоколов IP и TCP является базовым для всего набора протоколов TCP/IP. Всемирная сеть Интернет строится на основе набора протоколов TCP/IP.

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

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

Таким образом, главными функциями транспортного уровня являются:

  1. Сегментация данных и повторная сборка целого сообщения из полученных сегментов. Большинство сетей имеет ограничение на объем передаваемых сообщений. Поэтому Транспортный уровень делит большое сообщение прикладного уровня на сегменты данных, размер которых соответствует требованиям PDU более низких уровней сетевой модели. Кроме того, если в процессе контроля обнаружится, что принятое сообщение содержит ошибку, то возникает необходимость повторной передачи всего большого сообщения. При обнаружении ошибки в одном из принятых сегментов только данный сегмент и будет передан повторно. Сегменты могут быть направлены к одному или различным узлам назначения. Многие приложения могут разделять одно транспортное соединение. Многочисленные одновременные обмены данными верхнего уровня могут быть мультиплексированы поверх единственного соединения.

  2. Обеспечение многочисленных одновременно протекающих обменов данными верхнего уровня. Эти данные могут быть мультиплексированы поверх единственного соединения (Conversation Multiplexing). На каждом конечном узле сети может быть запущено много разных приложений. Чтобы передавать потоки данных соответствующим приложениям, протокол транспортного уровня должен идентифицировать каждое приложение. В протоколе TCP в качестве идентификатора используют номер порта. Номер порта в заголовке сегмента транспортного уровня указывает, какое приложение создало передаваемые данные и должно обрабатывать полученные данные на приемной стороне. При множественных одновременно протекающих обменах данными каждому из приложений или услуг назначается свой адрес (номер порта) так, чтобы транспортный уровень мог определить, с каким конкретно приложением или службой передаваемые данные должны взаимодействовать.

Наиболее известными протоколами транспортного уровня являются протокол контроля передачи (Transmission Control Protocol – TCP) и протокол дейтаграмм пользователя (User Datagram Protocol – UDP). Протокол контроля передачи (TCP) является ориентированным на предварительное соединение типа connection-oriented. Он обеспечивает контроль потока и надежность, взаимодействует с протоколами прикладного уровня: HTTP, SMTP, FTP и другими. UDP является протоколом дейтаграммного типа connectionless, взаимодействует с такими протоколами прикладного уровня, как система доменных имен – DNS, передачи потока видеоданных – Video Steaming, голос поверх IP – Voice over IP и рядом других. Следует отметить, что система DNS взаимодействует как с TCP, так и с UDP.

Протокол транспортного уровня TCP имеет две первичных обязанности:

  1. Обеспечение контроля потока.

  2. Обеспечение надежности.

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

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

Надежность обеспечивается целым рядом мер:

- прослеживание (tracking) переданных данных,

- подтверждение (acknowledging) полученных данных,

- повторная передача любых не подтвержденных (unacknowledged) данных.

Контроль надежности реализуетcя путем задания ряда параметров в заголовке сегмента TCP (рис.2.6), который содержит 20 байт.

Поля TCP сегмента определяют следующее:

- Source Port – номер порта, который посылает данные,

- Destination Port – номер порта, который принимает данные,

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

Source Port

Destination Port

Sequence number

Acknowledgement Number

H L

Reserved

Code Bits

Window

Checksum

Urgent

Options

Data

Рис.2.6. Формат сегмента TCP

- Sequence Number – номер последовательности, используемый, чтобы гарантировать объединение (reassemble) частей (порций) данных в корректном порядке в устройстве назначения,

- Acknowledgment Number – 32 бита последовательного номера подтверждения принятых данных, следующая ожидаемая порция TCP,

- HL – число 32-разрядных слов в заголовке,

- Reserved – разряды поля, установленные в ноль,

- Code bits – 6 разрядов, выполняющих функции контроля, таких как установка и завершение сеанса,

- Window – число октетов в окне,

- Checksum – вычисленная контрольная сумма заголовка и поля данных,

- Urgent pointer – индицирует конец срочных данных,

- Option – Каждая текущая опция определяет максимальный размер TCP сегмента.

Поскольку UDP является протоколом дейтаграммного типа, то в заголовке его сегмента (рис.2.7) отсутствуют такие параметры, как Acknowledgement Number, Window.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

Source Port

Destination Port

Length

Checksum

Data

Рис.2.7. Формат сегмента UDP

Поля UDP сегмента определяют следующее:

  • Source port – номер порта, который посылает данные,

  • Destination port – номер порта, который принимает данные,

  • Length – число байт в заголовке и данных,

  • Checksum –контрольная сумма заголовка и поля данных,

  • Data – данные протокола верхнего уровня.

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

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

Номера портов делятся на несколько типов:

  • известные номера (Well Known Ports), диапазон адресов которых находится в пределах от 0 до 1023;

  • зарегистрированные порты с номерами от 1024 до 49151;

  • динамические частные порты с номерами от 49151 до 65535, которые обычно динамически присваиваются пользователям.

Номера известных портов заданы организацией Internet Assigned Numbers Authority (IANA). Номера известных портов назначаются службам сервиса. Номера некоторых известных портов протокола TCP приведены в табл.2.1

Таблица 2.1

Номера известных портов

Протоколы

FTP

Telnet

SMTP

HTTP

HTTPS

POP3

Порты

20, 21

23

25

80

443

110

В приложении протокола передачи файлов FTP используются два стандартных номера порта 20 и 21. Порт 20 используется для передачи данных, а порт 21 – для управления.

Среди известных номеров протокола UDP наиболее распространенные: протокол TFTP – 69, RIP – 520.

Протоколы DNS с номером порта 53 и SNMP – 161 используются как протоколом TCP, так и UDP.

Зарегистрированные порты назначаются как пользователям, так и приложениям. Когда зарегистрированные порты не используются для ресурсов сервера, они могут быть использованы динамически клиентом как номер порта источника. Из зарегистрированных портов можно отметить альтернативные порты HTTP – 8008 и 8080.

Заголовок TCP сегмента (рис.2.6) содержит последовательный номер (Sequence Number), используемый, чтобы гарантировать объединение частей (порций) данных в том порядке, в котором они были переданы. Протокол UDP не имеет такого механизма, поэтому возможны ошибки при объединении частей (порций) данных при передаче по сложной сети. Однако скорость передачи данных с использованием протокола UDP выше, чем TCP.

Если необходимо узнать, какие TCP соединения активны на сетевом узле, то можно использовать команду netstat. В распечатке команды (рис.2.8) указан протокол (TCP), локальный адрес с номером порта, внешний адрес (или имя) с номером порта и состояние связи.

Рис.2.8. Результат выполнения команды netstat

Номер порта локального адреса является динамически назначаемым зарегистрированным портом источника с номером больше 1023. Для адреса www.cisco.com внешний порт задан символически: http. Состояние связи может быть с установленным соединением (ESTABLISHED) или с ожиданием окончания соединения (TIME_WAIT), когда был послан запрос окончания соединения (FIN).

studfiles.net