← Wszystkie wpisy

Filozofia inżynierii: Radia Perlman

Radia Perlman, projektantka protokołów sieciowych

Najważniejsze wnioski

  • Wynalazła Spanning Tree Protocol, dzięki któremu przełączany Ethernet zaczął działać na dużą skalę. Pracując w Digital Equipment Corporation, Radia Perlman zaprojektowała algorytm drzewa rozpinającego – opublikowany w 1985 roku i znormalizowany jako IEEE 802.1D – który pozwala mostom w sieci o dowolnej topologii samodzielnie obliczyć pojedynczą, wolną od pętli ścieżkę do każdego miejsca docelowego, po cichu naprawiając się przy awariach. Bez tego nadmiarowe łącza tworzą pętle, a pojedyncza transmisja rozgłoszeniowa krąży w nieskończoność i topi sieć.123
  • Jej najważniejsze zobowiązanie to odporność: sieci, które pozostają poprawne mimo awarii, w tym awarii złośliwej. Jej rozprawa doktorska z MIT z 1988 roku nosiła tytuł „Network Layer Protocols with Byzantine Robustness” – routing zaprojektowany tak, aby działać nie tylko wtedy, gdy łącza padają, lecz także wtedy, gdy węzły aktywnie kłamią. Projektowanie z myślą o przypadku awarii, w tym o przypadku przeciwnika, przewija się przez wszystko, co zbudowała.1
  • Napisała kanoniczny podręcznik oraz wiersz wewnątrz patentu. Perlman jest autorką Interconnections: Bridges, Routers, Switches, and Internetworking Protocols, książki, z której uczyło się całe pokolenie inżynierów sieciowych, oraz współautorką Network Security: Private Communication in a Public World. Napisała też „Algorhyme” – „I think that I shall never see / A graph more lovely than a tree” – aby opisać drzewo rozpinające; jest to prawdopodobnie jedyny odnotowany patent na oprogramowanie zawierający wiersz.347
  • Posiada ponad 100 patentów i należy do National Inventors Hall of Fame – a przy tym nie lubi określenia „Matka Internetu”. Wprowadzona do Internet Hall of Fame (2014) oraz National Inventors Hall of Fame (2016), z ponad 100 przyznanymi patentami, Perlman od dziesięcioleci sprzeciwia się etykiecie „Matka Internetu”, podkreślając, że nikt pojedynczo nie wynalazł Internetu.15

Zasada

„I think that I shall never see / A graph more lovely than a tree. / A tree whose crucial property / Is loop-free connectivity.” – Radia Perlman, „Algorhyme”, wiersz opisujący Spanning Tree Protocol4

Większość inżynierii optymalizuje pod kątem sytuacji, w której wszystko działa. Projektuje się ścieżkę szczęśliwą, obsługuje kilka wyobrażalnych błędów i wypuszcza produkt. Sieci nie zapewniają takiego komfortu. Sieć to żywa siatka maszyn, które padają losowo, łączy, które gasną w połowie pakietu, oraz – jeśli się nie poszczęści – węzłów przejętych przez kogoś i karmiących nas teraz kłamstwami. Cały dorobek Perlman wychodzi z założenia przeciwnego niż większość kodu: przypadek awarii nie jest przypadkiem brzegowym, jest centrum projektu. Protokół zarabia na siebie nie tym, że działa, gdy przewody są czyste, lecz tym, że pozostaje poprawny, gdy nie są – samodzielnie stabilizując się z powrotem do dobrego stanu, bez udziału człowieka.13

Spanning Tree Protocol to ta zasada w najczystszej postaci. Problem, który rozwiązuje, jest brutalny i strukturalny: jeśli połączy się przełączniki nadmiarowymi łączami – a trzeba to zrobić dla niezawodności – powstają fizyczne pętle, a pojedyncza ramka rozgłoszeniowa będzie krążyć w pętli w nieskończoność, mnożąc się przy każdym rozgałęzieniu, aż nasyci każde łącze i sieć padnie. Naiwnym rozwiązaniem jest zakazanie pętli, ale wówczas zakazuje się nadmiarowości, a jeden przerwany kabel wyłącza pół budynku. Spostrzeżenie Perlman polegało na tym, że można mieć jedno i drugie: pozwolić operatorom okablować dowolną siatkę, a same przełączniki niech obliczą pojedyncze, wolne od pętli drzewo, które wciąż dociera do wszystkich, trzymając nadmiarowe łącza w rezerwie.23 Żadnego centralnego kontrolera, żadnego człowieka rysującego drzewo ręcznie – w pełni rozproszony algorytm, który sam się zbiega i ponownie się zbiega, gdy coś się zepsuje.

