Szczegóły ebooka

TCP/IP od środka. Protokoły. Wydanie II

TCP/IP od środka. Protokoły. Wydanie II

W. Richard Stevens, Kevin R. Fall

Ebook

Kompendium wiedzy o TCP/IP!

TCP/IP to model, bez którego nie byłoby sieci Internet — takiej, jaką dziś znamy. Pomimo słusznego wieku (pierwsze próby odbywały się w latach 70.) jest nadal w pełni wystarczający. Główne założenie modelu TCP/IP to podział całego procesu komunikacji na współpracujące ze sobą warstwy. Na tej podstawie zbudowane są różne protokoły transmisji danych, takie jak FTP, HTTP czy też SMTP.

„TCP/IP od środka. Protokoły. Wydanie II” to szczegółowy, opatrzony wieloma ilustracjami przewodnik po współczesnych protokołach grupy TCP/IP. Uwzględnia najnowsze wersje tych protokołów i pokazuje ich funkcjonowanie „na żywo”, w środowisku popularnych systemów operacyjnych, takich jak Windows, Linux i Mac OS X. Nie ma lepszego sposobu na wyjaśnienie, dlaczego właśnie tak wyglądają poszczególne aspekty działania TCP/IP, jak zmienia się ono w różnych okolicznościach oraz jak wykorzystać jego różne możliwości. To wyjątkowe opracowanie stanowi obowiązkową lekturę dla wszystkich osób chcących dowiedzieć się więcej o podwalinach współczesnej sieci. W trakcie lektury poznasz założenia architektoniczne, architekturę adresów internetowych oraz znaczenie i rolę poszczególnych warstw modelu TCP/IP. Dowiesz się, jak korzystać z komunikatów ICMP, rozgłaszać informacje w sieci, kontrolować przeciążenia w protokole TCP oraz korzystać z mechanizmów kryptograficznych. Znajdziesz tu dogłębne i intuicyjne wyjaśnienie wielu meandrów TCP/IP i Internetu, co pozwoli Ci bardziej efektywnie zarządzać swymi sieciami i tworzyć lepsze aplikacje internetowe.

W tym znakomitym podręczniku znajdziesz informacje na temat:

  • modelu TCP/IP
  • bezprzewodowych sieci LAN
  • architektury adresów internetowych
  • protokołu PPP
  • możliwości autokonfiguracji z wykorzystaniem DHCP
  • datagramów użytkownika – UDP

Kompletne źródło informacji na temat możliwości TCP/IP!


Kevin R. Fall zajmuje się protokołami TCP/IP od ponad ćwierćwiecza. Jest członkiem organizacji Internet Architecture Board oraz współzarządzającym grupy roboczej IETF Delay Tolerant Networking Research (DTNRG), zajmującej się problematyką wydajnego funkcjonowania sieci w warunkach ekstremalnych. Należy również do IEEE.

W. Richard Stevens był jednym z tych pionierskich autorów, na książkach których wychowało się całe pokolenie profesjonalistów od sieci TCP/IP, sukcesywnie sprowadzających Internet z wyżyn akademickich katedr do codziennego życia każdego człowieka. Wśród bestsellerów jego autorstwa można wymienić wszystkie trzy tomy „TCP/IP Illustrated” (Addison-Wesley) oraz „UNIX Network Programming” (Prentice Hall).

Słowo wstępne (19)

Przedmowa do wydania drugiego (21)

Przedmowa do wydania pierwszego (27)

Rozdział 1. Wprowadzenie (31)

  • 1.1. Założenia architektoniczne (32)
    • 1.1.1. Pakiety, połączenia i datagramy (33)
    • 1.1.2. Zasady "end-to-end argument" i "fate sharing" (35)
    • 1.1.3. Kontrola błędów i sterowanie przepływem (37)
  • 1.2. Projekt i implementacje (38)
    • 1.2.1. Architektura warstwowa (38)
    • 1.2.2. Multipleksowanie, demultipleksowanie i enkapsulacja w implementacjach warstwowych (40)
  • 1.3. Architektura i protokoły zestawu TCP/IP (43)
    • 1.3.1. Model odniesienia ARPANET (43)
    • 1.3.2. Multipleksowanie, demultipleksowanie i enkapsulacja w protokołach TCP/IP (46)
    • 1.3.3. Numery portów (47)
    • 1.3.4. Nazwy, adresy i usługa DNS (49)
  • 1.4. Internety, intranety i ekstranety (50)
  • 1.5. Projektowanie aplikacji (51)
    • 1.5.1. Architektura klient-serwer (51)
    • 1.5.2. Architektura peer-to-peer (52)
    • 1.5.3. Interfejsy programisty (API) (52)
  • 1.6. Procesy standaryzacyjne (53)
    • 1.6.1. Dokumenty RFC (Request for Comments) (54)
    • 1.6.2. Inne standardy (54)
  • 1.7. Implementacje TCP/IP i ich dystrybucja (55)
  • 1.8. Ataki wymierzone w architekturę Internetu (55)
  • 1.9. Podsumowanie (57)
  • 1.10. Bibliografia (59)

