Компьютерные сети. Введение — различия между версиями

Материал из Вики ИТ мехмата ЮФУ
Перейти к: навигация, поиск
Строка 108: Строка 108:
 
}}
 
}}
  
 +
==Файлообменные P2P сети==
 +
 +
Клиент-серверная организация обмена данными (файлами): есть сервер, на котором храниться вся информация. Клиенты подключаются к серверу и запрашивают определенные ресурсы.
 +
В случае пиринговой ( peer to peer – от равного к равному ) организации обмена данными такого сервера нет! В P2P- сети пользователи скачивают информацию друг у друга, а не у выделенного сервера.
 +
Выглядит это так: пользователи сети выкладывают какие-либо файлы в «расшаренную» (англ. share, делиться) папку, т. е. папку, файлы из которой доступны для скачивания другим клиентам. Какой-нибудь другой пользователь сети посылает запрос на поиск какого-либо файла. Программа ищет у клиентов сети файлы, соответствующие запросу, и показывает результат. После этого пользователь может скачать файлы у найденных источников. Современные файлообменные сети позволяют скачивать один файл сразу с нескольких источников (так быстрее и надёжнее). Чтобы убедиться, что этот файл у всех источников одинаковый, производится сравнение не обязательно по названию файла, а и по контрольным суммам или хэшам типа MD4, TTH, SHA-1. Во время скачивания файла пользователем (и после его окончания) этот файл у него могут скачивать и другие клиенты сети, в результате чего особенно популярные файлы могут в итоге быть доступными для скачивания с многих источников одновременно.
 +
Обычно в таких сетях обмениваются фильмами и музыкой, что является извечной головной болью видеоиздательских и звукозаписывающих компаний, которым такое положение дел очень не по душе. Проблем им добавляет тот факт, что пресечь распространение файла в децентрализованной пиринговой сети технически невозможно — для этого потребуется физически отключить от сети все машины, на которых лежит этот файл, а таких машин (см. выше) может быть очень и очень много — в зависимости от популярности файла их число может достигать сотен тысяч. В последнее время видеоиздатели и звукозаписывающие компании начали подавать в суд на отдельных пользователей таких сетей, обвиняя их в незаконном распространении музыки и видео.
 +
Такие организации, как RIAA, дискредитируют пиринговые сети, публикуя в них фальшивые файлы (содержание которых не соответствует названию, часто носит порнографический характер).
 +
Объявление на сайте torrents.ru для правообладателей:
 +
Ресурс torrents.ru является общедоступным для всех зарегистрированных пользователей и осуществляет свою деятельность с соблюдением действующего законодательства РФ. Администрация ресурса не осуществляет контроль и не может отвечать за размещаемую пользователями на портале torrents.ru информацию. Вместе с тем, Администрация ресурса резко отрицательно относится к нарушению авторских прав на территории torrents.ru. Поэтому, если Вы являетесь правообладателем исключительных имущественных прав и Ваши права тем или иным образом нарушаются с использованием данного ресурса, мы просим незамедлительно сообщать в службу рассмотрения жалоб письмом (в электронном виде), используя приведенную форму. Жалоба будет рассмотрена в срок, не превышающий 5 (пяти) рабочих дней. Согласно действующим нормам законодательства РФ администрация готова рассмотреть спорные вопросы в рамках досудебного (претензионного или иного) порядка урегулирования.
 +
Наш email: abuse@torrents.ru
 +
ВНИМАНИЕ! Мы не осуществляем контроль за действиями пользователей, которые могут повторно размещать ссылки на информацию, являющуюся объектом вашего исключительного права. Любая информация на форуме размещается пользователем самостоятельно, без какого-либо контроля с чьей-либо стороны, что соответствует общепринятой мировой практике размещения информации в сети интернет. Однако мы в любом случае рассмотрим все Ваши корректно сформулированные запросы относительно ссылок на информацию, нарушающую Ваши права. Запросы на удаление НЕПОСРЕДСТВЕННО информации, нарушающей права, будут возвращены отправителю, ибо на серверах torrents.ru подобная информация не содержится.
 +
 +
==P2P-сети с централизованным каталогом. Napster==
 +
 +
1) когда пир подключается к серверу, он сообщает
 +
свой IP
 +
имеющиеся файлы
 +
2) Алиса спрашивает у центрального сервера: у кого есть «Властелин колец»
 +
3) Алиса соединяется с компьютером Боба и перекачивает файл
 +
 +
Napster – служба обмена mp3- файлами, созданная Шоном Фаннингом (Shawn Fanning) – 18-летним студентом ( Napster – это  его ник). Она использовалась в основном студентами для обмена музыкой и стала очень популярной (80% интернет трафика). Она проработала 2 года: с 1999 по 2001. В июле 2001 центральный каталог на сервере был закрыт по решению суда. Иск подавала Recording Industry Association of America (RIAA) - Америка́нская ассоциа́ция звукозапи́сывающих компа́ний.
 +
With Napster, the files stay on the client machine, never passing through the server. The server provides the ability to search for particular files and initiate a direct transfer between the clients.
 +
 +
==Частично децентрализованные сети==
 +
 +
Дополнительные функции:
 +
множественная закачка
 +
распределенная база данных
 +
вместо имен файлов – хэш-суммы
 +
Трекер - веб-сервер, осуществляющий координацию BitTorrent-клиентов
 +
Виды: eDonkey2000, BitTorrent, Direct Connect
 +
 +
Чтобы сеть не была уязвима, необходимо иметь несколько центральных серверов. В сетях второго поколения реализована частичная децентрализация, когда серверов много и подключиться можно к любому из них. Если закроют большинство центральных узлов, то сеть продолжит функционирование, юзеры будут пользоваться альтернативными серверами. Но чем больше будет закрыто центральных (координирующих) серверов, тем меньше становится сеть.
 +
eDonkey (eDonkey2000, eD2k, осел, ослик)
 +
Была создана Джедом Мак Калебом (), вышла в сентябре 2000г. По сравнению с Napster у нее появилось несколько нововведений: множественная закачка (когда клиент может закачивать файл по частям, причем разные части у разных пиров). У Napster серверы, на которых хранится централизованный каталог, не связываются между собой. В последних версиях eDonkey200 0 серверы формируют поисковую сеть (каждый сначала ищет у себя, потом у других). Вместо имен файлов у Napster в eDonkey для идентификации используются хэш-суммы . Таким образом, один и тот же файл, имеющий разные имена у пиров, трактуется сервером как один файл.
 +
