Подле дурака всегда найдется жулик.

- Доктор! У меня стул. Регуляpно. Ровно в шесть утра. На пpотяжении пяти лет. ...

Выпуск звукового сервера PulseAudio 13.0
Fri, 13 Sep 2019 22:47:58 +0300

Выпуск программы для туристов QMapShack 1.13.2
Fri, 13 Sep 2019 15:11:39 +0300

Выпуск среды разработки Qt Design Studio 1.3
Fri, 13 Sep 2019 13:20:43 +0300

Компания Huawei начала предустановку Deepin Linux на ноутбуки
Fri, 13 Sep 2019 10:05:57 +0300

Выпуск CentOS 8.0 снова откладывается
Fri, 13 Sep 2019 09:58:18 +0300

Выпуск пользовательского окружения GNOME 3.34
Thu, 12 Sep 2019 20:28:31 +0300

Доступен Jakarta EE 8, первый выпуск после передачи Java EE проекту Eclipse
Thu, 12 Sep 2019 20:24:02 +0300

Оценка злоупотребления запросом полномочий в приложениях-фонариках для Android
Thu, 12 Sep 2019 12:22:46 +0300

Сравнение производительности сетевого драйвера в вариантах на 10 языках программирования
Thu, 12 Sep 2019 10:47:50 +0300

Релиз программы для обработки фотографий RawTherapee 5.7
Thu, 12 Sep 2019 09:22:18 +0300

Погиб автор vkd3d и один из ключевых разработчиков Wine
Thu, 12 Sep 2019 08:26:00 +0300

Выпуск системы инициализации sysvinit 2.96
Thu, 12 Sep 2019 08:11:35 +0300

DNS over HTTPS отключен по умолчанию в порте Firefox для OpenBSD
Thu, 12 Sep 2019 02:52:46 +0300

Релиз обработчика нехватки памяти oomd 0.2.0
Wed, 11 Sep 2019 21:45:04 +0300

Релиз Chrome 77
Wed, 11 Sep 2019 15:08:19 +0300

Реализация DDIO в чипах Intel допускает сетевую атаку по определению нажатий клавиш в сеансе SSH
Wed, 11 Sep 2019 08:38:40 +0300

Mozilla тестирует прокси-сервис Private Network для Firefox
Tue, 10 Sep 2019 23:22:42 +0300

В Ubuntu 19.10 будет использована светлая тема оформления и ускорена загрузка
Tue, 10 Sep 2019 21:56:08 +0300

Выпуск интегрированной среды разработки Qt Creator 4.10.0
Tue, 10 Sep 2019 21:22:49 +0300

14 сентября в Киеве состоится конференция OSDN 2019
Tue, 10 Sep 2019 19:55:25 +0300

Netflix предложил реализацию алгоритма контроля перегрузок TCP BBR для FreeBSD
Tue, 10 Sep 2019 16:12:24 +0300

В KDE реализована поддержка дробного масштабирования при работе поверх Wayland
Tue, 10 Sep 2019 12:11:43 +0300

Выпуск дистрибутива LXLE 18.04.3
Tue, 10 Sep 2019 11:15:21 +0300

Релиз браузерного движка WebKitGTK 2.26.0 и web-браузера Epiphany 3.34
Tue, 10 Sep 2019 09:54:42 +0300

Выпуск Gthree 0.2.0, 3D-библиотеки на базе GObject и GTK
Tue, 10 Sep 2019 08:52:12 +0300

В состав GCC принят бэкенд для компиляции в eBPF
Mon, 09 Sep 2019 23:13:24 +0300

Опубликован код Telegram Open Network и связанных P2P и блокчейн технологий
Mon, 09 Sep 2019 20:06:43 +0300

Выпуск платформы голосового общения Mumble 1.3
Mon, 09 Sep 2019 10:42:43 +0300

В состав Chrome включена поддержка блокировки сторонних Cookie в режиме инкогнито
Mon, 09 Sep 2019 10:06:01 +0300

Дистрибутив Manjaro будет развиваться коммерческой компанией
Mon, 09 Sep 2019 09:26:10 +0300

Выпуск интерактивного межсетевого экрана TinyWall 2.0
Mon, 09 Sep 2019 07:52:36 +0300

Представлена программа управления дронами Kirogi
Sun, 08 Sep 2019 19:47:26 +0300

Выпуск ZeroNet 0.7, платформы для создания децентрализованных сайтов
Sun, 08 Sep 2019 10:26:51 +0300

KDE сосредоточит внимание на поддержке Wayland, унификации и доставке приложений
Sun, 08 Sep 2019 09:13:16 +0300

Новые версии Debian 9.11 и 10.1
Sat, 07 Sep 2019 22:09:16 +0300

Анонсирована дата начала продаж смартфона Librem 5
Sat, 07 Sep 2019 21:16:04 +0300

Mozilla переходит к включению по умолчанию DNS-over-HTTPS в Firefox
Sat, 07 Sep 2019 08:44:16 +0300

Выпуск графического редактора LazPaint 7.0.5
Sat, 07 Sep 2019 04:53:09 +0300

Началось тестирование GNU Wget 2
Fri, 06 Sep 2019 22:24:55 +0300