Zasada ma drugą połowę, i to ona nadaje pierwszej głębi: odporność musi obejmować złośliwość, a nie tylko przypadek. Węzeł, który padł, po prostu się zatrzymuje; węzeł skompromitowany nadal mówi, a to, co mówi, ma nam zaszkodzić. Praca doktorska Perlman stawiała trudniejsze pytanie – czy protokół routingu może nadal poprawnie dostarczać pakiety nawet wtedy, gdy część routerów aktywnie go sabotuje? – i odpowiedziała na nie protokołami o bizantyjskiej odporności.1 To ta sama dyscyplina, która biegnie od drzewa rozpinającego po jej pracę nad bezpieczeństwem: zakładaj najgorsze o świecie, w którym żyje twój protokół, i projektuj tak, by mimo to się naprawiał. A przez to wszystko przebija estetyka prostoty. Protokół, który jest prosty, to protokół, o którym można rozumować, którego własności można dowieść i któremu można zaufać, że się zbiegnie – dlatego właśnie drzewo rozpinające mieści się w wierszu.

Kontekst

Radia Perlman urodziła się 18 grudnia 1951 roku w Portsmouth w Wirginii.1 Studiowała na MIT, gdzie uzyskała stopnie SB i SM z matematyki, a później doktorat z informatyki w 1988 roku; jej rozprawa nosiła tytuł „Network Layer Protocols with Byzantine Robustness” – routing zaprojektowany tak, by przetrwać routery, które stały się złośliwe.1 Temat tej rozprawy nie jest przypisem do jej kariery; jest tezą całej jej kariery, spisaną wcześnie.

Zanim powstały protokoły, z których jest znana, dokonała czegoś po cichu radykalnego w Laboratorium Sztucznej Inteligencji na MIT: na początku lat 70. opracowała TORTIS – „Toddler’s Own Recursive Turtle Interpreter System” – wersję środowiska żółwia LOGO na tyle prostą, że programować robota mogły dzieci w wieku zaledwie trzech i pół roku.1 Wątek łączący to z jej późniejszą pracą jest realny. Nauczenie malucha programowania to ćwiczenie z radykalnego upraszczania: ogołocić ideę do tego stopnia, by przetrwała zetknięcie z kimś, kto nie ma żadnej wcześniejszej wiedzy. Resztę kariery spędziła, sprowadzając protokoły sieciowe do tego samego rodzaju istotnego, zrozumiałego jądra.

Jej droga zawodowa przebiega przez instytucje, które zbudowały nowoczesną sieć. Po MIT pracowała w BBN, następnie około 1980 roku dołączyła do Digital Equipment Corporation, i to właśnie w DEC – nie w badawczym silosie, lecz rozwiązując realny problem produktowy – wynalazła algorytm drzewa rozpinającego, zaprojektowała routing DECnet oraz wykonała fundamentalną pracę przy przejściu routingu od podejścia wektora odległości do podejścia stanu łącza (link-state), w tym IS-IS.13 Po DEC pracowała w Novell, następnie w Sun Microsystems (gdzie była Sun Fellow i zdobyła ponad 40 swoich patentów), a później w Intel oraz Dell EMC.1 Po drodze zgromadziła ponad 100 przyznanych patentów, wprowadzenie do Internet Hall of Fame (2014) oraz National Inventors Hall of Fame (2016), a także etykietę, którą od lat odrzuca – „Matka Internetu” – argumentując, że żadna pojedyncza osoba nie wynalazła Internetu i że ten upłciowiony tytuł więcej zaciemnia, niż honoruje.15

Praca

Spanning Tree Protocol: drzewo, które sieć hoduje sama

Zacznijmy tutaj, bo to zasada przekuta w mechanizm. Sceną jest rozszerzona sieć LAN – wiele segmentów zszytych razem przez mosty (to, co dziś nazywamy przełącznikami) – okablowana nadmiarowymi łączami tak, by żadna pojedyncza awaria nie mogła podzielić sieci. Nadmiarowość jest dla niezawodności nienegocjowalna. Ale nadmiarowość oznacza pętle, a pętle są zabójcze: ramki Ethernet nie niosą pola czasu życia (time-to-live), więc ramka rozgłoszeniowa, która wpada w pętlę, jest kopiowana wokół niej bez końca, a ponieważ przełączniki rozsyłają rozgłoszenia przez każdy port, kopie mnożą się, aż pochłoną całą dostępną przepustowość. Sieć nie zwalnia; ona umiera. To burza rozgłoszeniowa (broadcast storm), a „podstawową funkcją STP jest zapobieganie pętlom mostowym oraz wynikającej z nich radiacji rozgłoszeniowej”.2