Каждый клиент связан с одним из серверов сети. Клиент сообщает серверу, какие файлы он предоставляет в общий доступ. Каждый сервер поддерживает список всех общих файлов клиентов, подключенных к нему. Когда клиент что-то ищет, он посылает поисковый запрос своему основному серверу.
 +
Принцип работы: Client Z имеет все части Файла (символы строчных букв представляют части файла). Client W, X, и Y хотят загрузить Файл. Начиная с Client X и Client Y, оба имеют различные части Файла, они могут не только получить файл от Client Z, но и могут посылать файл друг другу. Это позволяет файлу быть распределённо распространённым намного быстрее без того, чтобы использовать большее количество ширины канала Client Z. Client W может запустить загрузку файла, даже если источник файла (Client Z) больше не имеет достаточной ширины канала для отсылки.
 +
Периодически серверы связываются друг с другом на короткое время. Во время этого сеанса связи сервер, объявляя о своём существовании, посылает список всех других известных ему серверов. Таким образом, серверы поддерживают список других активных серверов. Когда клиент подключается к серверу, сервер может выдать ему список известных ему серверов.
 +
В феврале 2006 прекратил работу самый популярный сервер сети eD2k — Razorback, и была прекращена разработка коммерческого клиента EDonkey2000. Причиной «закрытия» сети послужил иск RIAA на 30 миллионов долларов.
 +
Закрытие eDonkey вызвало большой ажиотаж по очень простой причине - этот файлообменник в последние годы был крупнейшим или одним из крупнейших. Им пользовались 2-3 миллиона человек, которые чувствовали себя в относительной безопасности. Среди этих пользователей нашлись такие, которые еще в 2002 году решили создать альтернативный клиент, который бы использовал сеть eDonkey и развитие которого при этом не зависело бы от существования компании MetaMachine. Этот клиент называется eMule и очень популярен, в частности, у российских интернетчиков. И он, в отличие от eDonkey, умирать не собирается. Более того, сторонники eMule считают, что поддерживаемый eMule протокол Kad (вариант протокола Kademlia) обеспечивает достаточную анонимность для безнаказанного получения любых файлов. Свежая версия eMule к тому же умеет маскировать обмен файлами от провайдеров.
 +
 +
BitTorrent
 +
Отличия от eDonkey: более централизованный. Протокол BitTorrent требует фиксирования каждой такой загрузки на tracker-сервере, даже если сервер в транзакции не участвует. В случае отсутствия в сети tracker- сервера файл загрузить нельзя. Внедрение tracker-сервера позволяет проследить за статистикой загрузок (что немаловажно для софтверных компаний). Услугами BitTorrent уже воспользовались такие компании, как Red Hat и Mandrake, выложив в сеть новые версии своих операционных систем с одновременной публикацией на сайте torrent-файлов. Дистрибутивы представляли собой три ISO-файла объемом около 700 МВ каждый, т. е. в итоге любители Linux были вынуждены загружать около 2 GB, что в былые времена традиционно "убивало" FTP-серверы. По словам представителей Red Hat, после запуска дистрибутивов в сеть BitTorrent нагрузка на центральный FTP-сервер компании упала на 99%. Более того, присутствие tracker-сервера позволило Red Hat отследить статистику загрузок в режиме реального времени. Подробная информация редко доступна или принципиально невозможна в других пиринговых сетях.
 +
Various jurisdictions have pursued legal action against websites that host BitTorrent trackers. High-profile examples include the closing of Suprnova.org, torrentspy.org, LokiTorrent, Demonoid (now back online), OiNK.cd and EliteTorrents.org. The Pirate Bay torrent website, formed by a Swedish anti-copyright group, is notorious for the "legal" section of its website in which letters and replies on the subject of alleged copyright infringements are publicly displayed. On May 31, 2006, The Pirate Bay's servers in Sweden were raided by Swedish police on allegations by the MPAA of copyright infringement;[33] however, the tracker was up and running again three days later.
 +
HBO, in an effort to combat the distribution of its programming on BitTorrent networks, has sent cease and desist letters to the Internet Service Providers of BitTorrent users. Many users have reported receiving letters from their ISPs that threatened to cut off their internet service if the alleged infringement continues.[34] HBO, unlike the RIAA, has not been reported to have filed suit against anyone for sharing files as of April 2007. In 2005 HBO began "poisoning" torrents of its show Rome, by providing bad chunks of data to clients.[35]
 +
On November 23, 2005, the movie industry and BitTorrent Inc. CEO Bram Cohen, signed a deal they hoped would reduce the number of unlicensed copies available through bittorrent.com's search engine, run by BitTorrent, Inc. It meant BitTorrent.com had to remove any links to unlicensed copies of films made by seven of Hollywood's major movie studios.
 +
 +
==Полностью децентрализованные сети. Gnutella==
 +
 +
узлы – пользователи с установленными клиентами
 +
начальная загрузка
 +
лавинный поиск
 +
недостатки: ненадежный; экспоненциальная зависимость загрузки каналов от числа узлов; маленькое количество просматриваемых узлов
 +
апгрейд: система ультрапиров и листьев
 +
 +
Gnutella
 +
История ее появления очень забавная: эту сеть началa создавать America-on-Line с корыстными целями. Собрали одних из лучших сетевых программистов, которые придумали непобедимое чудо сетевых технологий. Но, так получилось, что AOL объединился со звукозаписывающей компанией и понял, какую собаку он себе подложил. Сеть попытались закрыть, но она оказалась непобедимой, плюс, непосредственно создатели сопротивлялись. От AOL они ушли, и стали строить эту сеть сами. Вот так AOL навредил самому себе. Gnutella построена по собственной особой технологии без центральных узлов gPulp. Узлами здесь служат сами пользователи, а саму программу вывести из строя невозможно. Поэтому, даже если самих программистов «раскулачат», сеть закрыть никто не сможет.
 +
Работа сети:
 +
1 шаг: To envision how Gnutella originally worked, imagine a large circle of users (called nodes), who each have Gnutella client software. On initial startup, the client software must bootstrap and find at least one other node.
 +
