Проект пиринговой сети, учитывающей особенности сети и требования приложений
Алексей Городилов, Москва, г. Зеленоград, Russia, Александра Кононова , Москва, г. Зеленоград, Russia
LVEE 2012
Modern network applications are usually oblivious to underlying network equipment and protocols. Some applications like VOIP or streaming video can detect connection speed and latency, but can’t share this measurements with other network nodes. This information could be useful to determine optimal paths and connection speeds. Some principles of sharing this information by nodes and ways of using it for more efficient data transmission are given. They can be used to implement free applications and protocols. Advantage of connection information sharing is shown using free ns3 network simulator.
Современные сетевые приложения обычно создаются без учёта свойств сети и оборудования, на котором они работают. Современные протоколы сетевого уровня изолируют приложения от параметров оборудования, что позволяет упростить разработку приложений. Однако различные каналы связи имеют различные значения пропускной способности, латентности и других параметров, а также допускают различные флуктуации этих параметров. Некоторые типы приложений, например приложения для передачи потокового видео или ip-телефонии, измеряют скорость передачи и латентность в процессе обмена данными, и подстраивают производимый ими поток данных под них, но эти параметры почти никогда не передаются другим узлам в сети и не используются повторно.
Сетевые протоколы прикладного уровня являются наиболее быстро эволюционирующей частью сетевых протоколов. Благодаря отсутствию необходимости поддерживать совместимость с протоколами более верхнего уровня отсутствует необходимость стандартизации, что позволяет протоколам и их реализациям развиваться и внедряться в условиях свободной конкуренции. Среди недавно появившихся и получивших широкое распространение можно выделить такие протоколы, как eD2k, XMPP, а также Kademlia, bitTorrent, Skype.
Преимущество протоколов высокого уровня заключается в том, что они позволяют обойти ограничения низкоуровневых протоколов. Эти ограничения не могут быть устранены в самих протоколах низкого уровня в связи с большой сложностью замены протоколов низких уровней. В настоящее время разрабатываются новые сетевые протоколы прикладного уровня для преодоления еще существующих ограничений протоколов нижних уровней. В их числе Jingle, P-IMAP.
Одним из существенных ограничений современного стека протоколов TCP/IP как версии 4, так и версии 6, является недоступность данных о пропускной способности сети, латентности и других характеристиках сети для приложений. Для решения этой проблемы проводились исследования, направленные на замену или усовершенствование частей стека TCP/IP. Были разработаны и в настоящий момент разрабатываются экспериментальные системы передачи и протоколы, такие как: CANS, Transformer tunnels, NINJA, и другие. Но в них проблема решается ниже прикладного уровня, поэтому их внедрение возможно только в течение нескольких лет и в настоящий момент не рассматривается стандартизирующими организациями.
В настоящий момент не создано, и не находится в стадии реализации протокола, который бы позволил реализовать передачу данных с учетом особенностей сети и потребностей приложений, и при этом был бы легким для внедрения протоколом прикладного уровня. Поэтому разработка высокоуровнего протокола, учитывающего особенности сети и потребности приложений, является весьма актуальной проблемой.
В процессе использования сети для различных целей даже с верхних уровней модели OSI возможно получить информацию о характеристиках каналов связи, например измеряя объем переданных данных за определенное время, время ответа удаленного узла и многие другие параметры. Обмен данными о характеристиках и структуре сети между узлами позволяет каждому узлу использовать эту информацию для построения оптимальных путей передачи с учетом требований приложения и структуры сети.
После включения в сеть и обмена ограниченным объемом служебных данных подключившийся узел имеет сведения о других связанных с ним узлах. Объём этих данных, и соответственно количество известных узлов, ограничено, оно должно быть достаточно для построения эффективных сетевых путей. Это количество выбрано на основании анализа работы современных p2p-сетей. Подмножество узлов, данные о которых поддерживаются актуальными у одного узла, выбирается исходя из данных о характеристиках каналов связи между узлами, измеренными и полученными из сети. При входе и выходе других узлов из сети и изменении нагрузки возможно изменить множество связанных узлов для более эффективного построения путей. Так как моделью сети является взвешенный граф, для построения пути могут быть использованы алгоритмы поиска кратчайшего пути на графе. При этом каждый узел выполняет только часть алгоритма, для которой у него достаточно данных, что позволяет распределить между узлами вычислительную нагрузку и нагрузку по хранению данных.
Для решения такой задачи традиционно применяется алгоритм Дейкстры. Наличие у узлов сведений о связанных с ними других узлах позволяет применить его распределенную реализацию. Недостатком этой реализации будет необходимость передавать большое количество служебного трафика. Для уменьшения объема передаваемых данных и увеличения быстродействия предложено вместо алгоритма Дейкстры использовать алгоритм A*, достигающий более высокой производительности (по времени) с помощью эвристики.
В качестве эвристической функции алгоритма A* используется следующая функция, которая зависит от пропускной способности и загруженности каналов связи узла:
где — текущий узел;
— пропускная способность исходящего канала связи узла ;
— пропускная способность входящего канала связи узла ;
— загруженность исходящего канала связи узла ;
— загруженность входящего канала связи связи узла .
Был проведен эксперимент с использованием симулятора ns3, из результатов которого можно сделать вывод, что надежность файлообменной сети может быть повышена более чем в два раза за счет учета характеристик каналов связи и требований приложений. Это возможно потому, что файлообменная сеть состоит из множества независимых узлов, особенности взаимодействия которых современные системы практически неспособны учитывать.
Текст тезисов доступен под лицензией Creative Commons Attribution-ShareAlike 3.0.