Rozdział 2. Architektura adresów internetowych (63)

  • 2.1. Wprowadzenie (63)
  • 2.2. Zapisywanie adresów IP (64)
  • 2.3. Podstawowa struktura adresu IP (66)
    • 2.3.1. Klasy adresów IP (66)
    • 2.3.2. Adresowanie podsieci (68)
    • 2.3.3. Maski podsieci (70)
    • 2.3.4. Zmienna długość maski podsieci (VLSM) (72)
    • 2.3.5. Adresy rozgłoszeniowe (broadcast) (73)
    • 2.3.6. Adresy IPv6 i identyfikatory interfejsów (74)
  • 2.4. CIDR i agregacja (77)
    • 2.4.1. Prefiksy (77)
    • 2.4.2. Agregowanie prefiksów (78)
  • 2.5. Adresy specjalnego znaczenia (81)
    • 2.5.1. Translatory IPv4/IPv6 (83)
    • 2.5.2. Adresy grupowe (multicast) (84)
    • 2.5.3. Multicasting w IPv4 (85)
    • 2.5.4. Multicasting w IPv6 (87)
    • 2.5.5. Adresy anycast (92)
  • 2.6. Przydzielanie adresów IP (93)
    • 2.6.1. Adresy unicast (93)
    • 2.6.2. Adresy multicast (96)
  • 2.7. Przypisywanie adresów unicast do węzłów sieci (96)
    • 2.7.1. Jeden dostawca, jeden komputer, jeden adres (97)
    • 2.7.2. Jeden dostawca, jedna sieć, jeden adres (97)
    • 2.7.3. Jeden dostawca, wiele sieci, wiele adresów (98)
    • 2.7.4. Wielu dostawców, wiele sieci, wiele adresów (multihoming) (99)
  • 2.8. Ataki z wykorzystaniem adresów IP (101)
  • 2.9. Podsumowanie (102)
  • 2.10. Bibliografia (103)

Rozdział 3. Warstwa łącza danych (109)

  • 3.1. Wprowadzenie (109)
  • 3.2. Ethernet i standardy IEEE 802 LAN/MAN (109)
    • 3.2.1. Standardy sieci LAN/MAN IEEE 802 (112)
    • 3.2.2. Format ramki ethernetowej (114)
    • 3.2.3. 802.1p/Q sieci wirtualne i znaczniki QoS (119)
    • 3.2.4. 802.1AX: agregowanie łączy (dawniej 802.3ad) (122)
  • 3.3. Pełny dupleks, oszczędzanie energii, autonegocjowanie i sterowanie przepływem 802.1X (123)
    • 3.3.1. Niezgodność dupleksowa (125)
    • 3.3.2. Wybudzanie przez sieć (WoL), oszczędzanie energii i magiczne pakiety (126)
    • 3.3.3. Sterowanie przepływem w warstwie łącza danych (126)
  • 3.4. Mostki a przełączniki (128)
    • 3.4.1. Protokół drzewa rozpinającego (STP) (131)
    • 3.4.2. 802.1ak: protokół wielorejestracyjny (MRP) (140)
  • 3.5. Bezprzewodowe sieci LAN - IEEE 802.11 (Wi-Fi) (141)
    • 3.5.1. Ramki standardu 802.11 (142)
    • 3.5.2. Tryb oszczędzania energii i funkcja synchronizacji czasu (TSF) (148)
    • 3.5.3. Sterowanie dostępem do nośnika w sieciach 802.11 (149)
    • 3.5.4. Parametry warstwy fizycznej: szybkości, kanały i częstotliwości (153)
    • 3.5.5. Bezpieczeństwo Wi-Fi (159)
    • 3.5.6. 802.11s - sieci kratowe Wi-Fi (161)
  • 3.6. Protokół "punkt-punkt" (PPP) (161)
    • 3.6.1. Protokół sterowania łączem (LCP) (162)
    • 3.6.2. Wielołączowe PPP (Multilink PPP) (169)
    • 3.6.3. Protokół sterowania kompresją (CCP) (171)
    • 3.6.4. Uwierzytelnianie PPP (172)
    • 3.6.5. Protokoły sterowania siecią (NCP) (173)
    • 3.6.6. Kompresja nagłówków (174)
    • 3.6.7. Przykład (175)
  • 3.7. Pętla zwrotna (177)
  • 3.8. MTU protokołu i MTU ścieżki (PMTU) (180)
  • 3.9. Podstawy tunelowania (180)
    • 3.9.1. Łącza jednokierunkowe (185)
  • 3.10. Ataki na warstwę łącza danych (186)
  • 3.11. Podsumowanie (188)
  • 3.12. Bibliografia (190)

