Активные Сети (Субтитры)

by Sasha Shkrebets last modified Feb 06, 2023 10:22 PM

Plain Text icon active_networks.vtt.txt — Plain Text, 25 kB (26261 bytes)

File contents

WEBVTT

1
00:00:00.570 --> 00:00:01.660
Добро пожаловать.

2
00:00:01.660 --> 00:00:05.080
Мы продолжаем изучение истории программно-конфигурируемых сетей.

3
00:00:05.080 --> 00:00:08.000
На этом уроке мы поговорим про активные сети (Active Networks, AN).

4
00:00:08.000 --> 00:00:10.940
Мы поговорим о том, что такое активные сети,
о причинах возникновения активных сетей,

5
00:00:10.940 --> 00:00:15.150
и о технологиях стоящих за ними

6
00:00:15.150 --> 00:00:19.290
Мы также поговорим о том, как связаны активные сети
с программно-конфигурируемыми сетями (SDN).

7
00:00:19.290 --> 00:00:22.410
А также о том, что унаследовали SDN от AN.

8
00:00:23.770 --> 00:00:28.117
Напомню вам, что мы только что закончили урок 
по истории централизованного управления сетью, 

9
00:00:28.117 --> 00:00:30.700
которое использовалось 
по крайней мере в 1980-х

10
00:00:30.700 --> 00:00:34.650
в пункте управления сетью 
компании  АТ&Т

11
00:00:34.650 --> 00:00:38.300
Сегодны мы собираемся изучить причины 
появления программно-конфигуриремых сетей

12
00:00:38.300 --> 00:00:43.260
В частности, их истоки в проектах активных 
сетей в 1990-х

13
00:00:43.260 --> 00:00:45.670
И так, во-первых, что такое активные сети?

14
00:00:45.670 --> 00:00:48.600
Проще говоря, активные сети - это сети 
в которых коммутаторы выполняют

15
00:00:48.600 --> 00:00:52.700
определенные вычисления над сетевыми 
пакетами при их пересылке

16
00:00:53.750 --> 00:00:56.090
Несколько примеров, представьте, 
что один маршрутизатор

17
00:00:56.090 --> 00:00:58.625
или каждый маршрутизатор в сети совершает 
некоторые действия,

18
00:00:58.625 --> 00:01:00.510
обусловленные программой,

19
00:01:00.510 --> 00:01:03.780
с пакетами, которые проходят через
 маршрутизатор.

20
00:01:03.780 --> 00:01:07.290
Промежуточные устройства (middleboxes) - 
так же пример активных сетей.

21
00:01:07.290 --> 00:01:10.700
Устройства в сети, которые осуществляют 
функции межсетевого экрана, 

22
00:01:10.700 --> 00:01:14.430
проксирования, прикладные функции и т.п.

23
00:01:14.430 --> 00:01:19.130
Это все вычислительные задачи, которые 
осуществляются над сетевыми данными в сети.

24
00:01:19.130 --> 00:01:22.890
И можно считать, что промежуточные устройства
в нынешнее время и формируют активные сети

25
00:01:23.910 --> 00:01:25.290
Откуда появились активные сети?

26
00:01:25.290 --> 00:01:28.740
Ну, в середине 1990х годов,
в исследовательском сообществе DARPA

27
00:01:28.740 --> 00:01:32.990
обсуждали различные проблемы, 
которые стояли перед сетями того времени

28
00:01:32.990 --> 00:01:35.566
В частности, они определили, 
что существует сложность

29
00:01:35.566 --> 00:01:38.610
с интеграцией новых технологий в сети.

30
00:01:38.610 --> 00:01:42.650
К тому же, иногда сети демонстрировали 
плохую производительность.

31
00:01:42.650 --> 00:01:46.200
Поэтому решено было переделать
подходы к работе сети

32
00:01:46.200 --> 00:01:49.680
сразу на разных уровнях протокольного стека

33
00:01:49.680 --> 00:01:51.826
Так же было замечено, 
что сложно

34
00:01:51.826 --> 00:01:55.430
внедрять новые сетевые услуги 
по мере из разработки.

35
00:01:57.070 --> 00:02:00.820
Короче говоря, мотивацией для 
развития активных сетей было 
желание ускорить инновации.

