Історія інтернету: ARPANET - пакет

Історія інтернету: ARPANET - пакет
Схема комп'ютерної мережі ARPA на червень 1967. Порожній кружок – комп'ютер із поділом доступу, кружок із рисою – термінал на одного користувача

Інші статті циклу:

До кінця 1966 року Роберт Тейлор на гроші ARPA запустив проект зв'язку багатьох комп'ютерів в єдину систему, надихнувшись ідеєюміжгалактичної мережі» Джозефа Карла Робнетта Ліклайдера.

Відповідальність за виконання проекту Тейлор передав у вмілі руки Ларрі Робертса. У наступному році Робертс прийняв кілька критично важливих рішень, які згодом будуть відкликатися в технічній архітектурі та культурі ARPANET та її послідовників, у деяких випадках навіть протягом кількох десятиліть. Першим рішенням по важливості, хоч і не по хронології, було визначення механізму маршрутизації повідомлень від одного комп'ютера до іншого.

проблема

Якщо комп'ютер А хоче надіслати повідомлення комп'ютеру В, як це повідомлення знайти шлях від одного до іншого? Теоретично, можна дозволити кожному вузлу мережі зв'язку спілкуватися з іншими, зв'язавши фізичними кабелями кожен вузол з кожним. Для зв'язку з комп'ютером А просто відправить повідомлення по вихідному кабелю, що з'єднує його з В. Таку мережу називають повнозв'язковою. Однак за будь-якого значного розміру мережі такий підхід швидко перетворюється на непрактичний, оскільки кількість з'єднань збільшується, як квадрат кількості вузлів (якщо бути точним, то як (n2 - n) / 2).

Тому потрібен якийсь спосіб побудови маршруту повідомлення, який після прибуття повідомлення на проміжний вузол відправляв би його далі до мети. На початку 1960-х було відомо два базові підходи до вирішення цього завдання. Перший - метод комутації повідомлень через "зберігання та передачу". Цей підхід використовувався телеграфною системою. Коли повідомлення прибувало на проміжний вузол, його тимчасово зберігали там (зазвичай у вигляді паперової стрічки), поки не з'являлася можливість передати його далі до мети, або ще один проміжний центр, що знаходиться ближче до мети.

Потім з'явився телефон, і потрібен новий підхід. Затримка за кілька хвилин після кожного висловлювання, зробленого по телефону, яке необхідно було розшифрувати та передати до місця призначення, давала б відчуття розмови з співрозмовником на Марсі. Натомість телефон використовував комутацію каналів. Той, хто дзвонив, починав кожен виклик з відправки особливого повідомлення, що означає, кому він хоче зателефонувати. Спочатку це робили, розмовляючи з оператором, а потім набираючи номер, який оброблявся автоматичним обладнанням на комутаторі. Оператор або обладнання встановлювали виділене електричне з'єднання між абонентами, що телефонували і викликаються. У разі міжміських дзвінків для цього могло знадобитися кілька ітерацій, які з'єднували дзвінок через кілька комутаторів. Після встановлення зв'язку могла початися сама розмова, і зв'язок зберігався, доки одна зі сторін не переривала її, вішаючи трубку.

Цифровий зв'язок, який було вирішено використовувати в ARPANET для з'єднання комп'ютерів, що працювали за схемою поділу часу, використовувала особливості як телеграфу, і телефону. З одного боку, повідомлення з даними передавалися в окремих пакетах як на телеграфі, а не у вигляді безперервних розмов на телефоні. Однак ці повідомлення можуть бути різного розміру для різних цілей, від консольних команд довжиною в кілька символів, до великих файлів з даними, що передаються від одного комп'ютера до іншого. Якщо файли затримувалися в дорозі, ніхто не скаржився. Але віддалена інтерактивність вимагала швидкої реакції, як із телефонному дзвінку.

Однією важливою відмінністю між комп'ютерними мережами даних з одного боку, і телефоном з телеграфом з іншого, була чутливість до помилок даних, оброблюваних машинами. Зміна або втрата при передачі одного символу в телеграмі або пропадання частини слова в телефонній розмові навряд чи могли серйозно порушити спілкування двох людей. Але якщо шум на лінії перемикав єдиний біт з 0 на 1 у команді, що відправляється на віддалений комп'ютер, це могло повністю змінити зміст команди. Тому кожне повідомлення потрібно було перевірити на наявність помилок і повторно відправити у разі їх виявлення. Такі повтори були б надто витратними для великих повідомлень, а ймовірність виникнення помилок у них була більшою, оскільки вони довше передавалися.

