Нові книги

В останньому столітті залізниці революціонізували світ, забезпечивши транспортну мережу, яка переміщала матеріали та продукти виробництва. Вони уможливили індустріальне суспільство. Цифрові комунікаційні мережі ознаменували початок нової революції, забезпечивши технологію, яка транспортує дані, потрібні суспільству, у якому інформація відіграє ключову роль. Мережі вже проникли у промисловість, освіту та уряд. Вони вже почали змінювати наше уявлення про світ, скоротивши географічні відстані та утворивши нові спільноти людей, які часто взаємодіють. Ще важливіше те, що зростання кількості мереж має характер вибуху. Революція вже розпочалася.

Щоб розуміти мережевий обмін і коло питань, що розглядаються в книзі, важливо уявляти, що мережеві дослідження та розробки пройшли через три стадії розвитку. До 1960 року, основним питанням був "Як передавати біти по середовищу комунікації ефективно та надійно?". Результати включають розробку теорії інформації, теореми Котельникова та інших ідей, які разом називають обробкою сигналів. Від початку і до середини 60-х увага була сконцентрована на пакетній комутації і основним питанням став: "Як передавати пакети серед комунікації ефективно і надійно?" . Результатами цього етапу стали розробка технологій пакетної комутації, локальних обчислювальних мереж та статистичний аналіз часу передачі пакетів через мережу залежно від завантаження. Приблизно з середини 70-х і до сьогодні найголовнішим напрямом стали мережеві архітектури та питання "Як забезпечити засоби взаємодії взаємопов'язаних мереж?". Результатами останнього етапу стала розробка технологій міжмережевого обміну, багаторівневих моделей протоколів, дейтаграмних та потокових транспортнихзасобів та парадигми взаємодії клієнт-сервер.

Багато книг і курсів мереж основну частину матеріалу присвячують першим двом стадіям мережевих досліджень, описуючи добре відомі теорії передачі і масового обслуговування. Хоча така інформація і важлива для інженерів, які проектують мережеві технології та обладнання, більшість тих, хто працює з мережами, використовує куплене мережеве обладнання. Замість детальних знань про те, як біти або пакети передаються серед передачі інформації, їм потрібно знати, як взаємодіє таке обладнання і як використовувати вже наявні системи.

Моя книга присвячена третій стадії мережевих досліджень. Вона розглядає архітектуру взаємопов'язаних мереж та пояснює принципи та протоколи, які дозволяють функціонувати таким взаємопов'язаним архітектурам як одна єдина комунікаційна система. Більше того, вона показує, як взаємопов'язані архітектури можна використовувати для розподілених обчислень. Вся книга присвячена поняття міжмережевого обміну в загальному та технології Інтернету TCP/IP зокрема. Міжмережевий обмін - це потужна абстракція, яка дозволяє нам оперувати з кількома комунікаційними технологіями, що лежать у його основі. Вона приховує деталі мережного обладнання та забезпечує високорівневе середовище взаємодії. Як показує ця книга, кінцевою метою міжмережевого обміну є максимальна взаємна працездатність, тобто максимальна здатність програм на різних комп'ютерах та мережевих системах взаємодіяти надійно та ефективно.

Ця книга розглядає як архітектуру мережевих взаємодій, так і міжмережевих комунікаційних засобів і протоколів, необхідних для забезпечення цих коштів. До кінця цієї книги читач розумітиме, як можливе взаємне з'єднаннядекількох фізичних мереж в одну координовану систему, як міжмережові протоколи працюють у такому середовищі, і як прикладні програми використовують систему, що вийшла. Як конкретний приклад читач дізнається деталі Зв'язаного (TCP/IP) Інтернету, включаючи архітектуру систем шлюзів та прикладні протоколи, які вони підтримують. Крім того, ця книга розглядає деякі обмеження міжмережевого підходу.