36
00:02:00.820 --> 00:02:05.080
Замечено, что инновации требуют консенсуса

37
00:02:05.080 --> 00:02:09.553
И время, которое потребуется пройти 
от работающего прототипа,

38
00:02:09.553 --> 00:02:11.896
до окончательного внедрения технологии

39
00:02:11.896 --> 00:02:14.807
внедрения в реальных сетях

40
00:02:14.807 --> 00:02:16.582
может занимать десятиления,
потому что требуется

41
00:02:16.582 --> 00:02:20.840
стандартизовать, организовать 
производство нового оборудования.

42
00:02:20.840 --> 00:02:22.640
И дальнейшая отладка и внедрение

43
00:02:22.640 --> 00:02:24.810
в работающих сетях может длиться 
буквально бесконечно.

44
00:02:26.380 --> 00:02:29.229
И если подобная мотивация кажется вам знакомой,

45
00:02:29.229 --> 00:02:32.780
Это потому, что развитие SDN имеет такюще мотивацию.

46
00:02:32.780 --> 00:02:38.084
Ускорение инноваций в существующих сетях,
так что бы новые технологии могли

47
00:02:38.084 --> 00:02:44.170
внедрятся гораздо быстрее, без согласований, стандартизации и т.п.

48
00:02:44.170 --> 00:02:47.842
Итак, активные сети имеют такующе мотивацию и можно заметить,

49
00:02:47.842 --> 00:02:50.866
если вы можете поместить активные узлы в сеть,

50
00:02:50.866 --> 00:02:54.610
где маршрутизаторы могут скачать и реализовать новые услуги

51
00:02:54.610 --> 00:02:59.678
в существующей инфраструктуре - это позволяет внедрять инновации пользователям.

52
00:02:59.678 --> 00:03:03.620
Итак, основная идея в том, что сообщение или пакет могли бы нести

53
00:03:03.620 --> 00:03:08.480
не только данные, но и инструкции, что делать с этими данными.

54
00:03:08.480 --> 00:03:12.968
И эти активные маршрутизаторы, которые могут выполнять произвольные операции,

55
00:03:12.968 --> 00:03:16.860
могуть сосуществовать с традиционными, которые могут только пересылать пакеты.

56
00:03:18.410 --> 00:03:21.154
Каждый из этих программируемых коммутаторов, мог бы

57
00:03:21.154 --> 00:03:24.479
осуществлять дополнительную обработку, в дополнению к пересылке пакетов.

58
00:03:26.430 --> 00:03:29.052
Таким образом есть как потребность, так и производители,

59
00:03:29.052 --> 00:03:32.660
которые вместе делают активные сети востребованными в данный момент.

60
00:03:32.660 --> 00:03:34.431
С одной стороны, стороны спроса,

61
00:03:34.431 --> 00:03:39.282
распространение МСЭ, прокси, транскодеров и т.п.

62
00:03:39.282 --> 00:03:41.284
приводит к большому количеству специализированных решений,

63
00:03:41.284 --> 00:03:46.426
которые решают потребности пользователей в обработке пакетов.

64
00:03:46.426 --> 00:03:49.882
Проблематика или цель активных сетей

65
00:03:49.882 --> 00:03:53.790
заменить множество специфичных решений более универсальным.

66
00:03:55.140 --> 00:03:58.380
С другой стороны предложение от производителей.

67
00:03:58.380 --> 00:04:01.980
В свое время, было множество исследований

68
00:04:01.980 --> 00:04:05.650
и разработок для поддержки безопасного исполнения переносимого кода.

69
00:04:05.650 --> 00:04:10.720
В частности, появились Java апплеты и обеспечили возможность

70
00:04:11.738 --> 00:04:15.410
разрабатывать переносимый код, который бы работал в любом месте.

71
00:04:15.410 --> 00:04:18.538
И это позволило переносить ПО,

72
00:04:18.538 --> 00:04:23.400
что оказало поддержку для некоторых типов активных сетей.

73
00:04:24.850 --> 00:04:28.410
Так же разрабатывалась поддержка со стороны ОС.

74
00:04:28.410 --> 00:04:34.340
Scout OS созданная для подержки сетевых коммуникация.