Раскрыты подробности критической уязвимости в Exim
Fri, 06 Sep 2019 19:34:14 +0300

Модель OSI Модель TCP/IP Порты Протоколы
Эталонные модели

Рассмотрим эталонную модель, использовавшуюся в компьютерной сети ARPANET, которая является бабушкой нынешних сетей, а также в ее наследнице, всемирной сети Интернет. ARPANET была исследовательской сетью, финансируемой Министерством обороны США. В конце концов она объединила сотни университетов и правительственных зданий при помощи выделенных телефонных линий. Когда впоследствии появились спутниковые сети и радиосети, возникли большие проблемы при объединении с ними других сетей с помощью имеющихся протоколов. Понадобилась новая эталонная архитектура. Таким образом, возможность объединять различные сети в единое целое являлась одной из главных целей с самого начала. Позднее эта архитектура получила название эталонной модели TCP/IP в соответствии со своими двумя основными протоколами. Первое ее описание встречается в книге Cerf и Kahn (1974). Из более поздних описаний можно выделить книгу, написанную Leiner и др. в 1985 году. Конструктивные особенности модели обсуждаются в издании Clark, 1988.

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

Интернет-уровень

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

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

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

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

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

Второй протокол этого уровня, UDP (User Data Protocol — пользовательский протокол данных), является ненадежным протоколом без установления соединения, не использующим последовательное управление потоком протокола TCP, а предоставляющим свое собственное. Он также широко используется в одноразовых клиент-серверных запросах и приложениях, в которых оперативность важнее аккуратности, например, при передаче речи и видео. Взаимоотношения протоколов IP, TCP и UDP показаны на рис. 1.18. Со времени создания протокола IP этот протокол был реализован во многих других сетях.

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

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

Над транспортным уровнем располагается прикладной уровень. Он содержит все протоколы высокого уровня. К старым протоколам относятся протокол виртуального терминала (TELNET), протокол переноса файлов (FTP) и протокол электронной почты (SMTP), как показано на схеме. Протокол виртуального терминала позволяет пользователю регистрироваться на удаленном сервере и работать на нем. Протокол переноса файлов предоставляет эффективный способ перемещения информации с машины на машину. Электронная почта изначально представляла собой разновидность переноса файлов, однако позднее для нее был разработан специальный протокол. С годами было добавлено много других протоколов, таких как DNS (Domain Name Service — служба имен доменов), позволяющая преобразовывать имена хостов в сетевые адреса, NNTP (Network News Transfer Protocol — сетевой протокол передачи новостей), HTTP, протокол, используемый для создания страниц на World Wide Web, и многие другие.

Хост-сетевой уровень

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

Сравнение эталонных моделей OSI и TCP

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

Несмотря на это фундаментальное сходство, у этих моделей имеется и ряд отличий. В данном разделе мы обратим внимание на ключевые различия. Обратите внимание на то, что мы сравниваем именно эталонные модели, а не соответствующие им стеки протоколов. Сами протоколы будут обсуждаться несколько позднее. Существует книга (Piscitello и Chapin, 1993), которая целиком посвящена сравнению моделей TCP/IP и OSI.

Для модели OSI центральными являются три концепции:

1. Службы.

2. Интерфейсы.

3. Протоколы.

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

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

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

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

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

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

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

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

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

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

Еще одно различие между моделями лежит в сфере возможности использования связи на основе соединений и связи без установления соединения. Модель OSI на сетевом уровне поддерживает оба типа связи, а на транспортном уровне — только связь на основе соединений (поскольку транспортные службы являются видимыми для пользователя). В модели TCP/IP на сетевом уровне есть только один режим связи (без установления соединения), но на транспортном уровне он поддерживает оба режима, предоставляя пользователям выбор. Этот выбор особенно важен для простых протоколов «запрос — ответ».

Критика эталонной модели TCP/IP

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

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

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

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

И наконец, хотя протоколы IP и TCP были тщательно продуманы и неплохо реализованы, многие другие протоколы были созданы несколькими студентами, работавшими над ними, пока это занятие им не наскучило. Реализации этих протоколов свободно распространялись, в результате чего они получили широкое признание, глубоко укоренились, и теперь их трудно заменить на что-либо другое. Некоторые из них в настоящее время оказались серьезным препятствием на пути прогресса. Например, протокол виртуального терминала TELNET, созданный еще для механического терминала типа Teletype, работавшего с огромной скоростью 10 символов в секунду. Ему ничего не известно о графических интерфейсах пользователя и о мышках. Тем не менее сейчас, почти 30 лет спустя, он все еще широко используется.

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

НОВОСТИ: Выпуск программы для туристов QMapShack 1.13.2 Fri, 13 Sep 2019 15:11:39 +0300

Доступен выпуск программы для туристов QMapShack 1.13.2, которая может применяться на этапе планирования походов для прокладки маршрута, а также для сохранения информации о пройденных маршрутах, ведения дневника путешествия или подготовки отчётов о путешествиях. QMapShack является переработанным и концептуально иным ответвлением от программы QLandkarte GT (развивает тот же автор), портированным на Qt5. Код распространяется под лицензией GPLv3. Поддерживается работа в Linux, Windows и macOS.

Opera Firefox INFOBOX - хостинг Google Chrome