далее: Once connected, the client will request a list of working addresses. The client will try to connect to the nodes it was shipped with as well as nodes it receives from other clients until it reaches a certain quota. It will only connect to that many nodes, locally cache the addresses it has not yet tried and discarding addresses it tried which were invalid.
 +
поиск:
 +
Пользователь вводит запрос (например, название mp3-файла). Программа рассылает запрос на поиск файла всем узлам в списке, а далее просто ждет входящих сообщений.
 +
Каждый узел, получивший запрос на поиск, ищет в своем фонде указанный файл. Если файл не найден, то узел просто не отвечает.
 +
Если файл найден, узел отсылает инициатору запроса ответ с информацией о файле и о себе (IP-адрес).
 +
Получив ряд ответов, программа выбирает один из узлов, устанавливает с ним стандартное HTTP-соединение и загружает файл. При этом все сообщения (от Ping-запроса до скачивания файла) посылаются по HTTP, что затрудняет их отслеживание и блокировку.
 +
экспоненциальная зависимость загрузки каналов от числа узлов: Пусть компьютер хочет опросить все компьютеры в сети. Он посылает запрос 10 известным ему компьютерам. Каждый из них отправит по 10 запросов известным им компьютерам и т.д.. Итого получится 10+100+1000+..+10^d запросов, где d-расстояние до самого далекого компьютера. Если количество компьютеров в сети увеличится в 2 раза, то во сколько раз увеличится количество запросов? (Должно получиться, примерно, - возведётся в квадрат)
 +
Now, when the user wanted to do a search, the client would send the request to each node it is actively connected to. The number of actively connected nodes for a client was usually quite small (around 5), so each node then forwards the request to all the nodes it is connected to, and they in turn forward the request, and so on, until the packet was a predetermined number of "hops« (прыжков) from the sender.
 +
If a search request turns up a result, the node that had the result needs to contact the searcher. In the classic Gnutella protocol response messages were always sent back along the route the query came in through, as the query itself did not contain identifying information of the node. This scheme was later revised, so that search results are delivered over UDP directly to the node which initiated the search, respectively a proxying peer, usually an ultrapeer of the node. The queries do therefore carry the IP address and port number of either node. This lowers the amount of traffic routed through the Gnutella network, making it significantly more scalable.
 +
In practice, this method of searching on the Gnutella network was often unreliable. Each node is a regular computer user; as such, they are constantly connecting and disconnecting, so the network is never completely stable. Also, the bandwidth cost of searching on Gnutella would grow exponentially to the number of connected users [1], often saturating connections rendering slower nodes useless. Therefore, search requests would often be dropped, and most queries reached only a very small percentage of the network. This observation identified the Gnutella network as an unscalable distributed system, and inspired the development of distributed hash tables, which are much more scalable but support only exact-match, rather than keyword, search.
 +
апгрейд:
 +
To address the problems of bottlenecks, Gnutella developers implemented a tiered system of ultrapeers and leaves. Instead of all nodes being considered equal, nodes entering into the network were kept at the 'edge' of the network as a leaf, not responsible for any routing, and nodes which were capable of routing messages were promoted to ultrapeers, which would accept leaf connections and route searches and network maintenance messages. This allowed searches to propagate further through the network, and allowed for numerous alterations in the topology which have improved the efficiency and scalability greatly.
 +
 +
==Полностью децентрализованные сети. Kad==
 +
 +
DHT (Distributed hash table) – децентрализованная распределенная система для объединения большого количества постоянно исчезающих и появляющихся узлов и эффективной передачи сообщений между ними
 +
использует 160-битные хэши для идентификации узлов, файлов и имен файлов (ключевых слов)
 +
каждый узел содержит информацию о месторасположении файлов с хешами, близкими к его хешу
 +
 +
Kad
 +
Сеть Kad – это реализация DHT (Distributed hash table) – децентрализованной распределенной системы для объединения большого количества постоянно исчезающих и появляющихся узлов и эффективной передачи сообщений между ними.
 +
Узлы, файлы и имена файлов(ключевые слова) кодируются (алгоритмом SHA-1 ) 160-битными числами.
 +
Если узел хочет расшарить файл, он обрабатывает его, получая хэш, который идентифицирует этот файл в сети. Затем узел ищет несколько узлов, ID которых близки к хэшу файла и его имени (размеры хешей файлов и узлов совпадают, расстояние вычисляется применением операции XOR к хешам). На эти узлы отдается информация об адресе узла, на котором хранится файл.
 +
 +
===Поиск в Kad===
 +
 +
Кружочками отмечены узлы. В соответствии с хешами узлы можно разместить в двоичном дереве.
 +
Поиск очень похож на DNS- запросы .
 +
Каждый узел (как и каждый DNS- сервер) знает адреса всех узлов в своей ветке, расположенных рядышком (на этом же уровне или ниже (зон следующего уровня или дочерних зон в DNS )) и адреса некоторых узлов «высокого уровня».
 +
Когда узел хочет найти файл, он сравнивает хеш имени с хешами известных ему узлов, и затем посылает запрос тому узлу, чей хеш наиболее близок к искомому. Тот узел возвращает ему адрес узла, чей хеш ещё ближе к искомому.
 +
Тогда наш узел посылает запрос тому новому узлу, и получает от него адрес следующего узла, чей хеш ещё ближе и т.д.. Таким образом, запросы постепенно стекаются к узлам, чьи хеши наиболее похожи на искомый. А эти узлы уже знают, где находится файл.  Запросы – итеративные.
 +
«Стоимость» такого поиска логарифмически зависит от количества узлов в сети (если количество узлов удвоится, то кол-во запросов возрастет на 1).
 +
 +
==Другие приложения P2P-сетей==
 +
 +
Мобильный P2P
 +
Распределенные вычисления    SETI@home
 +
Совместное работа ( Groove )
 +
Skype
  
 
==Структура сети Интернет==
 
==Структура сети Интернет==

Версия 22:14, 19 мая 2009

Содержание

Базовые понятия

Компьютерная сеть — это совокупность компьютеров, которые могут обмениваться между собой информацией.

Компоненты компьютерной сети:

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

Сервер — компьютер или программа, предоставляющая некоторые услуги.

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

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

Клиент — это компьютер или программа, запрашивающая услуги.