75
00:04:34.340 --> 00:04:37.818
При создании были созданы новые технологии,

76
00:04:37.818 --> 00:04:41.444
позволяющие безопасный доступ к низкоуровневым ресурсам, и SPIN

77
00:04:41.444 --> 00:04:44.478
обеспечивающая доверенный код, или предоставляющая

78
00:04:44.478 --> 00:04:48.770
технологии, позволяющие создать доверенный код.

79
00:04:50.790 --> 00:04:53.140
Итак, есть два разных подхода к активным сетям.

80
00:04:53.140 --> 00:04:55.345
Первый несколько экстремальный,

81
00:04:55.345 --> 00:04:58.650
по сути, каждое сообщение или пакет фактически несет программу.

82
00:04:59.720 --> 00:05:03.100
И активные узлы сети, по пути следования

83
00:05:03.100 --> 00:05:05.770
исполняют код, которых находится в пакете.

84
00:05:05.770 --> 00:05:08.330
Т.е. код находящийся в пакете,

85
00:05:08.330 --> 00:05:10.962
будет запущен в среде исполнения,

86
00:05:10.962 --> 00:05:13.510
которая работотает на программируемом коммутаторе или маршрутизаторе.

87
00:05:14.620 --> 00:05:16.040
Чуть позже мы расмотрим капсулы

88
00:05:16.040 --> 00:05:18.156
более детально.

89
00:05:18.156 --> 00:05:24.930
Но есть другой подход, который выглядит более знакомым для нас.

90
00:05:24.930 --> 00:05:28.410
И он выглядит именно как подход CDN, вот в чем идея:

91
00:05:28.410 --> 00:05:32.870
Есть программируемые коммутаторы, которые при наличии установленных инструкций

92
00:05:32.870 --> 00:05:37.769
буду осуществлять операции по обработке пакетов

93
00:05:37.769 --> 00:05:42.210
в зависимости от содержимого заголовков пакетов.

94
00:05:42.210 --> 00:05:45.915
Т.е. по сути, пакет будет передан определенному коду,

95
00:05:45.915 --> 00:05:49.410
в зависимости от заголовка пакета.

96
00:05:49.410 --> 00:05:53.930
Да, это звучит гораздо более похоже на SDN, вы не ошибаетесь.

97
00:05:53.930 --> 00:05:57.310
Теперь давайте посмотрим на капсулы.

98
00:05:57.310 --> 00:06:03.110
Итак, капсулы фактически расширают существующий заголовок пакета.

99
00:06:03.110 --> 00:06:08.840
В добавок к обычному заголовку IP пакета с вашими данными,

100
00:06:08.840 --> 00:06:11.640
Есть еще заголовок AN, в данном случае заголовок ANTS.

101
00:06:11.640 --> 00:06:13.944
Он был разработан в МТИ

102
00:06:13.944 --> 00:06:16.930
и этот заголовок фаткически имел несколько дополнительных полей.

103
00:06:16.930 --> 00:06:19.860
Одно было поле типа, которое определяло инструкцию

104
00:06:19.860 --> 00:06:23.120
для исполнения в конкретном коде,

105
00:06:23.120 --> 00:06:26.565
Предыдущий адрес, он обозначал узел, где взять инструкцию,

106
00:06:26.565 --> 00:06:31.050
если ее нет на текущем узле.

107
00:06:31.050 --> 00:06:33.750
Поля с аргументами позволяют пакету передать параметры

108
00:06:33.750 --> 00:06:36.290
в исполняемый код, и в конце, конечно, собственно сами полезные данные.

109
00:06:38.150 --> 00:06:40.580
Итак, некоторые наиболее заметные проекты в области  AN

110
00:06:40.580 --> 00:06:42.600
Один из них был ANTS, который мы рассмотрели только что

111
00:06:42.600 --> 00:06:44.560
И он фактически использовал подход капсул в пакете,

112
00:06:44.560 --> 00:06:47.950
которые должны были содержать фактически Java программы

113
00:06:47.950 --> 00:06:49.800
внутри пакетов.

114
00:06:49.800 --> 00:06:54.280
Естественно, это создало ограничения для обеспечения QoS

115
00:06:54.280 --> 00:06:57.570
и для решения этого университет Аризоны