Algorytm Perlman z 1985 roku rozwiązuje to za pomocą obliczeń rozproszonych, które nie potrzebują żadnej władzy centralnej.3 Najpierw mosty wybierają korzeń – wygrywa ten o najniższym identyfikatorze, co rozstrzyga się przez wymianę krótkich komunikatów, bez udziału człowieka.2 Następnie każdy most oblicza swoją ścieżkę o najniższym koszcie w kierunku korzenia i utrzymuje aktywne do przekazywania tylko to jedno łącze, blokując łącza nadmiarowe.2 To, co zostaje, to drzewo rozpinające: pojedyncza, wolna od pętli ścieżka od każdego segmentu do korzenia, a zatem między dowolnymi dwoma punktami, która wciąż dociera do każdej sieci LAN – dokładnie ta „loop-free connectivity”, którą nazywa wiersz.4 Zablokowane łącza nie są marnowane; siedzą w rezerwie. Gdy aktywne łącze pada, mosty wykrywają zmianę i algorytm oblicza nowe drzewo o najniższym koszcie, promując łącze zapasowe, aby przywrócić łączność.2 To właśnie jest samonaprawa – automatyczna, rozproszona, bez dotykania czegokolwiek przez operatora.

Dlaczego to ma znaczenie jako inżynieria: drzewo rozpinające to samostabilizujący się algorytm rozproszony, który operator może ignorować. Podłącza się kable, dodaje nadmiarowość dla bezpieczeństwa, a sieć sama się porządkuje – i porządkuje się ponownie, gdy coś się zepsuje. IEEE znormalizowało ten algorytm jako 802.1D w 1990 roku i przez dziesięciolecia działał on wewnątrz praktycznie każdego dostarczanego zarządzanego przełącznika Ethernet.2 Jest to także wzorzec zrozumiałości: całość mieści się w dwunastowierszowym poemacie, bo idea leżąca u podstaw jest naprawdę prosta, a prostota jest tym, co pozwala zaufać, że algorytm się zbiega.4

Routing stanu łącza, IS-IS oraz Interconnections

Drzewo rozpinające rządzi mostkowaniem wewnątrz rozszerzonej sieci LAN; routing między sieciami to problem większy, i jego Perlman również ukształtowała. W DEC pomogła odsunąć routing od protokołów wektora odległości (distance-vector) – w których każdy router zna jedynie koszt do każdego miejsca docelowego zgłoszony przez sąsiadów, co jest projektem podatnym na powolną zbieżność i „liczenie do nieskończoności” – ku routingowi stanu łącza (link-state), w którym każdy router poznaje pełną topologię i sam oblicza najkrótsze ścieżki.1 Jej praca nad IS-IS (Intermediate System to Intermediate System), protokołem stanu łącza, który stał się odpowiednikiem OSPF w modelu OSI, to część powodu, dla którego routing stanu łącza jest odporny i szybko się zbiega; jest zbudowany tak, by niezawodnie rozsyłać zmiany topologii i przeliczać ścieżki, co jest tym samym instynktem samonaprawy co drzewo rozpinające, tyle że o warstwę wyżej.1

Napisała też książkę – dosłownie. Interconnections: Bridges, Routers, Switches, and Internetworking Protocols to tekst, z którego całe pokolenie inżynierów sieciowych poznało dziedzinę, a Network Security: Private Communication in a Public World (wraz z Charliem Kaufmanem i Mikiem Specinerem) stało się standardowym źródłem.7 Tym, co wyróżnia jej pisarstwo, jest dokładnie to samo, co wyróżnia jej protokoły: nacisk na wyjaśnienie, dlaczego projekt wygląda tak, jak wygląda, a nie tylko co robi – uczenie czytelnika rozumowania o poprawności i awarii, a nie zapamiętywania specyfikacji.

Radia Perlman

Projektowanie przeciw złośliwości: routing odporny bizantyjsko oraz dane, które wygasają

