Это – то, не потому что TCP прекрасен или потому что программисты испытали затруднения, придумывающие возможные альтернативы; это – потому что те альтернативы слишком трудно проверить. Маршрутизаторам в сетях информационного центра соединили их протоколы организации дорожного движения проводами в них. Тестирование нового протокола означает заменять существующие сетевые аппаратные средства или реконфигурируемым жареным картофелем, который является трудоемким к программе или управляемым программным обеспечением маршрутизаторам, которые являются столь медленными, что они отдают крупномасштабное непрактичное тестирование.На Симпозиуме Usenix по Сетевому Проектированию систем и Внедрению позже в этом месяце, исследователи из Лаборатории Информатики и Искусственного интеллекта MIT представят систему для тестирования новых протоколов организации дорожного движения, который не требует никакого изменения к сетевым аппаратным средствам, но все еще работает на реалистических скоростях – 20 раз с такой скоростью, как сети управляемых программным обеспечением маршрутизаторов.
Система ведет компактную, эффективную вычислительную модель сети, управляющей новым протоколом с виртуальными пакетами данных, которые подпрыгивают вокруг среди виртуальных маршрутизаторов. На основе модели это намечает передачи на реальную сеть, чтобы произвести те же самые транспортные образцы. Исследователи могли таким образом управлять реальными веб-приложениями на сетевых серверах и получить точный смысл того, как новый протокол затронет их работу.
«Способ, которым это работает, когда конечная точка хочет послать [данные] пакет, это сначала отправляет запрос к этому централизованному эмулятору», говорит Эми Устерхут, аспирант в электротехнике и информатике (EECS) и первом авторе на новой бумаге. «Эмулятор подражает в программном обеспечении схеме, что Вы хотите экспериментировать с в Вашей сети. Тогда это говорит конечную точку, когда послать пакет так, чтобы это прибыло к своему месту назначения, как будто это пересекло сеть, управляющую запрограммированной схемой».К Ousterhout присоединяется на статье ее советник, Хари Бэлэкришнэн, профессор Fujitsu в Электротехнике и Информатике; Джонатан Перри, аспирант в EECS; и Петр Лэпахов Facebook.
Управление движениемУ каждого пакета данных, посланных по компьютерной сети, есть две части: заголовок и полезный груз. Полезный груз содержит данные, получатель интересуется – данные изображения, аудиоданные, текстовые данные, и так далее.
Заголовок содержит адрес отправителя, адрес получателя и другую информацию, которую маршрутизаторы и конечные пользователи могут использовать, чтобы управлять передачами.Когда многократные пакеты достигают маршрутизатора в то же время, они помещены в очередь и обработаны последовательно. С TCP, если очередь становится слишком длинной, последующие пакеты, просто пропущены; они никогда не достигают своих получателей.
Когда компьютер отправки понимает, что его пакеты уронены, он сокращает свою скорость передачи в половине, тогда медленно трещотки, которые он поддерживает.Лучший протокол мог бы позволить маршрутизатору щелкнуть битами в заголовках пакета, чтобы позволить конечным пользователям знать, что сеть переполнена, таким образом, они могут задушить назад скорость передачи, прежде чем пакеты будут уронены. Или это могло бы назначить различные типы пакетов различные приоритеты и продолжить скорость передачи, пока первоочередное движение все еще проходит. Это типы стратегий, что программисты интересуются проверением в реальных сетях.
Быстрое моделированиеС новой системой исследователей MIT, названной Flexplane, эмулятор, который моделирует сеть, управляющую новым протоколом, использует только данные о заголовке пакетов, уменьшая его вычислительное бремя. На самом деле это не обязательно использует все данные о заголовке – просто области, которые относятся к осуществлению нового протокола.
Когда сервер в реальной сети хочет передать данные, это отправляет запрос к эмулятору, который посылает фиктивный пакет по виртуальной сети, которой управляет новый протокол. Когда фиктивный пакет достигает своего места назначения, эмулятор говорит реальному серверу, что это может идти вперед и послать свой реальный пакет.
Если, проходя через виртуальную сеть, у фиктивного пакета есть некоторые его биты заголовка, которыми щелкают, реальный сервер щелкает соответствующими битами в реальном пакете прежде, чем послать его. Если забитый маршрутизатор в виртуальной сети уронил фиктивный пакет, соответствующий реальный пакет никогда не посылают.
И если, в виртуальной сети, пакет куклы более высокого приоритета достигает маршрутизатора после пакета более низкого приоритета, но подскакивает перед нею в очереди, то в реальной сети, пакет более высокого приоритета посылают сначала.Серверы в сети таким образом видят те же самые пакеты в той же самой последовательности, что они были бы, если реальные маршрутизаторы управляли новым протоколом. Есть небольшая задержка между первым запросом, выпущенным первым сервером и первой инструкцией по передаче, выпущенной эмулятором. Но после того, серверы выпускают пакеты на нормальных сетевых скоростях.
Способность использовать реальные серверы, управляющие реальными веб-приложениями, предлагает значительное преимущество перед другой популярной техникой для тестирования новых сетевых схем управления: моделирование программного обеспечения, которое обычно использует статистические образцы, чтобы характеризовать поведение заявлений в вычислительном отношении эффективным способом.