116
00:06:57.570 --> 00:07:01.420
создал  нечто названое Joust JVM,

117
00:07:01.420 --> 00:07:07.140
которая обеспечивала лучшую производительность для сценариев AN.

118
00:07:07.140 --> 00:07:09.028
Еще была программа Switchware

119
00:07:09.028 --> 00:07:11.447
в университете Пенсильвании, по разработке программируемого коммутатора

120
00:07:11.447 --> 00:07:16.170
и скриптового языка, поддерживающего вызовы свитчлетов.

121
00:07:16.170 --> 00:07:19.590
Проект Smart Packets в BBN, нацеленный

122
00:07:19.590 --> 00:07:23.810
на применении подхода AN к проблемам eghfdktybz ctnzvb/

123
00:07:23.810 --> 00:07:29.064
Open Signalling в Колумбийском университете разработали язык NetScript

124
00:07:29.064 --> 00:07:32.394
который позволял разработчикам создавать процедуры обработки данных

125
00:07:32.394 --> 00:07:36.370
и описывать конвееры для обратоки потоков данных.

126
00:07:36.370 --> 00:07:40.144
Позже в курсе мы рассмотрим некоторые современные программируемые

127
00:07:40.144 --> 00:07:43.890
плоскости коммутации, которые похожи на Open Signalling

128
00:07:45.230 --> 00:07:48.080
И наконец проект Tempest из Кембриджа, где изобрели нечто 

129
00:07:48.080 --> 00:07:52.720
названное свитчлеты, являвшимися программируемыми виртуальными коммутаторами

130
00:07:52.720 --> 00:07:56.250
И мы рассмотрим их подробнее на следующей лекции.

131
00:07:57.400 --> 00:07:59.180
Итак, что же случилось с активными сетями?

132
00:07:59.180 --> 00:08:03.870
Эта тезнология появилась почти 20 лет назад.

133
00:08:03.870 --> 00:08:06.890
Почему хотя бы некоторые из этих идей до сих пор не реализованы?

134
00:08:07.890 --> 00:08:10.420
Ну, во-первых - они появились не вовремя.

135
00:08:10.420 --> 00:08:11.638
В то время не было

136
00:08:11.638 --> 00:08:14.950
понятного применения для этого типа программирования.

137
00:08:14.950 --> 00:08:19.108
Как оказалось, и мы увидим это в рамках курса,

138
00:08:19.108 --> 00:08:23.670
одно из самых востребованных применений для SDN это ЦОД и облака.

139
00:08:23.670 --> 00:08:25.210
Но в то время

140
00:08:25.210 --> 00:08:27.030
ЦОД и облаков просто не было.

141
00:08:27.030 --> 00:08:32.610
Таким образом не было понятного применения для активных сетей.

142
00:08:32.610 --> 00:08:34.990
Как минимум не было ближайшей перспективе.

143
00:08:34.990 --> 00:08:37.130
В добавок, аппаратная поддержка не дешева,

144
00:08:37.130 --> 00:08:39.890
Все используют специальные интегральные схемы (ASIC) для поддержки таких технологий.

145
00:08:39.890 --> 00:08:45.430
Сейчас есть больший выбор для реализации программируемой плоскости коммутации,

146
00:08:45.430 --> 00:08:49.830
такой как TCAM, ПЛИС. Но есть и ложные шаги.

147
00:08:49.830 --> 00:08:53.834
Например, много внимания уделяется безопасности, создаются специальные языки

148
00:08:53.834 --> 00:08:59.250
для генерации безпасного кода, обсуждаются пакеты, которые содержат код и т.п.

149
00:08:59.250 --> 00:09:02.631
И может быть длишком фокусируются на этом, вместо общей концепции

150
00:09:02.631 --> 00:09:08.210
или главной цели - как мы сделаем сеть программируемой?

151
00:09:08.210 --> 00:09:11.632
Будет ли это сделано за счет капсул или наоборот,

152
00:09:11.632 --> 00:09:14.523
за счет программируемого коммутатора, это менее важно, чем

153
00:09:14.523 --> 00:09:19.450
Просто обеспечение программируемости, гибкости в инфраструктуре.

154
00:09:19.450 --> 00:09:22.390
Так же слишком много внимание уделяется 