Клиенты бывают толстыми, тонкими и сверхтонкими.

Сравнительные характристики клиентов

толстый клиент тонкий клиент сверхтонкий клиент
Данные хранятся на сервере
Программа-«сервер» хранится и работает на сервере
Программа-«клиент» (стандартное ПО, например, браузер) хранится и выполняется на клиенте
Данные перекачиваются с сервера на клиент и обрабатываются программой -«клиентом» на клиенте
Данные обрабатываются на сервере
Интерфейс строится программой-«клиентом» на клиенте
Интерфейс строится на сервере и передается программе-клиенту

При доступе к почте через почтовую программу, например, Mozilla Thunderbird (данные хранятся на сервере, а интерфейс обеспечивается почтовой программой-клиентом) можно сказать, что интерфейс строится программой-«клиентом» на клиенте. В случае же доступа к почте через веб-интерфейс (данные хранятся на сервере и интерфейс (веб-странички) генерируются сервером) интерфейс строится на сервере и передается программе-клиенту.

Протокол определяет:

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

Пропускная способность канала связи (bandwidth) — наибольшая скорость передачи информации по каналу связи. Измеряется числом передаваемых двоичных символов в 1 с. Скорость передачи зависит от физических свойств канала связи, статистических свойств помех, способа передачи, приема сигналов и др..

Классификация компьютерных сетей

Классификация компьютерных сетей по территории

  • Local Area Network (LAN) — сети одной квартиры, дома, организации.
  • Metropolian Area Network (MAN), городские — высокоскоростные каналы связи в пределах большого города.
  • Региональные — объединяют компьютеры географической области.
  • Wide Area Network (WAN),глобальные.

Примеры Пользователи Spark объединены в локальную сеть, которую можно назвать городской (MAN). Региональная сеть: Рунет. WAN: Интернет, сети магистральных Интернет провайдеров, сети организаций с филиалами по всему миру.

Классификация компьютерных сетей по топологии

Классификация компьютерных сетей по типу среды передачи

  • Проводные
    • витая пара;
    • коаксильный кабель;
    • оптоволокно.
  • Беспроводные
    • радиосвязь (WiFi, WiMAX);
    • инфракрасная связь;
    • СВЧ-связь (Bluetooth).


Файлообменные P2P сети

Клиент-серверная организация обмена данными (файлами): есть сервер, на котором храниться вся информация. Клиенты подключаются к серверу и запрашивают определенные ресурсы. В случае пиринговой ( peer to peer – от равного к равному ) организации обмена данными такого сервера нет! В P2P- сети пользователи скачивают информацию друг у друга, а не у выделенного сервера. Выглядит это так: пользователи сети выкладывают какие-либо файлы в «расшаренную» (англ. share, делиться) папку, т. е. папку, файлы из которой доступны для скачивания другим клиентам. Какой-нибудь другой пользователь сети посылает запрос на поиск какого-либо файла. Программа ищет у клиентов сети файлы, соответствующие запросу, и показывает результат. После этого пользователь может скачать файлы у найденных источников. Современные файлообменные сети позволяют скачивать один файл сразу с нескольких источников (так быстрее и надёжнее). Чтобы убедиться, что этот файл у всех источников одинаковый, производится сравнение не обязательно по названию файла, а и по контрольным суммам или хэшам типа MD4, TTH, SHA-1. Во время скачивания файла пользователем (и после его окончания) этот файл у него могут скачивать и другие клиенты сети, в результате чего особенно популярные файлы могут в итоге быть доступными для скачивания с многих источников одновременно. Обычно в таких сетях обмениваются фильмами и музыкой, что является извечной головной болью видеоиздательских и звукозаписывающих компаний, которым такое положение дел очень не по душе. Проблем им добавляет тот факт, что пресечь распространение файла в децентрализованной пиринговой сети технически невозможно — для этого потребуется физически отключить от сети все машины, на которых лежит этот файл, а таких машин (см. выше) может быть очень и очень много — в зависимости от популярности файла их число может достигать сотен тысяч. В последнее время видеоиздатели и звукозаписывающие компании начали подавать в суд на отдельных пользователей таких сетей, обвиняя их в незаконном распространении музыки и видео. Такие организации, как RIAA, дискредитируют пиринговые сети, публикуя в них фальшивые файлы (содержание которых не соответствует названию, часто носит порнографический характер). Объявление на сайте torrents.ru для правообладателей: Ресурс torrents.ru является общедоступным для всех зарегистрированных пользователей и осуществляет свою деятельность с соблюдением действующего законодательства РФ. Администрация ресурса не осуществляет контроль и не может отвечать за размещаемую пользователями на портале torrents.ru информацию. Вместе с тем, Администрация ресурса резко отрицательно относится к нарушению авторских прав на территории torrents.ru. Поэтому, если Вы являетесь правообладателем исключительных имущественных прав и Ваши права тем или иным образом нарушаются с использованием данного ресурса, мы просим незамедлительно сообщать в службу рассмотрения жалоб письмом (в электронном виде), используя приведенную форму. Жалоба будет рассмотрена в срок, не превышающий 5 (пяти) рабочих дней. Согласно действующим нормам законодательства РФ администрация готова рассмотреть спорные вопросы в рамках досудебного (претензионного или иного) порядка урегулирования. Наш email: abuse@torrents.ru ВНИМАНИЕ! Мы не осуществляем контроль за действиями пользователей, которые могут повторно размещать ссылки на информацию, являющуюся объектом вашего исключительного права. Любая информация на форуме размещается пользователем самостоятельно, без какого-либо контроля с чьей-либо стороны, что соответствует общепринятой мировой практике размещения информации в сети интернет. Однако мы в любом случае рассмотрим все Ваши корректно сформулированные запросы относительно ссылок на информацию, нарушающую Ваши права. Запросы на удаление НЕПОСРЕДСТВЕННО информации, нарушающей права, будут возвращены отправителю, ибо на серверах torrents.ru подобная информация не содержится.

P2P-сети с централизованным каталогом. Napster

1) когда пир подключается к серверу, он сообщает свой IP имеющиеся файлы 2) Алиса спрашивает у центрального сервера: у кого есть «Властелин колец» 3) Алиса соединяется с компьютером Боба и перекачивает файл