Вирішення цієї проблеми прийшло завдяки двом незалежним подіям, що трапилися в 1960, однак те з них, що з'явилося пізніше, було помічено першим Ларрі Робертсом та ARPA.

Зустріч

Восени 1967 року Робертс прибув до Гатлінбургу, Теннесі, через покриті лісами вершини Грейт-Смокі-Маунтінс, щоб доставити документ, який розповідає про плани ARPA з розгортання мережі. Він уже майже рік працював у бюро технологій обробки інформації (Information Processing Technology Office, IPTO), але багато подробиць проекту мережі були ще досить туманними, включаючи і вирішення проблеми маршрутизації. Окрім розмитих згадок про блоки та їх розміри, єдиним відсиланням до неї в роботі Робертса було коротке і ухильне зауваження в самому кінці: «Здається необхідним утримувати лінію зв'язку, що періодично використовується, для отримання відгуків за час від однієї десятої до однієї секунди, необхідних для інтерактивної роботи. Це дуже затратно з погляду ресурсів мережі, і якщо тільки у нас не з'явиться можливість дзвонити швидше, комутація повідомлень та концентрація стануть дуже важливими для учасників мережі». Очевидно, на той момент Робертс ще не вирішив, чи відмовлятися від використаного ним спільно з Томом Марріллом у 1965-му році підходу, тобто, з'єднання комп'ютерів через телефонну мережу, що комутується, за допомогою автонабору.

За збігом на тому ж симпозіумі була присутня й інша людина, з якою краще продуманою ідеєю вирішення проблеми маршрутизації в мережах даних. Роджер Скантлбері перетнув Атлантику, прибувши з Британської національної фізичної лабораторії British National Physical Laboratory (NPL) з доповіддю. Скантлбері відвів Робертса убік після його доповіді, і розповів йому про свою ідею комутації пакетів. Цю технологію розробив його керівник у NPL, Дональд Дейвіс. У США досягнення та історія Дейвіса відомі погано, хоча восени 1967 року група Дейвіса з NPL щонайменше на рік випереджала ARPA зі своїми ідеями.

Дейвіс, як і багато ранніх піонерів електронних комп'ютерів, за освітою був фізиком. Він випустився з Імперського коледжу в Лондоні в 1943 році в 19 років, і його відразу ж прийняли в секретну програму розробки ядерної зброї під кодовою назвою Сплави труб. Там він керував групою людей-обчислювачів, які використовували механічні та електричні калькулятори для швидкої видачі чисельних розв'язків задач, пов'язаних із ядерним синтезом (його керівником був Еміль Юліус Клаус Фукс, німецький фізик-експатріат, який на той час уже почав передавати секрети ядерної зброї в СРСР). Після війни від математика Джона Вомерслі він почув про проект, яким той керував у NPL – це було створення електронного комп'ютера, який мав виконувати ті самі обчислення з набагато більшою швидкістю. Розроблений Аланом Тюрінгом комп'ютер назвали ACE, "автоматичною обчислювальною машиною".

Девіс ухопився за цю ідею, і найнявся в NPL так швидко, як міг. Внісши внесок у докладний проект і створення комп'ютера ACE, він так і залишився глибоко залученим до області обчислювальних машин як лідер досліджень у NPL. У 1965 році трапилося так, що він був у США на професійній зустрічі, пов'язаній з його роботою, і використав цю можливість, щоб побувати на кількох великих місцях базування комп'ютерів з поділом часу, щоб подивитися, про що весь сир-бор. У британському обчислювальному середовищі поділ часу в американському сенсі інтерактивного спільного використання комп'ютера кількома користувачами не було відоме. Натомість у них поділ часу означав розподіл завантаження комп'ютера між кількома програмами пакетної обробки даних (щоб, наприклад, одна програма працювала, поки інша зайнята читанням із плівки). Потім цей варіант назвуть мультипрограмування.

Мандри Дейвіса привели його до Project MAC у MIT, JOSS Project від RAND Corporation у Каліфорнії, та до Дартмутської системи поділу часу у Нью-Гемпширі. Дорогою додому один із його колег запропонував провести семінар із спільного використання, щоб розповісти британській спільноті про нові технології, про які вони дізналися в США. Дейвіс погодився, і прийняв у себе в гостях багатьох головних постатей американської обчислювальної галузі, включаючи Фернандо Хосе Корбато (творця «сумісної системи поділу часу» в MIT) та самого Ларрі Робертса.

