Где рождаются стандарты Интернета

В этой статье я расскажу о необычной (впрочем, не более необычной, чем сам Интернет) организации, которая занимается разработкой протоколов и развитием архитектуры Интернета. Организация эта называется Internet Engineering Task Force, что в переводе означает что-то вроде Тактической Группы по Проектированию Интернета. Название это, пожалуй, соответствовало структуре и задачам IETF 20 с лишним лет назад, но сегодня оно скорее имя собственное, чем аббревиатура.

Эта статья основана на великолепном документе, значащимся в реестре IETF под номером RFC4677, который в деталях описывает структуру и методы работы этой организации. Интересующимся я рекомендую обязательно обратиться к первоисточнику. Рисунки я позаимствовал у Lars Eggert и Olaf Kolkman, разумеется, с их разрешения. Наконец, в статье есть доля и моего собственного 10-летнего опыта участия в IETF.

Как сказано в одном из документов IETF, RFC4677, IETF представляет собой свободно-организованную группу добровольцев, которые вносят вклад в разработку и развитие Интернет-технологий. Это основной орган, занимающийся разработкой стандартов сети Интернет.

IETF является поистине уникальной организацией. За исключением небольшой административной группы, работа в IETF не оплачивается. Тем не менее сотни людей вкладывают свое время, знание и силы в разработку стандартов. У IETF нет ни штаб-квартиры, ни специального организационного статуса (на самом деле - у IETF вообще нет организационного статуса), и в то же время развитая организационная структура, включающая с десяток групп и комитетов, 8 областей деятельности, координируемой 15 директорами областей и более 120 рабочих групп. Официальный язык IETF - английский, и это действительно международная организация, привлекающая на свои совещания участников из более 50 стран.

Продуктивность IETF также впечатляет - за время своего существования IETF опубликовал более 5500 стандартов и информационных документов, рассмотрев при этом более 50000 проектов документов.

С чего все началось

IETF начался с ежеквартальных совещаний исследователей, финансируемых правительством США. Первое из этих совещаний произошло в январе 1986 года и насчитывало 21 участника. Уже в октябре того же года в совещании IETF приняли участие представители неправительственных организаций. Концепция рабочей группы была представлена на 5-м заседании IETF в феврале 1987 года. А спустя полгода число участников совещаний IETF перевалило за 100.

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

Как создаются стандарты

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

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

Первым шагом в разработке стандарта является описание идеи в документе, который называется Internet-draft, или I-D. Любой может стать автором I-D. Но не любой I-D становится, в конце концов, стандартом. Хотя по формату и содержанию I-D очень похож на стандарт, этот тип документов находится в стадии обсуждения, может подвергаться существенным изменениям и даже может быть удален ввиду отсутствия интереса. Другими словами, будущее I-D подчас непредсказуемо и использовать такой документ (и протокол или систему, представленную в нем) надо с большой осторожностью.

Итак, не все документы, которые обсуждаются в IETF, достигают своей финальной стадии - опубликования в серии RFC. RFC означает Request for Comments (Запрос Комментариев). История RFC восходит к проекту ARPANET в конце 60-х прошлого столетия, когда они использовались исследователями ARPA действительно для запроса комментариев. Сегодня эту роль играют I-D, а RFC, напротив, являются заключительной стадией процесса стандартизации.

Следует также отметить, что не все RFC являются стандартами. Часть из них носит экспериментальный, информационный или рекомендательный характер, что отражено в статусе документа RFC.

Работа над стандартом является коллективной и обычно проводится в рамках рабочей группы. Фокусом более 120 рабочих групп IETF являются различные аспекты Интернета, от транспортных протоколов - до приложений, от вопросов управления и конфигурации сетей - до протоколов маршрутизации. Далее, я расскажу о рабочих группах более подробно.