Napster – служба обмена mp3- файлами, созданная Шоном Фаннингом (Shawn Fanning) – 18-летним студентом ( Napster – это его ник). Она использовалась в основном студентами для обмена музыкой и стала очень популярной (80% интернет трафика). Она проработала 2 года: с 1999 по 2001. В июле 2001 центральный каталог на сервере был закрыт по решению суда. Иск подавала Recording Industry Association of America (RIAA) - Америка́нская ассоциа́ция звукозапи́сывающих компа́ний. With Napster, the files stay on the client machine, never passing through the server. The server provides the ability to search for particular files and initiate a direct transfer between the clients.

Частично децентрализованные сети

Дополнительные функции: множественная закачка распределенная база данных вместо имен файлов – хэш-суммы Трекер - веб-сервер, осуществляющий координацию BitTorrent-клиентов Виды: eDonkey2000, BitTorrent, Direct Connect

Чтобы сеть не была уязвима, необходимо иметь несколько центральных серверов. В сетях второго поколения реализована частичная децентрализация, когда серверов много и подключиться можно к любому из них. Если закроют большинство центральных узлов, то сеть продолжит функционирование, юзеры будут пользоваться альтернативными серверами. Но чем больше будет закрыто центральных (координирующих) серверов, тем меньше становится сеть. eDonkey (eDonkey2000, eD2k, осел, ослик) Была создана Джедом Мак Калебом (), вышла в сентябре 2000г. По сравнению с Napster у нее появилось несколько нововведений: множественная закачка (когда клиент может закачивать файл по частям, причем разные части у разных пиров). У Napster серверы, на которых хранится централизованный каталог, не связываются между собой. В последних версиях eDonkey200 0 серверы формируют поисковую сеть (каждый сначала ищет у себя, потом у других). Вместо имен файлов у Napster в eDonkey для идентификации используются хэш-суммы . Таким образом, один и тот же файл, имеющий разные имена у пиров, трактуется сервером как один файл. Каждый клиент связан с одним из серверов сети. Клиент сообщает серверу, какие файлы он предоставляет в общий доступ. Каждый сервер поддерживает список всех общих файлов клиентов, подключенных к нему. Когда клиент что-то ищет, он посылает поисковый запрос своему основному серверу. Принцип работы: Client Z имеет все части Файла (символы строчных букв представляют части файла). Client W, X, и Y хотят загрузить Файл. Начиная с Client X и Client Y, оба имеют различные части Файла, они могут не только получить файл от Client Z, но и могут посылать файл друг другу. Это позволяет файлу быть распределённо распространённым намного быстрее без того, чтобы использовать большее количество ширины канала Client Z. Client W может запустить загрузку файла, даже если источник файла (Client Z) больше не имеет достаточной ширины канала для отсылки. Периодически серверы связываются друг с другом на короткое время. Во время этого сеанса связи сервер, объявляя о своём существовании, посылает список всех других известных ему серверов. Таким образом, серверы поддерживают список других активных серверов. Когда клиент подключается к серверу, сервер может выдать ему список известных ему серверов. В феврале 2006 прекратил работу самый популярный сервер сети eD2k — Razorback, и была прекращена разработка коммерческого клиента EDonkey2000. Причиной «закрытия» сети послужил иск RIAA на 30 миллионов долларов. Закрытие eDonkey вызвало большой ажиотаж по очень простой причине - этот файлообменник в последние годы был крупнейшим или одним из крупнейших. Им пользовались 2-3 миллиона человек, которые чувствовали себя в относительной безопасности. Среди этих пользователей нашлись такие, которые еще в 2002 году решили создать альтернативный клиент, который бы использовал сеть eDonkey и развитие которого при этом не зависело бы от существования компании MetaMachine. Этот клиент называется eMule и очень популярен, в частности, у российских интернетчиков. И он, в отличие от eDonkey, умирать не собирается. Более того, сторонники eMule считают, что поддерживаемый eMule протокол Kad (вариант протокола Kademlia) обеспечивает достаточную анонимность для безнаказанного получения любых файлов. Свежая версия eMule к тому же умеет маскировать обмен файлами от провайдеров.

BitTorrent Отличия от eDonkey: более централизованный. Протокол BitTorrent требует фиксирования каждой такой загрузки на tracker-сервере, даже если сервер в транзакции не участвует. В случае отсутствия в сети tracker- сервера файл загрузить нельзя. Внедрение tracker-сервера позволяет проследить за статистикой загрузок (что немаловажно для софтверных компаний). Услугами BitTorrent уже воспользовались такие компании, как Red Hat и Mandrake, выложив в сеть новые версии своих операционных систем с одновременной публикацией на сайте torrent-файлов. Дистрибутивы представляли собой три ISO-файла объемом около 700 МВ каждый, т. е. в итоге любители Linux были вынуждены загружать около 2 GB, что в былые времена традиционно "убивало" FTP-серверы. По словам представителей Red Hat, после запуска дистрибутивов в сеть BitTorrent нагрузка на центральный FTP-сервер компании упала на 99%. Более того, присутствие tracker-сервера позволило Red Hat отследить статистику загрузок в режиме реального времени. Подробная информация редко доступна или принципиально невозможна в других пиринговых сетях. Various jurisdictions have pursued legal action against websites that host BitTorrent trackers. High-profile examples include the closing of Suprnova.org, torrentspy.org, LokiTorrent, Demonoid (now back online), OiNK.cd and EliteTorrents.org. The Pirate Bay torrent website, formed by a Swedish anti-copyright group, is notorious for the "legal" section of its website in which letters and replies on the subject of alleged copyright infringements are publicly displayed. On May 31, 2006, The Pirate Bay's servers in Sweden were raided by Swedish police on allegations by the MPAA of copyright infringement;[33] however, the tracker was up and running again three days later. HBO, in an effort to combat the distribution of its programming on BitTorrent networks, has sent cease and desist letters to the Internet Service Providers of BitTorrent users. Many users have reported receiving letters from their ISPs that threatened to cut off their internet service if the alleged infringement continues.[34] HBO, unlike the RIAA, has not been reported to have filed suit against anyone for sharing files as of April 2007. In 2005 HBO began "poisoning" torrents of its show Rome, by providing bad chunks of data to clients.[35] On November 23, 2005, the movie industry and BitTorrent Inc. CEO Bram Cohen, signed a deal they hoped would reduce the number of unlicensed copies available through bittorrent.com's search engine, run by BitTorrent, Inc. It meant BitTorrent.com had to remove any links to unlicensed copies of films made by seven of Hollywood's major movie studios.