Під час семінару (або, можливо, відразу після) Дейвіса вразила ідея про те, що філософію поділу часу можна застосовувати і до ліній зв'язку комп'ютерів, а не лише до самих комп'ютерів. Комп'ютери з розподілом часу дають кожному користувачеві невеликий відрізок процесорного часу, а потім перемикаються на іншого, створюючи для кожного користувача ілюзію наявності в нього власного інтерактивного комп'ютера. Так само можна, розрізаючи кожне повідомлення на шматочки стандартного розміру, які Дейвіс назвав пакетами, один канал зв'язку можна розділяти між безліччю комп'ютерів або користувачів одного комп'ютера. Більше того, це вирішувало б усі аспекти передачі даних, для яких телефонні та телеграфні комутатори були погано пристосовані. Користувач, що працює з інтерактивним терміналом, що відправляє короткі команди та отримує короткі відповіді, не буде блокований передачею великого файлу, оскільки ця передача буде розбита на безліч пакетів. Будь-яке пошкодження в таких великих повідомленнях торкнеться єдиного пакета, який можна передати заново для завершення повідомлення.

Дейвіс описав свої ідеї у неопублікованій роботі від 1966 року, «Пропозиція для цифрової мережі зв'язку». У той момент найпередовіші телефонні мережі були на межі комп'ютеризації комутаторів, і Дейвіс запропонував вбудувати комутацію пакетів у телефонну мережу нового покоління, створивши єдину мережу широкосмугової зв'язку, здатну обслуговувати різні запити, від простих телефонних дзвінків до віддаленого доступу до комп'ютерів. На той час Дейвіса підвищили до керуючого NPL, і він сформував групу цифрового зв'язку під керівництвом Скантлбері, щоб реалізувати його проект і створити робочу демонстраційну версію.

За рік, що передував конференції в Гатлінбурзі, команда Скантлбері опрацювала всі деталі створення мережі з комутацією пакетів. Відмову одного вузла можна було пережити за допомогою адаптивної маршрутизації, здатної працювати з кількома шляхами до місця призначення, а відмову окремого пакета можна було вирішити повторним відправленням. Симуляція та аналіз говорили, що оптимальним розміром пакета буде 1000 байт – якщо зробити його значно меншим, то витрати пропускної спроможності ліній на метадані в заголовку будуть надто більшими, значно більшими – і час відгуку для інтерактивних користувачів занадто часто збільшуватиметься через великі повідомлення .

Історія інтернету: ARPANET - пакет
Робота Скантлбері містила такі деталі, як формат пакету.

Історія інтернету: ARPANET - пакет
…і аналіз впливу розмірів пакета на затримки у мережі.

Тим часом пошуки Дейвіса і Скантлбері призвели до розкриття докладних досліджень, зроблених іншим американцем, які прийшли до схожої ідеї за кілька років до них. Але при цьому Пол Беран, Інженер-електрик з RAND Corporation, взагалі не замислювався про потреби користувачів комп'ютерів з поділом часу. RAND був аналітичним центром, який працював на гроші міністерства оборони США в Санта-Моніці, Каліфорнія, створеним після Другої світової війни для довгострокового планування та аналізу стратегічних проблем для військових потреб. Метою Берана було віддалити ядерну війну, створивши дуже надійну військову мережу зв'язку, здатну пережити навіть великомасштабну ядерну атаку. Така мережа зробила б попереджувальний удар з боку СРСР менш привабливим, оскільки було б дуже важко зруйнувати можливість США у відповідь ударити по кількох чутливих точках. Для цього Беран запропонував систему, яка розбиває повідомлення на те, що він назвав блоками повідомлень, які можна було б незалежно передавати через мережу вузлів зв'язку з надмірною кількістю з'єднань, а потім збирати воєдино в кінцевій точці.

ARPA мав доступ до об'ємних звітів Берана для RAND, однак оскільки вони не були пов'язані з інтерактивними комп'ютерами, їх важливість для ARPANET не була очевидною. Робертс і Тейлор, зважаючи на все, так їх і не помітили. Натомість в результаті однієї випадкової зустрічі Скантлбері підніс все Робертсу на блюдечку: добре продуманий механізм комутування, застосування до завдання створення інтерактивних комп'ютерних мереж, довідкові матеріали від RAND, і навіть назва «пакет». Робота NPL теж переконала Робертса у цьому, що з організації хорошої пропускної спроможності знадобляться вищі швидкості, тому він оновив свої плани до ліній зв'язку на 50 Кбіт/с. Для створення ARPANET фундаментальну частину проблеми маршрутизації було вирішено.