Если предлагаемый стандарт соответствует кругу вопросов, рассматриваемый рабочей группой, и, по мнению группы, является достаточно важным, проект становится документом этой рабочей группы. Интересным моментом здесь является то, что при этом автор передает контроль рабочей группе - все изменения согласуются на основе консенсуса. Документ может подвергнуться значительной переработке, включая существенные изменения спецификации, имя протокола и т.д. И автор протокола, намеренный превратить его в стандарт IETF, должен быть к этому готов. Когда все основные вопросы разрешены, в рабочей группе объявляется "последний звонок" (last call, LC) - возможность для членов группы высказаться в поддержку или отметить недостатки. Отсутствие возражений означает, что работа над стандартом переходит в следующую стадию.

Следующей стадией создания стандарта является подача проекта на рассмотрение IESG (Internet Engineering Steering Group). IESG объявляет общий "последний звонок". Он служит сигналом для тех, кто не является членом рабочей группы и не участвовал в обсуждениях рассмотреть проект и направить свои комментарии. Также, для членов рабочей группы, которые считают, что их мнение не было учтено, это является возможностью быть услышанными более широким сообществом IETF. Удивительно, но факт, что любой участник IETF (а для этого достаточно быть подписанным на список рассылки IETF) может беспрепятственно внести свой вклад в разработку любого стандарта!

Общий LC продолжается 2 недели для I-D полученных через рабочие группы, и 4 недели для индивидуальных проектов.

Если IESG утверждает документ, ему присваивается статус Proposed Standard, и он публикуется как документ RFC. В этом состоянии он может находиться как минимум 6 месяцев, а многие документы так и остаются с этим статусом. Дело в том, что документы этого разряда являются вполне полноценными стандартами, и многие авторы не видят смысла тратить усилия на повышение его ранга. Для большинства приложений первичный статус Proposed Standard является вполне удовлетворительным.

Однако спустя 6 месяцев автор стандарта или председатель рабочей группы может запросить "повышения" статуса документа в разряд Draft Standard. Необходимым условием является демонстрация взаимодействия двух независимых реализаций данного стандарта. Обычно при этом выясняется, что отдельные элементы стандарта не работают, как было задумано и нуждаются в пересмотре. Также случается, что некоторые особенности вовсе не были использованы, поскольку никто не видит особой в них пользы. Такие вещи необходимо удалить из стандарта. Только после этого стандарт может подняться на следующую ступень. Понятно, что это повышает качество стандарта.

Наконец, некоторые стандарты достигают высшего статуса полного стандарта - Internet Standard. Процесс рассмотрения весьма скрупулезный и проводится только для очень широко используемых протоколов абсолютно необходимых для работы Интернета.

Структура IETF

Итак, вернемся к организационной структуре IETF. На рисунке представлены различные группы, комитеты и организации, которые играют существенную роль в работе IETF. Я расскажу о некоторых из них, начав со структуры, собственно занимающейся разработкой стандартов. Эта структура включает IESG и рабочие группы, объединенные в предметные области (Areas).




Структура IETF (публикуется с разрешения Lars Eggert и Olaf Kolkman)

Рабочие группы

Основная работа в IETF проводится в рамках рабочих групп. По-существу, рабочая группа - это список рассылки, на который может подписаться и принять участие в работе любой желающий. Каждая рабочая группа имеет чартер, определяющий предмет работы группы и ее цели, а также рабочий план. Работу группы координируют один или два председателя.

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

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

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

Как я уже упомянул, принятие решений в рабочей группе происходит на основе консенсуса, в соответствии с одним из основных принципов работы IETF: грубый консенсус и работающий программный код (rough consensus and running code). Здесь уместно рассказать о процедуре определения консенсуса, которая применяется на очных заседаниях рабочих групп. В отличие от голосования, председатель просит членов рабочей группы продемонстрировать свое отношение к конкретному вопросу (например, к вопросу принятия проекта в качестве документа рабочей группы) непродолжительным гудком голосом (hum). Например, сначала участников спрашивают, кто “за” предложение, а затем - кто “против”. По разнице в силе совокупного гудка председатель определяет отношение группы в целом к данному вопросу.