Полностью децентрализованные сети. Gnutella

узлы – пользователи с установленными клиентами начальная загрузка лавинный поиск недостатки: ненадежный; экспоненциальная зависимость загрузки каналов от числа узлов; маленькое количество просматриваемых узлов апгрейд: система ультрапиров и листьев

Gnutella История ее появления очень забавная: эту сеть началa создавать America-on-Line с корыстными целями. Собрали одних из лучших сетевых программистов, которые придумали непобедимое чудо сетевых технологий. Но, так получилось, что AOL объединился со звукозаписывающей компанией и понял, какую собаку он себе подложил. Сеть попытались закрыть, но она оказалась непобедимой, плюс, непосредственно создатели сопротивлялись. От AOL они ушли, и стали строить эту сеть сами. Вот так AOL навредил самому себе. Gnutella построена по собственной особой технологии без центральных узлов gPulp. Узлами здесь служат сами пользователи, а саму программу вывести из строя невозможно. Поэтому, даже если самих программистов «раскулачат», сеть закрыть никто не сможет. Работа сети: 1 шаг: To envision how Gnutella originally worked, imagine a large circle of users (called nodes), who each have Gnutella client software. On initial startup, the client software must bootstrap and find at least one other node. далее: Once connected, the client will request a list of working addresses. The client will try to connect to the nodes it was shipped with as well as nodes it receives from other clients until it reaches a certain quota. It will only connect to that many nodes, locally cache the addresses it has not yet tried and discarding addresses it tried which were invalid. поиск: Пользователь вводит запрос (например, название mp3-файла). Программа рассылает запрос на поиск файла всем узлам в списке, а далее просто ждет входящих сообщений. Каждый узел, получивший запрос на поиск, ищет в своем фонде указанный файл. Если файл не найден, то узел просто не отвечает. Если файл найден, узел отсылает инициатору запроса ответ с информацией о файле и о себе (IP-адрес). Получив ряд ответов, программа выбирает один из узлов, устанавливает с ним стандартное HTTP-соединение и загружает файл. При этом все сообщения (от Ping-запроса до скачивания файла) посылаются по HTTP, что затрудняет их отслеживание и блокировку. экспоненциальная зависимость загрузки каналов от числа узлов: Пусть компьютер хочет опросить все компьютеры в сети. Он посылает запрос 10 известным ему компьютерам. Каждый из них отправит по 10 запросов известным им компьютерам и т.д.. Итого получится 10+100+1000+..+10^d запросов, где d-расстояние до самого далекого компьютера. Если количество компьютеров в сети увеличится в 2 раза, то во сколько раз увеличится количество запросов? (Должно получиться, примерно, - возведётся в квадрат) Now, when the user wanted to do a search, the client would send the request to each node it is actively connected to. The number of actively connected nodes for a client was usually quite small (around 5), so each node then forwards the request to all the nodes it is connected to, and they in turn forward the request, and so on, until the packet was a predetermined number of "hops« (прыжков) from the sender. If a search request turns up a result, the node that had the result needs to contact the searcher. In the classic Gnutella protocol response messages were always sent back along the route the query came in through, as the query itself did not contain identifying information of the node. This scheme was later revised, so that search results are delivered over UDP directly to the node which initiated the search, respectively a proxying peer, usually an ultrapeer of the node. The queries do therefore carry the IP address and port number of either node. This lowers the amount of traffic routed through the Gnutella network, making it significantly more scalable. In practice, this method of searching on the Gnutella network was often unreliable. Each node is a regular computer user; as such, they are constantly connecting and disconnecting, so the network is never completely stable. Also, the bandwidth cost of searching on Gnutella would grow exponentially to the number of connected users [1], often saturating connections rendering slower nodes useless. Therefore, search requests would often be dropped, and most queries reached only a very small percentage of the network. This observation identified the Gnutella network as an unscalable distributed system, and inspired the development of distributed hash tables, which are much more scalable but support only exact-match, rather than keyword, search. апгрейд: To address the problems of bottlenecks, Gnutella developers implemented a tiered system of ultrapeers and leaves. Instead of all nodes being considered equal, nodes entering into the network were kept at the 'edge' of the network as a leaf, not responsible for any routing, and nodes which were capable of routing messages were promoted to ultrapeers, which would accept leaf connections and route searches and network maintenance messages. This allowed searches to propagate further through the network, and allowed for numerous alterations in the topology which have improved the efficiency and scalability greatly.

Полностью децентрализованные сети. Kad

DHT (Distributed hash table) – децентрализованная распределенная система для объединения большого количества постоянно исчезающих и появляющихся узлов и эффективной передачи сообщений между ними использует 160-битные хэши для идентификации узлов, файлов и имен файлов (ключевых слов) каждый узел содержит информацию о месторасположении файлов с хешами, близкими к его хешу

Kad Сеть Kad – это реализация DHT (Distributed hash table) – децентрализованной распределенной системы для объединения большого количества постоянно исчезающих и появляющихся узлов и эффективной передачи сообщений между ними. Узлы, файлы и имена файлов(ключевые слова) кодируются (алгоритмом SHA-1 ) 160-битными числами. Если узел хочет расшарить файл, он обрабатывает его, получая хэш, который идентифицирует этот файл в сети. Затем узел ищет несколько узлов, ID которых близки к хэшу файла и его имени (размеры хешей файлов и узлов совпадают, расстояние вычисляется применением операции XOR к хешам). На эти узлы отдается информация об адресе узла, на котором хранится файл.

Поиск в Kad