Rozdział 4. Protokół ARP (197)

  • 4.1. Wprowadzenie (197)
  • 4.2. Przykład (198)
    • 4.2.1. Dostarczanie bezpośrednie i ARP (198)
  • 4.3. Tablice ARP cache (200)
  • 4.4. Format ramki ARP (201)
  • 4.5. Przykłady użycia ARP (203)
    • 4.5.1. Typowy przypadek (203)
    • 4.5.2. Zapytanie ARP o nieistniejący host (205)
  • 4.6. Przeterminowanie danych ARP (205)
  • 4.7. Proxy ARP (206)
  • 4.8. Gratuitous ARP i wykrywanie konfliktu adresów IP (206)
  • 4.9. Polecenie arp (209)
  • 4.10. Przypisywanie adresów IPv4 za pomocą ARP (209)
  • 4.11. Ataki sieciowe z użyciem ARP (210)
  • 4.12. Podsumowanie (210)
  • 4.13. Bibliografia (211)

Rozdział 5. Protokół internetowy (IP) (213)

  • 5.1. Wprowadzenie (213)
  • 5.2. Nagłówki IPv4 i IPv6 (215)
    • 5.2.1. Pola nagłówków IP (215)
    • 5.2.2. Internetowa suma kontrolna (219)
    • 5.2.3. Pola DS i ECN (dawniej ToS i Klasa ruchu) (221)
    • 5.2.4. Opcje IP (225)
  • 5.3. Nagłówki rozszerzeń IPv6 (228)
    • 5.3.1. Opcje IPv6 (230)
    • 5.3.2. Nagłówek trasowania (234)
    • 5.3.3. Nagłówek fragmentacji (237)
  • 5.4. Forwardowanie datagramów IP (242)
    • 5.4.1. Tablica forwardowania (243)
    • 5.4.2. Szczegóły forwardowania (244)
    • 5.4.3. Przykłady (244)
    • 5.4.4. Dyskusja (249)
  • 5.5. Mobilny IP (249)
    • 5.5.1. Model podstawowy - tunelowanie dwukierunkowe (250)
    • 5.5.2. Optymalizacja trasy (RO) (251)
    • 5.5.3. Dyskusja (254)
  • 5.6. Przetwarzanie datagramów IP przez host (254)
    • 5.6.1. Modele hosta (254)
    • 5.6.2. Selekcja adresów (256)
  • 5.7. Ataki wykorzystujące protokół IP (260)
  • 5.8. Podsumowanie (261)
  • 5.9. Bibliografia (262)

Rozdział 6. Konfigurowanie systemu: DHCP i autokonfiguracja (267)

  • 6.1. Wprowadzenie (267)
  • 6.2. Dynamic Host Configuration Protocol (DHCP) (268)
    • 6.2.1. Pule i dzierżawienie adresów (269)
    • 6.2.2. Format komunikatów DHCP i BOOTP (270)
    • 6.2.3. Opcje DHCP i BOOTP (272)
    • 6.2.4. Operacje protokołu DHCP (274)
    • 6.2.5. DHCPv6 (285)
    • 6.2.6. Przekaźniki DHCP (298)
    • 6.2.7. Uwierzytelnianie DHCP (303)
    • 6.2.8. Rozszerzenie rekonfiguracji (304)
    • 6.2.9. Opcja Rapid Commit (305)
    • 6.2.10. Informacja o lokalizacji (305)
    • 6.2.11. Informacje dla urządzeń mobilnych (MoS i ANDSF) (306)
    • 6.2.12. Podsłuchiwanie DHCP (307)
  • 6.3. Bezstanowe konfigurowanie adresów (SLAAC) (307)
    • 6.3.1. Dynamiczne konfigurowanie adresów IPv4 lokalnych dla łącza (308)
    • 6.3.2. Procedura SLAAC dla adresów IPv6 lokalnych dla łącza (308)
  • 6.4. Współdziałanie DHCP i DNS (315)
  • 6.5. PPP przez Ethernet (PPPoE) (316)
  • 6.6. Ataki ukierunkowane na konfigurowanie systemu (321)
  • 6.7. Podsumowanie (322)
  • 6.8. Bibliografia (323)