Щоправда, є інша версія появи ідеї комутації пакетів. Робертс пізніше стверджував, що в нього вже були подібні думки в голові завдяки роботі його колеги, Олена Кляйнрока, який нібито описав цю концепцію ще в 1962 році, у своїй докторській дисертації з мереж зв'язку. Однак із цієї роботи неймовірно складно витягти подібну ідею, і до того ж жодних інших підтверджень цієї версії знайти не зміг.

Мережі, яких не було

Як ми бачимо, аж дві команди випередили ARPA у питанні розробки комутації пакетів, технології, яка виявилася настільки ефективною, що зараз вона лежить в основі практично всіх комунікацій. Чому ж ARPANET стала першою значущою мережею, яка її використовувала?

Вся справа в організаційних тонкощах. ARPA не мав офіційного дозволу на створення мережі зв'язку, проте була велика кількість вже наявних дослідницьких центрів зі своїми комп'ютерами, культура «вільних» звичаїв, за якою практично ніхто не доглядав, і цілі гори грошей. Початковий запит Тейлора від 1966 року на кошти для створення ARPANET озвучив цифру $1 мільйон, і Робертс продовжував витрачати по стільки щороку з 1969 і далі для створення та роботи цієї мережі. При цьому для ARPA такі гроші були дрібницею, тому ніхто з його начальників не переймався тим, що Робертс з ними робить, поки це можна було хоч якось притягнути до потреб національної оборони.

Беран у RAND не мав ні можливостей, ні авторитету для того, щоб щось зробити. Його робота була суто дослідницької та аналітичної, і її можна було за бажання застосувати до оборони. У 1965 RAND справді порекомендував його систему ВПС, і ті погодилися з життєздатністю проекту. Але його реалізація лягла на плечі агентства оборонних комунікацій, а там не особливо зналися на цифровому зв'язку. Беран переконав начальство в RAND, що цю пропозицію краще буде забрати, ніж дозволити реалізувати її аби як, і занапастити репутацію розподіленого цифрового зв'язку.

Дейвіс як керівник NPL мав куди як більшу владу, ніж Беран, але більш обмежений бюджет, ніж у ARPA, і він не мав готової соціальної та технічної мережі з дослідницьких комп'ютерів. Йому вдалося створити прототип місцевої мережі з комутацією пакетів (там був лише один вузол, але багато терміналів) у NPL наприкінці 1960-х, зі скромним бюджетом у £120 000 за три роки. ARPANET витрачала приблизно половину цієї суми щорічно на функціонування та обслуговування на кожному з безлічі вузлів мережі, за винятком початкових інвестицій у залізо та софт. Організацією, здатною створити великомасштабну британську мережу з комутацією пакетів, була британська пошта, яка завідувала мережами телекомунікацій у країні, крім безпосередньо поштового зв'язку. Дейвісу вдалося зацікавити кілька впливових чиновників своїми ідеями про об'єднану цифрову мережу національного масштабу, але змінити напрямок руху такої величезної системи було не в його силах.

Ліклайдер же, комбінуючи удачу та планування, знайшов чудову теплицю, де могла б розцвісти його міжгалактична мережа. При цьому не можна стверджувати, що все, окрім комутації пакетів, упиралося у гроші. Грало роль та виконання ідеї. Більше того, дух ARPANET визначили кілька інших важливих рішень на стадії проектування. Тому далі ми розглянемо, як відповідальність розподілялася між комп'ютерами, що відправляли і приймали повідомлення, і мережею, якою вони надсилали ці повідомлення.

Що ще почитати

  • Janet Abbate, Inventing the Internet (1999)
  • Katie Hafner and Matthew Lyon, Where Wizards Stay Up Late (1996)
  • Leonard Kleinrock, “An Early History of the Internet,” IEEE Communications Magazine (August 2010)
  • Arthur Norberg and Julie O'Neill, Transforming Computer Technology: Information Processing for the Pentagon, 1962-1986 (1996)
  • M. Mitchell Waldrop, The Dream Machine: JCR Licklider і Revolution That Made Computing Personal (2001)

Джерело: habr.com

Додати коментар або відгук