Кружочками отмечены узлы. В соответствии с хешами узлы можно разместить в двоичном дереве. Поиск очень похож на DNS- запросы . Каждый узел (как и каждый DNS- сервер) знает адреса всех узлов в своей ветке, расположенных рядышком (на этом же уровне или ниже (зон следующего уровня или дочерних зон в DNS )) и адреса некоторых узлов «высокого уровня». Когда узел хочет найти файл, он сравнивает хеш имени с хешами известных ему узлов, и затем посылает запрос тому узлу, чей хеш наиболее близок к искомому. Тот узел возвращает ему адрес узла, чей хеш ещё ближе к искомому. Тогда наш узел посылает запрос тому новому узлу, и получает от него адрес следующего узла, чей хеш ещё ближе и т.д.. Таким образом, запросы постепенно стекаются к узлам, чьи хеши наиболее похожи на искомый. А эти узлы уже знают, где находится файл. Запросы – итеративные. «Стоимость» такого поиска логарифмически зависит от количества узлов в сети (если количество узлов удвоится, то кол-во запросов возрастет на 1).

Другие приложения P2P-сетей

Мобильный P2P Распределенные вычисления SETI@home Совместное работа ( Groove ) Skype

Структура сети Интернет

Локальные, региональные, магистральные провайдеры

Локальный (местный) провайдер (ISP – Internet Service Provider) – поставщик услуг Интернета, работающий (как правило) в пределах одного города (ЮГИНФО, ЦТС, Интеркабель).

Региональный провайдер – одной страны, области, округа (ТрансТелекомКавказ, ЮТК, ЦТС).

Магистральный провайдер – страны, континента, земного шара (Global one Orange), Голден Телеком, Ростелеком, Verizon, Cogent)

Точки присутствия (POP), точки обмена трафиком (IX)

Структура сети Интернет.gif

Ядро Интернета (или Core Backbone Network) составляют сети так называемых провайдеров первого уровня (Network Server Provider Tier-1) или магистральных провайдеров, наиболее крупными из которых являются UUNET(куплен Verizon), AT&T(в Америке), MCI (куплен Verizon), GTE/BBN (вместе с AT&T в SBC) и Sprint.

Эти сети построены в основном на базе технологий ATM и Frame Relay. Для их магистралей характерны каналы 622 и 2488 Мбит/с соответственно. Иногда встречаются каналы 9952 Мбит/с и более. Сети NSP Tier-1 свободно обмениваются между собой трафиком, причем основная часть этого обмена сосредоточена в двух зонах (Metropolian Exchange Area,MAE), расположенных в Нью-Йорке и Сан-Франциско. Хотя наибольшая концентрация NSP первого уровня приходится на США, "ареал распространения" этих сетей не ограничивается только этой страной. Другие страны получают доступ к ядру Интернета либо благодаря NSP первого уровня, имеющим точки присутствия (POP-Point of Presence) по всему миру (например, UUNET "дотягивается" и до Европы, и до Юго-Восточной Азии), либо локальным NSP первого уровня (эта практика распроcтранена в Азии).

Ниже магистральных провайдеров по иерархии расположены сетевые провайдеры следующего уровня — региональные, соединенные между собой высокоскоростными каналами передачи данных, которые, в свою очередь предоставляют доступ к Интернету местным (локальным) провайдерам (Internet Service Privider, ISP). Индивидуальные пользователи и компании-клиенты получают доступ к ресурсам Интернета именно при помощи ISP. Соединение между ISP и пользователями (частными или корпоративными) обычно осуществляется при помощи коммутируемых линий (обычных телефонных или ISDN), или посредством так называемых выделенных линий, позволяющим клиенту иметь постоянное соединение с Интернетом. Частным случаем выделенных линий являются: подключение при помощи ADSL и использование инфраструктуры кабельного телевидения. Таким образом, путь между произвольным Web-сервером и компьютером пользователя состоит из трех основных частей — участка между Web-сервером и скоростной магистралью, участка скоростной магистрали и участка, связывающего пользователя с магистралью.

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

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

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

Point Of Presence (POP), точка присутствия – место расположения оборудования оператора связи (провайдера), к которому возможно подключение клиентов.

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

Например, при предоставлении услуги подключения к сети Интернет последняя миля — участок от порта коммутатора провайдера на его узле связи до порта маршрутизатора клиента в его офисе. Для услуг коммутируемого (dial-up, диалапного) подключения последняя миля — это участок между модемом пользователя и модемом (модемным пулом) провайдера. В последнюю милю обычно не включается разводка проводов внутри здания. К технологиям последней мили обычно относят xDSL, Wi-Fi, WiMax. К оборудованию последней мили можно отнести xDSL-модемы, мультиплексоры доступа, оптоволоконные модемы и преобразователи, радиомультиплексоры. Есть специализированные компании и подразделения крупных компаний связи, которые занимаются исключительно построением последней мили.

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

IXPnternet eXchange Point (IXP), точка обмена трафиком – инфраструктура, которая позволяет различным провайдерам обмениваться трафиком.

Создаются для беспрепятственного пропускания трафика между различными провайдерами без загрузки внешних магистральных каналов. В местах, где дальняя связь плохо развита, местные региональные операторы оплачивают трафик во много раз дороже, чем операторы в США или Европе. Поэтому они организовывают точки обмена трафиком, через которые и пропускают крайне дешёвый трафик между своими клиентами.

Коммутация каналов и коммутация пакетов

Коммутация каналов

В 60-х годах основным средством связи были телефонные линии, использующие принцип коммутации каналов.

Телефонные линии.gif
Коммутация пакетов.gif
Они имели существенный недостатотк: нельзя освободить канал в период простоя. Под каждый сеанс разговора между двумя абонентами выделяется отдельный канал на всем протяжении линии. Он устанавливается в момент соединения и занят, пока есть соединение. Если нет свободных каналов, то линия становится перегруженной.

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

Коммутация пакетов

Сообщение разбивается на пакеты, которые могут идти независимо друг от друга (по разным маршрутам). В случае когда пакетов много, организуются очереди. Исключение: в сетях с режимом асинхронной передачи (Asynchronous Transfer Mode, ATM) коммутация каналов сочетается с коммутацией пакетов (см. главу 5 Куроуза и Росса).

Многоуровневые сетевые модели

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

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

Сетевая модель определяет:

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

Как устроена сетевая модель

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

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

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

Протокол – это правила, которым должен следовать уровень, чтобы реализовать сетевую службу.

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

Передача сообщения

Передача сообщения