Rozdział 7. Firewalle i translacja adresów sieciowych (NAT) (329)

  • 7.1. Wprowadzenie (329)
  • 7.2. Firewalle (330)
    • 7.2.1. Firewalle filtrujące pakiety (330)
    • 7.2.2. Firewalle proxy (331)
  • 7.3. Translacja adresów sieciowych (333)
    • 7.3.1. NAT podstawowe i NAPT (335)
    • 7.3.2. Klasy behawioralne translacji adresów i portów (341)
    • 7.3.3. Zachowanie filtracyjne NAT (344)
    • 7.3.4. Serwery w lokalnej domenie adresowej (345)
    • 7.3.5. Upinanie ruchu - pętla zwrotna NAT (345)
    • 7.3.6. Edytory NAT (346)
    • 7.3.7. SPNAT - NAT w infrastrukturze dostawcy (347)
  • 7.4. Omijanie NAT (347)
    • 7.4.1. Otworki i wybijanie dziur (348)
    • 7.4.2. Jednostronne fiksowanie adresów (UNSAF) (349)
    • 7.4.3. Omijanie NAT za pomocą STUN (350)
    • 7.4.4. Omijanie NAT z użyciem przekaźników (TURN) (356)
    • 7.4.5. ICE - interaktywne nawiązywanie połączenia (362)
  • 7.5. Konfigurowanie NAT i firewalli filtrujących (364)
    • 7.5.1. Reguły firewalla (364)
    • 7.5.2. Reguły NAT (366)
    • 7.5.3. Bezpośrednia interakcja z NAT i firewallami - UPnP, NAT-PMP i PCP (368)
  • 7.6. Migracja na adresy IPv6 i współistnienie adresów IPv4/IPv6 z wykorzystaniem NAT (369)
    • 7.6.1. Dualny stos TCP/IP (DS-Lite) (369)
    • 7.6.2. Translacja między IPv4 a IPv6 przy użyciu NAT i ALG (370)
  • 7.7. Ataki na firewalle i NAT (375)
  • 7.8. Podsumowanie (376)
  • 7.9. Bibliografia (378)

Rozdział 8. ICMPv4 i ICMPv6 - Internet Control Message Protocol (383)

  • 8.1. Wprowadzenie (383)
    • 8.1.1. Enkapsulowanie komunikatów ICMP w datagramach IPv4 i IPv6 (384)
  • 8.2. Komunikaty ICMP (386)
    • 8.2.1. Komunikaty ICMPv4 (386)
    • 8.2.2. Komunikaty ICMPv6 (388)
    • 8.2.3. Przetwarzanie komunikatów ICMP (391)
  • 8.3. Komunikaty ICMP o błędach (392)
    • 8.3.1. Rozszerzenia ICMP i komunikaty wieloczęściowe (394)
    • 8.3.2. Komunikat Destination Unreachable (typ 3 w ICMPv4, typ 1 w ICMPv6) (395)
    • 8.3.3. Komunikat Redirect (typ 5 w ICMPv4, typ 137 w ICMPv6) (403)
    • 8.3.4. Komunikat ICMP Time Exceeded (typ 11 w ICMPv4, typ 3 w ICMPv6) (406)
    • 8.3.5. Komunikat Parameter Problem (typ 12 w ICMPv4, typ 4 w ICMPv6) (408)
  • 8.4. Komunikaty informacyjne ICMP (410)
    • 8.4.1. Komunikaty Echo Request/Reply (ping) (typy 0/8 w ICMPv4, typy 129/128 w ICMPv6) (411)
    • 8.4.2. Odnajdywanie routerów: komunikaty Router Solicitation i Router Advertisement (typy 9 i 10 w ICMPv4) (413)
    • 8.4.3. Komunikaty Home Agent Address Discovery Request/Reply (typy 144/145 w ICMPv6) (416)
    • 8.4.4. Komunikaty Mobile Prefix Solicitation/Advertisement (typy 146/147 w ICMPv6) (416)
    • 8.4.5. Komunikaty szybkiego przełączania w mobilnych IPv6 (typ 154 w ICMPv6) (417)
    • 8.4.6. Komunikaty Multicast Listener Query/Report/Done (typy 130/131/132 w ICMPv6) (418)
    • 8.4.7. Wersja 2 komunikatu Multicast Listener Discovery (MLDv2) (typ 143 w ICMPv6) (420)
    • 8.4.8. Komunikaty Multicast Router Discovery (MRD) (typy 48/49/50 w IGMP, typy 151/152/153 w ICMPv6) (423)
  • 8.5. Odnajdywanie sąsiadów w IPv6 (425)
    • 8.5.1. Komunikaty ICMPv6 Router Solicitation i Router Advertisement (typy 133 i 134) (426)
    • 8.5.2. Komunikaty ICMPv6 Neighbor Solicitation i Neighbor Advertisement (typy 135 i 136) (428)
    • 8.5.3. Komunikaty ICMPv6 Inverse Neighbor Discovery Solicitation/Advertisement (typy 141 i 142) (431)
    • 8.5.4. Wykrywanie nieosiągalności sąsiadów (NUD) (432)
    • 8.5.5. Bezpieczne odnajdywanie sąsiadów (SEND) (433)
    • 8.5.6. Opcje komunikatów odnajdywania sąsiadów (438)
  • 8.6. Translacja komunikatów między ICMPv4 a ICMPv6 (454)
    • 8.6.1. Translacja z ICMPv4 na ICMPv6 (454)
    • 8.6.2. Translacja z ICMPv6 na ICMPv4 (457)
  • 8.7. Ataki wykorzystujące ICMP (459)
  • 8.8. Podsumowanie (461)
  • 8.9. Bibliografia (462)

