Linux. Mechanizmy sieciowe - Helion

Tytuł oryginału: Understanding Linux Network Internals
Tłumaczenie: Jaromir Senczyk, Grzegorz Werner
ISBN: 83-246-0462-6
stron: 1000, Format: B5, okładka: miękka
Data wydania: 2006-08-31
Księgarnia: Helion
Cena książki: 99,00 zł
Kompletny przewodnik po mechanizmach sieciowych Linuksa
- Inicjalizacja urządzeń sieciowych.
- Interfejsy pomiędzy urządzeniami i protokołami.
- Rozwiązania specyficzne dla protokołów.
Sieci, a szczególnie internet, to jeden z filarów współczesnej informatyki. Niemal każdy elektroniczny gadżet może pracować w sieci za pośrednictwem różnych metod komunikacji. Ogromna ilość produkowanych dziś urządzeń sieciowych opiera się na różnych dystrybucjach systemu operacyjnego Linux. Ten dostępny nieodpłatnie system operacyjny od początku tworzony był z uwzględnieniem roli, jaką mógłby odgrywać w świecie sieci komputerowych, więc zaimplementowano w nim niemal wszystkie możliwe mechanizmy sieciowe. Dodatkowo filozofia, jaką przyjęto przy rozwoju tego systemu operacyjnego, pozwala wszystkim jego użytkownikom na dodawanie do jądra Linuksa własnych modułów zapewniających obsługę niestandardowych urządzeń i protokołów.
Książka "Linux. Mechanizmy sieciowe" to szczegółowe omówienie rozwiązań sieciowych, jakie zostały zastosowane w tym systemie operacyjnym. Opisuje sposoby, w jakie jądro Linuksa realizuje zadania przydzielane mu przez protokoły IP. Czytając ją, można poznać współczesną łączność sieciową na wziętych z życia przykładach. Pozycja ta jest doskonałym przewodnikiem po kodzie źródłowym funkcji sieciowych jądra systemu Linux. Przedstawia kod w języku C z obszernymi komentarzami i wyjaśnieniami zastosowanych mechanizmów.
- Struktury danych
- Rejestracja i inicjalizowanie urządzeń sieciowych
- Powiadamianie jądra o odbiorze ramki
- Obsługa protokołów
- Implementacja mostkowania
- Obsługa IPv4
- Podsystem sąsiedztwa
- Routing
Osoby które kupowały "Linux. Mechanizmy sieciowe", wybierały także:
- Windows Media Center. Domowe centrum rozrywki 66,67 zł, (8,00 zł -88%)
- 66,19 zł, (13,90 zł -79%)
- Superinteligencja. Scenariusze, strategie, zagro 66,19 zł, (13,90 zł -79%)
- Socjotechnika. Sztuka zdobywania w 66,19 zł, (13,90 zł -79%)
- Przywództwo w świecie VUCA. Jak być skutecznym liderem w niepewnym środowisku 58,64 zł, (12,90 zł -78%)
Spis treści
Linux. Mechanizmy sieciowe -- spis treści
Wstęp (13)
Część I Podstawy (21)
1. Wprowadzenie (23)
- Podstawowa terminologia (23)
- Typowe wzorce kodowania (24)
- Narzędzia dostępne w przestrzeni użytkownika (36)
- Przeglądanie kodu źródłowego (37)
- Opcje oferowane w postaci łat (38)
2. Najważniejsze struktury danych (41)
- Bufor gniazda: struktura sk_buff (41)
- Struktura net_device (60)
- Pliki występujące w tym rozdziale (73)
3. Interfejs użytkownik - jądro (75)
- Informacje ogólne (75)
- procfs kontra sysctl (77)
- Interfejs ioctl (84)
- Netlink (86)
- Serializacja zmian konfiguracji (87)
Część II Inicjalizacja systemu (89)
4. Łańcuchy powiadomień (91)
- Przyczyny wprowadzenia łańcuchów powiadomień (91)
- Informacje ogólne (93)
- Definiowanie łańcucha (93)
- Rejestracja w łańcuchu (94)
- Powiadamianie o zdarzeniach (95)
- Łańcuchy powiadomień w podsystemach sieciowych (96)
- Strojenie za pośrednictwem systemu plików /proc (97)
- Funkcje i zmienne występujące w tym rozdziale (97)
- Pliki i katalogi występujące w tym rozdziale (98)
5. Inicjalizacja urządzeń sieciowych (99)
- Ogólne informacje na temat inicjalizacji systemu (99)
- Rejestracja i inicjalizacjaa urządzeń (101)
- Podstawowe cele inicjalizacji kart sieciowych (101)
- Interakcje pomiędzy urządzeniami i jądrem (102)
- Opcje inicjalizacji (107)
- Opcje modułów (108)
- Inicjalizacja warstwy obsługi urządzeń: net_dev_init (109)
- Kod pomocniczy w przestrzeni użytkownika (111)
- Urządzenia wirtualne (114)
- Strojenie za pośrednictwem systemu plików /proc (117)
- Funkcje i zmienne występujące w tym rozdziale (118)
- Pliki i katalogi występujące w tym rozdziale (118)
6. Warstwa PCI i karty sieciowe (119)
- Struktury danych występujące w tym rozdziale (119)
- Rejestracja sterownika karty sieciowej PCI (121)
- Zarządzanie zasilaniem i Wake-on-LAN (122)
- Przykład rejestracji sterownika karty sieciowej PCI (123)
- Ogólny schemat (125)
- Strojenie za pośrednictwem systemu plików /proc (125)
- Funkcje i zmienne występujące w tym rozdziale (127)
- Pliki i katalogi występujące w tym rozdziale (127)
7. Infrastruktura jądra związana z inicjacją komponentów (129)
- Opcje uruchamiania jądra (129)
- Kod inicjacji modułu (135)
- Optymalizacja etykiet opartych na makrach (138)
- Procedury inicjacji wykonywane podczas uruchamiania systemu (140)
- Optymalizacja pamięci (142)
- Strojenie za pośrednictwem systemu plików /proc (146)
- Funkcje i zmienne występujące w tym rozdziale (146)
- Pliki i katalogi występujące w tym rozdziale (147)
8. Rejestracja i inicjacja urządzeń (149)
- Kiedy urządzenie zostaje zarejestrowane (150)
- Kiedy urządzenie zostaje wyrejestrowane (151)
- Przydział struktur net_device (151)
- Szkielet zarejestrowania i wyrejestrowania karty sieciowej (152)
- Inicjacja urządzenia (154)
- Organizacja struktur net_device (158)
- Stan urządzenia (160)
- Rejestrowanie i wyrejestrowywanie urządzeń (162)
- Rejestracja urządzenia (166)
- Wyrejestrowanie urządzenia (168)
- Włączanie i wyłączanie urządzenia sieciowego (172)
- Aktualizacja stanu reguły kolejkowania (173)
- Konfigurowanie urządzeń z przestrzeni użytkownika (177)
- Urządzenia wirtualne (180)
- Blokowanie (182)
- Strojenie za pośrednictwem systemu plików /proc (183)
- Funkcje i zmienne występujące w tym rozdziale (183)
- Pliki i katalogi występujące w tym rozdziale (184)
Część III Wysyłanie i odbieranie (185)
9. Przerwania i sterowniki sieciowe (187)
- Decyzje i kierunki ruchu (187)
- Powiadamianie sterownika o odebraniu ramki (189)
- Procedury obsługi przerwań (192)
- Struktura danych softnet_data (213)
10. Odbiór ramki (217)
- Interakcje z innymi opcjami (218)
- Włączanie i wyłączanie urządzenia (218)
- Kolejki (219)
- Powiadamianie jądra o odbiorze ramki: NAPI i netif_rx (219)
- Stary interfejs pomiędzy sterownikami urządzeń i jądrem: pierwsza część netif_rx (225)
- Zarządzanie obciążeniem (231)
- Obsługa przerwania NET_RX_SOFTIRQ: net_rx_action (234)
11. Wysyłanie ramki (245)
- Włączanie i wyłączanie wysyłania (247)
12. Informacje o przerwaniach (265)
- Dane statystyczne (265)
- Strojenie za pośrednictwem systemów plików /proc i sysfs (266)
- Funkcje i zmienne występujące w tej części książki (267)
- Pliki i katalogi występujące w tej części książki (268)
13. Procedury obsługi protokołów (271)
- Przegląd stosu protokołowego (271)
- Wykonanie odpowiedniej procedury obsługi protokołu (279)
- Organizacja procedur obsługi protokołów (283)
- Rejestracja procedury obsługi protokołu (284)
- Ethernet i ramki IEEE 802.3 (286)
- Strojenie za pośrednictwem systemu plików /proc (296)
- Funkcje i zmienne występujące w tym rozdziale (297)
- Pliki i katalogi występujące w tym rozdziale (297)
Część IV Mostkowanie (299)
14. Mostkowanie: podstawowe koncepcje (301)
- Wtórniki, mosty i routery (301)
- Mosty i przełączniki (303)
- Hosty (304)
- Łączenie sieci lokalnych za pomocą mostów (304)
- Mostkowanie różnych technologii sieci lokalnych (305)
- Uczenie się adresów (306)
- Sieci z wieloma mostami (308)
15. Mostkowanie: protokół drzewa częściowego (315)
- Podstawowa terminologia (316)
- Przykład hierarchicznej topologii L2 zawierającej mosty (316)
- Podstawowe elementy protokołu Spanning Tree Protocol (320)
- Identyfikatory portów i mostów (325)
- Ramki BPDU (327)
- Definiowanie aktywnej topologii (332)
- Liczniki czasu (339)
- Zmiany topologii (344)
- Kapsułkowanie ramek BPDU (348)
- Wysyłanie konfiguracyjnych ramek BPDU (348)
- Przetwarzanie ramek wejściowych (351)
- Czas konwergencji (353)
- Przegląd nowych wersji protokołu STP (354)
16. Mostkowanie: implementacja w Linuksie (359)
- Abstrakcja urządzenia mostkującego (359)
- Ważne struktury danych (362)
- Inicjalizacja kodu mostkowania (364)
- Tworzenie urządzeń i portów mostkujących (365)
- Tworzenie nowego urządzenia mostkującego (365)
- Procedura inicjalizacyjna urządzenia mostkującego (366)
- Usuwanie mostu (367)
- Dodawanie portów do mostu (367)
- Usuwanie portu mostu (370)
- Włączanie i wyłączanie urządzenia mostkującego (370)
- Włączanie i wyłączanie portu mostu (371)
- Zmiana stanu portu (373)
- Panorama (373)
- Baza przekazywania (375)
- Obsługa ruchu wejściowego (378)
- Wysyłanie danych z urządzenia mostkującego (382)
- Spanning Tree Protocol (STP) (383)
- Łańcuch powiadomień netdevice (390)
17. Mostkowanie: zagadnienia różne (393)
- Narzędzia konfiguracyjne działające w przestrzeni użytkownika (393)
- Dostrajanie za pomocą systemu plików /proc (398)
- Dostrajanie za pomocą systemu plików /sys (398)
- Statystyka (399)
- Struktury danych przedstawione w tej części książki (400)
- Funkcje i zmienne przedstawione w tej części książki (404)
- Pliki i katalogi przedstawione w tej części książki (405)
Część V Internet Protocol Version 4 (IPv4) (407)
18. Internet Protocol Version 4 (IPv4): pojęcia (409)
- Protokół IP: panorama (409)
- Nagłówek IP (411)
- Opcje IP (414)
- Fragmentacja i defragmentacja pakietów (420)
- Sumy kontrolne (430)
19. Internet Protocol Version 4 (IPv4): funkcje i cechy jądra Linuksa (437)
- Główne struktury danych IPv4 (437)
- Ogólna obsługa pakietów (441)
- Opcje IP (450)
20. Internet Protocol Version 4 (IPv4): przekazywanie i lokalne dostarczanie (461)
- Przekazywanie (461)
- Dostarczanie lokalne (466)
21. Internet Protocol Version 4 (IPv4): transmisja (469)
- Kluczowe funkcje transmisyjne (470)
- Interfejs do podsystemu sąsiedztwa (504)
22. Internet Protocol Version 4 (IPv4): obsługa fragmentacji (505)
- Fragmentacja IP (506)
- Defragmentacja IP (514)
23. Internet Protocol Version 4 (IPv4): zagadnienia różne (527)
- Długo przechowywane informacje o partnerze IP (527)
- Wybór wartości identyfikatora w nagłówku IP (531)
- Statystyka IP (532)
- Konfiguracja IP (535)
- IP-over-IP (540)
- Protokół IPv4: co z nim jest nie tak? (541)
- Dostrajanie za pomocą systemu plików /proc (542)
- Struktury danych opisywane w tej części książki (545)
- Funkcje i zmienne wspomniane w tej części książki (554)
- Pliki i katalogi wspomniane w tej części książki (556)
24. Protokół warstwy czwartej i obsługa Raw IP (557)
- Dostępne protokoły L4 (557)
- Rejestracja protokołu L4 (558)
- Dostarczanie danych L3 do L4: ip_local_deliver_finish (562)
- IPv4 a IPv6 (569)
- Dostrajanie za pomocą systemu plików /proc (569)
- Funkcje i zmienne przedstawione w tym rozdziale (570)
- Pliki i katalogi przedstawione w tym rozdziale (570)
25. Internet Control Message Protocol (ICMPv4) (571)
- Nagłówek ICMP (572)
- Treść ICMP (573)
- Typy komunikatów ICMP (574)
- Zastosowania protokołu ICMP (580)
- Panorama (583)
- Inicjalizacja protokołu (584)
- Struktury danych opisywane w tym rozdziale (585)
- Wysyłanie komunikatów ICMP (587)
- Odbieranie komunikatów ICMP (594)
- Statystyka ICMP (601)
- Przekazywanie powiadomień o błędach do warstwy transportu (603)
- Dostrajanie za pomocą systemu plików /proc (604)
- Funkcje i zmienne przedstawione w tym rozdziale (605)
- Pliki i katalogi przedstawione w tym rozdziale (605)
Część VI Podsystem sąsiedztwa (607)
26. Podsystem sąsiedztwa: pojęcia (609)
- Co to jest sąsiad? (609)
- Do czego potrzebne są protokoły sąsiedztwa? (612)
- Implementacja w Linuksie (617)
- Pośredniczenie w protokole sąsiedztwa (619)
- Wysyłanie i przetwarzanie żądań odwzorowania adresu (622)
- Stany sąsiadów i wykrywanie nieosiągalności sieci (625)
27. Podsystem sąsiedztwa: infrastruktura (633)
- Główne struktury danych (633)
- Wspólny interfejs między protokołami L3 a protokołami sąsiedztwa (636)
- Ogólne zadania infrastruktury sąsiedztwa (646)
- Liczniki referencji do struktur neighbour (650)
- Tworzenie wpisu sąsiada (651)
- Usuwanie sąsiada (653)
- Działanie w charakterze pośrednika (658)
- Buforowanie nagłówków L2 (662)
- Inicjalizacja i finalizacja protokołu (666)
- Interakcja z innymi podsystemami (667)
- Interakcja między protokołami sąsiedztwa a funkcjami transmisyjnymi L3 (670)
- Kolejkowanie (671)
28. Podsystem sąsiedztwa: Address Resolution Protocol (ARP) (677)
- Format pakietu ARP (678)
- Przykład transakcji ARP (680)
- Spontaniczny ARP (681)
- Odpowiedzi z wielu interfejsów (683)
- Konfigurowalne opcje ARP (685)
- Inicjalizacja protokołu ARP (691)
- Inicjalizacja struktury neighbour (693)
- Wysyłanie i odbieranie pakietów ARP (698)
- Przetwarzanie wejściowych pakietów ARP (703)
- Pośredniczenie ARP (710)
- Przykłady (715)
- Zdarzenia zewnętrzne (717)
- ARPD (719)
- Reverse Address Resolution Protocol (RARP) (722)
- Ulepszenia w ND (IPv6) w stosunku do ARP (IPv4) (722)
29. Podsystem sąsiedztwa: zagadnienia różne (723)
- Zarządzanie sąsiadami przez administratora systemu (723)
- Dostrajanie za pomocą systemu plików /proc (726)
- Struktury danych przedstawione w tej części książki (731)
- Funkcje i zmienne przedstawione w tej części książki (744)
- Pliki i katalogi przedstawione w tej części książki (745)
Część VII Routing (747)
30. Routing: pojęcia (749)
- Routery, trasy i tablice tras (750)
- Podstawowe elementy routingu (754)
- Tablica tras (764)
- Wyszukiwania (768)
- Odbieranie pakietów a wysyłanie pakietów (770)
31. Routing: zagadnienia zaawansowane (773)
- Zasady routingu opartego na polityce (773)
- Zasady routingu wielościeżkowego (778)
- Interakcje z innymi podsystemami jądra (784)
- Demony protokołów routingu (789)
- Szczegółowe monitorowanie (791)
- Komunikaty ICMP_REDIRECT (791)
- Filtrowanie ścieżek odwrotnych (796)
32. Routing: implementacja w Linuksie (799)
- Opcje jądra (799)
- Główne struktury danych (802)
- Zasięgi tras i adresów (806)
- Podstawowe i wtórne adresy IP (808)
- Uniwersalne procedury pomocnicze i makra (809)
- Globalne blokady (811)
- Inicjalizacja podsystemu routingu (811)
- Zdarzenia zewnętrzne (813)
- Interakcje z innymi podsystemami (824)
33. Routing: bufor tras (827)
- Inicjalizacja bufora tras (827)
- Organizacja tablicy tras (828)
- Podstawowe operacje na buforze (829)
- Buforowanie wielościeżkowe (838)
- Interfejs między DST a wywołującymi protokołami (843)
- Opróżnianie bufora tras (849)
- Odśmiecanie (850)
- Ograniczanie częstotliwości wyjściowych komunikatów ICMP (860)
34. Routing: tablice tras (861)
- Organizacja tablic mieszających w podsystemie routingu (861)
- Inicjalizacja tablicy tras (867)
- Dodawanie i usuwanie tras (868)
- Routing oparty na polityce i jego wpływ na definicje tablic tras (873)
35. Routing: wyszukiwania (875)
- Panorama funkcji wyszukiwawczych (875)
- Procedury pomocnicze (876)
- Przeszukiwanie tablicy: fn_hash_lookup (877)
- Funkcja fib_lookup (882)
- Ustawianie funkcji odbiorczych i transmisyjnych (882)
- Ogólna struktura procedur routingu wejściowego i wyjściowego (885)
- Routing wejściowy (887)
- Routing wyjściowy (895)
- Wpływ routingu wielościeżkowego na wybór następnego przeskoku (902)
- Routing oparty na polityce (905)
- Routing źródłowy (908)
- Routing oparty na polityce i klasyfikator oparty na tablicy tras (909)
36. Routing: zagadnienia różne (913)
- Narzędzia konfiguracyjne działające w przestrzeni użytkownika (913)
- Statystyka (919)
- Dostrajanie za pomocą systemu plików /proc (919)
- Włączanie i wyłączanie przekazywania (926)
- Struktury danych przedstawione w tej części książki (928)
- Funkcje i zmienne przedstawione w tej części książki (944)
- Pliki i katalogi przedstawione w tej części książki (946)
Skorowidz (949)