To praca, która odsłania ją najmocniej. Sieć, która naprawia się wokół zepsutych węzłów, jest już dość trudna; jej badania doktorskie, „Network Layer Protocols with Byzantine Robustness”, pytały, czy routing może nadal poprawnie dostarczać pakiety nawet wtedy, gdy część routerów została przejęta i robi wszystko, co w jej mocy, by go zakłócić – porzucając pakiety, kłamiąc o topologii, fałszując komunikaty routingu.1 Węzeł, który padł, jest cichy i przewidywalny; węzeł bizantyjski jest głośny i wrogi, a protokół mimo to musi dostarczyć. Traktowanie złośliwej awarii jako pełnoprawnego przypadku, pod który się projektuje – a nie dodatku bezpieczeństwa doczepionego później – wyprzedza o dziesięciolecia sposób, w jaki budowano większość systemów, i wywodzi się wprost z tego samego instynktu co drzewo rozpinające: zakładaj, że świat jest wrogi, i zbiegaj do poprawności niezależnie od tego.1

Ten instynkt przeniósł się do jej późniejszej pracy nad bezpieczeństwem. Wniosła wkład w modele zaufania dla infrastruktury klucza publicznego (PKI) oraz – co jest charakterystycznie czystą ideą – w mechanizmy dla danych, które wygasają: efemeryczne zarządzanie kluczami zaprojektowane tak, by informacja mogła stać się w sposób pewny nieodzyskiwalna po wybranym czasie, z gwarancją, że usunięte dane naprawdę zniknęły.1 To sposób myślenia oparty na przypadku awarii, obrócony ku prywatności. Większość systemów buduje się tak, by pamiętały; ona zapytała, jak zbudować system, któremu można zaufać, że zapomni, co jest problemem trudniejszym i bardziej wrogim.

Radia Perlman wygłaszająca przemówienie podczas wprowadzenia do National Inventors Hall of Fame

TRILL i dyscyplina prostoty

Perlman była też swoim najostrzejszym krytykiem, dlatego zaprojektowała następcę drzewa rozpinającego. Wielkie ograniczenie STP jest drugą stroną jego zalety: aby zabić pętle, blokuje nadmiarowe łącza, co oznacza, że przepustowość leży bezczynnie, a ruch między dwoma pobliskimi przełącznikami może zostać zmuszony do długiego objazdu przez korzeń.6 TRILL – „Transparent Interconnection of Lots of Links” – to jej odpowiedź, i jest syntezą całej jej kariery: jest „zastosowaniem routingu stanu łącza do problemu mostkowania klienta świadomego sieci VLAN”.6 Przełączniki TRILL, zwane RBridges, uruchamiają między sobą protokół stanu łącza IS-IS, aby poznać pełną topologię i obliczyć najkrótsze ścieżki, dzięki czemu TRILL „ustanawia ścieżki na wszystkich aktywnych łączach”, zamiast je blokować – odporność i prostota mostkowania typu plug-and-play wraz z efektywnością ścieżek routingu.6 To praca nad stanem łącza i praca nad drzewem rozpinającym złożone w jeden projekt.

Przez to wszystko przebiega zobowiązanie do prostoty, które łatwo niedoceniać. Drzewo rozpinające jest sławne częściowo dlatego, że jest na tyle małe, by zmieścić się w wierszu; jej podręczniki są kochane, bo wyjaśniają, a nie wyliczają; jej stałe zastrzeżenie wobec dużej części sieci jest takie, że są bardziej złożone, niż muszą być. Prostota nie jest dla Perlman preferencją estetyczną – jest tym, co czyni protokół dowodliwie poprawnym i niezawodnie samostabilizującym się. Nie można ufać mechanizmowi, że sam się naprawi, jeśli nie da się o nim rozumować, a nie da się rozumować o tym, czego nie da się utrzymać w głowie.46

Metoda

Czytając w poprzek drzewa rozpinającego, IS-IS, rozprawy o bizantyjskiej odporności, pracy nad bezpieczeństwem oraz TRILL, powracają te same zobowiązania. Metoda Perlman jest mniej hasłem niż zbiorem stałych nawyków.