Rozdział 9. Broadcasting i lokalny multicasting (467)

  • 9.1. Wprowadzenie (467)
  • 9.2. Broadcasting (468)
    • 9.2.1. Adresy rozgłoszeniowe (468)
    • 9.2.2. Rozsyłanie datagramów rozgłoszeniowych (470)
  • 9.3. Multicasting (472)
    • 9.3.1. Konwersja adresów grupowych IP na adresy MAC IEEE-802 (473)
    • 9.3.2. Przykłady (475)
    • 9.3.3. Rozsyłanie datagramów multicastingu (477)
    • 9.3.4. Odbieranie datagramów multicastingu (478)
    • 9.3.5. Filtrowanie adresów przez host (480)
  • 9.4. Protokoły IGMP i MLD (482)
    • 9.4.1. Przetwarzanie komunikatów IGMP i MLD przez hosty (486)
    • 9.4.2. Funkcjonowanie routerów multicast (488)
    • 9.4.3. Przykłady (491)
    • 9.4.4. Protokoły LW-IGMPv3 i LW-MLDv2 (495)
    • 9.4.5. Niezawodność IGMP i MLD (496)
    • 9.4.6. Zmienne i liczniki protokołów IGMP i MLD (498)
    • 9.4.7. Podsłuchiwanie IGMP/MLD w warstwie 2. (498)
  • 9.5. Ataki wykorzystujące IGMP i MLD (500)
  • 9.6. Podsumowanie (501)
  • 9.7. Bibliografia (502)

Rozdział 10. Protokół datagramów użytkownika (UDP) oraz fragmentacja IP (505)

  • 10.1. Wprowadzenie (505)
  • 10.2. Nagłówek UDP (506)
  • 10.3. Suma kontrolna (507)
  • 10.4. Przykłady (510)
  • 10.5. Datagramy UDP w sieciach IPv6 (513)
    • 10.5.1. Teredo - tunelowanie datagramów IPv6 w sieciach IPv4 (514)
  • 10.6. UDP-Lite (519)
  • 10.7. Fragmentacja (520)
    • 10.7.1. Przykład - fragmentacja datagramów UDP/IPv4 (521)
    • 10.7.2. Maksymalny czas odtwarzania datagramu (524)
  • 10.8. Ustalanie parametru MTU trasy w protokole UDP (525)
    • 10.8.1. Przykład (525)
  • 10.9. Zależność między fragmentacją IP i procesem ARP/ND (528)
  • 10.10. Maksymalny rozmiar datagramu UDP (529)
    • 10.10.1. Ograniczenia implementacyjne (529)
    • 10.10.2. Obcinanie datagramów (530)
  • 10.11. Budowa serwera UDP (530)
    • 10.11.1. Adresy IP i numery portów UDP (531)
    • 10.11.2. Ograniczenie użycia lokalnych adresów IP (532)
    • 10.11.3. Wykorzystanie wielu adresów (533)
    • 10.11.4. Ograniczenie zdalnych adresów IP (534)
    • 10.11.5. Wiele serwerów na jednym porcie (535)
    • 10.11.6. Objęcie dwóch rodzin adresów - IPv4 i IPv6 (536)
    • 10.11.7. Brak mechanizmów sterowania przepływem i przeciążeniami (536)
  • 10.12. Translacja datagramów UDP/IPv4 i UDP/IPv6 (537)
  • 10.13. UDP w Internecie (538)
  • 10.14. Ataki z użyciem protokołu UDP i fragmentacji IP (539)
  • 10.15. Podsumowanie (540)
  • 10.16. Bibliografia (540)

Rozdział 11. Odwzorowanie nazw i system nazw domenowych (DNS) (543)

  • 11.1. Wprowadzenie (543)
  • 11.2. Przestrzeń nazw DNS (544)
    • 11.2.1. Składnia nazw DNS (546)
  • 11.3. Serwery nazw i strefy (548)
  • 11.4. Buforowanie (549)
  • 11.5. Protokół DNS (551)
    • 11.5.1. Format komunikatu DNS (553)
    • 11.5.2. Format rozszerzenia DNS (EDNS0) (557)
    • 11.5.3. Protokół UDP czy TCP? (557)
    • 11.5.4. Format sekcji zapytania i sekcji strefy (558)
    • 11.5.5. Format odpowiedzi, pełnomocnictw oraz informacji dodatkowych (559)
    • 11.5.6. Typy rekordów zasobów (560)
    • 11.5.7. Dynamiczne aktualizacje DNS (587)
    • 11.5.8. Transfer strefy i operacja DNS NOTIFY (590)
  • 11.6. Listy sortowania, algorytm karuzelowy i dzielony DNS (597)
  • 11.7. Otwarte serwery DNS i system DynDNS (598)
  • 11.8. Przezroczystość i rozszerzalność (599)
  • 11.9. Translacja komunikatów DNS IPv4 na IPv6 (DNS64) (600)
  • 11.10. Protokoły LLMNR i mDNS (601)
  • 11.11. Usługa LDAP (601)
  • 11.12. Ataki na usługi DNS (602)
  • 11.13. Podsumowanie (603)
  • 11.14. Bibliografia (604)