155
00:09:22.390 --> 00:09:25.501
пользователям, как вы и я, сидящими за своими компьютерами,

156
00:09:25.501 --> 00:09:29.010
или домашними компютерами, как программистам.

157
00:09:30.188 --> 00:09:33.114
в отличии от этого в идее SDN программистом видится администратор сети,

158
00:09:33.114 --> 00:09:37.870
или администратор сетевой услуги.

159
00:09:37.870 --> 00:09:42.240
Те люди, которые внедряют новые техзнологии в сети.

160
00:09:43.740 --> 00:09:44.940
И наконец, очень много внимания уделяется

161
00:09:44.940 --> 00:09:49.830
совместимости с нынешними реализациями и внедрениями.

162
00:09:49.830 --> 00:09:53.670
В отличии от этого OpenFlow отбросил это.

163
00:09:53.670 --> 00:09:55.439
Они проделали отличную работу

164
00:09:55.439 --> 00:10:00.020
по обеспечению обратной совместимости с железом имеющихся коммутаторов.

165
00:10:00.020 --> 00:10:03.125
Это фактически

166
00:10:03.125 --> 00:10:08.110
просто обновление ПО, для поддержки OpenFlow в существующих коммутаторах.

167
00:10:08.110 --> 00:10:11.851
И мноество аппаратных платформ уже

168
00:10:11.851 --> 00:10:16.249
поддерживают базовые операции специфицированные OpenFlow.

169
00:10:18.140 --> 00:10:20.310
Итак, давайте на минутку поразмышляем

170
00:10:20.310 --> 00:10:22.800
о влиянии активных сетей на SDN.

171
00:10:22.800 --> 00:10:25.791
Какие уроки мы можем извлечть из идеи активных сетей?

172
00:10:25.791 --> 00:10:27.996
Ну во-первых, была идея 

173
00:10:27.996 --> 00:10:32.380
программирования функционала сети для развития инноваций.

174
00:10:32.380 --> 00:10:34.790
Постановка задачи, или мотивация,

175
00:10:34.790 --> 00:10:36.973
практически такая же как в SDN,

176
00:10:36.973 --> 00:10:39.320
и истоки ведут к активным сетям.

177
00:10:39.320 --> 00:10:45.340
Во-вторых, была идея программируемого коммутатора,

178
00:10:45.340 --> 00:10:51.260
который иммет код, или который может быть в него установлен.

179
00:10:51.260 --> 00:10:54.160
И тогда пакеты или данные заголовка

180
00:10:54.160 --> 00:10:58.780
определяют эти пакеты будут обработаны соответствующим кодом.

181
00:10:58.780 --> 00:11:02.685
Эта идея фактичеки выросла из концепии активных сетей и мы встречаем ее

182
00:11:02.685 --> 00:11:07.910
снова и снова, и снова, в таких проектах как Planetlab, Flowvisor, GENI.

183
00:11:07.910 --> 00:11:13.382
Даже сейчас, весь мир обсуждает как обединить  SDN и промежуточными узлами.

184
00:11:13.382 --> 00:11:17.429
Это все имеет корни из идей пришедших из концепции активных сетей.

185
00:11:18.880 --> 00:11:22.110
Напоследок, еще одно замечание про промежуточные узлы.

186
00:11:22.110 --> 00:11:25.890
Очень важно, что идея активных сетей уделяла много внимания промежуточным узлам.

187
00:11:25.890 --> 00:11:28.968
Одна из задач активных сетей была в развитии

188
00:11:28.968 --> 00:11:33.460
различных типов промежуточных узлов и видение универсальной архитектуры.

189
00:11:33.460 --> 00:11:35.590
И сейчас мы видим то же видение

190
00:11:35.590 --> 00:11:39.250
реализуемое в разных SDN проектах

191
00:11:39.250 --> 00:11:42.925
И, возможно, важно оглянуться назад,

192
00:11:42.925 --> 00:11:46.300
обратить внимание на некоторые работы в области  AN, что бы убедиться

193
00:11:46.300 --> 00:11:49.450
может ли полученый опыт

194
00:11:49.450 --> 00:11:54.110
быть использован для интеграции SDN с промежуточными узлами.
Navigation