Projektuj najpierw pod przypadek awarii. Drzewo rozpinające nie jest algorytmem przekazywania z dodaną obsługą awarii; awaria jest problemem, dla którego rozwiązania istnieje – nadmiarowe łącza, które muszą współistnieć z wolnością od pętli, oraz aktywne łącza, które będą padać i wokół których trzeba się naprawić.23 Lekcja sięga daleko poza sieci: nie projektuj ścieżki szczęśliwej i nie dołączaj obsługi błędów łatami, lecz najpierw zaprojektuj tryby awarii i pozwól, by ścieżka szczęśliwa wypadła z systemu, który już je przetrwa. To bramka dowodów zastosowana do odporności – „działa, gdy nic nie jest zepsute” nie jest dowodem; „zbiega do poprawności, gdy łącza padają” – jest.

Zakładaj złośliwość, nie tylko przypadek. Najtrudniejsze awarie nie są te ciche; to węzły, które zostały skompromitowane i teraz kłamią. Rozprawa Perlman o bizantyjskiej odporności traktuje przeciwnika jako dane wejściowe projektu, a nie myśl po fakcie.1 To ten sam instynkt, na którym Adi Shamir zbudował kryptograficzną karierę – nie rozumiesz systemu, dopóki nie zapytasz, co może zrobić atakujący, który kontroluje jego część – i to dlatego granicę uprawnień albo protokół routingu trzeba projektować przeciwko uczestnikowi, który aktywnie próbuje go złamać.

Spraw, by się samostabilizował – bez człowieka w pętli. Najgłębszą zaletą drzewa rozpinającego jest to, że operator może je ignorować: zbiega samo i ponownie się zbiega po awarii, bez rysowania drzewa przez kogokolwiek.2 Dyscyplina polega na wepchnięciu odzyskiwania do wnętrza systemu, zamiast do instrukcji obsługi, ponieważ sieć, która do naprawy potrzebuje człowieka, nie naprawia się o 3 w nocy. To ten sam impuls poprawności rozproszonej, który Leslie Lamport wniósł do konsensusu: zdefiniuj precyzyjnie dobry stan, a następnie zbuduj protokół, który wraca do niego z dowolnego punktu startowego.

Trzymaj to na tyle prosto, by dało się o tym rozumować – i tego nauczać. Protokół, który zmieścisz w wierszu, to protokół, którego zbieżność potrafisz udowodnić; podręcznik, który wyjaśnia dlaczego, sprawia, że następne pokolenie potrafi rozumować, zamiast zapamiętywać.47 Prostota nie jest tu minimalizmem dla niego samego – jest warunkiem wstępnym zaufania, tą samą ekonomią środków, która sprawia, że najsilniejsze mechanizmy są zarazem najbardziej zrozumiałe, w duchu minimalnego godnego produktu.

Bądź swoim najsurowszym recenzentem. STP działa, a Perlman mimo to zaprojektowała TRILL, by naprawić marnotrawstwo zablokowanych łączy STP za pomocą idei stanu łącza, nad którymi pracowała przez całą karierę.6 Stałym nawykiem jest nieustanne atakowanie własnej najlepszej pracy – nazwanie ograniczenia tego, z czego jesteś sławny, i zbudowanie jego następcy – co jest jakość jest jedyną zmienną przekutą w praktykę: pytanie nigdy nie brzmi „czy to wystarczająco dobre, by wypuścić?”, lecz „czy to wciąż właściwy projekt?”.

Łańcuch wpływów

Kto ukształtował ją

Matematyczno-AI-owa tradycja MIT. Dwa dyplomy z matematyki i doktorat na MIT, a do tego wczesna praca w AI Lab nad systemami żółwia LOGO, ugruntowały w niej zarówno rygor potrzebny, by udowodnić poprawność protokołu, jak i instynkt radykalnego upraszczania idei.1 Nauczenie trzylatka programowania to ta sama umiejętność, co zmieszczenie drzewa rozpinającego w wierszu. (Wpływ formacyjny)

Wczesna społeczność internetworkingu. Lata w BBN i DEC umieściły ją wewnątrz instytucji, które faktycznie budowały sieci rozległe i lokalne w latach 70. i 80., gdzie problemy nie były akademickie – pętle naprawdę topiły prawdziwe sieci – a praca nad DECnet, IS-IS i mostkowaniem wzięła się z ich rozwiązywania.1 (Wpływ bezpośredni)

Tradycja awarii bizantyjskich. Jej doktorskie skupienie na protokołach odpornych na złośliwą awarię łączy ją z linią myślenia o systemach rozproszonych – sformalizowaną przez Leslie’ego Lamporta i innych – która pyta, jak system pozostaje poprawny, gdy część uczestników zachowuje się dowolnie, a nawet wrogo.1 (Wpływ formacyjny)