Rozdział 12. TCP - protokół sterowania transmisją (zagadnienia wstępne) (611)

  • 12.1. Wprowadzenie (611)
    • 12.1.1. ARQ i retransmisja (612)
    • 12.1.2. Okna pakietów i okna przesuwne (614)
    • 12.1.3. Okna o zmiennym rozmiarze: sterowanie przepływem i kontrola przeciążenia (615)
    • 12.1.4. Ustalanie czasu oczekiwania na retransmisję (616)
  • 12.2. Wprowadzenie do TCP (617)
    • 12.2.1. Model usług TCP (617)
    • 12.2.2. Niezawodność w TCP (618)
  • 12.3. Nagłówek TCP i enkapsulacja (620)
  • 12.4. Podsumowanie (623)
  • 12.5. Bibliografia (624)

Rozdział 13. Zarządzanie połączeniem TCP (627)

  • 13.1. Wprowadzenie (627)
  • 13.2. Ustanawianie i kończenie połączenia TCP (627)
    • 13.2.1. Częściowe zamknięcie połączenia TCP (630)
    • 13.2.2. Jednoczesne otwarcie i jednoczesne zamknięcie (631)
    • 13.2.3. Początkowy numer sekwencyjny (ISN) (633)
    • 13.2.4. Przykład (634)
    • 13.2.5. Wygaśnięcie czasu oczekiwania na ustanowienie połączenia (636)
    • 13.2.6. Połączenia a translatory adresów (637)
  • 13.3. Opcje TCP (637)
    • 13.3.1. Opcja maksymalnego rozmiaru segmentu (MSS) (639)
    • 13.3.2. Opcje selektywnego potwierdzenia (SACK) (639)
    • 13.3.3. Opcja skalowania rozmiaru okna (WSCALE lub WSOPT) (640)
    • 13.3.4. Opcja znaczników czasu i ochrona przed przepełnieniem numeru sekwencyjnego (PAWS) (641)
    • 13.3.5. Opcja czasu oczekiwania użytkownika (UTO) (643)
    • 13.3.6. Opcja uwierzytelniania (TCP-AO) (644)
  • 13.4. Odkrywanie MTU ścieżki w protokole TCP (645)
    • 13.4.1. Przykład (646)
  • 13.5. Przejścia między stanami protokołu TCP (649)
    • 13.5.1. Diagram stanów protokołu TCP (649)
    • 13.5.2. Stan TIME_WAIT (odczekiwanie 2MSL) (651)
    • 13.5.3. Pojęcie czasu ciszy (657)
    • 13.5.4. Stan FIN_WAIT (657)
    • 13.5.5. Przejścia odpowiadające jednoczesnemu otwarciu i jednoczesnemu zamknięciu (658)
  • 13.6. Segmenty RST (658)
    • 13.6.1. Żądanie połączenia z nieistniejącym hostem (658)
    • 13.6.2. Przerwanie połączenia (659)
    • 13.6.3. Połączenia częściowo otwarte (661)
    • 13.6.4. TIME_WAIT Assassination (TWA) (663)
  • 13.7. Działanie serwera TCP (664)
    • 13.7.1. Numery portów TCP (664)
    • 13.7.2. Ograniczanie lokalnych adresów IP (666)
    • 13.7.3. Ograniczanie obcych punktów końcowych (667)
    • 13.7.4. Kolejka połączeń przychodzących (668)
  • 13.8. Ataki związane z zarządzaniem połączeniem TCP (672)
  • 13.9. Podsumowanie (675)
  • 13.10. Bibliografia (676)

Rozdział 14. Przeterminowanie i retransmisja w TCP (679)

  • 14.1. Wprowadzenie (679)
  • 14.2. Prosty przykład przeterminowania i retransmisji (680)
  • 14.3. Ustalanie czasu oczekiwania na retransmisję (RTO) (682)
    • 14.3.1. Metoda klasyczna (683)
    • 14.3.2. Metoda standardowa (684)
    • 14.3.3. Metoda systemu Linux (689)
    • 14.3.4. Działanie estymatorów RTT (693)
    • 14.3.5. Odporność procedury RTTM na utratę i zmianę kolejności pakietów (694)
  • 14.4. Retransmisje na podstawie licznika czasu (696)
    • 14.4.1. Przykład (697)
  • 14.5. Szybka retransmisja (698)
    • 14.5.1. Przykład (699)
  • 14.6. Retransmisja z potwierdzeniami selektywnymi (703)
    • 14.6.1. Zachowanie odbiorcy obsługującego opcję SACK (704)
    • 14.6.2. Zachowanie nadawcy obsługującego opcję SACK (704)
    • 14.6.3. Przykład (705)
  • 14.7. Fałszywe przeterminowania i zbędne retransmisje (708)
    • 14.7.1. Rozszerzenie Duplicate SACK (DSACK) (709)
    • 14.7.2. Algorytm wykrywania Eifel (710)
    • 14.7.3. Odtwarzanie Forward-RTO (F-RTO) (711)
    • 14.7.4. Algorytm odpowiedzi Eifel (712)
  • 14.8. Zmiana kolejności i powielanie pakietów (714)
    • 14.8.1. Zmiana kolejności pakietów (714)
    • 14.8.2. Powielanie pakietów (716)
  • 14.9. Mierniki punktu docelowego (717)
  • 14.10. Przepakietowanie (718)
  • 14.11. Ataki związane z mechanizmem retransmisji protokołu TCP (719)
  • 14.12. Podsumowanie (720)
  • 14.13. Bibliografia (721)

