James Kurose, Keith Ross

Sieci komputerowe

Ujęcie całościowe

Wydanie VII

Tytuł oryginału: Computer Networking: A Top-Down Approach (7th Edition)

Tłumaczenie: Tomasz Walczak

ISBN: 978-83-289-2936-4

Authorized translation from the English language edition, entitled: COMPUTER NETWORKING: A TOP-DOWN APPROACH, Seventh Edition; ISBN 0133594149; by James F. Kurose; and by Keith W. Ross; published by Pearson Education, Inc.

Copyright © 2017, 2013, 2010 Pearson Education, Inc.

All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from Pearson Education, Inc.

Polish language edition published by HELION S.A. Copyright © 2019, 2023, 2025.

Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji.

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.

Autor oraz wydawca dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz wydawca nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce.

HELION S.A.
ul. Kościuszki 1c, 44-100 GLIWICE
tel. 32 230 98 63
e-mail: helion@helion.pl
WWW: https://helion.pl (księgarnia internetowa, katalog książek)

Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
https://helion.pl/user/opinie/sie7vv_ebook
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.

Dodatkowe materiały do książki można znaleźć pod adresem:

https://ftp.helion.pl/przyklady/sie7vv.zip

- Kup w wersji papierowej

- Poleć książkę na Facebook.com

- Oceń książkę

- Księgarnia internetowa

- Lubię to! » Nasza społeczność

Dla Julie i naszych trzech skarbów
— Chrisa, Charliego i Niny.

JFK

Składam gorące PODZIĘKOWANIA
moim nauczycielom, współpracownikom
i uczniom z całego świata.

KWR

O autorach

Jim Kurose

Jim Kurose jest profesorem informatyki z tytułem Distinguished University Professor na Uniwersytecie stanu Massachusetts znajdującym się w Amherst. Obecnie przebywa na urlopie z Uniwersytetu stanu Massachusetts i piastuje stanowisko zastępcy dyrektora w US National Science Foundation, gdzie kieruje jednostką Directorate of Computer and Information Science and Engineering.

Doktor Kurose kilka razy został doceniony za swoje dokonania związane z edukacją. Otrzymał nagrodę Outstanding Teacher Award od takich uczelni jak National Technological University (ośmiokrotnie) i Uniwersytet stanu Massachusetts, a także od organizacji Northeast Association of Graduate Schools. Uzyskał też odznaczenie IEEE Taylor Booth Education Medal i został doceniony za kierowanie programem Commonwealth Information Technology Initiative realizowanym przez Uniwersytet stanu Massachusett. Otrzymał też kilka wyróżnień za najlepsze prace na sympozjach oraz nagrody Achievement Award na konferencji IEEE Infocom i Test of Time Award na konferencji ACM Sigcomm.

Doktor Kurose jest byłym redaktorem naczelnym czasopism „IEEE Transactions on Communications” i „IEEE/ACM Transactions on Networking”. Przez kilka lat Jim Kurose pełnił w rolę współprzewodniczącego odpowiedzialnego za część techniczną konferencji IEEE Infocom, ACM SIGCOMM, ACM Internet Measurement Conference i ACM SIGMETRICS. Jim jest członkiem organizacji IEEE i ACM. Zakres wykonywanych przez niego badań obejmuje protokoły i architekturę sieciową, pomiary sieciowe, komunikację multimedialną, a także modelowanie i określanie wydajności. Jim uzyskał tytuł doktora informatyki na Columbia University w Nowym Jorku.

Keith Ross

Keith Ross jest dziekanem instytutu Inżynierii i Informatyki na uczelni NYU Shanghai i zajmuje stanowisko Leonard J. Shustek Chair Professor w instytucie Inżynierii i Informatyki na uczelni NYU. Wcześniej pracował na Uniwersytecie stanu Pensylwania (przez 13 lat), w Eurecom Institute (przez 5 lat) i na uczelni Polytechnic University (przez 10 lat). Był też założycielem i pierwszym CEO firmy Wimba, rozwijającej internetowe aplikacje multimedialne do e-learningu (w 2010 r. Wimba została przejęta przez Blackboard).