Еще одной интересной особенностью являются названия рабочих групп. Присмотритесь и вы увидите, что многие из них являются обычными английскими словами или, по крайней мере, произносятся как обычные слова. На самом деле, все они - аббревиатуры со смыслом. Например, рабочая группа behave расшифровывается как Behavior Engineering for Hindrance Avoidance, а hokey - как Handover Keying. Броское и в то же время значимое название рабочей группы требует определенной изобретательности и является предметом обсуждения на совещаниях особого рода - BOF.

BOF

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

Для обсуждения этих вопросов, а также для разработки рабочего плана служит BOF. Название BOF - это сокращенное, Birds of Feather (птицы одинакового оперения), которое в свою очередь происходит от поговорки “birds of feather flock together”, соответствующей нашей “рыбак рыбака видит издалека”. Другими словами, BOF - это совещание людей, заинтересованных в общей теме.

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

Предметные области

Рабочие группы объединены в т.н. предметные области, каждая из которых возглавляется, как правило, двумя директорами. Более детальная картина областей показана на рисунке.




Предметные области и рабочие группы по состоянию на 2009 г.

(публикуется с разрешения Lars Eggert и Olaf Kolkman)

Приложения (Application Area, APP)

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

Транспорт (Transport Area, TSV)

Рабочие группы этой области заняты работой над транспортными протоколами, такими как TCP, UDP, SCTP, DCCP. В эту область также входит рабочая группа behave, рассматривающая проблемы взаимодействия приложений при наличии устройств трансляции (NAT) с целью выработки функциональных стандартов для этих устройств. В этой области также находятся группы, занятые вопросами хранения данных (nfsv4, storm).

Безопасность (Security Area, SEC)

В этой области заняты проблемами безопасности и защиты данных. Здесь рассматриваются протоколы и приложения безопасности для обеспечения целостности, аутентичности, секретности данных и контроля доступа. В рамках рабочих групп этой области обсуждаются IPsec, TLS, SASL, S/MIME, Kerberos.

Маршрутизация (Routing Area, RTG)

Основным фокусом являются протоколы маршрутизации (OSPF, IS-IS, BGP), а также безопасность маршрутизации (sidr).

Эксплуатация и управление (Operations and Management, OPS)

Как следует из названия, эксплуатация и управление сетями и системами являются основной темой работы в группах этой области. Здесь рассматриваются вопросы, связанные с такими системами Интернета, как DNS (dnsop), сети, поддерживающие IPv6 (v6ops), и система маршрутизации (grow). Ряд рабочих групп работает над протоколами управления - SNMP, netconf, capwap.

Приложения и инфраструктура реального времени (Real-Time Applications and Infrastructure, RAI)

Если ваши интересы связаны с приложениями реального времени, такими как голосовая и видео-связь в IP-сетях, SIP и IP-телефония, а также системы мгновенного обмена сообщениями, - обратите внимание на деятельность рабочих групп этой области.

Интернет (Internet, INT)

Работа групп этой области охватывают широкий круг вопросов, связанных с фундаментальными протоколами и архитектурой Интернета, начиная от IPv4 и IPv6, и заканчивая вопросами мобильности, динамической конфигурации, виртуальных сетей и DNS.

IESG

Итак, работа над стандартами проводится в рабочих группах. Рабочие группы объединены в предметные области, координируемыми директорами областей. Однако ответственность за общее техническое руководство деятельностью IETF и процессом разработки стандартов Интернета лежит на специальном комитете - IESG. Логично, что состав IESG формируется из директоров областей, которые, в свою очередь избираются номинационным комитетом сроком на 2 года.

Деятельность IESG осуществляется в соответствии с правилами и процедурами, которые ратифицированы Советом Попечителей Internet Society (ISOC). Однако стиль руководства IESG не является директивным. Как следует из названия (steering), его роль заключается в определении направления работы, а не в отдаче указаний. IESG ратифицирует или корректирует результаты работы рабочей группы, следит за процессом создания и закрытия РГ и в целом наблюдает за процессом стандартизации.

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

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

IAB

Совет по Архитектуре Интернета (Internet Architecture Board, IAB) является еще одним ключевым элементом IETF. Если IESG следит за качеством результатов работы IETF, как с точки зрения процесса, так и в плане соответствия нормам и принципам, то IAB следит за самими принципами и стратегическим направлением работы IETF в целом.