Rozdział 15. Przepływ danych i zarządzanie oknem w protokole TCP (723)

  • 15.1. Wprowadzenie (723)
  • 15.2. Komunikacja interaktywna (724)
  • 15.3. Potwierdzenia opóźnione (727)
  • 15.4. Algorytm Nagle'a (728)
    • 15.4.1. Interakcja opóźnionych potwierdzeń ACK i algorytmu Nagle'a (731)
    • 15.4.2. Wyłączenie algorytmu Nagle'a (731)
  • 15.5. Sterowanie przepływem i zarządzanie oknem (732)
    • 15.5.1. Okna przesuwne (733)
    • 15.5.2. Okna zerowe i licznik czasu przetrwania w protokole TCP (736)
    • 15.5.3. Syndrom głupiego okna (SWS) (739)
    • 15.5.4. Duże bufory i automatyczne dostrajanie okna (747)
  • 15.6. Mechanizm pilnych danych (751)
    • 15.6.1. Przykład (752)
  • 15.7. Ataki dotyczące zarządzania oknem (754)
  • 15.8. Podsumowanie (755)
  • 15.9. Bibliografia (756)

Rozdział 16. Kontrola przeciążenia w protokole TCP (759)

  • 16.1. Wprowadzenie (759)
    • 16.1.1. Wykrywanie przeciążenia w protokole TCP (760)
    • 16.1.2. Spowolnienie nadawcy w protokole TCP (761)
  • 16.2. Algorytmy klasyczne (762)
    • 16.2.1. Powolny start (764)
    • 16.2.2. Unikanie przeciążenia (766)
    • 16.2.3. Wybór między algorytmami powolnego startu i unikania przeciążenia (769)
    • 16.2.4. Algorytmy Tahoe, Reno i szybkie odtwarzanie (770)
    • 16.2.5. Standardowy protokół TCP (771)
  • 16.3. Ewolucja algorytmów standardowych (772)
    • 16.3.1. NewReno (772)
    • 16.3.2. Kontrola przeciążenia w TCP z użyciem opcji SACK (773)
    • 16.3.3. Potwierdzenie generowane w przód (FACK) i zmniejszanie szybkości transmisji o połowę (774)
    • 16.3.4. Algorytm ograniczonej transmisji (776)
    • 16.3.5. Walidacja okna przeciążenia (CWV) (776)
  • 16.4. Obsługa zbędnych retransmisji - algorytm odpowiedzi Eifel (777)
  • 16.5. Rozszerzony przykład (779)
    • 16.5.1. Działanie procedury powolnego startu (783)
    • 16.5.2. Przerwa w działaniu nadawcy i lokalne przeciążenie (zdarzenie 1.) (784)
    • 16.5.3. Przeciągnięte potwierdzenia ACK i odtwarzanie po lokalnym przeciążeniu (789)
    • 16.5.4. Szybka retransmisja i odtwarzanie z wykorzystaniem opcji SACK (zdarzenie 2.) (792)
    • 16.5.5. Kolejne zdarzenia lokalnego przeciążenia i szybkiej retransmisji (795)
    • 16.5.6. Przeterminowania, retransmisje i wycofywanie zmian okna cwnd (797)
    • 16.5.7. Zakończenie połączenia (801)
  • 16.6. Współdzielenie stanu przeciążenia (802)
  • 16.7. Przyjazność protokołu TCP (802)
  • 16.8. TCP w szybkich środowiskach (804)
    • 16.8.1. Protokół HighSpeed TCP (HSTCP) i ograniczony powolny start (805)
    • 16.8.2. Kontrola przeciążenia z binarnym zwiększaniem okna (BIC i CUBIC) (807)
  • 16.9. Kontrola przeciążenia oparta na opóźnieniu (811)
    • 16.9.1. Vegas (812)
    • 16.9.2. FAST (813)
    • 16.9.3. Protokoły TCP Westwood i TCP Westwood+ (814)
    • 16.9.4. Protokół Compound TCP (814)
  • 16.10. Rozdęcie buforów (816)
  • 16.11. Aktywne zarządzanie kolejkami i znacznik ECN (818)
  • 16.12. Ataki związane z kontrolą przeciążenia protokołu TCP (820)
  • 16.13. Podsumowanie (822)
  • 16.14. Bibliografia (824)

