stringtranslate.com

Протокол окостенения

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

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

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

История

К 2005 году в Интернете произошло значительное окостенение , и в том же году были опубликованы анализы этой проблемы; [1] Аммар (2018) предполагает, что окостенение стало следствием того, что Интернет достиг глобальных масштабов и стал основной коммуникационной сетью. [2]

Multipath TCP был первым расширением основного интернет-протокола, которое радикально противостояло окостенению протокола на этапе его разработки. [3]

В 2014 году IETF создала рабочую группу по транспортным службам (TAPS). [4] Ее задача — смягчить окостенение на уровне транспортных протоколов . [5]

QUIC — первый транспортный протокол IETF , намеренно минимизирующий свой сетевой образ, чтобы избежать окостенения. [6]

Совет по архитектуре Интернета определил проектные соображения, касающиеся раскрытия информации протокола сетевым элементам, как «развивающуюся область» в 2023 году. [7]

Причины

Основной причиной окостенения протокола является вмешательство промежуточных устройств , [8] делающее недействительным принцип сквозного соединения . [9] Промежуточные устройства могут полностью блокировать неизвестные протоколы или нераспознанные расширения известных протоколов, мешать согласованию расширений или функций или выполнять более инвазивную модификацию метаданных протокола. [10] Не все модификации промежуточных устройств обязательно являются окостеневающими; из тех, которые потенциально вредны, они непропорционально направлены к границе сети. [11] Промежуточные устройства развертываются сетевыми операторами в одностороннем порядке для решения конкретных проблем, [12] включая оптимизацию производительности, требования безопасности (например, брандмауэры), трансляцию сетевых адресов или улучшение контроля сетей. [13] Эти развертывания промежуточных устройств обеспечивают локализованную краткосрочную полезность, но ухудшают глобальную долгосрочную развиваемость Интернета, проявляя трагедию общин . [12]

Изменения в протоколе должны быть допущены всеми посредниками на пути; если желательно широкое развертывание изменения в Интернете, то это распространяется на большую часть посредников в Интернете. Промежуточный узел должен допускать широко используемые протоколы, как они использовались во время его развертывания, но может не допускать новые протоколы или изменения существующих, фактически создавая порочный круг , поскольку новые образы проводов не могут получить достаточно широкого развертывания, чтобы заставить промежуточные узлы допускать новый образ проводов по всему Интернету. [9] Даже то, что все участники допускают протокол, не является гарантией использования: при отсутствии механизма согласования или обнаружения конечные точки могут по умолчанию использовать протокол, который считается более надежным. [14]

Помимо промежуточных устройств, окостенение может быть вызвано недостаточной гибкостью в реализации конечной точки. Ядра операционных систем медленно изменяются и развертываются, [14] а протоколы, реализованные в оборудовании, также могут неправильно фиксировать детали протокола. [15] Широко используемый интерфейс прикладного программирования (API), который делает предположения о работе базовых протоколов, может препятствовать развертыванию протоколов, которые не разделяют эти предположения. [9]

Профилактика и устранение

Совет по архитектуре Интернета рекомендовал в 2019 году заменить неявные сигналы для наблюдателей сигналами, намеренно предназначенными для потребления этими наблюдателями, а сигналы, не предназначенные для их потребления, не должны быть им доступны (например, путем шифрования); а также чтобы метаданные протокола были защищены целостностью , чтобы они не могли быть изменены промежуточными устройствами. [16] Однако даже полностью зашифрованные метаданные не могут полностью предотвратить окостенение в сети, поскольку образ провода протокола все еще может показывать закономерности, на которые можно положиться. [17] Операторы сетей используют метаданные для различных безвредных целей управления, [18] и исследования Интернета также информируются о данных, собранных из метаданных протокола; [19] разработчик протокола должен сбалансировать сопротивление окостенению с наблюдаемостью для операционных или исследовательских нужд. [17] Аркко и др. (2023) дает дополнительные указания по этим соображениям: раскрытие информации протоколом в сети должно быть преднамеренным, [20] осуществляться с согласия как получателя, так и отправителя, [21] аутентифицированным в возможной и необходимой степени, [22] выполняться только в соответствии со степенью ее достоверности, [23] и быть сведенным к минимуму и предоставленным минимальному количеству субъектов. [24] [25]

Активное использование точек расширения необходимо, если они не должны окостенеть. [26] Сокращение количества точек расширения, документирование инвариантов, на которые участники протокола могут положиться, в отличие от случайных деталей, на которые нельзя полагаться, и быстрое обнаружение проблем в развернутых системах могут помочь в обеспечении активного использования. [27] Однако даже активное использование может использовать только узкую часть протокола, и окостенение все еще может происходить в частях, которые остаются неизменными на практике, несмотря на теоретическую изменчивость. [28] [29] «Смазывание» точки расширения, когда некоторые реализации указывают на поддержку несуществующих расширений, может гарантировать, что фактически существующие, но нераспознанные расширения будут допустимы (ср. хаос-инжиниринг ). [30] Заголовки HTTP являются примером точки расширения, которая успешно избежала значительного окостенения, поскольку участники, как правило, игнорируют нераспознанные заголовки. [31]

Новый протокол может быть разработан для имитации проводного образа существующего закостенелого протокола; [32] в качестве альтернативы новый протокол может быть инкапсулирован в существующий, допустимый протокол. Недостатком инкапсуляции является то, что обычно есть накладные расходы и избыточная работа (например, внешние контрольные суммы, которые становятся избыточными из-за внутренних проверок целостности). [33]