Zainteresowania badawcze profesora Rossa dotyczą prywatności, sieci społecznościowych, sieci P2P, pomiarów sieciowych, sieci dystrybucji treści i modelowania stochastycznego. Ross należy do organizacji ACM i IEEE. W 2009 r. otrzymał nagrodę za najlepszą pracę na konferencji Infocom, a w 2008 i 2011 r. nagrodę za najlepszą pracę z obszaru komunikacji multimedialnej (przyznawaną przez IEEE Communications Society). Był członkiem wielu redakcji magazynów naukowych i komitetów odpowiedzialnych za programy konferencji.

Współpracował też przy tworzeniu programów konferencji, takich jak EEE/ACM Transactions on Networking, ACM SIGCOMM, ACM CoNext i ACM Internet Measurement

Conference. Ponadto był doradcą Federalnej Komisji Handlu w zakresie udostępniania plików w sieciach P2P.

Przedmowa

Witaj w siódmym wydaniu książki Sieci komputerowe. Ujęcie całościowe. Od czasu pojawienia się 16 lat temu pierwszego wydania książka została zaaprobowana do użycia przez setki szkół średnich i uczelni wyższych, przetłumaczona na 14 języków, a także była używana przez ponad sto tysięcy studentów i praktyków z całego świata. Od mnóstwa Czytelników otrzymaliśmy pozytywny odzew.

Co nowego znajduje się w wydaniu siódmym?

Uważamy, że jednym z ważnych powodów sukcesu tej książki jest to, że przedstawia świeże i aktualne podejście do sieci komputerowych. W wydaniu siódmym wprowadziliśmy pewne modyfikacje, ale pozostawiliśmy bez zmian najważniejsze aspekty tej książki (według nas, a także wykładowców i studentów korzystających z tej pozycji): podejście „od góry do dołu”, koncentrację na internecie, współczesne traktowanie sieci komputerowych z uwzględnieniem zasad i praktyki, a także nastawienie na uczenie o sieciach komputerowych. Mimo to wydanie siódme zostało poprawione i znacząco zaktualizowane.

Czytelnicy wielu wcześniejszych wydań zauważą, że po raz pierwszy od momentu opublikowania tej książki zmieniliśmy układ rozdziałów. Warstwa sieciowa, wcześniej omawiana w jednym rozdziale, jest obecnie opisana w rozdziałach 4. (poświęconym „aspektowi danych” warstwy sieciowej) i 5. (dotyczącym „aspektu sterowania” warstwy sieciowej). To wzbogacone omówienie warstwy sieciowej odzwierciedla szybki wzrost znaczenia sieci SDN (ang. software-defined networking), które można uznać za najważniejsze i najbardziej ekscytujące osiągnięcie w dziedzinie sieci od dziesięcioleci. Choć sieci SDN są stosunkowo nowym wynalazkiem, błyskawicznie znalazły zastosowania w praktyce — w takim stopniu, że już teraz trudno wyobrazić sobie wprowadzenie do nowoczesnych sieci komputerowych bez omówienia takich sieci. Zarządzanie siecią, wcześniej przedstawiane w rozdziale 9., obecnie zostało włączone w nowy rozdział 5. Jak zawsze zaktualizowaliśmy też wiele innych fragmentów tekstu, aby uwzględnić ostatnie nowości w zmiennej dziedzinie sieci komputerowych, jakie pojawiły się od publikacji wydania szóstego. Jak zwykle materiał usunięty z drukowanej wersji znajdziesz w poświęconej książce witrynie. Oto najważniejsze poprawki:

- Rozdział 1. został zaktualizowany pod kątem ciągle rosnącego zasięgu i listy zastosowań internetu.

- Rozdział 2., gdzie opisano warstwę aplikacji, został znacząco zaktualizowany. Usunęliśmy fragmenty dotyczące protokołu FTP i rozproszonych tablic z haszowaniem, aby zrobić miejsce na nowy punkt o strumieniowaniu wideo na poziomie aplikacji i sieciach CDN oraz na studia przypadku opisujące serwisy Netflix i YouTube. Punkty dotyczące programowania gniazd zostały zaktualizowane z wersji Python 2 do Python 3.

- Rozdział 3., poświęcony warstwie transportowej, został zaktualizowany w niewielkim stopniu. Fragmenty dotyczące sieci ATM (ang. asynchronous transport mode) zostały zastąpione bardziej aktualnym, choć ilustrującym te same zasady tekstem na temat powiadomień ECN (ang. explicit congestion notification) w internecie.