Модель OSI имеет семиуровневую структуру, и можно говорить о взаимодействии узла-отправителя и узла-получателя на каждом уровне модели. При передаче, информация делится на пакеты. Фактически, передаваемая информация формируется на самом верхнем уровне – уровне работающего приложения (прикладном). Далее пакет «спускается» по уровням модели и на каждом из них получает свой заголовок и концевик. Этот заголовок содержит функционально-специфичную для данного уровня информацию о пакете (например, адрес). При получении информации узлом-получателем большой (с заголовками всех уровней) блок информации начинает обрабатываться в обратной, восходящей, последовательности уровней, причём на каждом уровне происходит анализ и отщепление соответствующего заголовка. Таким образом, до процесса-получателя доходит исходный передаваемый блок. На уровнях зачастую сообщение M вместе с заголовками от верхних уровней подвергается изменениям: шифрованию, сжатию, разбиению на части,..., поэтому изображенная картинка с одной и той же часть M, вообще говоря, не совсем правильная (зато понятная).

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

Эталонная модель взаимодействия открытых систем, Open Systems Interconnection Reference Model (OSI), создавалась как единый международный стандарт сетевых технологий.

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

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

ISO – международная организация по стандартизации.

OSI ISO — абстрактная модель для сетевых коммуникаций и разработки сетевых протоколов. Представляет уровневый подход к сети. Каждый уровень обслуживает свою часть процесса взаимодействия. Благодаря такой структуре совместная работа сетевого оборудования и программного обеспечения становится гораздо проще и понятнее.

Существует 7 уровней с помощью которых происходит сетевое взаимодействие. От нижнего уровня к верхнему:

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

Общие замечания относительно OSI ISO

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

Сегодня это референтная (ссылочная) модель.

Хотя поддержка этого стека на правительственном уровне (США, Германия, Россия,...) продолжается, это маргинальное течение в современных сетевых технологиях.

Эталонная модель TCP/IP

Эталонные модели OSI и TCP

Согласно терминологии TCP/IP элементы сетевого уровня называются подсетями (subnetworks). Идеология TCP/IP допускает, чтобы в качестве "подсетей" выступали реальные сети с их собственными стеками протоколов, узлами, шлюзами и т.п.

Реализация протоколов TCP/IP оказалась наиболее удачной в версиях BSD4.2 и BSD4.3 операционной системы UNIX. Эта реализация является эталоном для всех последующих.

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

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

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

Стеки протоколов

Стеки протоколов

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

IP — реализует обмен информации дейтаграммами (IP-пакетами), для адресации узлов сети используется адрес длиной 4 байта; обеспечивает в случае необходимости фрагментацию IP-сегментов; не гарантирует правильность доставки IP-сегментов адресату и, вообще, саму доставку; не имеет средств управления интенсивностью передачи IP-сегментов посылающей стороной (flow control); не гарантирует правильную последовательность IP-сегментов на принимающей стороне.

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

UDP (IP идентификатор 17) (служба ненадежной, но быстрой, передачи) – протокол передачи датаграмм без установления соединения. Также его называют протоколом «ненадёжной» передачи, в смысле невозможности удостовериться в доставке сообщения адресату, а также возможного перемешивания пакетов. Однако UDP-датаграммы имеют поле контрольная сумма сообщения, что гарантирует правильность доставки сообщения, в случае, если оно дошло до адресата.

TCP (IP идентификатор 6) (служба надежной передачи данных, устанавливающей логическое соединение) – «гарантированный» транспортный механизм с предварительным установлением соединения, предоставляющий приложению надёжный поток данных, дающий уверенность в безошибочности получаемых данных, перезапрашивающий данные в случае потери и устраняющий дублирование данных. TCP позволяет регулировать нагрузку на сеть, а также уменьшать время ожидания данных при передаче на большие расстояния. Более того, TCP гарантирует, что полученные данные были отправлены точно в такой же последовательности.

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

HTTP – протокол TCP-порт 80 или 8080.

Важнейшим направлением стандартизации в области вычислительных сетей является стандартизация коммуникационных протоколов. В настоящее время в сетях используется большое количество стеков коммуникационных протоколов. Наиболее популярны следующие стеки: TCP/IP, IPX/SPX, NetBIOS/SM, DECnet, SNA, OSI.

Все эти стеки, кроме SNA на нижних уровнях — физическом и канальном, — используют одни и те же хорошо стандартизованные протоколы Ethernet, Token Ring, FDDI и ряд других, которые позволяют задействовать во всех сетях одну и ту же аппаратуру. Зато на верхних уровнях все стеки работают по своим протоколам. Эти протоколы часто не соответствуют рекомендуемому моделью OSI разбиению на уровни. В частности, функции сеансового и представительного уровня, как правило, объединены с прикладным уровнем. Такое несоответствие связано с тем, что модель OSI появилась как результат обобщения уже существующих и реально используемых стеков, а не наоборот.

Приведены основные используемые в сетях Windows 2000 стеки протоколов. Для функционирования Windows 2000 достаточно стека TCP/ IP — стандарта передачи в сети Интернет. Поддерживаются также стек IPX/SPX — стек маршрутизируемых протоколов, появившийся в сетях NetWare, Microsoft — версия которого называется NWLink, а также NetBIOS/SMB — стек небольших и быстрых, но немаршрутизируемых протоколов.

Принципы работы служб прикладного уровня

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

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

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

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

Cетевой адрес процесса – это пара «IP адрес: номер порта» (например, 127.0.0.1: 80).

От 1 до 1023 – хорошо известные номера портов, от 1023 до 65 535 – другие.

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

Cетевое взаимодействие процессов

Сетевое взаимодействие

Процесс обращается к службам транспортного уровня: TCP и UDP.

Клиентская сторона приложения (службы).

Серверная сторона приложения (службы).

Протокол.

Клиенты и серверы – программы, т.е. процессы.

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

Клиентская программа формирует запрос, посылает его на сервер, сервер обрабатывает и возвращает ответ.

Примеры служб и протоколов. WWW (HTTP, 80), E-mail (SMTP, 25; POP3, 110; IMAP, 143), DNS (DNS, 53), FTP (FTP, 21,20), Telnet (Telnet, 23); SSH (SSH, 22), синхронизация часов (NTP, 123), передача мультимедиа (RTSP, 554), совместный доступ к файлам (SMB, 445 или NFS, 2049), DNS (Domain Name System), NTP (Network Time Protocol), RTSP (потоковый протокол реального времени (Real Time Streaming Protocol)), SMB (server message block) (см. Samba), NFS (network file system).