Kogo ukształtowała ona

Każdy przełączany Ethernet. Spanning Tree Protocol, znormalizowany jako IEEE 802.1D, przez dziesięciolecia działał wewnątrz praktycznie każdego zarządzanego przełącznika – cichy powód, dla którego podłączenie nadmiarowych kabli do sieci korporacyjnej jej nie kładzie.23

Nowoczesne struktury sieciowe centrów danych. TRILL i jego idee mostkowania stanu łącza popchnęły dziedzinę ku strukturom, które wykorzystują wszystkie swoje łącza poprzez routing najkrótszą ścieżką, zamiast blokować nadmiarowość, kształtując sposób budowy dużych sieci centrów danych.6

Pokolenie inżynierów sieciowych. Poprzez Interconnections i Network Security Perlman nauczyła dziedzinę, jak rozumować o mostach, routerach i protokołach – jej wyjaśniający styl to część powodu, dla którego tak wielu praktyków myśli o sieciach tak, jak myśli.7

Wątek przewodni

Perlman jest w tej serii zwornikiem własnej-odporności-sieci – postacią, która sprawiła, że przewody pod wszystkim innym same się naprawiają. Leslie Lamport zbudował teorię systemów rozproszonych, które pozostają poprawne mimo awarii, w tym awarii bizantyjskich, gdzie węzły zachowują się dowolnie; Perlman zbudowała protokoły, które robią dokładnie to w prawdziwych sieciach, a jej rozprawa o bizantyjskiej odporności to pytanie Lamporta z odpowiedzią udzieloną w warstwie routingu.1 Adi Shamir uczynił systemy godnymi zaufania, projektując je przeciwko atakującemu, który kontroluje ich część – ten sam wrogi instynkt, który Perlman wniosła do routingu, dekadę we własnym kierunku. A Tim Berners-Lee zbudował sieć WWW dla wszystkich, ale sieć dociera do wszystkich tylko dlatego, że przełączana i routowana sieć pod nią pozostaje połączona mimo awarii – to znaczy dzięki drzewu rozpinającemu i routingowi stanu łącza, które ukształtowała Perlman. Gdzie Lamport mówi zdefiniuj poprawność i udowodnij, że przetrwa awarię, a Shamir mówi projektuj przeciwko przeciwnikowi, Perlman mówi: zbuduj sieć tak, by sama się naprawiała – bez człowieka w pętli, nawet gdy część węzłów kłamie. (Pomost serii)

Co z tego biorę

Lekcją, którą zachowuję od Perlman, jest projektować najpierw pod przypadek awarii. Mój instynkt, jak u większości budowniczych, każe pisać ścieżkę szczęśliwą – żądanie, które się udaje, łącze, które stoi, węzeł, który się zachowuje – a potem doprawiać obsługą błędów, gdy to już działa. Drzewo rozpinające jest naganą: awaria nie jest czymś, co przydarza się projektowi, jest tym, dla czego projekt istnieje. Nadmiarowe łącza i padające kable nie są przypadkami brzegowymi do załatania; są całym powodem, dla którego protokół ma taki kształt, jaki ma, a ścieżka szczęśliwa po prostu wypada z systemu, który już je przetrwał. Więc gdy buduję teraz coś – pętlę synchronizacji, ścieżkę ponawiania, granicę uprawnień – staram się zaczynać od „co się psuje i jak to się samo naprawia beze mnie?”, zamiast docierać tam na końcu. System, który wymaga, bym o 3 w nocy nie spał, by go odzyskać, to system, którego projektowania nie skończyłem.

Druga lekcja brzmi, że prostota jest tym, co czyni odporność godną zaufania. Kuszące jest traktowanie elegancji drzewa rozpinającego – na tyle małego, by zmieścić się w wierszu – jako uroczego biograficznego szczegółu. Tak nie jest; to jest sedno. Nie można ufać mechanizmowi, że sam się naprawi, jeśli nie da się rozumować o tym, czy się zbiega, a nie da się rozumować o tym, czego nie da się utrzymać w głowie. Protokoły Perlman są odporne dlatego, że są proste, a jej podręczniki trwają, bo uczą dlaczego, a nie specyfikacji. To przeformułowało dla mnie prostotę z miłego dodatku w nośną własność poprawności. Gdy projekt staje się na tyle skomplikowany, że nie potrafię już sam siebie przekonać, że wraca do zdrowia po każdej awarii, ta złożoność nie jest wyrafinowaniem – jest błędem, którego jeszcze nie znalazłem.