В круг задач IAB входит определение и рассмотрение фундаментальных, долгосрочных архитектурных аспектов работы и развития Интернета. Эта деятельность включает проведение дискуссий по ключевым моментам, вопросы соответствия и архитектурной целостности при создании новых рабочих групп, а также стратегические отношения с другими организациями, связанными со стандартами и Интернетом. В вопросах архитектурного развития Интернета важную роль также играет IRTF (Internet Research Task Force), занимающийся исследованием новых перспективных технологий. IAB назначает председателя IRTF. Также, IAB является консультативным органом ISOC в вопросах развития и технологий Интернета.

Помимо этого IAB также выполняет ряд важных административных функций:

Система управления IETF

Снизу-вверх

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

Всегда первым шагом является обсуждение проблемы с председателем рабочей группы. Возможно, что в корне несогласия находится отсутствие взаимопонимания, и такое обсуждение может все расставить на свои места. Если это не приводит к разрешению, проблема может быть вынесена на рассмотрение директора области, к которой данная рабочая группа относится. Если и это не приводит к положительному результату, конфликт разрешается IESG. Наконец, если решение IESG не удовлетворяет какую-либо из сторон, обжалование выносится на уровень IAB. Решение IAB по вопросу является окончательным.

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

Сверху-вниз

Однако кто-то должен также заниматься планированием совещаний, следить за такими вспомогательными службами как секретариат, регистратура параметров протоколов (IANA), редакция RFC (RFC Editor). Эта деятельность включает сбор взносов участников совещаний, оплата счетов, переговоры с возможными местами проведения, спонсорами, а также информационную поддержку деятельности рабочих групп, IESG, IAB, и IRTF. Эта административная деятельность предусматривает бюджет и постоянный штат. В этом отношении IETF похож на традиционную корпорацию, со своим Советом, директором и штатом, правда эта структура не имеет прямого отношения к разработке стандартов.

Организационным домом IETF является другая организация - Internet Society, или ISOC. Административная поддержка IETF является отдельной деятельностью ISOC со своим бюджетом. Общее руководство и контроль этой деятельности осуществляет Комитет по контролю за Административной Деятельностью (IETF Administrative Oversight Committee, IAOC). Он же назначает Административного Директора IETF - IAD.

Вся это структура носит исключительно административный характер. Ни Директор, ни IAC не имеют никакого влияния на процесс стандартизации.

За пределами IETF

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

IETF старается поддерживать отношения со всеми значимыми организациями по стандартизации. В их число входят ITU (Международный Союз Электросвязи, МСЭ), IEEE, 3GPP, W3C, ISO, IEC, Broadband Forum, Unicode, а также различные комитеты ICANN. Существенные культурные различия между IETF и этими организациями, а также добровольный характер работы участников IETF усложняют процесс поддержания формальных отношений. Поэтому IETF поощряет менее формальные рабочие отношения на уровне рабочих групп.

За стратегическое планирование развития отношений IETF и назначение представителей по связи с упомянутыми организациями отвечает IAB. Многие из этих представителей также являются члениями IAB.

Более подробно

Как я уже говорил, прекрасный ресурс для знакомства с IETF - статья “Тао IETF” http://www.ietf.org/tao.html. Там же содержится масса ссылок на первоисточники.

Безусловно, сайт самого IETF, http://www.ietf.org/, является обширным информационным ресурсом. Здесь вы найдете информацию о предстоящих совещаниях, библиотеку документов RFC и I-D, архивы различных списков рассылки и т.п.

Различные комитеты IETF также имеют собственные сайты: IAB (http://www.iab.org/), IRTF (http://www.irtf.org/), IESG (http://www.iesg.org/), IAOC (http://iaoc.ietf.org/).

И все же лучшим способом узнать IETF - это посетить очередное совещание, которое проводится 3 раза в году. И конечно, принять участие в реальной работе в списках рассылки.

Технический директор RIPE NCC Андрей Робачевский

Мнения, представленные в статье, не обязательно отражают официальную позицию RIPE NCC