Помимо middlebox, можно противостоять и другим источникам окостенения. Реализация протоколов в пользовательском пространстве может привести к более быстрой эволюции. Если новый протокол инкапсулирован в UDP, то реализация в пользовательском пространстве возможна. [34] [35] Если поддержка протоколов неопределенна, участники могут одновременно пробовать альтернативные протоколы, за счет увеличения объема отправляемых данных. [36]

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

Примеры

Протокол управления передачей пострадал от окостенения. [38] Одно измерение показало, что треть путей через Интернет сталкиваются по крайней мере с одним посредником, который изменяет метаданные TCP, и 6,5% путей сталкиваются с вредными окостеневающими эффектами от посредников. [39] Расширения TCP были затронуты: конструкция MPTCP была ограничена поведением промежуточного устройства, [3] [40] и развертывание TCP Fast Open также было затруднено. [41] [38]

Протокол передачи данных управления потоком был мало распространен в Интернете из-за нетерпимости со стороны промежуточных устройств [9] , а также из-за очень распространенного API сокетов BSD, плохо соответствующего его возможностям. [42] На практике единственными пригодными для использования транспортными протоколами Интернета являются TCP и UDP . [43]

Transport Layer Security (TLS) пережил окостенение. TLS был исходным контекстом для введения точек расширения смазки. TLS 1.3 , как изначально было задумано, оказался непригодным для развертывания в Интернете: промежуточные устройства окостенели в параметре версии протокола. Это было обнаружено на поздних этапах процесса разработки протокола, во время экспериментальных развертываний веб-браузерами . В результате версия 1.3 имитирует образ провода версии 1.2. [44]

QUIC был специально разработан для развертывания, развития и для того, чтобы иметь анти-окостенение свойства; [45] это первый транспортный протокол IETF , который намеренно минимизирует свой проводной образ для этих целей. [6] Он смазан, [30] он имеет явно указанные инварианты протокола, [46] он инкапсулирован в UDP, и его метаданные протокола зашифрованы. [45] Тем не менее, приложения, использующие QUIC, должны быть готовы откатиться к другим протоколам, поскольку UDP блокируется некоторыми промежуточными устройствами. [47]

Смотрите также

Ссылки

  1. ^ Аммар 2018, стр. 57-58.
  2. ^ Аммар 2018, стр. 59.
  3. ^ аб Райчиу и др. 2012, с. 1.
  4. ^ "Транспортные услуги (краны) – История группы". IETF .
  5. ^ "Транспортные услуги – charter-ietf-taps-02". IETF .
  6. ^ ab Trammell & Kuehlewind 2019, стр. 2.
  7. ^ Аркко и др. 2023, 3. Дальнейшая работа.
  8. ^ Папастерджиу и др. 2017, с. 619.
  9. ^ abcd Папастергиу и др. 2017, с. 620.
  10. ^ Эделин и Доннет 2019, с. 171.
  11. ^ Эделин и Доннет 2019, с. 173-175.
  12. ^ ab Эделин и Доннет 2019, стр. 169.
  13. ^ Хонда и др. 2011, стр. 1.
  14. ^ аб Папастергиу и др. 2017, с. 621.
  15. ^ Корбет 2015.
  16. ^ Харди 2019, стр. 7-8.
  17. ^ ab Fairhurst & Perkins 2021, 7. Выводы.
  18. ^ Fairhurst & Perkins 2021, 2. Текущее использование транспортных заголовков в сети.
  19. ^ Fairhurst & Perkins 2021, 3. Исследования, разработки и внедрение.
  20. ^ Аркко и др. 2023, 2.1. Преднамеренное распространение.
  21. ^ Аркко и др. 2023, 2.2. Контроль распространения информации.
  22. ^ Аркко и др. 2023, 2.3. Защита информации и аутентификация.
  23. ^ Аркко и др. 2023, 2.5. Ограничение воздействия информации.
  24. ^ Аркко и др. 2023, 2.4. Минимизируйте информацию.
  25. ^ Аркко и др. 2023, 2.6. Минимальный набор сущностей.
  26. ^ Томсон и Поли 2021, 3. Активное использование.
  27. ^ Томсон и Поли 2021, 4. Дополнительные методы.
  28. ^ Томсон и Поли 2021, 3.1. Зависимость лучше.
  29. ^ Траммелл и Кюлевинд 2019, стр. 7.
  30. ^ ab Thomson & Pauly 2021, 3.3. Фальсификация активного использования.
  31. ^ Томсон и Поли 2021, 3.4. Примеры активного использования.
  32. ^ Папастерджиу и др. 2017, с. 623.
  33. ^ Папастерджиу и др. 2017, с. 623-4.
  34. ^ Папастерджиу и др. 2017, с. 630.
  35. ^ Корбет 2016.
  36. ^ Папастерджиу и др. 2017, с. 629.
  37. ^ Томсон и Поли 2021, 3.5. Восстановление активного использования.
  38. ^ ab Thomson & Pauly 2021, A.5. TCP.
  39. ^ Эделин и Доннет 2019, с. 175-176.
  40. ^ Хесманс и др. 2013, стр. 1.
  41. ^ Рыбчинская 2020.
  42. ^ Папастерджиу и др. 2017, с. 627.
  43. ^ МакКвистин, Перкинс и Файед 2016, стр. 1.
  44. ^ Салливан 2017.
  45. ^ ab Corbet 2018.
  46. ^ Томсон 2021, 2. Исправленные свойства всех версий QUIC.
  47. ^ Кюлевинд и Траммелл 2022, 2. Необходимость отступления.

Библиография

Дальнейшее чтение