FAQ

Czym jest Spanning Tree Protocol?

Spanning Tree Protocol (STP) to protokół sieciowy, wynaleziony przez Radię Perlman w 1985 roku w Digital Equipment Corporation i znormalizowany jako IEEE 802.1D, który zapobiega pętlom w mostkowanych lub przełączanych sieciach Ethernet z nadmiarowymi łączami.23 Bez niego nadmiarowe połączenia tworzą pętle, a ponieważ ramki Ethernet nie mają czasu życia, transmisja rozgłoszeniowa krąży w pętli w nieskończoność i mnoży się w burzę rozgłoszeniową (broadcast storm), która nasyca sieć. STP naprawia to automatycznie: przełączniki wybierają korzeń, każdy przełącznik zachowuje do przekazywania tylko swoją najlepszą ścieżkę w kierunku korzenia i blokuje nadmiarowe łącza, pozostawiając pojedyncze, wolne od pętli drzewo, które wciąż dociera do każdego segmentu. Gdy aktywne łącze pada, algorytm przelicza nowe drzewo i promuje zablokowane łącze zapasowe, naprawiając łączność bez ingerencji człowieka.2

Dlaczego Radia Perlman nazywana jest „Matką Internetu” i dlaczego tego nie lubi?

Perlman bywa nazywana „Matką Internetu”, ponieważ Spanning Tree Protocol oraz jej praca nad routingiem stanu łącza są fundamentem tego, jak nowoczesne sieci pozostają połączone.1 Od lat odrzuca tę etykietę, argumentując, że żadna pojedyncza osoba nie wynalazła Internetu – był on dziełem wielu ludzi i wielu technologii – i że wyróżnianie jednego wynalazcy jest zarazem nieścisłe i mylące.5 Sprzeciwiała się też upłciowionemu ujęciu, uważając, że płeć nie powinna być soczewką, przez którą patrzy się na dzieło czyjegoś życia.5

Czym jest routing odporny bizantyjsko?

Routing odporny bizantyjsko to routing zaprojektowany tak, by nadal poprawnie dostarczać pakiety nawet wtedy, gdy część routerów nie po prostu padła, lecz jest aktywnie złośliwa – porzuca ruch, kłamie o topologii sieci albo fałszuje komunikaty routingu. Był on przedmiotem rozprawy doktorskiej Perlman z MIT z 1988 roku, „Network Layer Protocols with Byzantine Robustness”.1 Rozróżnienie ma znaczenie: węzeł, który padł, jest cichy i przewidywalny, podczas gdy węzeł bizantyjski (skompromitowany) zachowuje się dowolnie i wrogo, więc protokół musi osiągnąć poprawne dostarczenie mimo uczestników próbujących go złamać. Traktowanie złośliwej awarii jako rdzennego przypadku projektowego, a nie późniejszej łaty bezpieczeństwa, to wątek przewodni pracy Perlman.1

Czym jest TRILL i jak ulepsza Spanning Tree Protocol?

TRILL („Transparent Interconnection of Lots of Links”) to protokół, który Perlman zaprojektowała jako następcę STP.6 STP zapobiega pętlom poprzez blokowanie nadmiarowych łączy, co marnuje przepustowość i może wymuszać na ruchu długie objazdy przez korzeń. TRILL stosuje zamiast tego routing stanu łącza do mostkowania: jego przełączniki, zwane RBridges, uruchamiają między sobą protokół IS-IS, aby poznać pełną topologię i obliczyć najkrótsze ścieżki, dzięki czemu „ustanawia ścieżki na wszystkich aktywnych łączach”, zamiast je wyłączać – zachowując prostotę plug-and-play mostkowania, a zarazem zyskując efektywność ścieżek i odporność routingu.6