Написання книги про міжмережевий обмін є як захоплюючим, так і таким, що вимагає уваги. Воно вимагає бути точним, тому що, як і в будь-якій області, що швидко розвивається, нічого не є стабільним. Воно захоплює, оскільки Інтернет TCP/IP - це активна, сутність, що швидко розширюється. Дослідники, які працюють над ним, постійно генерують нові ідеї та його можливості здаються нескінченними. Якщо подивитися на історію TCP/IP та еволюцію Інтернету, то стає ясно, що багато вже доведено до кінця. Знаючи, що дослідження ведуться трохи більше десятиліття, розумієш, як швидко все це було зроблено.

Розроблена як підручник, і як професійний довідник, ця книга написана на рівні випускника інституту. Для професіоналів ця книга дасть просте введення в технологію TCP/IP та архітектуру Інтернету. Хоча, вона й не замінює собою протоколи, книга є гарним початком під час навчання міжмережевого обміну, оскільки він дає повний огляд його принципів. Понад те, вона дає читачеві напрями розвитку, що дуже важко зробити, працюючи з окремими протоколами.

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

Випускникам інститутів слід використовувати викладений тут матеріал як основу подальшого вивчення сучасних досліджень. Вони повинні розуміти його досить добре, щоб відповідати на запитання та вирішувати завдання, що вимагають від них вивчення питання на глибшому рівні. Багато вправ припускають вивчення тонкощів питання; рішення їх часто вимагає від студента читання протоколів та застосування розуму для виведення відповіді. На всіх рівнях практичний досвід допомагає студентам посилити інтуїцію. Тому я пропоную викладачам вигадувати проекти, які змусять студентів використовувати міжмережні засоби та протоколи. Хоча такі експерименти найбезпечніше проводити, коли лабораторна мережа ізольована від основних обчислювальних засобів, було встановлено, що студенти виявляють найбільший ентузіазм, і як наслідок найкращі результати, коли вони мають доступ до реального Інтернету TCP/IP.

Ці глави організовані за принципом знизу нагору. Вони починають із розгляду обладнання та продовжують, описуючи нові можливості на основі старих. Такий підхід знайомий будь-кому, хто розробляв програмне забезпечення Інтернету, оскільки повторює підхід, який він використовував під час реалізації. Поняття багаторівневості не з'явиться до глави 10. Розгляд рівнів підкреслює різницю між концептуальними рівнями і реальним багаторівневим програмним забезпеченням у якому кожному рівні можуть бути велика кількість об'єктів.

Хоча і важко опустити будь-який розділ повністю, викладач виявить, що студенти часто задовольняються знанням того, що щось можливо, не знаючи, як це можливо. Наприклад, можнапройти глави 5, 6 та 9, розглянувши тільки можливості та опустивши деталі протоколів. Крім того, кілька розділів (особливо 16) містять інженерні технології, які можуть бути пропущені задля збереження часу.

Для розуміння матеріалу потрібно дуже небагато знань. Очікується, що читач вміє програмувати мовою високого рівня та знайомий з основними базовими структурами, такими як стеки, черги та дерева. Читачеві потрібно розуміння принципів організації програмного забезпечення в операційних системах, що підтримують багатозадачність. Читачеві не потрібно бути математиком-професіоналом, а потрібно лише знати теорію інформації або теореми з теорії передачі даних ця книга описує фізичну мережу як чорну скриньку, на основі якої може бути побудований Інтернет. Принципи розробки описуються українською мовою, а також наводяться причини та наслідки.

Багато людей зробило свій внесок у створення цієї книги. Я дякую Scott Ballew, Steve Chapin, Jim Griffioen, Chris Kent, Tim Korb, Dan Lynch, Thomas Narten, Vic Norman, Shawn Ostermann, John Steele, Mike StJohns, Dan Tormey, Ray Yavatkar та Preston Wilson, які читали рукопис і зробили ряд цінних зауважень. Craig Partridge зробив багато пропозицій, включаючи вправи і виправив кілька технічних помилок. Він та Van Jacobson запропонували граф затримок при передачі даних через Інтернет у розділі 12. Dave Stevens вніс як технічні, так і граматичні покращення у друге видання. Barry Shein дозволив мені використовувати як приклад код для UNIX клієнта та сервера у додатку 1. Charlotte Tubis сильно допомогла при редагуванні книги. Особлива подяка моїй дружині, Chris, яка читала текст безліч разів і внесла багато пропозицій.