Rozdział 17. Mechanizm podtrzymania aktywności w protokole TCP (829)

  • 17.1. Wprowadzenie (829)
  • 17.2. Opis (831)
    • 17.2.1. Przykłady dotyczące podtrzymania aktywności (833)
  • 17.3. Ataki związane z mechanizmem podtrzymania aktywności protokołu TCP (838)
  • 17.4. Podsumowanie (839)
  • 17.5. Bibliografia (839)

Rozdział 18. Bezpieczeństwo - EAP, IPsec, TLS, DNSSEC oraz DKIM (841)

  • 18.1. Wprowadzenie (841)
  • 18.2. Bezpieczeństwo informacji - podstawowe założenia (842)
  • 18.3. Zagrożenia w komunikacji sieciowej (843)
  • 18.4. Podstawowe mechanizmy kryptograficzne i zabezpieczające (845)
    • 18.4.1. Systemy kryptograficzne (845)
    • 18.4.2. Szyfrowanie RSA - Rivest, Shamir i Adleman (848)
    • 18.4.3. Metoda uzgadniania kluczy Diffie-Hellman-Merkle (znana również jako algorytm Diffiego-Hellmana lub DH) (849)
    • 18.4.4. Szyfrowanie z uwierzytelnieniem i kryptografia krzywych eliptycznych (ECC) (850)
    • 18.4.5. Wyznaczanie kluczy i doskonała poufność przekazu (PFS) (851)
    • 18.4.6. Liczby pseudolosowe, generatory i rodziny funkcji (851)
    • 18.4.7. Wartości jednorazowe i zaburzające (852)
    • 18.4.8. Kryptograficzne funkcje skrótu (853)
    • 18.4.9. Kody uwierzytelniania wiadomości (MAC, HMAC, CMAC i GMAC) (854)
    • 18.4.10. Zestawy algorytmów kryptograficznych (855)
  • 18.5. Certyfikaty, urzędy certyfikacji (CA) i infrastruktura PKI (858)
    • 18.5.1. Certyfikaty kluczy publicznych, urzędy certyfikacji i standard X.509 (859)
    • 18.5.2. Walidacja i unieważnianie certyfikatów (865)
    • 18.5.3. Certyfikaty atrybutów (868)
  • 18.6. Protokoły bezpieczeństwa stosu TCP/IP i podział na warstwy (868)
  • 18.7. Kontrola dostępu do sieci - 802.1X, 802.1AE, EAP i PANA (870)
    • 18.7.1. Metody EAP i wyznaczanie klucza (874)
    • 18.7.2. Protokół ponownego uwierzytelnienia (ERP) (876)
    • 18.7.3. Protokół przenoszenia danych uwierzytelniających w dostępie do sieci (PANA) (876)
  • 18.8. Bezpieczeństwo warstwy 3. (IPsec) (877)
    • 18.8.1. Protokół wymiany kluczy w Internecie (IKEv2) (880)
    • 18.8.2. Protokół AH (892)
    • 18.8.3. Protokół ESP (896)
    • 18.8.4. Multiemisja (902)
    • 18.8.5. Protokoły L2TP/IPsec (903)
    • 18.8.6. IPsec i funkcja NAT (904)
    • 18.8.7. Przykład (906)
  • 18.9. Bezpieczeństwo warstwy transportowej (TLS i DTLS) (915)
    • 18.9.1. TLS 1.2 (916)
    • 18.9.2. Protokół TLS do obsługi datagramów (DTLS) (929)
  • 18.10. Bezpieczeństwo protokołu DNS (DNSSEC) (934)
    • 18.10.1. Rekordy zasobów DNSSEC (935)
    • 18.10.2. Działanie mechanizmu DNSSEC (941)
    • 18.10.3. Uwierzytelnianie transakcji (TSIG, TKEY oraz SIG(0)) (950)
    • 18.10.4. DNSSEC z protokołem DNS64 (953)
  • 18.11. Identyfikowanie poczty za pomocą kluczy domenowych (DKIM) (954)
    • 18.11.1. Sygnatury DKIM (954)
    • 18.11.2. Przykład (955)
  • 18.12. Ataki na protokoły zabezpieczeń (957)
  • 18.13. Podsumowanie (958)
  • 18.14. Bibliografia (961)

Słownik akronimów (973)

Skorowidz (1013)

  • Tytuł: TCP/IP od środka. Protokoły. Wydanie II
  • Autor: Kevin R. Fall, W. Richard Stevens
  • Tytuł oryginału: TCP/IP Illustrated, Volume 1: The Protocols (2nd Edition)
  • Tłumaczenie: Andrzej Grażyński, Marek Pałczyński, Grzegorz Pawłowski
  • ISBN: 978-83-246-4827-6, 9788324648276
  • Data wydania: 2013-06-07
  • Format: Ebook
  • Identyfikator pozycji: tcppr2
  • Wydawca: Helion