- W rozdziale 4. opisany jest aspekt danych warstwy sieciowej — mechanizm przekazywania danych w routerze, określający, jak pakiet trafiający do jednego z połączeń wejściowych jest przekazywany do jednego z połączeń wyjściowych tego routera. Zaktualizowaliśmy występujący we wszystkich wcześniejszych wydaniach materiał poświęcony tradycyjnemu przekazywaniu danych w internecie i dodaliśmy fragmenty na temat szeregowania pakietów. Dodaliśmy też nowy punkt na temat uogólnionego przekazywania w formie stosowanej w sieciach SDN. W tym rozdziale znajduje się też wiele innych zmian. Materiał poświęcony rozsyłaniu i rozgłaszaniu został usunięty, aby zapewnić miejsce na nowe informacje.

- W rozdziale 5. opisano mechanizmy z zakresu sterowania warstwy sieciowej — działającą na poziomie sieci logikę kontrolującą, jak datagram jest przesyłany na ścieżce routerów między punktami końcowymi od hosta źródłowego do docelowego. Podobnie jak w poprzednich wydaniach przedstawiamy algorytmy i protokoły routingu (ze zaktualizowanym omówieniem protokołu BGP) stosowane obecnie w internecie. Dodaliśmy ważny nowy punkt dotyczący aspektu sterowania w sieciach SDN, gdzie routing i inne mechanizmy są zaimplementowane w formie kontrolerów SDN.

- Rozdział 6. obecnie opisuje warstwę łącza danych i zawiera zaktualizowane omówienie Ethernetu oraz sieci w centrach danych.

- Rozdział 7., poświęcony sieciom bezprzewodowym i komórkowym, obejmuje zaktualizowane informacje o sieciach 802.11 (tzw. Wi-Fi) i komórkowych, w tym 4G i LTE.

- Rozdział 8. opisuje zabezpieczenia sieciowe i został w dużym stopniu zaktualizowany w wydaniu szóstym. W wydaniu siódmym pojawiły się tylko niewielkie zmiany.

- Rozdział 9., dotyczący przesyłu multimediów w sieciach, został w wydaniu siódmym nieco „odchudzony”, ponieważ fragmenty poświęcone strumieniowaniu wideo i sieciom CDN zostały przeniesione do rozdziału 2., a omówienie szeregowania pakietów znalazło się w rozdziale 4.

- Dodane zostały też nowe ważne fragmenty dotyczące problemów prezentowanych w końcowej części rozdziałów. Podobnie jak we wszystkich wcześniejszych wydaniach, tak i tu niektóre zadania domowe zostały poprawione, dodane lub usunięte.

Naszym celem w trakcie tworzenia tego nowego wydania było — jak zawsze — przedstawienie konkretnego i nowoczesnego obrazu sieci komputerowych z naciskiem na zasady i praktykę.

Dla kogo jest ta książka?

Książka jest przeznaczona dla osób uczęszczających na wykłady wprowadzające w zagadnienia dotyczące sieci komputerowych. Może być wykorzystywana zarówno na wydziałach informatycznych, jak i inżynierii elektrycznej. Jeśli chodzi o języki programowania, w książce przyjęto, że Czytelnik dysponuje doświadczeniem z zakresu języków C, C++, Javy lub Pythona (wystarczy nawet znajomość tylko wybranych zagadnień). Choć książka jest bardziej precyzyjna i analityczna niż wiele innych publikacji wprowadzających w zagadnienia dotyczące sieci komputerowych, rzadko stosuje się w niej matematyczne pojęcia, których nie obejmuje zakres szkoły średniej. Postaraliśmy się, aby w książce nie było zaawansowanych obliczeń, a także pojęć z zakresu prawdopodobieństwa lub stochastyki (choć dołączyliśmy kilka problemów do rozwiązania dla zaawansowanych Czytelników). Zatem książka jest odpowiednia dla studentów studiów pierwszego stopnia i pierwszego roku studiów drugiego stopnia. Powinna też być przydatna dla osób pracujących w branży telekomunikacyjnej.

Czym książka się wyróżnia?