Źródła


  1. “Radia Perlman,” Wikipedia. Born December 18, 1951, in Portsmouth, Virginia. Earned an SB and SM in mathematics and a PhD in computer science (1988) from MIT; doctoral thesis titled “Network Layer Protocols with Byzantine Robustness,” on routing that remains correct in the presence of malicious (Byzantine) failures. At MIT’s AI Lab in the early 1970s she developed TORTIS (Toddler’s Own Recursive Turtle Interpreter System), a LOGO-based system enabling very young children to program a robotic turtle. Career: BBN, then Digital Equipment Corporation (from ~1980), where she invented the spanning tree algorithm and did foundational work on DECnet and link-state routing including IS-IS; later Novell, Sun Microsystems (Sun Fellow, 40+ patents), Intel, and Dell EMC. Holds over 100 issued patents. Contributions to network security include PKI trust models and mechanisms for ephemeral/expiring data. Inducted into the Internet Hall of Fame (2014) and the National Inventors Hall of Fame (2016); ACM Fellow, IEEE Fellow, SIGCOMM and USENIX lifetime achievement awards. Has repeatedly rejected the “Mother of the Internet” nickname. 

  2. “Spanning Tree Protocol,” Wikipedia. “The first Spanning Tree Protocol was invented in 1985 at the Digital Equipment Corporation by Radia Perlman.” “The basic function of STP is to prevent bridge loops and the broadcast radiation that results from them.” The protocol elects a root bridge (lowest bridge ID = priority plus MAC address); all switches then select their best path toward the root for forwarding and block other redundant links, producing a single loop-free active topology. On a topology change, the spanning tree algorithm computes and spans a new least-cost tree, restoring connectivity. The IEEE published the first standard, IEEE 802.1D, in 1990, based on Perlman’s algorithm. 

  3. Radia Perlman, “An Algorithm for Distributed Computation of a Spanning Tree in an Extended LAN,” Proceedings of the Ninth Symposium on Data Communications (SIGCOMM ‘85), ACM, 1985, pp. 44-53 (DOI: 10.1145/319056.319004). The original paper describing the Spanning Tree Protocol: a distributed protocol by which bridges in an extended LAN of arbitrary topology compute an acyclic (loop-free) spanning subset of the network. The paper is noted as likely the only software patent on record that includes a poem. 

  4. “Algorhyme,” poem by Radia Perlman describing the Spanning Tree Protocol, reproduced in course materials including the University of Washington CSE461 archive and corroborated by the Radia Perlman Wikipedia article. Full text: “I think that I shall never see / A graph more lovely than a tree. / A tree whose crucial property / Is loop-free connectivity. / A tree that must be sure to span / So packets can reach every LAN. / First, the root must be selected. / By ID, it is elected. / Least cost paths from root are traced. / In the tree, these paths are placed. / A mesh is made by folks like me, / Then bridges find a spanning tree.” 

  5. “Intel’s Radia Perlman: Don’t Call Her ‘Mother Of The Internet’,” SiliconValleyWatcher, and “Radia Perlman: Don’t Call Me The Mother Of The Internet,” Open Health News (citing a 2014 interview with The Atlantic), corroborated by the Radia Perlman Wikipedia article. Perlman has consistently rejected the “Mother of the Internet” label, arguing that no single individual invented the Internet – it resulted from the work of many people and many technologies – and objecting to the gendered framing of the title. 

  6. “TRILL (computing),” Wikipedia. TRILL (“Transparent Interconnection of Lots of Links”) is a networking protocol, designed by Radia Perlman (inventor of its predecessor, the Spanning Tree Protocol), for optimizing bandwidth and resilience in Ethernet networks. Described as “the application of link-state routing to the VLAN-aware customer-bridging problem”: TRILL switches (RBridges) run the IS-IS link-state routing protocol among themselves to learn topology and compute shortest paths. Unlike STP, which ensures a loop-free topology by blocking active ports, TRILL “establishes paths over all active links,” enabling more efficient use of network capacity. 

  7. Radia Perlman, Interconnections: Bridges, Routers, Switches, and Internetworking Protocols (Addison-Wesley), and Charlie Kaufman, Radia Perlman, and Mike Speciner, Network Security: Private Communication in a Public World (Prentice Hall), as documented in the Radia Perlman Wikipedia article. Interconnections is a widely used reference on bridging, routing, and internetworking protocols; Network Security is a standard textbook on cryptography and network security. Both are noted for explaining the reasoning behind design choices, not merely the specifications. 

Powiązane artykuły

Filozofia inżynierii: Werner Vogels

Werner Vogels, CTO Amazona, zbudował chmurę na jednym założeniu: wszystko zawodzi nieustannie. Projektuj z myślą o awari…

18 min czytania

Filozofia inżynierska: Barbara Liskov, kontrakt jest typem

Barbara Liskov uczyniła abstrakcję danych prymitywem programistycznym: typ to kontrakt, którego dotrzymuje, a podtyp mus…

15 min czytania