Полагаю, что идея компьютерных сетей заимствована из практики использования магистрально-модульных систем, которые служат для передачи данных от различных источников информации в ЭВМ и обратно в режиме реального времени. Такие системы стали активно развиваться с начала 60-х годов прошлого века. Наиболее характерным примером может служить система САМАС, где для передачи данных от или к большому числу объектов использовалась общая аппаратная транспортная среда (шина, как правило, параллельная). Строго говоря, локальная сеть ЭВМ является частным случаем магистрально модульной системы. Другим источником вдохновения могли служить каналы связи ЭВМ с периферийными приборами (например, дисковыми запоминающими устройствами или удаленными терминалами; достаточно вспомнить канал SCSI, который был разработан в том числе и для целей сбора данных). Следует отметить принципиальное различие между такими системами и сетями. В последнем случае данные передаются от ЭВМ к ЭВМ. Важным фактором для развития сетей явилась разработка пакетного принципа передачи данных, который был создан еще до начала Второй мировой войны. Прототипом современных сетей, возможно, явились терминальные сети крупных вычислительных центров.
Первой сетью, где применен пакетный принцип передачи данных, была
Сети делают возможным:
Сети – это системы мультиплексирования доступа к каналам и ресурсам.
Это достаточно обобщенный и неполный список приложений — полный список можно было бы издать отдельным томом. Сети использованы для расчета генома человека, проверки надежности ключей шифрования. Фермы ЭВМ, объединенных сетью, применяются вместо
Сети по своей принадлежности делятся на локальные ( 01111110. Если внутри кадра встретится такой байт,
то он будет заменен последовательностью 011111010. Приемное устройство преобразует эту последовательность назад в 01111110. Так входная последовательность бит 010011111111111111110010 будет преобразована в
010011111011111011111010010,
где выделенные нули являются вставленными специально, чтобы была невозможна имитация сигнатуры конца кадра. Последовательность стала длиннее. Принимающая сторона восстановит исходную строку бит.
Эти комбинации решают те же задачи, что и ESC-последовательности, но более экономно.
При передаче данных нужно обеспечивать синхронизацию и стабилизацию уровня регистрации. Синхронизация между передатчиком и приемником необходима прежде всего потому, что не каждому биту в передаваемом коде соответствует изменение уровня сигнала. А это может приводить к тому, что одна из сторон передаст N бит, а другая при этом будет считать, что приняла N-1 или N+1 бит. Синхронизация тактовых частот передатчика и приемника чаще всего осуществляется самой кодовой последовательностью, транспортирующей данные, или независимо, как, например, это делается в сетях SDH.
Так как между передатчиком и приемником не всегда имеется гальваническая связь, средний уровень сигнала может дрейфовать в зависимости от числа предыдущих нулей или единиц. Такой дрейф может приводить к ошибкам, так как в суперпозиции с шумами или наводками может превысить уровень дискриминации, отделяющий состояния логического нуля и единицы.
Практически все сети так или иначе решают проблему мультиплексирования данных (как правило, это определяет алгоритм доступа к сетевой среде).
В сетях для формирования виртуального канала и транспортировки данных используются схемы с коммутацией каналов и с коммутацией пакетов. Эти схемы представлены на рис 10.1. В случае коммутации каналов сначала осуществляется формирование связи между инициатором и адресатом и только затем начинается обмен данными (или разговор при телефонном соединении). Канал может реализоваться из медных проводов, оптических волокон или с помощью радио. В качестве параметра при установлении соединения используется код места назначения, например, его телефонный номер или IP-адрес. При наборе первой цифры выбирается номер выхода первого коммутатора, при наборе второй цифры — номер выходного канала второго коммутатора и т.д. Цифры могут группироваться в блоки. Время формирования канала достигает 10 секунд и не зависит от расстояния между клиентами. Зато после сформирования канала характерная задержка передачи данных не превышает 5 мс на 1000 км.
Сформированный виртуальный канал используется только конечными клиентами, и полоса пропускания канала остается постоянной в течение сессии, а неиспользованный ресурс канала пропадает.
(рис 10.1) Схемы сетей с коммутацией каналов (А) и с коммутацией пакетов (Б)Принцип коммутации каналов применяется системами ISDN, ATM и Х.25. Это не означает, что там ни при каких обстоятельствах не используется коммутация пакетов. Приведенное выше замечание о постоянстве полосы пропускания не исключает, тем не менее, ситуаций перегрузки. Реальные коммутаторы, в отличие от нарисованных, имеют многие сотни и даже тысячи входных/выходных каналов. При поступлении данных по большому числу каналов одновременно коммутатор может не справиться с такой ситуацией. В случае коммутации пакетов один и тот же канал может использоваться большим числом пользователей одновременно. Здесь перегрузка является скорее нормой, чем исключением. В современных системах часто совмещаются методы коммутации каналов и пакетов.
Помимо названных режимов, существует также система коммутации сообщений. Наистарейшим примером такого рода является система передачи телеграмм, где очередная станция получает телеграмму в виде перфоленты, оператор (или специализированный коммутатор) считывает ее адрес и принимает решение о том, по какому из каналов ее следует передать дальше. Такие системы называются "запомнить-и-переадресовать". В современных сетях такой принцип используется при передаче новостей (протокол NNTP — близкий родственник e-mail ). При передаче сообщений не регламентируется их размер, что вынуждает в точках коммутации записывать их на диски. Отсутствие такого рода ограничений приводит к тому, что канал может быть занят достаточно долго. Новое сообщение может быть послано лишь после завершения отправки предыдущего. Все эти проблемы легко разрешаются в системах с коммутацией пакетов, размер которых регламентирован. В этом методе задержка доставки пакета может варьироваться в довольно широких пределах. Более того, может меняться порядок доставляемых пакетов, и кадр, посланный раньше, может быть доставлен позже, — принимающая сторона должна уметь обрабатывать такие события. Пакетный способ транспортировки легко адаптируется к любым форматам, скоростям передачи и алгоритмам формирования и обработки пакетов. Здесь, как правило, исключается возможность монополизации канала каким-либо пользователем, система допускает кодирование или преобразование данных в пакете. Емкость буфера определяется максимальным размером пакета. Для буферизации может использоваться оперативная память маршрутизатора. В данной схеме решение о переадресации может приниматься до того, как пакет будет принят коммутирующим устройством целиком (режим cut-through – коммутация на пролете).
Данный прием реализован в коммутаторах ATM, именно по этой причине там контрольное суммирование охватывает лишь заголовок, а не всю ячейку, хотя ее протяженность ограничена. Ведь именно в заголовке содержится адрес места назначения, а ошибка в нем приведет к тому, что истинный адресат не получит пакет, зато какое-то другое устройство получит пакет, ему не предназначенный.
Но даже 155 Мбит/с быстродействия АТМ-коммутаторов не избавляет их от перегрузок. Достаточно попытаться представить, что на вход 1000-канального переключателя пришло одновременно 100 ячеек (а это ординарная ситуация) — здесь могут не спасти даже достаточно большие объемы буферов и изощренные системы
Разные участки маршрута могут иметь разные предельные длины пакетов (MTU), и это может требовать фрагментации получаемых пакетов. Значение MTU, как правило, определяется вероятностью ошибки при транспортировке (
Именно гибкая система фрагментации и дефрагментации пакетов сделало сети Интернет столь универсальными.
Как локальные, так и региональные сети могут отличаться по топологии и методу доступа.
Среди топологических схем наиболее популярными являются (см. рис 10.2):
(рис 10.2) Примеры сетевых топологийК первым трем типам топологии относятся 99% всех локальных сетей. Деление сетей на локальные и региональные достаточно условно. Под локальной сетью подразумевается сеть предприятия, конторы, учреждения или кампуса, имеющая, как правило, одного администратора. Такая сеть обычно имеет шлюз, который соединяет ее с региональной сетью. Наиболее популярный тип локальной сети физического уровня — Ethernet — может строиться по схемам 1 и 2 (рис 10.2). В нынешнем виде стандарт на сети типа Ethernet был сформулирован сравнительно недавно — в 1985 году (IEEE Std 802.3-1985; ISO
Сети Token Ring и FDDI применяют кольцевую топологию (3 на рис 10.2), где каждый узел должен иметь два сетевых интерфейса. Эта топология удобна для оптоволоконных каналов, где сигнал может передаваться только в одном направлении (но при наличии двух колец, как в FDDI или
Применяется и немалое количество других топологий, которые являются комбинациями уже названных. Примеры таких топологий даны на рис 10.3.
Вариант представляет собой схему с полным набором связей (все узлы соединены со всеми), такая схема используется только в случае, когда необходимо обеспечить высокую надежность соединений. Эта версия требует для каждого из узлов наличия N-1 интерфейсов при полном числе узлов N. Вариант Б является примером нерегулярной топологии, а вариант В – иерархический случай связи (древовидная топология).
(рис 10.3) Различные сетевые топологические схемыЕсли топологии на рис 10.3 В чаще применимы для локальных сетей, то топологии на рис 10.3 А и Б более типичны для региональных и глобальных сетей. Выбор топологии локальной или региональной сети существенно сказывается на ее стоимости и рабочих характеристиках. При этом важным параметром для однородной сети является среднее число шагов между узлами D.
$$D=\sum_{d=1}^N \frac{dN_d}{N-1},$$
где D = 1. Данная топология гарантирует сохранение связности даже при обрыве любых трех соединений. Она применима при ограниченном числе узлов.
Именно многосвязность в сочетании с динамическими протоколами маршрутизации делает Интернет достаточно надежным и устойчивым.
Современные вычислительные системы используют и другие топологии (см. рис 10.4): решетки (А), кубы (В), гипердеревья (Б), гиперкубы и т.д. В некоторых системах топология может программно настраиваться на решаемую задачу.
(рис 10.4) Некоторые топологии вычислительных системМетод доступа определяет алгоритм, согласно которому узлы сети получают доступ к среде передачи данных и осуществляют мультиплексирование/ демультиплексирование данных.
В 1970-х годах Норман Абрахамсон вместе с сотрудниками Гавайского университета предложил оригинальный способ решения проблемы доступа к сети, который был назван позднее
Принципиальное отличие алгоритма
Мультиплексирование можно осуществлять по частоте (по длине волны —
Большая часть современных локальных сетей базируется на алгоритме доступа
Алгоритм CSMA предпочтительнее
Логика поведения субъектов в сети с доступом
А.
Б.
В.
р передает пакет, а с вероятностью 1р он откладывает передачу на t секунд (например, на следующий временной домен).Алгоритм А на первый взгляд представляется привлекательным, но в нем заложена возможность столкновений с вероятностью 100%. Алгоритмы Б и В более устойчивы в отношении этой проблемы.
Эффективность алгоритма CSMA зависит от того, как быстро передающая сторона узнает о факте столкновения и прерывает передачу, ведь продолжение бессмысленно — данные уже повреждены. Это время зависит от длины сетевого сегмента и задержек в оборудовании сегмента. Удвоенное значение задержки определяет минимальную длину пакета, передаваемого в такой сети. Если пакет короче, он может быть передан так, что передающая сторона не узнает о его повреждении в результате столкновения. Для современных локальных сетей Ethernet, построенных на переключателях и полнодуплексных соединениях, эта проблема неактуальна.
С целью пояснения этого утверждения рассмотрим случай, когда одна из станций (1) передает пакет самой удаленной ЭВМ (2) в данном сетевом сегменте. Время распространения сигнала до этой машины пусть равно Т. Предположим также, что машина (2) попытается начать передачу как раз в момент прихода пакета от станции (1). В этом случае станция (1) узнает о столкновении лишь спустя время 2Т после начала передачи (время распространения сигнала от (1) до (2) плюс время распространения сигнала столкновения от (2) к (1)). Следует учитывать, что регистрация столкновения — это аналоговый процесс и передающая станция должна "прослушивать" сигнал в кабеле в процессе передачи, сравнивая результат чтения с тем, что она передает. Важно, чтобы схема кодирования сигнала допускала детектирование столкновения. Например, сумма двух сигналов с уровнем 0 этого сделать не позволит. Можно подумать, что передача короткого пакета с искажением из-за столкновения — не такая уж большая беда, проблему может решить контроль доставки и повторная передача.
Следует только учесть, что повторная передача в случае зарегистрированного интерфейсом столкновения осуществляется самим интерфейсом, а повторная передача в случае контроля доставки по отклику выполняется прикладным процессом, требуя ресурсов центрального процессора рабочей станции.
Сопоставление эффективности использования канала для различных протоколов произвольного доступа произведено на рис 10.5.
(рис 10.5) Сравнение эффективности канала для различных протоколов произвольного доступа и разных значений pПротокол доступа CSMA может предполагать, что когда канал оказывается свободным, а рабочая станция готова начать передачу, реальная пересылка кадра в рамках заданного временного домена происходит с определенной вероятностью p. С вероятностью 1-р передача будет отложена до следующего временного домена. В следующем домене, если канал свободен, с вероятностью р осуществится передача или будет отложена до следующего домена и так далее. Процесс продолжается до тех пор, пока кадр не будет передан. На рисунке эта вероятность р отмечена цифрами после аббревиатуры "CSMA". В случае Ethernet эта вероятность равна единице (CSMA-1) [46, Э. Таненбаум, стр. 302], то есть рабочая станция безусловно начнет передачу, если она к этому готова, а канал свободен. Из рисунка видно, что чем меньше эта вероятность, тем выше эффективность (среднее время доступа к сетевой среде также увеличивается). Очевидно, что все разновидности
протокола доступа CSMA эффективнее протокола
Здесь уместно обратить внимание на то, что если загрузка канала невелика, а требуется малая задержка доступа к каналу, то лучше алгоритма
Рассмотрим, как можно избежать проблем столкновений пакетов. Пусть к сетевому сегменту подключено , N = 8 ).
(рис 10.6) Схема реализации протокола доступа к сети bit-map
В примере на рис 10.6 сначала право передачи получают станции 0, 2 и 6, а в следующем цикле — 2 и 5 (пересылаемые пакеты окрашены в серый цвет). Если рабочая станция захочет что-то передать, когда ее интервал (домен) уже прошел, ей придется ждать следующего цикла. По существу данный алгоритм является протоколом резервирования. Машина сообщает о своих намерениях до того, как начинает что-либо передавать. Чем больше ЭВМ подключено к сетевому сегменту, тем больше временных интервалов должно быть зарезервировано и тем ниже эффективность сети. Понятно, что эффективность растет с ростом L.
Вариация данного алгоритма доступа реализована в сетях сбора данных реального времени — алгоритм доступа CSMA/CA — N = 5 и одновременно производится попытка начать передачу станции с кодами приоритета 10000, 10100, и 00100. Первыми будут посланы станциями биты 1, 1 и 0. Третья станция сразу выбывает из конкурса (ее бит равен 0). Первая и вторая продолжают передачу. На следующем такте станции передадут биты 0 и 0, что позволяет им продолжить передачу. На третьем такте они выдадут 0 и 1, что вынудит первую станцию выбыть из соревнования. Оставшаяся станция ( 10100 ) продолжит передачу кода приоритета, а затем и данных. Число рабочих станций, подключенных к сетевому сегменту, может достигать 2N-1. Необходимость синхронизации ограничивает длину сетевого сегмента или быстродействие передачи.
Базовыми характеристиками алгоритмов доступа являются задержка при малых загрузках и k станций борются за доступ к каналу, каждая из них имеет вероятность р осуществить передачу. Вероятность того, что станция получит доступ к каналу при данной попытке, равна kp(1-p)k-1. Чтобы найти оптимальное значение p, продифференцируем полученное выражение вероятности по p, а результат приравняем к нулю. После преобразования получается, что оптимальным значением является p = 1/k. Подставив это значение в выражение вероятности успешного доступа, получим
$$\left(\frac{k-1}{k}\right)^{k-1}$$ .
Для малого числа станций вероятность получить доступ к каналу относительно высока, но уже при k = 3 - 5 вероятность приближается к асимптотическому значению 1/e.
Существует еще один относительно эффективный алгоритм доступа к каналу, называемый ).
(рис 10.7) Алгоритм адаптивного обходаПервая ниша доступа следует за очередной успешной передачей и соответствует узлу дерева 0 (на рис 10.7 не показан). В этом узле всем станциям предоставлена возможность доступа. Если одна из них его получила, очень хорошо. Если же произошло столкновение, то в нише узла 1 до конкурса допускаются станции, связанные с узлом 2 (А, Б, В и Г). Если одна из них получила доступ, в нише, следующей за переданным кадром, будут соревноваться станции, связанные с узлом 3 (Д, Е, Ж и З). Если же на предшествующем этапе произошло столкновение, следующая попытка предоставляется станциям, связанным узлом 4 (А и Б), и т.д. Если столкновение произошло в нише узла 0, то сначала исследуется все дерево, чтобы выявить все готовые к передаче станции. Каждая бит-ниша ассоциируется с определенным узлом дерева. Если происходит столкновение, поиск продолжается рекурсивно для правой и левой ветвей узла. Если бит-ниша пассивна (нет заявок на передачу) или если имеется только одна станция-претендент, поиск будет прерван, так как все станции-претенденты найдены. Существует достаточно большое число вариаций данного алгоритма доступа к сети.
Следующим по популярности после
В таблице 10.1 представлены сводные данные по основным видам локальных сетей, используемых в настоящее время (список не является полным).
| Название сети | Топология | Быстродействие Мбит/с | Доступ | Тип кабеля | NEXT при макс. частоте [дБ] | Размер сети (сегмента) | Макс. число узлов |
|---|---|---|---|---|---|---|---|
| шина | 10 | RG-8 (50 Ом) | 500м | 1024 | |||
| шина | 10 | RG-58 (50 Ом) | 185м | 90 | |||
| 10BROAD36 | шина | 10 | RG-59 (75 Ом) | 3600м | 1024 | ||
| звезда | 100 | 29 | 200м | - | |||
| звезда | 100 | оптоволокно | 300м | - | |||
| 1000baseFX | звезда | 1000 | CSMA | оптоволокно | 2км | ||
| звезда | 10000 | CSMA | оптоволокно | 2км | |||
| IEEE 802.4 | шина | 1/5/10/20 | маркер | RG-59 (75 Ом) | |||
| звезда | 2,5/20 | маркер | RG-62/ |
600/125 м | 255 | ||
| IEEE 802.5 | звезда | 4/16 | маркер | STP/ |
22/32 | 366 м | 260 |
| AppleTalk | шина/звезда | 0,23 | STP/ |
22/32 | 300/3000 м | 32 на сегмент | |
| EtherTalk | шина/звезда | 10 | STP/ |
500/3000 м | 254/1023 | ||
| ISN | звезда | 8,64 | Шина доступа | STP, оптоволокно | Не ограничено | 336/1920 | |
| PC |
дерево,звезда | 2 | RG-59 (75 Ом), |
32/22 | 2000 | 72 | |
| Hyperchannel | шина | 50 | RG-59, оптоволокно | 3500 м | 256 | ||
| E-Net | шина | 10 | RG-58 (50 Ом) | 700 м | 100 | ||
| G-Net | шина | 1 | RG-58, RG-59 | 2000 м | 100 | ||
| FDDI | двойное кольцо | 100 | маркер | оптоволокно | 100 км | 1000 | |
| MAP Bus | шина | 1, 5, 50 | маркер | кабель | |||
| PX-NET | шина/звезда | 1 | маркер | RG-62 (93 Ом) | 7000 м | 100 | |
| S-NET | шина/звезда | 1 | Индивидуальный | STP (100 Ом) | 21 | 700 м | 24 |
| WANGNET | двойное дерево | 10 | RG-59 (75 Ом) | 2800 м | 65000 |
Приведенная таблица не может претендовать на полноту. Так, сюда не вошла сеть IBM DSDB, разработанная в начале 1980-х годов. Полоса пропускания сети составляет 64 Мбит/с. Эта сеть рассчитана на обслуживание процессов реального времени. Сеть имеет топологию шины с приоритетным доступом (длина шины — до 500м). Коммуникационная шина логически делится на три магистрали: сигнальная — для реализации приоритетного доступа; лексемная шина — для резервирования в буфере места назначения; и, наконец, коммуникационная шина — для передачи данных. Каждая из указанных магистралей использует идеологию независимых временных доменов, границы которых синхронизованы для всех трех магистралей.
Существует целое семейство методов доступа, исключающих столкновение: это мультиплексирование по времени ( N/2 временных интервалов (предполагается, что работает N клиентов). При
(рис 10.8) Пояснение работы алгоритма доступа WDMA
На рисунке 10.8 представлен случай с четырьмя станциями (A, B, C и D). Каждая станция имеет два канала. Один канал (менее широкополосный) является управляющим каналом станции. Второй (широкополосный) служит для передачи данных. В каждом из каналов выделяется определенное число временных доменов. Будем считать, что число доменов в управляющем канале равно k, а число доменов в информационном канале – N+1, где N из них предназначены для данных, а последний служит для передачи станцией своего статуса (например, информации о свободных доменах). Все каналы синхронизуются от общих часов. Протокол поддерживает три типа трафика: постоянный поток данных с ориентацией на соединение (1), например видеотрафик; переменный поток, ориентированный на соединение (2), и поток дейтограмм, например UDP (3). В протоколах, ориентированных на соединение, станция А, прежде чем осуществить
обмен с В, должна послать запрос на соединение (
Каждая станция прослушивает свой управляющий канал с целью приема запросов и настраивается на длину определенного передатчика для получения данных. Настройка на определенную длину волны производится с помощью ячеек Фабри-Перо или интерферометров Маха-Цандера (предполагается, что мы работаем с оптическими волокнами).
Рассмотрим, как станция В имеет 8 доменов, из них 0, 3 и 5 свободны. Пусть принято решение занять запросом на соединение домен 5. Так как станция В постоянно прослушивает свой управляющий канал, она предоставит свободный домен для станции А. Это присвоение отражается в статусном домене информационного канала. Когда станция А обнаружит, что присвоение выполнено, можно считать, что осуществлено однонаправленное соединение между А и В. Если для А требуется двунаправленное соединение (что реально для протокола FTP), то В повторит ту же процедуру со станцией А. Вполне возможна ситуация, когда одновременно станции А и С пытаются захватить один и тот же домен с номером 5. Ни одна из них его не получит и узнает об этом из статусного кода в домене управляющего канала В. После этого обе станции ждут псевдослучайное время и делают еще одну попытку.
Для осуществления пересылки файла станция А посылает В управляющее сообщение типа "загляните в домен данных 3, там кадр для вас". Когда В получает управляющее сообщение, она настраивает свой приемник на выходной канал А, чтобы принять кадр данных от А. Станция В может использовать ту же схему для посылки подтверждения получения кадра, если это необходимо. Заметим, что может возникнуть проблема, если с В имеют одновременно соединения А и С и обе станции предлагают В заглянуть в информационный домен 3. Станция В воспримет одно из этих сообщений, второе будет потеряно. При постоянной скорости передачи используется модификация данного протокола. Когда станция А запрашивает соединение, она одновременно посылает сообщение типа "не возражаете, если я буду посылать данные в каждом
домене 3?". Если В способна принять данные (домен 3 не занят), устанавливается соединение с фиксированной полосой. Если это не так, А может попытаться использовать другой свободный временной домен. Для типа обмена 3 (дейтограммы) используется другая вариация протокола. Вместо посылки запроса соединения в найденный свободный домен управляющего канала станция записывает сообщение "DATA FOR YOU in SLOT 3" (для вас есть данные в домене 3). Если В свободна во время следующего информационного домена 3, обмен будет успешным, в противном случае кадр теряется. Существует большое число различных вариантов протокола
Рассмотрим случай ( 1/m, тогда среднее время задержки T для канала с пропускной способностью С бит/с при частоте кадров f с-1 составит T = 1/(mC-f). Теперь предположим, что канал поделен на N независимых субканалов с пропускной способностью C/N бит/с. Средняя загрузка каждого из субканалов станет равной f/N. Теперь для среднего значения задержки мы получим выражение
$$T(FDM)=\frac{1}{m(C/N)-(f/N)}=\frac{N}{mC-f}=NT$$
Таким образом, N раз хуже, чем вариант, когда мы все кадры помещаем каким-то образом в некоторую общую очередь. Точно такая же аргументация может быть применена для метода
Интересной разновидностью Ethernet является широкополосная сеть типа Net/One. Она может базироваться на коаксиальном кабеле (суммарная длина до 1500 м) или на оптическом волокне (полная длина до 2500 м). Эта сеть по многим характеристикам аналогична обычному Ethernet (
Другой Ethernet-совместимой сетью является Fibercom Whispernet. Сеть имеет кольцевую структуру (до 8 км), полосу пропускания 10 Мбит/c, число узлов до 100 на сегменте при полном числе узлов в сети — 1024. Число кольцевых сегментов может достигать 101. Максимальное межузловое расстояние — 2 км.
Примером нетрадиционного типа сети может служить Localnet 20 (Sytek). Сеть базируется на одном коаксиальном кабеле и имеет полную полосу пропускания 400 МГц. Сеть делится на 120 каналов, каждый из которых работает со скоростью 128 Кбит/с. Каналы используют две 36МГц-полосы, одна для передачи, другая для приема. Каждый из коммуникационных каналов занимает 300 КГц из 36 МГц. Сеть использует алгоритм доступа
Традиционные сети и телекоммуникационные каналы образуют основу сети – ее физический уровень. Реальная топология сети может динамически изменяться, хотя это и происходит обычно незаметно для участников. При реализации сети применяются десятки протоколов. В любых коммуникационных протоколах важное значение имеют
Для каждой сети характерен свой интервал размеров пакетов (MTU). Среди факторов, влияющих на выбор размеров кадра, можно выделить:
Ниже приведены максимальные размеры пакетов ( MTU – Maximum
| Сеть | MTU Байт | Быстродействие Мбит/с |
|---|---|---|
| IEEE 802.3 | 1500 | 10 |
| IEEE 802.4 | 8191 | 10 |
| IEEE 802.5 | 5000 | 4 |
Не следует думать, что современные сети, в частности Ethernet, обладают таким уж высоким быстродействием по сравнению с "традиционными" средствами транспорта.
Предположим, что товарный вагон загружен 10000 картриджами Exabyte, емкостью 10 Гбайт каждый (эта цифра может быть и больше). Вагон движется со скоростью 72 км/ч. Какой информационный поток создает такой вагон? В секунду он перемещается на 20 метров, перенося 10000*10*109*8 $$\approx$$ 1015 бит данных. Скорость передачи данных по скрученной паре или оптическому волокну составляет около 200000 км/c. Если измерять передающую способность в м*бит/с, то для 100 Мбит/c Ethernet это будет 20*10^15 м*бит/c, как и для нашего вагона. Таким образом, вагон обеспечивает тот же темп переноса данных, что и Fast Ethernet.
Приведенное выше соображение, безусловно, поверхностно, так как не учитывает того факта, что мало доставить данные, надо их загрузить в ЭВМ (а вагоны машиной приниматься не могут). Но при построении сетей передачи данных и столь архаичный вариант не следует совершенно снимать со счетов.
Операции, ориентированные на установление связи (например, протокол TCP), предполагают трехстороннее соглашение между двумя пользователями и провайдером услуг. В процессе обмена они хранят необходимую информацию друг о друге, с тем чтобы не перегружать вспомогательными данными пересылаемые пакеты.
В этом режиме обмена обычно требуется подтверждение получения пакета, а при обнаружении сбоя предусматривается механизм повторной передачи поврежденного или потерянного пакета. "Бессвязная" сеть более надежна, так как она может отправлять отдельные пакеты по разным маршрутам, обходя поврежденные участки. Такая сеть не зависит от протоколов, применяемых в субсетях. Большинство протоколов Интернета используют именно эту схему обмена, например базовый протокол IP. Концептуально TCP/IP-сети предлагают три типа сервиса в порядке нарастания уровня иерархии:
Для сопоставления быстродействия различных видов сетей Сталлингс (BL (максимальное число бит в сегменте), которая равна произведению максимальной длины сегмента ( L в метрах) на полосу пропускания ( W в бит/с), поделенному на скорость распространения сигнала в сегменте ( s в метрах в секунду):
BL=L*W/s
Для Ethernet BL = [200(м)*100 106(бит/c)]/2 108 (м/c) = 100 бит.
Коэффициент использования сети равен $$\beta = 1/(1+\alpha)$$, где
$$\alpha=\frac{BL}{размер\ пакета}.$$
Для Ethernet при длине пакета 1500 байт $$\alpha = 0,07$$, что дает для эффективности использования сети 0,93. Таким образом, максимальная пропускная способность Ethernet составляет 93 Мбит/c или 11,6 Мбайт/с (для 100-мегабитного Ethernet). Разумеется, в этом подходе не учитываются издержки, связанные с заголовками пакетов, которые дополнительно снижают эффективность сети. Из данного рассмотрения может показаться, что чем больше пакет, тем лучше. С точки зрения пропускной способности так оно и есть. Но с увеличением длины пакета увеличивается время отклика сети. Таким образом, выбор MTU определяется реальными требованиями пользователей.
Существует большое разнообразие сетевых интерфейсов. Их структура зависит от характера физического уровня сетевой среды, от метода доступа, от используемого набора интегральных схем и т.д. Здесь пойдет речь о принципах построения программного интерфейса.
Существует три возможности построения интерфейса: с базированием на памяти, с использованием прямого доступа и с применением запросов обслуживания.
Первый вариант предполагает наличие трех компонентов: буфер сообщений, область данных для управления передачей и зона памяти для управления приемом данных. Первый из компонентов служит для формирования исходящих сообщений программного интерфейса. Должны быть приняты меры, чтобы исключить модификацию содержимого этого буфера до того, как данные будут считаны ЭВМ или интерфейсом. Проблема решается путем формирования соответствующих указателей. Управление буфером осуществляется ЭВМ или совместно ЭВМ и интерфейсом с использованием
Здесь уместно позаботиться о том, чтобы ни при каких обстоятельствах данные не были уложены поверх кода программы. Это может быть реализовано, например, путем использования кольцевого буфера. На такую возможность рассчитывают хакеры, предпринимая атаки типа "переполнения буфера".
Остальные методы предполагают использование традиционных способов управления памятью с помощью средств операционной системы. Критической проблемой является обеспечение достаточного места в буфере для приходящих сообщений. Ведь при отсутствии свободной памяти приходящее или записанное ранее сообщение может быть потеряно. Недостаток места для исходящих сообщений не является критическим, так как приводит обычно к задержке передачи, а не к потере сообщения.
Второй компонент интерфейса, базирующегося на использовании памяти, часто реализуется в виде так называемых буферов управления передачей ( TCB — Transmission Control Buffer). Эти буферы содержат такую информацию, как положение сообщения в памяти, длина сообщения, адрес места назначения, идентификатор процесса-отправителя,
Третий компонент интерфейса, базирующегося на использовании памяти, называется буфером управления приемом ( RCB – Reception Control Buffer). RCB содержит в себе информацию, сходную с той, что записывается в
Во втором варианте широко применяются
В третьем варианте сетевого программного интерфейса используются служебные запросы. Этот тип сетевого доступа удобен для коммуникационных протоколов высокого уровня, таких как команды ввода/вывода CSP -стиля (Communicating
Программирование для сетей существенным образом является программированием для процессов реального времени. Здесь часто можно столкнуться с тем, что одна и та же программа ведет себя по-разному в разных ситуациях. Особое внимание нужно уделять написанию многопроцессных сетевых программ, где, так же как в случае работы с сокетами, могут возникать ситуации блокировок. Пример такой ситуации показан на рис 10.9.
(рис 10.9) Когда число процессов больше, заметить запрограммированную ситуацию блокировки заметно сложнее. По этой причине необходимо предусмотреть меры, препятствующие блокировке, если ожидаемое сообщение не пришло.
Необычайно важной проблемой при построении сетей является их устойчивость при возникновении перегрузок. В Интернете для этого используется специальная опция протокола ICMP или CWND в ТСР, а во Frame Relay имеются меры для преодоления перегрузок непосредственно на нижних протокольных уровнях.
Взаимодействие сетевых объектов между собой обычно производится по схеме "клиент-сервер" ("master-slave"). В этой схеме один из объектов (клиент) посылает запрос, а получатель запроса (сервер) реализует запрошенную функцию или услугу. В общем случае клиент и сервер могут меняться местами. Известны варианты схемы, когда сервер обслуживает несколько клиентов. Схема этого взаимодействия существует уже не один десяток лет. Но в последнее время после широкого внедрения Интернета с его неиерархической схемой все чаще и шире стала применяться схема Р2Р. Идея
Использование компьютерных технологий начиналось в те времена, когда ЭВМ занимала целое здание — можно сказать, что пользователь входил в машину в буквальном смысле. Не исключено, что через какое-то время чипы ЭВМ будут встраиваться в организм человека. Но на протяжении достаточно длительного времени доступ к ресурсам машины осуществлялся через удаленное терминальное устройство. Именно эта схема породила алгоритм взаимодействия "клиент-сервер". Позднее, когда терминальным устройством стала персональная ЭВМ, клиент и сервер стали временами меняться местами, но суть взаимодействия сохранялась прежней. Алгоритм "клиент-сервер" предполагает взаимодействие по схеме "точка-точка".
Первые локальные сети (Ethernet), несмотря на однородность топологии, логически функционировали согласно алгоритму "клиент-сервер". По мере развития сетевых технологий число серверов в сети росло, появилась функциональная дифференциация (DB, DNS, mail и т.д.), но и на этом уровне взаимодействие в любой момент времени строилось по схеме "клиент-сервер".
Интернет открыл возможность равноправного взаимодействия для миллионов пользователей сети, но даже это в первые годы алгоритмически мало что поменяло. Это может показаться парадоксальным, но Интернет, который построен по неиерархической схеме, до недавнего времени на прикладном уровне использовал иерархическую схему обмена.
В начале 1990-х годов начали широко применяться технологии мультикастинга, в частности
В начале 1990-х стали заключаться пиринговые (peer-to-peer) соглашения между сервис-провайдерами, но и это было лишь новым подходом в политике маршрутизации. Сети ICQ, например, по-прежнему строятся по схеме "клиент-сервер", хотя в некоторых режимах реализуется схема взаимодействия "точка-мультиточка".
Впервые термин "peer-to-peer" была использована в 1984 году компанией IBM в разработке сетевой архитектуры для построения динамической маршрутизации через компьютерные сети с произвольной топологией – "Advanced Peer to Peer Networking" [10.1].
В основе технологии лежит принцип децентрализации, то есть все узлы в сети
(рис 10.10) Создаваемые приложения в начале ставили узкую цель – ускорение получения копии файла, иногда за счет сокращения полосы и сетевых возможностей конкурирующих процессов и пользователей. В этих приложениях использовалась особенность протокола ТСР, распределяющего полосу пропускания поровну между конкурирующими процессами. Если один из пользователей запустил 10 обменных процессов, а конкурент – только 1, последний получит в 10 раз меньшую полосу пропускания. Может показаться, что схема, показанная на рис 10.11, не является в чистом виде
(рис 10.11) Скорость копирования увеличивается за счет копирования из нескольких источников одновременноОтказоустойчивость, свойственная алгоритмам Р2Р, может стать причиной внедрения этой технологии для управления технологически опасными производствами, например атомными электростанциями. Здесь важно, чтобы узлы Р2Р не располагались в одном и том же помещении и не были подключены к общим каналам питания. Выход из строя части управляющих машин может уменьшить функциональность, но не управляемость системы.
Р2Р может предложить и достаточно высокий уровень катастрофоустойчивости, когда нужно гарантировать сохранность определенных данных в случае пожара или каких-либо иных природных или рукотворных инцидентов. Для таких приложений географическая удаленность узлов является важным преимуществом.
Для поддержания надежности обмена могут использоваться самые разные технологии, в частности, протокол FEC (Forward
Незаменимыми могут оказаться системы Р2Р в банковском бизнесе, где важна сохранность данных и высокая надежность расчетов. Методики дублирования в банковских приложениях применяются уже достаточно давно.
Широко используемые сейчас распределенные вычислительные системы типа GRID являются частным случаем реализации технологии Р2Р.
Так, по некоторым данным [10.6], в настоящее время в сети Internet более половины всего трафика приходится на трафик файлообменных
Хотя в первую очередь
При этом скорость копирования равна сумме скоростей, обеспечиваемых виртуальными соединениями, и ограничена сверху пропускной способностью канала, с помощью которого клиент подсоединен к сети Интернет.
Определения:
В существующих сегодня реализациях
Протоколом, или набором протоколов, определяется логическая топология сети, механизм подключения и отключения узлов от сети, а также алгоритм взаимодействия узлов. Решение таких задач, как коррекция ошибок, форматы сообщений и служебных запросов и откликов, протоколы маршрутизации в условиях постоянного подключения и отключения узлов — также прерогатива протокола
В модели стека сетевых протоколов TCP/IP протоколы
Клиентская программа
ID узла — уникальный идентификатор узла, вычисляется с помощью хэш-функции [10.6] из IP-адреса и дополнительной информации (имени компьютера, MAC-адреса сетевой карты и пр.). Присваивается при регистрации в сети
ID или ключ ресурса —
Протоколами обеспечивается равномерное распределение ключей ресурсов вместе с идентификаторами узлов, опубликовавшими данный ресурс, по всем узлам (или по некоторым выделенным узлам и/или серверам), зарегистрированным в сети. Задача поиска ресурса сводится к нахождению ID узла, на котором хранится ключ ресурса [10.4].
(рис 10.12) Распределение ключей ресурсов по узлам сети. Поиск ресурсаНа рис 10.12 приведен пример чистой
Узел с ID 0 хочет найти ресурс, соответствующий ключу 14, для чего посылает запрос на поиск. Запрос проходит определенный маршрут (подробнее о маршрутизации см. [10.3]) и достигает узла, на котором находится ключ 14. Далее узел ID 14 пересылает узлу ID 0 адреса всех узлов, обладающих ресурсом, который соответствует ключу 14.
Причинами большого роста популярности сетей
На данный момент среди файлообменных сетей по количеству узлов лидируют такие сети, как Bittorrent [10.16], eDonkey2000 [10.14], Gnutella2+Gnutella.
Для инициализации узла, например, в [10.13], клиентская программа обращается к серверу, который предоставляет информацию о файлах, доступных для копирования, а также статистическую и маршрутную информацию об узлах сети. Сервер и после инициализации помогает узлам взаимодействовать друг с другом.
Если узел хочет опубликовать файл, то программа разделяет файл на части и создает файл метаданных с информацией о частях файла, местонахождении и, опционально, расположении сервера, который будет поддерживать распространение этого файла. Первый узел, опубликовавший файл, называется распространителем. Узел, желающий скопировать файл, сам становится распространителем, по принципу "сколько копирую я, столько разрешаю скопировать у меня". Узлы, скопировавшие весь файл, становятся распространителями для этого файла и, вместе с не полностью скопировавшими узлами, дают возможность другим узлам получать части файла из нескольких источников, что ускоряет копирование (см. рис 10.11).
Существуют модификации протоколов, которые позволяют работать с файлами метаданных, не привязанными к серверам.
Одной из первых пиринговых сетей, Gnutella, была создана в 2000 году [10.17]. Сеть функционирует до сих пор, хотя из-за серьезных недостатков алгоритма пользователи сейчас предпочитают сеть Gnutella2 (G2, [10.18]).
Подключившийся клиент получает от узла, с которым ему удалось соединиться, список из 5 активных узлов и отсылает им запрос на поиск ресурса по ключевому слову. Узлы ищут у себя соответствующие запросу ресурсы и, если не находят, пересылают запрос своим активным узлам вверх по дереву, пока не найдется ресурс или не будет превышено максимальное число шагов. Такой поиск называется размножением запросов. С помощью протокола также отслеживается, чтобы топология создаваемой сети узлов имела древовидную структуру графа.
Понятно, что подобный алгоритм ведет к экспоненциальному росту числа запросов и, соответственно, на верхних уровнях может привести к отказу в обслуживании, что и наблюдалось на практике неоднократно. Разработчиками были проведены работы по улучшению алгоритма, введены правила, в соответствии с которыми запросы могут пересылать вверх по дереву только определенные узлы (так называемые выделенные узлы), а остальные могут лишь посылать им запросы.
Недостатки протокола Gnutella инициировали разработки принципиально новых алгоритмов поиска маршрутов и ресурсов, и привели к созданию группы протоколов DHT (Distributed
Запросы в сети Gnutella пересылаются по TCP или UDP , копирование файлов происходит посредством протокола HTTP.
В последнее время появились расширения для клиентских программ, позволяющие копировать файлы по UDP , делать XWL-запросы метаинформации о файлах.
В 2003 году появился принципиально новый протокол Gnutella2. В соответствии с данным протоколом некоторые узлы становятся концентраторами, остальные являются обычными узлами. Каждый обычный узел имеет соединение с одним-двумя концентраторами. У концентратора есть связь с сотнями обычных узлов и десятки соединений с другими концентраторами. Каждый узел периодически пересылает концентратору список идентификаторов ключевых слов, по которым могут быть найдены публикуемые данным узлом ресурсы. Идентификаторы сохраняются в общей таблице на концентраторе. Когда узел хочет найти ресурс, он посылает запрос по ключевому слову своему концентратору, который либо находит ресурс в своей таблице и возвращает ID узла, обладающего ресурсом, либо возвращает список других концентраторов, которые узел вновь запрашивает по очереди, случайным образом. Такой поиск называется поиском с помощью метода блужданий.
Для улучшения качества поиска используются метаданные файлов — информация о содержании, рейтинг. Примечательной особенностью данной сети является возможность размножения информации о файле в сети без копирования самого файла, что очень полезно для отслеживания вирусов.
Для передаваемых пакетов в Gnutella2 разработан собственный формат, похожий на XML. Он гибко реализует возможность наращивания функциональности сети путем добавления дополнительной служебной информации. Запросы и списки ID ключевых слов пересылаются по UDP.
Сеть EDonkey2000 [10.14] появилась в 2000 году. Информация о наличии файлов публикуется клиентом на многочисленных серверах в виде ed2k -ссылок, использующих уникальный ID ресурса. Серверное ПО доступно для установки любым пользователем. Сервер обеспечивает поиск узлов и информации. Сейчас в сети имеется от 100 до 200 серверов, которые обслуживают одновременно около миллиона пользователей, использующих порядка миллиарда различных файлов. Общее количество зарегистрированных пользователей составляет порядка 10 миллионов.
Когда клиент копирует желаемый ресурс, он копирует его одновременно из нескольких источников при помощи MFTP ( Multisource File Transfer Protocol ).
В настоящее время информацию о доступных файлах можно получать не только с серверов eDonkey. С 2004 года в состав сети EDonkey2000 интегрирована сеть Overnet — полностью децентрализованная сеть, позволяющая осуществлять взаимодействие между узлами без привязки к серверам, для чего используется DHT протокол Kademlia.
Клиент EDonkey имеет очень интересное расширение, позволяющее копировать метафайлы, которые пользуются большим доверием пользователей, а также использовать верификационную информацию из метафайлов для работы с файлами собственной сети.
Такая интеграция возможностей разных сетей и дополнительная верификация способствовали развитию EDonkey2000, в которую начали переходить пользователи других сетей, например сети FastTreсk, базирующейся на протоколе FastTreсk, а наиболее популярным клиентом ее является Kazaa [10.17].
Провайдеры сетевых услуг, например, провайдеры московских домашних сетей, а также администраторы компаний, до недавнего времени старались блокировать на своих файерволлах порты, через которые общаются клиенты сетей Bittorrent, eDonkey2000, Gnutella, Fasttreck.
Поэтому пользователям осталась только возможность использовать локальные пиринговые сети. Наиболее удобной для этого оказалась сеть
Клиенты подключаются к одному или нескольким серверам для поиска файлов. Серверы не связаны между собой. Информация о файлах, доступ к которым узел хочет открыть, отсылается на сервер. Копирование файлов происходит напрямую между узлами, как и в классической
В клиент встроены возможности для общения участников сети, список файлов каждого пользователя можно получать в виде древовидной структуры папок, есть простой механизм поиска информации, существует возможность копирования целых каталогов. Перечисленные возможности сделали сеть DC идеальным решением для локальной файлообменной сети
В настоящее время телевидение находится на перепутье – происходит смена поколений телевизионных технологий (аналог-цифра, ТВ с традиционным и высоким разрешением (
Современному клиенту предлагаются десятки телевизионных каналов. Что же могут предложить клиентам компании, продвигающие на рынок Р2Р ТВ-услуги?
Прежде всего, это бесплатный доступ к каналам (во всяком случае, первое время), возможности ТВ по запросу и т.д. Издержки провайдера услуг минимизируются тем, что он практически не тратит средств на развитие и поддержку инфраструктуры (кабели, передатчики, специализированное оборудование, студии, сервис и т.д.) — он предлагает клиентам, как правило, продукты вторичного рынка (фильмы, музыкальные и развлекательные программы и пр.). Доход он получает в основном от размещения рекламы. Не имея доступа к сети доставки телевизионного сигнала, такие провайдеры используют Интернет и специализированное программное обеспечение, ориентированное на Р2Р-технологию. Это программное обеспечение загружается в машины всех клиентов, подключаемых к сети. Загрузка программ через Интернет создает дополнительную уязвимость, которая может быть парирована использованием надежной системы аутентификации. Сеть рассылки ТВ-данных образуется из машин клиентов, — по желанию клиентов машины могут подключаться и отключаться от сети.
Такая сеть может иметь топологию множества деревьев или сетки, может использовать в качестве транспорта протоколы UDP или
На рис 10.13 представлена схема с

(рис 10.14) Топология с четырьмя деревьями(рис 10.13) Топология решетки GBS (Gossip Based Streaming)
При сеточной топологии [10, 11] поток данных делится на небольшие модули, например, соответствующие одной секунде фильма. Эти модули клиент получает от узлов сетки случайным образом или согласно некоторой закономерности.
На рис 10.14 показана схема работы алгоритма Gossip Based Streaming. Узлом — источником первичного видеопотока здесь является узел А. Эволюция графа доставки видеофрагментов зависит от того, какие узлы направят запросы первыми. Размер сегментов обычно постоянный. Предположим, что узел А может обслужить не более трех узлов (ограничение выходной полосы). При развитии дерева доставки учитывается выходная полоса узлов, которая предполагается большей, чем требуется для одного видеопотока, и случайный характер выбора партнера — источника данных. Узлы информируют партнеров (не только соседей) об имеющихся у них видеосегментах. Любой из узлов может стать отправителем, если у него имеется нужный сегмент и ему поступил запрос на этот сегмент. Для любого из видеосегментов можно отследить его путь от А до узла редистрибьютера. Для такой схемы характерна большая задержка воспроизведения.
Причина в том, что при М шагах маршрута доставки сегмента задержка $$\tau = М x (T_{передачи} + T_{диалога})$$, где $$T_{передачи}$$ — время передачи сегмента между смежными узлами (~1 с), $$T_{диалога}$$ – время оповещения о наличии сегмента и обслуживания запроса.
При анализе эволюции графа доставки следует учитывать доступную выходную полосу узлов. Обозначим скорость передачи видео как ВW (Кбит/с). Пусть базовый узел b), а вторичные узлы B, C, D… имеют выходную полосу пропускания ТB. На рисунке каждый из вторичных узлов обслуживает одновременно три узла.
Если для обеспечения требующегося разрешения необходим входной поток ~400 Кбит/c, то выходная полоса пропускания должна быть больше этой величины. Если численность узлов с числом шагов доставки означают возможность обмена в обоих направлениях, хотя трудно представить, что видеоданные будут поступать
из узла G в узел D, ведь в узел D они поступают из первичного узла А. Но следует учитывать, что, в отличие от алгоритма, использующего деревья, здесь нет однозначного направления передачи данных между узлами. Источником очередного сегмента для узла i может стать любой узел, у которого в буфере такой сегмент имеется (ведь выбор отправителя производится случайным образом). Но такой подход может вынудить, например, узел D послать по запросу "старый" сегмент, лежащий у него в буфере, вместо того чтобы послать "новый" сегмент узлу Н. Эта особенность может приводить к накоплению задержки доставки видеоматериала по мере трансляции фильма. Именно по этой причине в программе-клиенте используется изощренная двухуровневая буферизация. Замечу, что число шагов доставки данных ( K ) в алгоритме GBS — величина статистическая,
а не постоянная, и его значение лежит в интервале от 2 до некоторого максимума, определяемого суммарным числом узлов в сети S. Статистическое распределение K, строго говоря, не идентично для узлов сетки (например, узлы первого поколения (B и D) явно выделены).
Полное число узлов в сети$$S=\frac{(q^n-1)}{q-1}$$
где q = ТВ/BW, а n — число шагов доставки данных. Это выражение справедливо как для древовидной, так и для сеточной схемы организации сети.
Но при любой реализуемой схеме выходной поток данных узла должен превосходить входной, чтобы можно было реализовать сеть достаточно большого размера при ограниченном числе пересылок исходных данных (например, не более 5).
Реализация и использование распределенных систем имеет не только плюсы, но и минусы, связанные с особенностями обеспечения безопасности.
Получить контроль над столь разветвленной и крупной структурой, каковой является сеть Р2Р, или использовать пробелы в реализации протоколов для собственных нужд является желанной целью любого хакера. С другой стороны, защитить распределенную структуру сложнее, чем централизованный сервер [10.9].
Столь огромное количество ресурсов тяжело шифровать/дешифровать, поэтому большая часть информации о IP-адресах и ресурсах участников хранится и пересылается в незашифрованном виде, что делает ее доступной для перехвата. Только в последнее время клиенты большинства крупных сетей обеспечивают решение этой проблемы путем шифрования заголовков пакетов и идентификационной информации, реализации клиентов с использованием SSL, построения полностью анонимных сетей и пр.
Серьезной проблемой является рассылка "червей" и подделка ID-ресурсов для их фальсификации и распространения фальшивых ресурсов в сети.
Так, например, в клиенте Kazaa используется хэш-функция UUHash, которая позволяет быстро находить ID для больших файлов даже на слабых компьютерах, но при этом оставляет возможность для подделки файлов и записи испорченного файла, имеющего тот же ID. Эта возможность была использована Американской Ассоциацией Звукозаписывающих Компаний (
Для решения проблемы клиентам нужно пользоваться надежными хэшами (деревьями хэшей, если файл копируется по частям) такими как SHA-1, Whirlpool, Tiger, и только для малоответственных задач, а также контрольными суммами CRC. Для уменьшения объемов пересылаемых данных и облегчения их шифрования можно использовать компрессию. Для защиты от вирусов нужно иметь возможность хранить идентифицирующую метаинформацию о "червях", как это, например, сделано в Gnutella2.
Другой проблемой является возможность подделки ID серверов и узлов. При отсутствии механизма проверки подлинности пересылаемых служебных сообщений, например, с помощью сертификатов, существует возможность фальсификации сервера или узла. Так как узлы обмениваются информацией, подделка некоторых узлов или серверов приведет к компрометации всей или части сети. Закрытое программное обеспечение клиентов и серверов не является решением проблемы, так как есть возможность для реинжиниринга протоколов и программ.
В настоящее время выделенные узлы, серверы и обычные узлы периодически обмениваются между собой верифицирующей информацией и при необходимости добавляют поддельные серверы/узлы в черный список блокировки доступа.
Часть клиентов только копируют чужие файлы, но не предлагают ничего для копирования другим.
Например, в московских домашних сетях на нескольких активистов, делающих доступными более 100 Гб, приходится около сотни выкладывающих менее 1 GB. Для борьбы с этим фактором используются разные методы. В eMule применен метод кредитов: скопировал файл — кредит уменьшился, позволил скопировать свой файл — кредит увеличился. xMule — кредитная система с поощрением распространения редких файлов, в eDonkey используется стимулирование размножения источников, в Bittorrent реализована схема "сколько блоков файла получил, столько отдал" и т.д.
При создании информационных сетей, ориентированных на пересылку мультимедиа, следует учитывать возможность пересылки через эту сеть нелегальных сообщений, в том числе террористами. Ведь выявить наличие скрытых сообщений внутри изображения крайне трудно, практически невозможно.
Современные сетевые технологии открывают возможности решения многих задач, но и создают некоторые новые проблемы. Появились распределенные вычислительные системы, распределенные системы управления и гигантские распределенные системы хранения информации. Но управление и обеспечение надежности этих систем, а также уязвимость в отношении различных преднамеренных воздействий создает новые проблемы в условиях, когда человечество уже не может жить без нормального функционирования таких систем.
При передаче данных важным компонентом являются алгоритмы организации и обработки записей в очередях. Наиболее известные алгоритмы рассмотрены ниже.
Полагаю, что идея компьютерных сетей заимствована из практики использования магистрально-модульных систем, которые служат для передачи данных от различных источников информации в ЭВМ и обратно в режиме реального времени. Такие системы стали активно развиваться с начала 60-х годов прошлого века. Наиболее характерным примером может служить система САМАС, где для передачи данных от или к большому числу объектов использовалась общая аппаратная транспортная среда (шина, как правило, параллельная). Строго говоря, локальная сеть ЭВМ является частным случаем магистрально модульной системы. Другим источником вдохновения могли служить каналы связи ЭВМ с периферийными приборами (например, дисковыми запоминающими устройствами или удаленными терминалами; достаточно вспомнить канал SCSI, который был разработан в том числе и для целей сбора данных). Следует отметить принципиальное различие между такими системами и сетями. В последнем случае данные передаются от ЭВМ к ЭВМ. Важным фактором для развития сетей явилась разработка пакетного принципа передачи данных, который был создан еще до начала Второй мировой войны. Прототипом современных сетей, возможно, явились терминальные сети крупных вычислительных центров.
Первой сетью, где применен пакетный принцип передачи данных, была
Сети делают возможным:
Сети – это системы мультиплексирования доступа к каналам и ресурсам.
Это достаточно обобщенный и неполный список приложений — полный список можно было бы издать отдельным томом. Сети использованы для расчета генома человека, проверки надежности ключей шифрования. Фермы ЭВМ, объединенных сетью, применяются вместо
Сети по своей принадлежности делятся на локальные ( 01111110. Если внутри кадра встретится такой байт,
то он будет заменен последовательностью 011111010. Приемное устройство преобразует эту последовательность назад в 01111110. Так входная последовательность бит 010011111111111111110010 будет преобразована в
010011111011111011111010010,
где выделенные нули являются вставленными специально, чтобы была невозможна имитация сигнатуры конца кадра. Последовательность стала длиннее. Принимающая сторона восстановит исходную строку бит.
Эти комбинации решают те же задачи, что и ESC-последовательности, но более экономно.
При передаче данных нужно обеспечивать синхронизацию и стабилизацию уровня регистрации. Синхронизация между передатчиком и приемником необходима прежде всего потому, что не каждому биту в передаваемом коде соответствует изменение уровня сигнала. А это может приводить к тому, что одна из сторон передаст N бит, а другая при этом будет считать, что приняла N-1 или N+1 бит. Синхронизация тактовых частот передатчика и приемника чаще всего осуществляется самой кодовой последовательностью, транспортирующей данные, или независимо, как, например, это делается в сетях SDH.
Так как между передатчиком и приемником не всегда имеется гальваническая связь, средний уровень сигнала может дрейфовать в зависимости от числа предыдущих нулей или единиц. Такой дрейф может приводить к ошибкам, так как в суперпозиции с шумами или наводками может превысить уровень дискриминации, отделяющий состояния логического нуля и единицы.
Практически все сети так или иначе решают проблему мультиплексирования данных (как правило, это определяет алгоритм доступа к сетевой среде).
В сетях для формирования виртуального канала и транспортировки данных используются схемы с коммутацией каналов и с коммутацией пакетов. Эти схемы представлены на рис 10.1. В случае коммутации каналов сначала осуществляется формирование связи между инициатором и адресатом и только затем начинается обмен данными (или разговор при телефонном соединении). Канал может реализоваться из медных проводов, оптических волокон или с помощью радио. В качестве параметра при установлении соединения используется код места назначения, например, его телефонный номер или IP-адрес. При наборе первой цифры выбирается номер выхода первого коммутатора, при наборе второй цифры — номер выходного канала второго коммутатора и т.д. Цифры могут группироваться в блоки. Время формирования канала достигает 10 секунд и не зависит от расстояния между клиентами. Зато после сформирования канала характерная задержка передачи данных не превышает 5 мс на 1000 км.
Сформированный виртуальный канал используется только конечными клиентами, и полоса пропускания канала остается постоянной в течение сессии, а неиспользованный ресурс канала пропадает.
(рис 10.1) Схемы сетей с коммутацией каналов (А) и с коммутацией пакетов (Б)Принцип коммутации каналов применяется системами ISDN, ATM и Х.25. Это не означает, что там ни при каких обстоятельствах не используется коммутация пакетов. Приведенное выше замечание о постоянстве полосы пропускания не исключает, тем не менее, ситуаций перегрузки. Реальные коммутаторы, в отличие от нарисованных, имеют многие сотни и даже тысячи входных/выходных каналов. При поступлении данных по большому числу каналов одновременно коммутатор может не справиться с такой ситуацией. В случае коммутации пакетов один и тот же канал может использоваться большим числом пользователей одновременно. Здесь перегрузка является скорее нормой, чем исключением. В современных системах часто совмещаются методы коммутации каналов и пакетов.
Помимо названных режимов, существует также система коммутации сообщений. Наистарейшим примером такого рода является система передачи телеграмм, где очередная станция получает телеграмму в виде перфоленты, оператор (или специализированный коммутатор) считывает ее адрес и принимает решение о том, по какому из каналов ее следует передать дальше. Такие системы называются "запомнить-и-переадресовать". В современных сетях такой принцип используется при передаче новостей (протокол NNTP — близкий родственник e-mail ). При передаче сообщений не регламентируется их размер, что вынуждает в точках коммутации записывать их на диски. Отсутствие такого рода ограничений приводит к тому, что канал может быть занят достаточно долго. Новое сообщение может быть послано лишь после завершения отправки предыдущего. Все эти проблемы легко разрешаются в системах с коммутацией пакетов, размер которых регламентирован. В этом методе задержка доставки пакета может варьироваться в довольно широких пределах. Более того, может меняться порядок доставляемых пакетов, и кадр, посланный раньше, может быть доставлен позже, — принимающая сторона должна уметь обрабатывать такие события. Пакетный способ транспортировки легко адаптируется к любым форматам, скоростям передачи и алгоритмам формирования и обработки пакетов. Здесь, как правило, исключается возможность монополизации канала каким-либо пользователем, система допускает кодирование или преобразование данных в пакете. Емкость буфера определяется максимальным размером пакета. Для буферизации может использоваться оперативная память маршрутизатора. В данной схеме решение о переадресации может приниматься до того, как пакет будет принят коммутирующим устройством целиком (режим cut-through – коммутация на пролете).
Данный прием реализован в коммутаторах ATM, именно по этой причине там контрольное суммирование охватывает лишь заголовок, а не всю ячейку, хотя ее протяженность ограничена. Ведь именно в заголовке содержится адрес места назначения, а ошибка в нем приведет к тому, что истинный адресат не получит пакет, зато какое-то другое устройство получит пакет, ему не предназначенный.
Но даже 155 Мбит/с быстродействия АТМ-коммутаторов не избавляет их от перегрузок. Достаточно попытаться представить, что на вход 1000-канального переключателя пришло одновременно 100 ячеек (а это ординарная ситуация) — здесь могут не спасти даже достаточно большие объемы буферов и изощренные системы
Разные участки маршрута могут иметь разные предельные длины пакетов (MTU), и это может требовать фрагментации получаемых пакетов. Значение MTU, как правило, определяется вероятностью ошибки при транспортировке (
Именно гибкая система фрагментации и дефрагментации пакетов сделало сети Интернет столь универсальными.
Как локальные, так и региональные сети могут отличаться по топологии и методу доступа.
Среди топологических схем наиболее популярными являются (см. рис 10.2):
(рис 10.2) Примеры сетевых топологийК первым трем типам топологии относятся 99% всех локальных сетей. Деление сетей на локальные и региональные достаточно условно. Под локальной сетью подразумевается сеть предприятия, конторы, учреждения или кампуса, имеющая, как правило, одного администратора. Такая сеть обычно имеет шлюз, который соединяет ее с региональной сетью. Наиболее популярный тип локальной сети физического уровня — Ethernet — может строиться по схемам 1 и 2 (рис 10.2). В нынешнем виде стандарт на сети типа Ethernet был сформулирован сравнительно недавно — в 1985 году (IEEE Std 802.3-1985; ISO
Сети Token Ring и FDDI применяют кольцевую топологию (3 на рис 10.2), где каждый узел должен иметь два сетевых интерфейса. Эта топология удобна для оптоволоконных каналов, где сигнал может передаваться только в одном направлении (но при наличии двух колец, как в FDDI или
Применяется и немалое количество других топологий, которые являются комбинациями уже названных. Примеры таких топологий даны на рис 10.3.
Вариант представляет собой схему с полным набором связей (все узлы соединены со всеми), такая схема используется только в случае, когда необходимо обеспечить высокую надежность соединений. Эта версия требует для каждого из узлов наличия N-1 интерфейсов при полном числе узлов N. Вариант Б является примером нерегулярной топологии, а вариант В – иерархический случай связи (древовидная топология).
(рис 10.3) Различные сетевые топологические схемыЕсли топологии на рис 10.3 В чаще применимы для локальных сетей, то топологии на рис 10.3 А и Б более типичны для региональных и глобальных сетей. Выбор топологии локальной или региональной сети существенно сказывается на ее стоимости и рабочих характеристиках. При этом важным параметром для однородной сети является среднее число шагов между узлами D.
$$D=\sum_{d=1}^N \frac{dN_d}{N-1},$$
где D = 1. Данная топология гарантирует сохранение связности даже при обрыве любых трех соединений. Она применима при ограниченном числе узлов.
Именно многосвязность в сочетании с динамическими протоколами маршрутизации делает Интернет достаточно надежным и устойчивым.
Современные вычислительные системы используют и другие топологии (см. рис 10.4): решетки (А), кубы (В), гипердеревья (Б), гиперкубы и т.д. В некоторых системах топология может программно настраиваться на решаемую задачу.
(рис 10.4) Некоторые топологии вычислительных системМетод доступа определяет алгоритм, согласно которому узлы сети получают доступ к среде передачи данных и осуществляют мультиплексирование/ демультиплексирование данных.
В 1970-х годах Норман Абрахамсон вместе с сотрудниками Гавайского университета предложил оригинальный способ решения проблемы доступа к сети, который был назван позднее
Принципиальное отличие алгоритма
Мультиплексирование можно осуществлять по частоте (по длине волны —
Большая часть современных локальных сетей базируется на алгоритме доступа
Алгоритм CSMA предпочтительнее
Логика поведения субъектов в сети с доступом
А.
Б.
В.
р передает пакет, а с вероятностью 1р он откладывает передачу на t секунд (например, на следующий временной домен).Алгоритм А на первый взгляд представляется привлекательным, но в нем заложена возможность столкновений с вероятностью 100%. Алгоритмы Б и В более устойчивы в отношении этой проблемы.
Эффективность алгоритма CSMA зависит от того, как быстро передающая сторона узнает о факте столкновения и прерывает передачу, ведь продолжение бессмысленно — данные уже повреждены. Это время зависит от длины сетевого сегмента и задержек в оборудовании сегмента. Удвоенное значение задержки определяет минимальную длину пакета, передаваемого в такой сети. Если пакет короче, он может быть передан так, что передающая сторона не узнает о его повреждении в результате столкновения. Для современных локальных сетей Ethernet, построенных на переключателях и полнодуплексных соединениях, эта проблема неактуальна.
С целью пояснения этого утверждения рассмотрим случай, когда одна из станций (1) передает пакет самой удаленной ЭВМ (2) в данном сетевом сегменте. Время распространения сигнала до этой машины пусть равно Т. Предположим также, что машина (2) попытается начать передачу как раз в момент прихода пакета от станции (1). В этом случае станция (1) узнает о столкновении лишь спустя время 2Т после начала передачи (время распространения сигнала от (1) до (2) плюс время распространения сигнала столкновения от (2) к (1)). Следует учитывать, что регистрация столкновения — это аналоговый процесс и передающая станция должна "прослушивать" сигнал в кабеле в процессе передачи, сравнивая результат чтения с тем, что она передает. Важно, чтобы схема кодирования сигнала допускала детектирование столкновения. Например, сумма двух сигналов с уровнем 0 этого сделать не позволит. Можно подумать, что передача короткого пакета с искажением из-за столкновения — не такая уж большая беда, проблему может решить контроль доставки и повторная передача.
Следует только учесть, что повторная передача в случае зарегистрированного интерфейсом столкновения осуществляется самим интерфейсом, а повторная передача в случае контроля доставки по отклику выполняется прикладным процессом, требуя ресурсов центрального процессора рабочей станции.
Сопоставление эффективности использования канала для различных протоколов произвольного доступа произведено на рис 10.5.
(рис 10.5) Сравнение эффективности канала для различных протоколов произвольного доступа и разных значений pПротокол доступа CSMA может предполагать, что когда канал оказывается свободным, а рабочая станция готова начать передачу, реальная пересылка кадра в рамках заданного временного домена происходит с определенной вероятностью p. С вероятностью 1-р передача будет отложена до следующего временного домена. В следующем домене, если канал свободен, с вероятностью р осуществится передача или будет отложена до следующего домена и так далее. Процесс продолжается до тех пор, пока кадр не будет передан. На рисунке эта вероятность р отмечена цифрами после аббревиатуры "CSMA". В случае Ethernet эта вероятность равна единице (CSMA-1) [46, Э. Таненбаум, стр. 302], то есть рабочая станция безусловно начнет передачу, если она к этому готова, а канал свободен. Из рисунка видно, что чем меньше эта вероятность, тем выше эффективность (среднее время доступа к сетевой среде также увеличивается). Очевидно, что все разновидности
протокола доступа CSMA эффективнее протокола
Здесь уместно обратить внимание на то, что если загрузка канала невелика, а требуется малая задержка доступа к каналу, то лучше алгоритма
Рассмотрим, как можно избежать проблем столкновений пакетов. Пусть к сетевому сегменту подключено , N = 8 ).
(рис 10.6) Схема реализации протокола доступа к сети bit-map
В примере на рис 10.6 сначала право передачи получают станции 0, 2 и 6, а в следующем цикле — 2 и 5 (пересылаемые пакеты окрашены в серый цвет). Если рабочая станция захочет что-то передать, когда ее интервал (домен) уже прошел, ей придется ждать следующего цикла. По существу данный алгоритм является протоколом резервирования. Машина сообщает о своих намерениях до того, как начинает что-либо передавать. Чем больше ЭВМ подключено к сетевому сегменту, тем больше временных интервалов должно быть зарезервировано и тем ниже эффективность сети. Понятно, что эффективность растет с ростом L.
Вариация данного алгоритма доступа реализована в сетях сбора данных реального времени — алгоритм доступа CSMA/CA — N = 5 и одновременно производится попытка начать передачу станции с кодами приоритета 10000, 10100, и 00100. Первыми будут посланы станциями биты 1, 1 и 0. Третья станция сразу выбывает из конкурса (ее бит равен 0). Первая и вторая продолжают передачу. На следующем такте станции передадут биты 0 и 0, что позволяет им продолжить передачу. На третьем такте они выдадут 0 и 1, что вынудит первую станцию выбыть из соревнования. Оставшаяся станция ( 10100 ) продолжит передачу кода приоритета, а затем и данных. Число рабочих станций, подключенных к сетевому сегменту, может достигать 2N-1. Необходимость синхронизации ограничивает длину сетевого сегмента или быстродействие передачи.
Базовыми характеристиками алгоритмов доступа являются задержка при малых загрузках и k станций борются за доступ к каналу, каждая из них имеет вероятность р осуществить передачу. Вероятность того, что станция получит доступ к каналу при данной попытке, равна kp(1-p)k-1. Чтобы найти оптимальное значение p, продифференцируем полученное выражение вероятности по p, а результат приравняем к нулю. После преобразования получается, что оптимальным значением является p = 1/k. Подставив это значение в выражение вероятности успешного доступа, получим
$$\left(\frac{k-1}{k}\right)^{k-1}$$ .
Для малого числа станций вероятность получить доступ к каналу относительно высока, но уже при k = 3 - 5 вероятность приближается к асимптотическому значению 1/e.
Существует еще один относительно эффективный алгоритм доступа к каналу, называемый ).
(рис 10.7) Алгоритм адаптивного обходаПервая ниша доступа следует за очередной успешной передачей и соответствует узлу дерева 0 (на рис 10.7 не показан). В этом узле всем станциям предоставлена возможность доступа. Если одна из них его получила, очень хорошо. Если же произошло столкновение, то в нише узла 1 до конкурса допускаются станции, связанные с узлом 2 (А, Б, В и Г). Если одна из них получила доступ, в нише, следующей за переданным кадром, будут соревноваться станции, связанные с узлом 3 (Д, Е, Ж и З). Если же на предшествующем этапе произошло столкновение, следующая попытка предоставляется станциям, связанным узлом 4 (А и Б), и т.д. Если столкновение произошло в нише узла 0, то сначала исследуется все дерево, чтобы выявить все готовые к передаче станции. Каждая бит-ниша ассоциируется с определенным узлом дерева. Если происходит столкновение, поиск продолжается рекурсивно для правой и левой ветвей узла. Если бит-ниша пассивна (нет заявок на передачу) или если имеется только одна станция-претендент, поиск будет прерван, так как все станции-претенденты найдены. Существует достаточно большое число вариаций данного алгоритма доступа к сети.
Следующим по популярности после
В таблице 10.1 представлены сводные данные по основным видам локальных сетей, используемых в настоящее время (список не является полным).
| Название сети | Топология | Быстродействие Мбит/с | Доступ | Тип кабеля | NEXT при макс. частоте [дБ] | Размер сети (сегмента) | Макс. число узлов |
|---|---|---|---|---|---|---|---|
| шина | 10 | RG-8 (50 Ом) | 500м | 1024 | |||
| шина | 10 | RG-58 (50 Ом) | 185м | 90 | |||
| 10BROAD36 | шина | 10 | RG-59 (75 Ом) | 3600м | 1024 | ||
| звезда | 100 | 29 | 200м | - | |||
| звезда | 100 | оптоволокно | 300м | - | |||
| 1000baseFX | звезда | 1000 | CSMA | оптоволокно | 2км | ||
| звезда | 10000 | CSMA | оптоволокно | 2км | |||
| IEEE 802.4 | шина | 1/5/10/20 | маркер | RG-59 (75 Ом) | |||
| звезда | 2,5/20 | маркер | RG-62/ |
600/125 м | 255 | ||
| IEEE 802.5 | звезда | 4/16 | маркер | STP/ |
22/32 | 366 м | 260 |
| AppleTalk | шина/звезда | 0,23 | STP/ |
22/32 | 300/3000 м | 32 на сегмент | |
| EtherTalk | шина/звезда | 10 | STP/ |
500/3000 м | 254/1023 | ||
| ISN | звезда | 8,64 | Шина доступа | STP, оптоволокно | Не ограничено | 336/1920 | |
| PC |
дерево,звезда | 2 | RG-59 (75 Ом), |
32/22 | 2000 | 72 | |
| Hyperchannel | шина | 50 | RG-59, оптоволокно | 3500 м | 256 | ||
| E-Net | шина | 10 | RG-58 (50 Ом) | 700 м | 100 | ||
| G-Net | шина | 1 | RG-58, RG-59 | 2000 м | 100 | ||
| FDDI | двойное кольцо | 100 | маркер | оптоволокно | 100 км | 1000 | |
| MAP Bus | шина | 1, 5, 50 | маркер | кабель | |||
| PX-NET | шина/звезда | 1 | маркер | RG-62 (93 Ом) | 7000 м | 100 | |
| S-NET | шина/звезда | 1 | Индивидуальный | STP (100 Ом) | 21 | 700 м | 24 |
| WANGNET | двойное дерево | 10 | RG-59 (75 Ом) | 2800 м | 65000 |
Приведенная таблица не может претендовать на полноту. Так, сюда не вошла сеть IBM DSDB, разработанная в начале 1980-х годов. Полоса пропускания сети составляет 64 Мбит/с. Эта сеть рассчитана на обслуживание процессов реального времени. Сеть имеет топологию шины с приоритетным доступом (длина шины — до 500м). Коммуникационная шина логически делится на три магистрали: сигнальная — для реализации приоритетного доступа; лексемная шина — для резервирования в буфере места назначения; и, наконец, коммуникационная шина — для передачи данных. Каждая из указанных магистралей использует идеологию независимых временных доменов, границы которых синхронизованы для всех трех магистралей.
Существует целое семейство методов доступа, исключающих столкновение: это мультиплексирование по времени ( N/2 временных интервалов (предполагается, что работает N клиентов). При
(рис 10.8) Пояснение работы алгоритма доступа WDMA
На рисунке 10.8 представлен случай с четырьмя станциями (A, B, C и D). Каждая станция имеет два канала. Один канал (менее широкополосный) является управляющим каналом станции. Второй (широкополосный) служит для передачи данных. В каждом из каналов выделяется определенное число временных доменов. Будем считать, что число доменов в управляющем канале равно k, а число доменов в информационном канале – N+1, где N из них предназначены для данных, а последний служит для передачи станцией своего статуса (например, информации о свободных доменах). Все каналы синхронизуются от общих часов. Протокол поддерживает три типа трафика: постоянный поток данных с ориентацией на соединение (1), например видеотрафик; переменный поток, ориентированный на соединение (2), и поток дейтограмм, например UDP (3). В протоколах, ориентированных на соединение, станция А, прежде чем осуществить
обмен с В, должна послать запрос на соединение (
Каждая станция прослушивает свой управляющий канал с целью приема запросов и настраивается на длину определенного передатчика для получения данных. Настройка на определенную длину волны производится с помощью ячеек Фабри-Перо или интерферометров Маха-Цандера (предполагается, что мы работаем с оптическими волокнами).
Рассмотрим, как станция В имеет 8 доменов, из них 0, 3 и 5 свободны. Пусть принято решение занять запросом на соединение домен 5. Так как станция В постоянно прослушивает свой управляющий канал, она предоставит свободный домен для станции А. Это присвоение отражается в статусном домене информационного канала. Когда станция А обнаружит, что присвоение выполнено, можно считать, что осуществлено однонаправленное соединение между А и В. Если для А требуется двунаправленное соединение (что реально для протокола FTP), то В повторит ту же процедуру со станцией А. Вполне возможна ситуация, когда одновременно станции А и С пытаются захватить один и тот же домен с номером 5. Ни одна из них его не получит и узнает об этом из статусного кода в домене управляющего канала В. После этого обе станции ждут псевдослучайное время и делают еще одну попытку.
Для осуществления пересылки файла станция А посылает В управляющее сообщение типа "загляните в домен данных 3, там кадр для вас". Когда В получает управляющее сообщение, она настраивает свой приемник на выходной канал А, чтобы принять кадр данных от А. Станция В может использовать ту же схему для посылки подтверждения получения кадра, если это необходимо. Заметим, что может возникнуть проблема, если с В имеют одновременно соединения А и С и обе станции предлагают В заглянуть в информационный домен 3. Станция В воспримет одно из этих сообщений, второе будет потеряно. При постоянной скорости передачи используется модификация данного протокола. Когда станция А запрашивает соединение, она одновременно посылает сообщение типа "не возражаете, если я буду посылать данные в каждом
домене 3?". Если В способна принять данные (домен 3 не занят), устанавливается соединение с фиксированной полосой. Если это не так, А может попытаться использовать другой свободный временной домен. Для типа обмена 3 (дейтограммы) используется другая вариация протокола. Вместо посылки запроса соединения в найденный свободный домен управляющего канала станция записывает сообщение "DATA FOR YOU in SLOT 3" (для вас есть данные в домене 3). Если В свободна во время следующего информационного домена 3, обмен будет успешным, в противном случае кадр теряется. Существует большое число различных вариантов протокола
Рассмотрим случай ( 1/m, тогда среднее время задержки T для канала с пропускной способностью С бит/с при частоте кадров f с-1 составит T = 1/(mC-f). Теперь предположим, что канал поделен на N независимых субканалов с пропускной способностью C/N бит/с. Средняя загрузка каждого из субканалов станет равной f/N. Теперь для среднего значения задержки мы получим выражение
$$T(FDM)=\frac{1}{m(C/N)-(f/N)}=\frac{N}{mC-f}=NT$$
Таким образом, N раз хуже, чем вариант, когда мы все кадры помещаем каким-то образом в некоторую общую очередь. Точно такая же аргументация может быть применена для метода
Интересной разновидностью Ethernet является широкополосная сеть типа Net/One. Она может базироваться на коаксиальном кабеле (суммарная длина до 1500 м) или на оптическом волокне (полная длина до 2500 м). Эта сеть по многим характеристикам аналогична обычному Ethernet (
Другой Ethernet-совместимой сетью является Fibercom Whispernet. Сеть имеет кольцевую структуру (до 8 км), полосу пропускания 10 Мбит/c, число узлов до 100 на сегменте при полном числе узлов в сети — 1024. Число кольцевых сегментов может достигать 101. Максимальное межузловое расстояние — 2 км.
Примером нетрадиционного типа сети может служить Localnet 20 (Sytek). Сеть базируется на одном коаксиальном кабеле и имеет полную полосу пропускания 400 МГц. Сеть делится на 120 каналов, каждый из которых работает со скоростью 128 Кбит/с. Каналы используют две 36МГц-полосы, одна для передачи, другая для приема. Каждый из коммуникационных каналов занимает 300 КГц из 36 МГц. Сеть использует алгоритм доступа
Традиционные сети и телекоммуникационные каналы образуют основу сети – ее физический уровень. Реальная топология сети может динамически изменяться, хотя это и происходит обычно незаметно для участников. При реализации сети применяются десятки протоколов. В любых коммуникационных протоколах важное значение имеют
Для каждой сети характерен свой интервал размеров пакетов (MTU). Среди факторов, влияющих на выбор размеров кадра, можно выделить:
Ниже приведены максимальные размеры пакетов ( MTU – Maximum
| Сеть | MTU Байт | Быстродействие Мбит/с |
|---|---|---|
| IEEE 802.3 | 1500 | 10 |
| IEEE 802.4 | 8191 | 10 |
| IEEE 802.5 | 5000 | 4 |
Не следует думать, что современные сети, в частности Ethernet, обладают таким уж высоким быстродействием по сравнению с "традиционными" средствами транспорта.
Предположим, что товарный вагон загружен 10000 картриджами Exabyte, емкостью 10 Гбайт каждый (эта цифра может быть и больше). Вагон движется со скоростью 72 км/ч. Какой информационный поток создает такой вагон? В секунду он перемещается на 20 метров, перенося 10000*10*109*8 $$\approx$$ 1015 бит данных. Скорость передачи данных по скрученной паре или оптическому волокну составляет около 200000 км/c. Если измерять передающую способность в м*бит/с, то для 100 Мбит/c Ethernet это будет 20*10^15 м*бит/c, как и для нашего вагона. Таким образом, вагон обеспечивает тот же темп переноса данных, что и Fast Ethernet.
Приведенное выше соображение, безусловно, поверхностно, так как не учитывает того факта, что мало доставить данные, надо их загрузить в ЭВМ (а вагоны машиной приниматься не могут). Но при построении сетей передачи данных и столь архаичный вариант не следует совершенно снимать со счетов.
Операции, ориентированные на установление связи (например, протокол TCP), предполагают трехстороннее соглашение между двумя пользователями и провайдером услуг. В процессе обмена они хранят необходимую информацию друг о друге, с тем чтобы не перегружать вспомогательными данными пересылаемые пакеты.
В этом режиме обмена обычно требуется подтверждение получения пакета, а при обнаружении сбоя предусматривается механизм повторной передачи поврежденного или потерянного пакета. "Бессвязная" сеть более надежна, так как она может отправлять отдельные пакеты по разным маршрутам, обходя поврежденные участки. Такая сеть не зависит от протоколов, применяемых в субсетях. Большинство протоколов Интернета используют именно эту схему обмена, например базовый протокол IP. Концептуально TCP/IP-сети предлагают три типа сервиса в порядке нарастания уровня иерархии:
Для сопоставления быстродействия различных видов сетей Сталлингс (BL (максимальное число бит в сегменте), которая равна произведению максимальной длины сегмента ( L в метрах) на полосу пропускания ( W в бит/с), поделенному на скорость распространения сигнала в сегменте ( s в метрах в секунду):
BL=L*W/s
Для Ethernet BL = [200(м)*100 106(бит/c)]/2 108 (м/c) = 100 бит.
Коэффициент использования сети равен $$\beta = 1/(1+\alpha)$$, где
$$\alpha=\frac{BL}{размер\ пакета}.$$
Для Ethernet при длине пакета 1500 байт $$\alpha = 0,07$$, что дает для эффективности использования сети 0,93. Таким образом, максимальная пропускная способность Ethernet составляет 93 Мбит/c или 11,6 Мбайт/с (для 100-мегабитного Ethernet). Разумеется, в этом подходе не учитываются издержки, связанные с заголовками пакетов, которые дополнительно снижают эффективность сети. Из данного рассмотрения может показаться, что чем больше пакет, тем лучше. С точки зрения пропускной способности так оно и есть. Но с увеличением длины пакета увеличивается время отклика сети. Таким образом, выбор MTU определяется реальными требованиями пользователей.
Существует большое разнообразие сетевых интерфейсов. Их структура зависит от характера физического уровня сетевой среды, от метода доступа, от используемого набора интегральных схем и т.д. Здесь пойдет речь о принципах построения программного интерфейса.
Существует три возможности построения интерфейса: с базированием на памяти, с использованием прямого доступа и с применением запросов обслуживания.
Первый вариант предполагает наличие трех компонентов: буфер сообщений, область данных для управления передачей и зона памяти для управления приемом данных. Первый из компонентов служит для формирования исходящих сообщений программного интерфейса. Должны быть приняты меры, чтобы исключить модификацию содержимого этого буфера до того, как данные будут считаны ЭВМ или интерфейсом. Проблема решается путем формирования соответствующих указателей. Управление буфером осуществляется ЭВМ или совместно ЭВМ и интерфейсом с использованием
Здесь уместно позаботиться о том, чтобы ни при каких обстоятельствах данные не были уложены поверх кода программы. Это может быть реализовано, например, путем использования кольцевого буфера. На такую возможность рассчитывают хакеры, предпринимая атаки типа "переполнения буфера".
Остальные методы предполагают использование традиционных способов управления памятью с помощью средств операционной системы. Критической проблемой является обеспечение достаточного места в буфере для приходящих сообщений. Ведь при отсутствии свободной памяти приходящее или записанное ранее сообщение может быть потеряно. Недостаток места для исходящих сообщений не является критическим, так как приводит обычно к задержке передачи, а не к потере сообщения.
Второй компонент интерфейса, базирующегося на использовании памяти, часто реализуется в виде так называемых буферов управления передачей ( TCB — Transmission Control Buffer). Эти буферы содержат такую информацию, как положение сообщения в памяти, длина сообщения, адрес места назначения, идентификатор процесса-отправителя,
Третий компонент интерфейса, базирующегося на использовании памяти, называется буфером управления приемом ( RCB – Reception Control Buffer). RCB содержит в себе информацию, сходную с той, что записывается в
Во втором варианте широко применяются
В третьем варианте сетевого программного интерфейса используются служебные запросы. Этот тип сетевого доступа удобен для коммуникационных протоколов высокого уровня, таких как команды ввода/вывода CSP -стиля (Communicating
Программирование для сетей существенным образом является программированием для процессов реального времени. Здесь часто можно столкнуться с тем, что одна и та же программа ведет себя по-разному в разных ситуациях. Особое внимание нужно уделять написанию многопроцессных сетевых программ, где, так же как в случае работы с сокетами, могут возникать ситуации блокировок. Пример такой ситуации показан на рис 10.9.
(рис 10.9) Когда число процессов больше, заметить запрограммированную ситуацию блокировки заметно сложнее. По этой причине необходимо предусмотреть меры, препятствующие блокировке, если ожидаемое сообщение не пришло.
Необычайно важной проблемой при построении сетей является их устойчивость при возникновении перегрузок. В Интернете для этого используется специальная опция протокола ICMP или CWND в ТСР, а во Frame Relay имеются меры для преодоления перегрузок непосредственно на нижних протокольных уровнях.
Взаимодействие сетевых объектов между собой обычно производится по схеме "клиент-сервер" ("master-slave"). В этой схеме один из объектов (клиент) посылает запрос, а получатель запроса (сервер) реализует запрошенную функцию или услугу. В общем случае клиент и сервер могут меняться местами. Известны варианты схемы, когда сервер обслуживает несколько клиентов. Схема этого взаимодействия существует уже не один десяток лет. Но в последнее время после широкого внедрения Интернета с его неиерархической схемой все чаще и шире стала применяться схема Р2Р. Идея
Использование компьютерных технологий начиналось в те времена, когда ЭВМ занимала целое здание — можно сказать, что пользователь входил в машину в буквальном смысле. Не исключено, что через какое-то время чипы ЭВМ будут встраиваться в организм человека. Но на протяжении достаточно длительного времени доступ к ресурсам машины осуществлялся через удаленное терминальное устройство. Именно эта схема породила алгоритм взаимодействия "клиент-сервер". Позднее, когда терминальным устройством стала персональная ЭВМ, клиент и сервер стали временами меняться местами, но суть взаимодействия сохранялась прежней. Алгоритм "клиент-сервер" предполагает взаимодействие по схеме "точка-точка".
Первые локальные сети (Ethernet), несмотря на однородность топологии, логически функционировали согласно алгоритму "клиент-сервер". По мере развития сетевых технологий число серверов в сети росло, появилась функциональная дифференциация (DB, DNS, mail и т.д.), но и на этом уровне взаимодействие в любой момент времени строилось по схеме "клиент-сервер".
Интернет открыл возможность равноправного взаимодействия для миллионов пользователей сети, но даже это в первые годы алгоритмически мало что поменяло. Это может показаться парадоксальным, но Интернет, который построен по неиерархической схеме, до недавнего времени на прикладном уровне использовал иерархическую схему обмена.
В начале 1990-х годов начали широко применяться технологии мультикастинга, в частности
В начале 1990-х стали заключаться пиринговые (peer-to-peer) соглашения между сервис-провайдерами, но и это было лишь новым подходом в политике маршрутизации. Сети ICQ, например, по-прежнему строятся по схеме "клиент-сервер", хотя в некоторых режимах реализуется схема взаимодействия "точка-мультиточка".
Впервые термин "peer-to-peer" была использована в 1984 году компанией IBM в разработке сетевой архитектуры для построения динамической маршрутизации через компьютерные сети с произвольной топологией – "Advanced Peer to Peer Networking" [10.1].
В основе технологии лежит принцип децентрализации, то есть все узлы в сети
(рис 10.10) Создаваемые приложения в начале ставили узкую цель – ускорение получения копии файла, иногда за счет сокращения полосы и сетевых возможностей конкурирующих процессов и пользователей. В этих приложениях использовалась особенность протокола ТСР, распределяющего полосу пропускания поровну между конкурирующими процессами. Если один из пользователей запустил 10 обменных процессов, а конкурент – только 1, последний получит в 10 раз меньшую полосу пропускания. Может показаться, что схема, показанная на рис 10.11, не является в чистом виде
(рис 10.11) Скорость копирования увеличивается за счет копирования из нескольких источников одновременноОтказоустойчивость, свойственная алгоритмам Р2Р, может стать причиной внедрения этой технологии для управления технологически опасными производствами, например атомными электростанциями. Здесь важно, чтобы узлы Р2Р не располагались в одном и том же помещении и не были подключены к общим каналам питания. Выход из строя части управляющих машин может уменьшить функциональность, но не управляемость системы.
Р2Р может предложить и достаточно высокий уровень катастрофоустойчивости, когда нужно гарантировать сохранность определенных данных в случае пожара или каких-либо иных природных или рукотворных инцидентов. Для таких приложений географическая удаленность узлов является важным преимуществом.
Для поддержания надежности обмена могут использоваться самые разные технологии, в частности, протокол FEC (Forward
Незаменимыми могут оказаться системы Р2Р в банковском бизнесе, где важна сохранность данных и высокая надежность расчетов. Методики дублирования в банковских приложениях применяются уже достаточно давно.
Широко используемые сейчас распределенные вычислительные системы типа GRID являются частным случаем реализации технологии Р2Р.
Так, по некоторым данным [10.6], в настоящее время в сети Internet более половины всего трафика приходится на трафик файлообменных
Хотя в первую очередь
При этом скорость копирования равна сумме скоростей, обеспечиваемых виртуальными соединениями, и ограничена сверху пропускной способностью канала, с помощью которого клиент подсоединен к сети Интернет.
Определения:
В существующих сегодня реализациях
Протоколом, или набором протоколов, определяется логическая топология сети, механизм подключения и отключения узлов от сети, а также алгоритм взаимодействия узлов. Решение таких задач, как коррекция ошибок, форматы сообщений и служебных запросов и откликов, протоколы маршрутизации в условиях постоянного подключения и отключения узлов — также прерогатива протокола
В модели стека сетевых протоколов TCP/IP протоколы
Клиентская программа
ID узла — уникальный идентификатор узла, вычисляется с помощью хэш-функции [10.6] из IP-адреса и дополнительной информации (имени компьютера, MAC-адреса сетевой карты и пр.). Присваивается при регистрации в сети
ID или ключ ресурса —
Протоколами обеспечивается равномерное распределение ключей ресурсов вместе с идентификаторами узлов, опубликовавшими данный ресурс, по всем узлам (или по некоторым выделенным узлам и/или серверам), зарегистрированным в сети. Задача поиска ресурса сводится к нахождению ID узла, на котором хранится ключ ресурса [10.4].
(рис 10.12) Распределение ключей ресурсов по узлам сети. Поиск ресурсаНа рис 10.12 приведен пример чистой
Узел с ID 0 хочет найти ресурс, соответствующий ключу 14, для чего посылает запрос на поиск. Запрос проходит определенный маршрут (подробнее о маршрутизации см. [10.3]) и достигает узла, на котором находится ключ 14. Далее узел ID 14 пересылает узлу ID 0 адреса всех узлов, обладающих ресурсом, который соответствует ключу 14.
Причинами большого роста популярности сетей
На данный момент среди файлообменных сетей по количеству узлов лидируют такие сети, как Bittorrent [10.16], eDonkey2000 [10.14], Gnutella2+Gnutella.
Для инициализации узла, например, в [10.13], клиентская программа обращается к серверу, который предоставляет информацию о файлах, доступных для копирования, а также статистическую и маршрутную информацию об узлах сети. Сервер и после инициализации помогает узлам взаимодействовать друг с другом.
Если узел хочет опубликовать файл, то программа разделяет файл на части и создает файл метаданных с информацией о частях файла, местонахождении и, опционально, расположении сервера, который будет поддерживать распространение этого файла. Первый узел, опубликовавший файл, называется распространителем. Узел, желающий скопировать файл, сам становится распространителем, по принципу "сколько копирую я, столько разрешаю скопировать у меня". Узлы, скопировавшие весь файл, становятся распространителями для этого файла и, вместе с не полностью скопировавшими узлами, дают возможность другим узлам получать части файла из нескольких источников, что ускоряет копирование (см. рис 10.11).
Существуют модификации протоколов, которые позволяют работать с файлами метаданных, не привязанными к серверам.
Одной из первых пиринговых сетей, Gnutella, была создана в 2000 году [10.17]. Сеть функционирует до сих пор, хотя из-за серьезных недостатков алгоритма пользователи сейчас предпочитают сеть Gnutella2 (G2, [10.18]).
Подключившийся клиент получает от узла, с которым ему удалось соединиться, список из 5 активных узлов и отсылает им запрос на поиск ресурса по ключевому слову. Узлы ищут у себя соответствующие запросу ресурсы и, если не находят, пересылают запрос своим активным узлам вверх по дереву, пока не найдется ресурс или не будет превышено максимальное число шагов. Такой поиск называется размножением запросов. С помощью протокола также отслеживается, чтобы топология создаваемой сети узлов имела древовидную структуру графа.
Понятно, что подобный алгоритм ведет к экспоненциальному росту числа запросов и, соответственно, на верхних уровнях может привести к отказу в обслуживании, что и наблюдалось на практике неоднократно. Разработчиками были проведены работы по улучшению алгоритма, введены правила, в соответствии с которыми запросы могут пересылать вверх по дереву только определенные узлы (так называемые выделенные узлы), а остальные могут лишь посылать им запросы.
Недостатки протокола Gnutella инициировали разработки принципиально новых алгоритмов поиска маршрутов и ресурсов, и привели к созданию группы протоколов DHT (Distributed
Запросы в сети Gnutella пересылаются по TCP или UDP , копирование файлов происходит посредством протокола HTTP.
В последнее время появились расширения для клиентских программ, позволяющие копировать файлы по UDP , делать XWL-запросы метаинформации о файлах.
В 2003 году появился принципиально новый протокол Gnutella2. В соответствии с данным протоколом некоторые узлы становятся концентраторами, остальные являются обычными узлами. Каждый обычный узел имеет соединение с одним-двумя концентраторами. У концентратора есть связь с сотнями обычных узлов и десятки соединений с другими концентраторами. Каждый узел периодически пересылает концентратору список идентификаторов ключевых слов, по которым могут быть найдены публикуемые данным узлом ресурсы. Идентификаторы сохраняются в общей таблице на концентраторе. Когда узел хочет найти ресурс, он посылает запрос по ключевому слову своему концентратору, который либо находит ресурс в своей таблице и возвращает ID узла, обладающего ресурсом, либо возвращает список других концентраторов, которые узел вновь запрашивает по очереди, случайным образом. Такой поиск называется поиском с помощью метода блужданий.
Для улучшения качества поиска используются метаданные файлов — информация о содержании, рейтинг. Примечательной особенностью данной сети является возможность размножения информации о файле в сети без копирования самого файла, что очень полезно для отслеживания вирусов.
Для передаваемых пакетов в Gnutella2 разработан собственный формат, похожий на XML. Он гибко реализует возможность наращивания функциональности сети путем добавления дополнительной служебной информации. Запросы и списки ID ключевых слов пересылаются по UDP.
Сеть EDonkey2000 [10.14] появилась в 2000 году. Информация о наличии файлов публикуется клиентом на многочисленных серверах в виде ed2k -ссылок, использующих уникальный ID ресурса. Серверное ПО доступно для установки любым пользователем. Сервер обеспечивает поиск узлов и информации. Сейчас в сети имеется от 100 до 200 серверов, которые обслуживают одновременно около миллиона пользователей, использующих порядка миллиарда различных файлов. Общее количество зарегистрированных пользователей составляет порядка 10 миллионов.
Когда клиент копирует желаемый ресурс, он копирует его одновременно из нескольких источников при помощи MFTP ( Multisource File Transfer Protocol ).
В настоящее время информацию о доступных файлах можно получать не только с серверов eDonkey. С 2004 года в состав сети EDonkey2000 интегрирована сеть Overnet — полностью децентрализованная сеть, позволяющая осуществлять взаимодействие между узлами без привязки к серверам, для чего используется DHT протокол Kademlia.
Клиент EDonkey имеет очень интересное расширение, позволяющее копировать метафайлы, которые пользуются большим доверием пользователей, а также использовать верификационную информацию из метафайлов для работы с файлами собственной сети.
Такая интеграция возможностей разных сетей и дополнительная верификация способствовали развитию EDonkey2000, в которую начали переходить пользователи других сетей, например сети FastTreсk, базирующейся на протоколе FastTreсk, а наиболее популярным клиентом ее является Kazaa [10.17].
Провайдеры сетевых услуг, например, провайдеры московских домашних сетей, а также администраторы компаний, до недавнего времени старались блокировать на своих файерволлах порты, через которые общаются клиенты сетей Bittorrent, eDonkey2000, Gnutella, Fasttreck.
Поэтому пользователям осталась только возможность использовать локальные пиринговые сети. Наиболее удобной для этого оказалась сеть
Клиенты подключаются к одному или нескольким серверам для поиска файлов. Серверы не связаны между собой. Информация о файлах, доступ к которым узел хочет открыть, отсылается на сервер. Копирование файлов происходит напрямую между узлами, как и в классической
В клиент встроены возможности для общения участников сети, список файлов каждого пользователя можно получать в виде древовидной структуры папок, есть простой механизм поиска информации, существует возможность копирования целых каталогов. Перечисленные возможности сделали сеть DC идеальным решением для локальной файлообменной сети
В настоящее время телевидение находится на перепутье – происходит смена поколений телевизионных технологий (аналог-цифра, ТВ с традиционным и высоким разрешением (
Современному клиенту предлагаются десятки телевизионных каналов. Что же могут предложить клиентам компании, продвигающие на рынок Р2Р ТВ-услуги?
Прежде всего, это бесплатный доступ к каналам (во всяком случае, первое время), возможности ТВ по запросу и т.д. Издержки провайдера услуг минимизируются тем, что он практически не тратит средств на развитие и поддержку инфраструктуры (кабели, передатчики, специализированное оборудование, студии, сервис и т.д.) — он предлагает клиентам, как правило, продукты вторичного рынка (фильмы, музыкальные и развлекательные программы и пр.). Доход он получает в основном от размещения рекламы. Не имея доступа к сети доставки телевизионного сигнала, такие провайдеры используют Интернет и специализированное программное обеспечение, ориентированное на Р2Р-технологию. Это программное обеспечение загружается в машины всех клиентов, подключаемых к сети. Загрузка программ через Интернет создает дополнительную уязвимость, которая может быть парирована использованием надежной системы аутентификации. Сеть рассылки ТВ-данных образуется из машин клиентов, — по желанию клиентов машины могут подключаться и отключаться от сети.
Такая сеть может иметь топологию множества деревьев или сетки, может использовать в качестве транспорта протоколы UDP или
На рис 10.13 представлена схема с

(рис 10.14) Топология с четырьмя деревьями(рис 10.13) Топология решетки GBS (Gossip Based Streaming)
При сеточной топологии [10, 11] поток данных делится на небольшие модули, например, соответствующие одной секунде фильма. Эти модули клиент получает от узлов сетки случайным образом или согласно некоторой закономерности.
На рис 10.14 показана схема работы алгоритма Gossip Based Streaming. Узлом — источником первичного видеопотока здесь является узел А. Эволюция графа доставки видеофрагментов зависит от того, какие узлы направят запросы первыми. Размер сегментов обычно постоянный. Предположим, что узел А может обслужить не более трех узлов (ограничение выходной полосы). При развитии дерева доставки учитывается выходная полоса узлов, которая предполагается большей, чем требуется для одного видеопотока, и случайный характер выбора партнера — источника данных. Узлы информируют партнеров (не только соседей) об имеющихся у них видеосегментах. Любой из узлов может стать отправителем, если у него имеется нужный сегмент и ему поступил запрос на этот сегмент. Для любого из видеосегментов можно отследить его путь от А до узла редистрибьютера. Для такой схемы характерна большая задержка воспроизведения.
Причина в том, что при М шагах маршрута доставки сегмента задержка $$\tau = М x (T_{передачи} + T_{диалога})$$, где $$T_{передачи}$$ — время передачи сегмента между смежными узлами (~1 с), $$T_{диалога}$$ – время оповещения о наличии сегмента и обслуживания запроса.
При анализе эволюции графа доставки следует учитывать доступную выходную полосу узлов. Обозначим скорость передачи видео как ВW (Кбит/с). Пусть базовый узел b), а вторичные узлы B, C, D… имеют выходную полосу пропускания ТB. На рисунке каждый из вторичных узлов обслуживает одновременно три узла.
Если для обеспечения требующегося разрешения необходим входной поток ~400 Кбит/c, то выходная полоса пропускания должна быть больше этой величины. Если численность узлов с числом шагов доставки означают возможность обмена в обоих направлениях, хотя трудно представить, что видеоданные будут поступать
из узла G в узел D, ведь в узел D они поступают из первичного узла А. Но следует учитывать, что, в отличие от алгоритма, использующего деревья, здесь нет однозначного направления передачи данных между узлами. Источником очередного сегмента для узла i может стать любой узел, у которого в буфере такой сегмент имеется (ведь выбор отправителя производится случайным образом). Но такой подход может вынудить, например, узел D послать по запросу "старый" сегмент, лежащий у него в буфере, вместо того чтобы послать "новый" сегмент узлу Н. Эта особенность может приводить к накоплению задержки доставки видеоматериала по мере трансляции фильма. Именно по этой причине в программе-клиенте используется изощренная двухуровневая буферизация. Замечу, что число шагов доставки данных ( K ) в алгоритме GBS — величина статистическая,
а не постоянная, и его значение лежит в интервале от 2 до некоторого максимума, определяемого суммарным числом узлов в сети S. Статистическое распределение K, строго говоря, не идентично для узлов сетки (например, узлы первого поколения (B и D) явно выделены).
Полное число узлов в сети$$S=\frac{(q^n-1)}{q-1}$$
где q = ТВ/BW, а n — число шагов доставки данных. Это выражение справедливо как для древовидной, так и для сеточной схемы организации сети.
Но при любой реализуемой схеме выходной поток данных узла должен превосходить входной, чтобы можно было реализовать сеть достаточно большого размера при ограниченном числе пересылок исходных данных (например, не более 5).
Реализация и использование распределенных систем имеет не только плюсы, но и минусы, связанные с особенностями обеспечения безопасности.
Получить контроль над столь разветвленной и крупной структурой, каковой является сеть Р2Р, или использовать пробелы в реализации протоколов для собственных нужд является желанной целью любого хакера. С другой стороны, защитить распределенную структуру сложнее, чем централизованный сервер [10.9].
Столь огромное количество ресурсов тяжело шифровать/дешифровать, поэтому большая часть информации о IP-адресах и ресурсах участников хранится и пересылается в незашифрованном виде, что делает ее доступной для перехвата. Только в последнее время клиенты большинства крупных сетей обеспечивают решение этой проблемы путем шифрования заголовков пакетов и идентификационной информации, реализации клиентов с использованием SSL, построения полностью анонимных сетей и пр.
Серьезной проблемой является рассылка "червей" и подделка ID-ресурсов для их фальсификации и распространения фальшивых ресурсов в сети.
Так, например, в клиенте Kazaa используется хэш-функция UUHash, которая позволяет быстро находить ID для больших файлов даже на слабых компьютерах, но при этом оставляет возможность для подделки файлов и записи испорченного файла, имеющего тот же ID. Эта возможность была использована Американской Ассоциацией Звукозаписывающих Компаний (
Для решения проблемы клиентам нужно пользоваться надежными хэшами (деревьями хэшей, если файл копируется по частям) такими как SHA-1, Whirlpool, Tiger, и только для малоответственных задач, а также контрольными суммами CRC. Для уменьшения объемов пересылаемых данных и облегчения их шифрования можно использовать компрессию. Для защиты от вирусов нужно иметь возможность хранить идентифицирующую метаинформацию о "червях", как это, например, сделано в Gnutella2.
Другой проблемой является возможность подделки ID серверов и узлов. При отсутствии механизма проверки подлинности пересылаемых служебных сообщений, например, с помощью сертификатов, существует возможность фальсификации сервера или узла. Так как узлы обмениваются информацией, подделка некоторых узлов или серверов приведет к компрометации всей или части сети. Закрытое программное обеспечение клиентов и серверов не является решением проблемы, так как есть возможность для реинжиниринга протоколов и программ.
В настоящее время выделенные узлы, серверы и обычные узлы периодически обмениваются между собой верифицирующей информацией и при необходимости добавляют поддельные серверы/узлы в черный список блокировки доступа.
Часть клиентов только копируют чужие файлы, но не предлагают ничего для копирования другим.
Например, в московских домашних сетях на нескольких активистов, делающих доступными более 100 Гб, приходится около сотни выкладывающих менее 1 GB. Для борьбы с этим фактором используются разные методы. В eMule применен метод кредитов: скопировал файл — кредит уменьшился, позволил скопировать свой файл — кредит увеличился. xMule — кредитная система с поощрением распространения редких файлов, в eDonkey используется стимулирование размножения источников, в Bittorrent реализована схема "сколько блоков файла получил, столько отдал" и т.д.
При создании информационных сетей, ориентированных на пересылку мультимедиа, следует учитывать возможность пересылки через эту сеть нелегальных сообщений, в том числе террористами. Ведь выявить наличие скрытых сообщений внутри изображения крайне трудно, практически невозможно.
Современные сетевые технологии открывают возможности решения многих задач, но и создают некоторые новые проблемы. Появились распределенные вычислительные системы, распределенные системы управления и гигантские распределенные системы хранения информации. Но управление и обеспечение надежности этих систем, а также уязвимость в отношении различных преднамеренных воздействий создает новые проблемы в условиях, когда человечество уже не может жить без нормального функционирования таких систем.
При передаче данных важным компонентом являются алгоритмы организации и обработки записей в очередях. Наиболее известные алгоритмы рассмотрены ниже.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.