Tematyka związana z sieciami komputerowymi jest wyjątkowo złożona, a także uwzględnia wiele pojęć, protokołów i technologii, które w zawiły sposób są ze sobą powiązane. Aby poradzić sobie z tymi zagadnieniami i ich złożonością, wiele książek poświęconych sieciom komputerowym często jest organizowanych w oparciu o warstwy architektury sieciowej. Dzięki takiemu rozwiązaniu Czytelnicy mogą poradzić sobie ze złożonością sieci komputerowych. Czytelnik zdobywa wiedzę na temat różnych pojęć i protokołów jednej z warstw architektury i jednocześnie ma wgląd w ogólny obraz pokazujący, jak są do siebie dopasowane wszystkie warstwy. Patrząc na to z pedagogicznego punktu widzenia, na podstawie własnego doświadczenia możemy stwierdzić, że organizowanie książki w ten sposób jest naprawdę szczególnie wskazane. Niemniej jednak uznaliśmy, że tradycyjny sposób uczenia, polegający na poznawaniu warstw „od dołu do góry” (począwszy od warstwy fizycznej, a skończywszy na warstwie aplikacji) nie jest najlepszy w przypadku nowoczesnego kursu dotyczącego sieci komputerowych.

Ujęcie całościowe — metoda „od góry do dołu”

Szesnaście lat temu nasza książka wprowadziła nowy sposób omawiania sieci komputerowych, „od góry do dołu”, w którym najpierw prezentowana jest warstwa aplikacji, a następnie kolejne znajdujące się niżej warstwy aż do warstwy fizycznej. Informacje zwrotne, które otrzymaliśmy zarówno od wykładowców, jak i od studentów, utwierdziły nas w przekonaniu, że metoda „od góry do dołu” ma wiele zalet i dobrze sprawdza się w nauczaniu. Po pierwsze, zwraca szczególną uwagę na warstwę aplikacji, która spośród wszystkich warstw cechuje się największym tempem rozwoju. W istocie, wiele z ostatnich rewolucji, które zaszły w przypadku sieci komputerowych (na przykład technologia WWW, wymiana plików w sieciach P2P i transmisja strumieniowa danych multimedialnych), dotyczy warstwy aplikacji. Sposób przedstawienia w pierwszej kolejności kwestii związanych z warstwą aplikacji różni się od metod zastosowanych w większości innych książek, które w niewielkim zakresie przedstawiają aplikacje sieciowe, ich wymagania i architektury (na przykład klient-serwer i P2P), a także interfejsy programowania aplikacji. Po drugie, na podstawie doświadczenia własnego i wielu instruktorów, którzy korzystali z książki, wiemy, że przekazywanie wiedzy na temat aplikacji sieciowych prawie na samym początku kursu jest silnym narzędziem motywacyjnym. Studenci chętnie chcą się dowiedzieć, jak działają aplikacje sieciowe, takie jak poczta elektroniczna i technologia WWW, z których korzystają na co dzień. Gdy student zrozumie aplikacje, będzie w stanie opanować materiał z zakresu usług sieciowych, które muszą obsługiwać aplikacje. W dalszej kolejności student może zapoznać się z różnymi metodami świadczenia i implementowania tych usług za pomocą niżej znajdujących się warstw. A zatem wcześniejsze omówienie aplikacji stanowi motywację do zapoznania się z resztą materiału.

Po trzecie, metoda „od góry do dołu” umożliwia instruktorom zaprezentowanie w początkowym etapie podstawowych informacji na temat projektowania aplikacji sieciowych. Studenci nie tylko dowiedzą się, jak funkcjonują popularne aplikacje i protokoły, ale też przekonają się, jak proste jest stworzenie własnych aplikacji sieciowych i protokołów warstwy aplikacji. W przypadku metody „od góry do dołu” studenci na początku są informowani o programowaniu gniazd, modelach usług i protokołach, czyli istotnych zagadnieniach, które pojawiają się przy omawianiu wszystkich kolejnych warstw. Podając przykłady programowania gniazd za pomocą języka Python, zwracamy uwagę na główne pojęcia bez zmuszania studentów do zapoznawania się ze złożonym kodem. Studenci pierwszego roku informatyki i inżynierii elektrycznej nie powinni mieć problemu z analizą kodu źródłowego utworzonego w języku Python.

Skoncentrowanie się na internecie

Choć już w wydaniu czwartym usunęliśmy człon „z uwzględnieniem internetu” z tytułu książki, nie oznacza to, że zrezygnowaliśmy z nacisku na internet. Nic podobnego! Ponieważ internet stał się tak wszechobecny, uznaliśmy, że w każdej książce na temat sieci trzeba poświęcić mu wiele uwagi. Przy omawianiu podstawowych zagadnień z zakresu sieci komputerowych korzystamy z architektury i protokołów internetowych. Oczywiście uwzględniliśmy również pojęcia i protokoły związane z innymi architekturami sieciowymi. Jednak w centrum uwagi bez wątpienia jest internet. Potwierdza to sposób zorganizowania książki w oparciu o 5-warstwową architekturę internetu złożoną z warstwy aplikacji, transportowej, sieci, łącza danych i fizycznej.

Kolejną zaletą skoncentrowania się na internecie jest to, że większość studentów informatyki i inżynierii elektrycznej z wielką ochotą chce zdobywać wiedzę na temat internetu i jego protokołów. Mają świadomość tego, że internet jest rewolucyjną i przełomową technologią, która mocno zmienia otaczający nas świat. Biorąc pod uwagę ogromną popularność internetu, studenci są oczywiście ciekawi, co kryje się „w środku”. A zatem instruktor z łatwością może zainteresować studentów teoretycznymi podstawami, gdy internet znajdzie się w centrum uwagi.

Uwzględnienie podstaw

Dwie cechy wyróżniające książkę, czyli metodę „od góry do dołu” i skoncentrowanie się na internecie, uwidoczniono w jej tytule. Jeśli w tytule moglibyśmy pomieścić trzecią frazę, zawierałaby słowo zasady. Obecnie dziedzina związana z sieciami jest na tyle dojrzała, że można określić kilka istotnych fundamentalnych zagadnień. Przykładowo, w przypadku warstwy transportowej są to takie zagadnienia jak niezawodna komunikacja za pośrednictwem zawodnej warstwy sieci, nawiązywanie i kończenie połączenia, negocjowanie parametrów połączenia, kontrola przepływu i przeciążenia, a także multipleksowanie. Do trzech podstawowych zagadnień związanych z warstwą sieci należy zaliczyć wyznaczanie „dobrych” ścieżek między routerami, łączenie dużej liczby sieci heterogenicznych i radzenie sobie ze złożonością nowoczesnych sieci. W przypadku warstwy łącza danych fundamentalnym problemem jest współużytkowanie kanału wielodostępowego. W obszarze bezpieczeństwa wszystkie metody zabezpieczania sieci mające zapewnić poufność, uwierzytelnianie i integralność komunikatów są oparte na fundamentach kryptograficznych. W książce zidentyfikowano podstawowe problemy sieciowe i przedstawiono metody pozwalające je rozwiązać. Czytelnik, który zapozna się z podstawami, zdobędzie wiedzę przydatną przez długi czas. Gdy obecnie stosowane standardy i protokoły sieciowe staną się już zupełnie nieaktualne, podstawy, które uwzględniają, nadal pozostaną ważne i adekwatne. Wierzymy, że użycie internetu w celu wprowadzenia Czytelnika w tematykę oraz zwrócenie szczególnej uwagi na fundamentalne zagadnienia i metody rozwiązywania problemów pozwolą Czytelnikowi szybko zrozumieć niemal każdą technologię sieciową.

Elementy pedagogiczne

Od ponad 30 lat przekazujemy wiedzę z zakresu sieci komputerowych. Książka jest efektem w sumie ponad 60-letniego doświadczenia pedagogicznego. W tym czasie uczyliśmy wiele tysięcy studentów, a ponadto aktywnie prowadziliśmy badania w zakresie sieci komputerowych (po raz pierwszy Jim i Keith spotkali się w 1979 r. na Uniwersytecie stanu Columbia jako studenci uczęszczający na zajęcia z sieci komputerowych prowadzone przez Mischę Schwartza). Uważamy, że dzięki temu możemy właściwie stwierdzić, jak sieci komputerowe prezentowały się w przeszłości i jak prawdopodobnie będą wyglądać w przyszłości. Niemniej jednak oparliśmy się pokusom zaprezentowania w książce materiału powiązanego z naszymi własnymi ulubionymi projektami badawczymi. Uznaliśmy, że jeśli Czytelnik jest zainteresowany, czym się zajmujemy, może zajrzeć na nasze prywatne strony internetowe. A zatem książka jest poświęcona nowoczesnym sieciom komputerowym. Traktuje o aktualnie stosowanych protokołach i technologiach, a także powiązanych z nimi podstawach. Wierzymy, że zdobywanie (i przekazywanie!) wiedzy może być przyjemnym doświadczeniem. Mamy nadzieję, że poczucie humoru, zastosowanie analogii i przykłady ze świata rzeczywistego zamieszczone w książce sprawią, że zawarty w niej materiał będzie bardziej zabawny.

Powiązania rozdziałów

W pierwszym rozdziale książki dokonano zamkniętego przeglądu sieci komputerowych. Zaprezentowanie w tym rozdziale kluczowych pojęć i terminów stanowi przygotowanie do lektury reszty książki. Pozostałe rozdziały są bezpośrednio zależne od pierwszego. Zalecamy, aby po przeczytaniu rozdziału 1. wykładowcy kolejno przekazywali zawartość rozdziałów od 2. do 6. W ten sposób uczenie będzie zgodne z metodą „od góry do dołu”. Każdy z tych pięciu rozdziałów wykorzystuje materiał z poprzednich rozdziałów. Po przerobieniu pierwszych sześciu rozdziałów wykładowca może pozwolić sobie na większą swobodę. Trzy ostatnie rozdziały nie są od siebie zależne, dlatego można z nich korzystać w dowolnej kolejności. Jednak każdy z ostatnich trzech rozdziałów jest zależny od materiału zamieszczonego w pierwszych sześciu rozdziałach. Wielu wykładowców przerabia najpierw materiał pierwszych sześć rozdziałów, a następnie na deser zostawia sobie jeden z ostatnich trzech rozdziałów.

Ostatnia uwaga — liczymy na odzew ze strony Czytelników

Ponadto zachęcamy studentów i wykładowców do wysyłania do nas za pośrednictwem poczty elektronicznej wszelkich komentarzy dotyczących książki. Wspaniałą rzeczą było dla nas zapoznanie się z opiniami na temat pierwszych sześciu wydań, przesłanymi nam przez tak wielu wykładowców i studentów z całego świata. Namawiamy też nauczycieli do przesyłania nam nowych problemów wraz z ich rozwiązaniami, które będą stanowiły uzupełnienie problemów opracowanych przez nas. Nadesłane problemy zamieścimy w sekcji strony internetowej przeznaczonej tylko dla instruktorów. Ponadto zachęcamy wykładowców i studentów do tworzenia nowych interaktywnych animacji, które ilustrują pojęcia i protokoły zaprezentowane w książce. Jeśli Czytelnik dysponuje animacją, która według niego byłaby odpowiednia w przypadku tej książki, prosimy o jej udostępnienie. Jeżeli animacja jest właściwa (również pod względem oznaczeń i terminologii), chętnie zamieścimy ją na stronie internetowej poświęconej książce wraz z odpowiednimi danymi pozwalającymi skontaktować się z autorem animacji.

A więc piszcie do nas. Prosimy, aby nadal wysyłać do nas interesujące adresy URL, a także powiadamiać o literówkach, nie zgadzać się z dowolnym z naszych stwierdzeń i informować o tym, co działa, a co nie. Czytelników prosimy o podzielenie się z nami swoimi opiniami na temat tego, co w kolejnym wydaniu książki powinno się znaleźć, a co nie. Wiadomości pocztowe należy wysyłać pod adresy: kurose@cs.umass.edu i keithwross@nyu.edu.

Podziękowania

Od czasu, gdy w 1996 r. zaczęliśmy pisać pierwsze wydanie książki, wiele osób udzieliło nam bezcennej pomocy i miało wpływ na nasze przemyślenia dotyczące jak najlepszego zorganizowania kursu z zakresu technologii sieciowych. Składamy wyrazy WIELKIEJ WDZIĘCZNOŚCI dla każdego, kto nam pomógł nam w pracy od pierwszych rękopisów tej książki do jej siódmego wydania. Jesteśmy też bardzo wdzięczni setkom Czytelników z całego świata — studentom, pracownikom naukowym i praktykom, którzy przesłali nam własne przemyślenia i komentarze dotyczące poprzednich wydań książki, a także sugestie związane z jej kolejnymi wydaniami. Oto lista osób, którym należą się specjalne podziękowania:

Al Aho (Columbia University)

Hisham Al-Mubaid (Uniwersytet Houston-Clear Lake)

Pratima Akkunoor (Uniwersytet stanu Arizona)

Paul Amer (Uniwersytet stanu Delaware)

Shamiul Azom (Uniwersytet stanu Arizona)

Lichun Bao (Uniwersytet Kalifornijski, Irvine)

Paul Barford (Uniwersytet stanu Wisconsin)

Bobby Bhattacharjee (Uniwersytet stanu Maryland)

Steven Bellovin (Columbia University)

Pravin Bhagwat (Wibhu)

Supratik Bhattacharyya (niegdyś w Sprint)

Ernst Biersack (Eurécom Institute)

Shahid Bokhari (University of Engineering & Technology, Lahore)

Jean Bolot (Technicolor Research)

Daniel Brushteyn (absolwent Uniwersytetu stanu Pensylwania)

Ken Calvert (Uniwersytet stanu Kentucky)

Evandro Cantu (Federal University of Santa Catarina)

Jeff Case (SNMP Research International)

Jeff Chaltas (Sprint)

Vinton Cerf (Google)

Byung Kyu Choi (Michigan Technological University)

Bram Cohen (BitTorrent, Inc.)

Constantine Coutras (Pace University)

John Daigle (Uniwersytet stanu Mississippi)

Edmundo A. de Souza e Silva (Federal University of Rio de Janiero)

Philippe Decuetos (Eurécom Institute)

Christophe Diot (Technicolor Research)

Prithula Dhunghel (Akamai)

Deborah Estrin (Uniwersytet Kalifornijski w Los Angeles)

Michalis Faloutsos (Uniwersytet Kalifornijski, Riverside)

Wu-chi Feng (Oregon Graduate Institute)

Sally Floyd (ICIR, Uniwersytet Kalifornijski, Berkeley)

Paul Francis (Instytut Maksa Plancka)

David Fullager (Netflix)

Lixin Gao (Uniwersytet stanu Massachusetts)

JJ Garcia-Luna-Aceves (Uniwersytet Kalifornijski, Santa Cruz)

Mario Gerla (Uniwersytet Kalifornijski, Los Angeles)

David Goodman (Polytechnic University)

Yang Guo (Alcatel/Lucent Bell Labs)

Tim Griffin (Uniwersytet Cambridge)

Max Hailperin (Gustavus Adolphus College)

Bruce Harvey (Florida A&M University, Uniwersytet stanu Florida)

Carl Hauser (Uniwersytet stanu Washington)

Rachelle Heller (Uniwersytet George’a Washingtona)

Phillipp Hoschka (INRIA/W3C)

Wen Hsin (Park University)

Albert Huang (absolwent Uniwersytetu stanu Pensylwania)

Cheng Huang (Microsoft Research)

Esther A. Hughes (Virginia Commonwealth University)

Van Jacobson (Xerox PARC)

Pinak Jain (absolwent uczelni NYU-Poly)

Jobin James (Uniwersytet Kalifornijski, Riverside)

Sugih Jamin (Uniwersytet stanu Michigan)

Shivkumar Kalyanaraman (Rensselaer Polytechnic Institute)

Jussi Kangasharju (University of Darmstadt)

Sneha Kasera (Uniwersytet stanu Utah)

Parviz Kermani (były pracownik IBM Research)

Hyojin Kim (absolwent uczelni Uniwersytetu stanu Pensylwania)

Leonard Kleinrock (Uniwersytet Kalifornijski, Los Angeles)

David Kotz (Dartmouth College)

Beshan Kulapala (Uniwersytet stanu Arizona)

Rakesh Kumar (Bloomberg)

Miguel A. Labrador (University of South Florida)

Simon Lam (Uniwersytet stanu Teksas)

Steve Lai (Uniwersytet stanu Ohio)

Tom LaPorta (Uniwersytet stanu Pensylwania)

Tim-Berners Lee (World Wide Web Consortium)

Arnaud Legout (INRIA)

Lee Leitner (Drexel University)

Brian Levine (Uniwersytet stanu Massachusetts)

Chunchun Li (absolwent uczelni NYU-Poly)

Yong Liu (NYU-Poly)

William Liang (absolwent uczelni Uniwersytetu stanu Pensylwania)

Willis Marti (Texas A&M University)

Nick McKeown (Uniwersytet Stanforda)

Josh McKinzie (Park University)

Deep Medhi (Uniwersytet stanu Missouri, Kansas City)

Bob Metcalfe (International Data Group)

Sue Moon (KAIST)

Jenni Moyer (Comcast)

Erich Nahum (IBM Research)

Christos Papadopoulos (Uniwersytet Południowej Kalifornii)

Craig Partridge (BBN Technologies)

Radia Perlman (Sun Microsystems)

Jitendra Padhye (Microsoft Research)

Vern Paxson (Uniwersytet Kalifornijski, San Diego)

Kevin Phillips (Sprint)

George Polyzos (Uniwersytet Kalifornijski, San Diego)

Sriram Rajagopalan (Uniwersytet stanu Arizona)

Ramachandran Ramjee (dział badawczy firmy Microsoft)

Ken Reek (Rochester Institute of Technology)

Martin Reisslein (Uniwersytet stanu Arizona)

Jennifer Rexford (Uniwersytet Princeton)

Leon Reznik (Rochester Institute of Technology)

Pablo Rodrigez (Telefonica)

Sumit Roy (Uniwersytet stanu Washington)

Dan Rubenstein (Columbia University)

Avi Rubin (Johns Hopkins University)

Douglas Salane (John Jay Collage)

Despina Saparilla (Cisco Systems)

John Schanz (Comcast)

Henning Schulzrinne (Columbia University)

Mischa Schwartz (Columbia University)

Ardash Sethi (Uniwersytet stanu Delaware)

Harish Sethu (Drexel University)

K. Sam Shanmugan (Uniwersytet stanu Kansas)

Prashant Shenoy (Uniwersytet stanu Massachusetts)

Clay Shields (Uniwersytet Georgetown)

Subin Shrestra (Uniwersytet stanu Pensylwania)

Bojie Shu (absolwent uczelni NYU-Poly)

Mihail L. Sichitiu (Uniwersytet stanu Karolina Północna)

Peter Steenkiste (Uniwersytet Carnegie Mellon)

Tatsuya Suda (Uniwersytet Kalifornijski, Irvine)

Kin Sun Tam (Uniwersytet stanu New York, Albany)

Don Towsley (Uniwersytet stanu Massachusetts)

David Turner (Uniwersytet stanu Kalifornia, San Bernardino)

Nitin Vaidya (Uniwersytet Illinois)

Michele Weigle (Uniwersytet Clemson)

David Wetherall (Uniwersytet stanu Washington)

Ira Winston (Uniwersytet stanu Pensylwania)

Di Wu (Sun Yat-sen University)

Shirley Wynn (NYU-Poly)

Raj Yavatkar (Intel)

Yechiam Yemini (Columbia University)

Dian Yu (NYU Shanghai)

Ming Yu (Uniwersytet stanu Nowy Jork, Binghamton)

Ellen Zegura (Georgia Institute of Technology)

Honggang Zhang (Uniwersytet Suffolk)

Hui Zhang (Uniwersytet Carnegie Mellon)

Lixia Zhang (Uniwersytet Kalifornijski, Los Angeles)

Meng Zhang (absolwent uczelni NYU-Poly)

Shuchun Zhang (absolwent uczelni Uniwersytetu stanu Pensylwania)

Xiaodong Zhang (Uniwersytet stanu Ohio)

ZhiLi Zhang (Uniwersytet stanu Minnesota)

Phil Zimmermann (niezależny konsultant)

Mike Zink (University of Massachusetts)

Cliff C. Zou (University of Central Florida)

Chcemy również podziękować całemu zespołowi pracowników wydawnictwa Pearson (a przede wszystkim Mattowi Goldsteinowi i Joanne Manning), którzy wykonali absolutnie znakomitą pracę przy siódmej edycji książki (i musieli tolerować dwóch bardzo absorbujących autorów, mających wrodzone problemy z dotrzymywaniem terminów!). Wyrazy podziękowania dla artystek, Janet Theurer i Patrice Rossi Calkin, za ich pracę nad pięknymi rysunkami. Dziękujemy też Katie Ostler i jej zespołowi z Cenveo za znakomitą pracę związaną z przygotowaniem do druku obecnego wydania. I wreszcie składamy szczególne podziękowania dla naszych dwóch wcześniejszych redaktorów z Addison-Wesley, Michaela Hirscha i Susan Hartman. Bez ich pełnego wdzięku zarządzania, ciągłego motywowania, niemal nieskończonej cierpliwości, poczucia humoru i wytrwałości książka nie byłaby taka, jaka jest, a być może w ogóle by jej nie było.