Linux_Mechanizmy_sieciowe_linume.pdf

(461 KB) Pobierz
IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TREœCI
Linux. Mechanizmy
sieciowe
Autor: Christian Benvenuti
T³umaczenie: Jaromir Senczyk, Grzegorz Werner
ISBN: 83-246-0462-6
Tytu³ orygina³u:
Understanding Linux Network Internals
Format: B5, stron: 1000
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
DODAJ DO KOSZYKA
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
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWOœCIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Koœciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Wstęp ........................................................................................................................................13
Część I
Podstawy
21
23
24
36
37
38
1. Wprowadzenie ............................................................................................................. 23
Podstawowa terminologia
Typowe wzorce kodowania
Narzędzia dostępne w przestrzeni użytkownika
Przeglądanie kodu źródłowego
Opcje oferowane w postaci łat
2. Najważniejsze struktury danych ................................................................................. 41
Bufor gniazda: struktura sk_buff
Struktura net_device
Pliki występujące w tym rozdziale
41
60
73
3. Interfejs użytkownik – jądro ........................................................................................ 75
Informacje ogólne
procfs kontra sysctl
Interfejs ioctl
Netlink
Serializacja zmian konfiguracji
75
77
84
86
87
Część II Inicjalizacja systemu
Przyczyny wprowadzenia łańcuchów powiadomień
Informacje ogólne
Definiowanie łańcucha
Rejestracja w łańcuchu
89
91
93
93
94
4. Łańcuchy powiadomień ............................................................................................... 91
3
Powiadamianie o zdarzeniach
Łańcuchy powiadomień w podsystemach sieciowych
Strojenie za pośrednictwem systemu plików /proc
Funkcje i zmienne występujące w tym rozdziale
Pliki i katalogi występujące w tym rozdziale
95
96
97
97
98
5. Inicjalizacja urządzeń sieciowych ............................................................................... 99
Ogólne informacje na temat inicjalizacji systemu
Rejestracja i inicjalizacja urządzeń
Podstawowe cele inicjalizacji kart sieciowych
Interakcje pomiędzy urządzeniami i jądrem
Opcje inicjalizacji
Opcje modułów
Inicjalizacja warstwy obsługi urządzeń: net_dev_init
Kod pomocniczy w przestrzeni użytkownika
Urządzenia wirtualne
Strojenie za pośrednictwem systemu plików /proc
Funkcje i zmienne występujące w tym rozdziale
Pliki i katalogi występujące w tym rozdziale
99
101
101
102
107
108
109
111
114
117
118
118
6. Warstwa PCI i karty sieciowe ..................................................................................... 119
Struktury danych występujące w tym rozdziale
Rejestracja sterownika karty sieciowej PCI
Zarządzanie zasilaniem i Wake-on-LAN
Przykład rejestracji sterownika karty sieciowej PCI
Ogólny schemat
Strojenie za pośrednictwem systemu plików /proc
Funkcje i zmienne występujące w tym rozdziale
Pliki i katalogi występujące w tym rozdziale
119
121
122
123
125
125
127
127
7. Infrastruktura jądra związana z inicjacją komponentów ........................................ 129
Opcje uruchamiania jądra
Kod inicjacji modułu
Optymalizacja etykiet opartych na makrach
Procedury inicjacji wykonywane podczas uruchamiania systemu
Optymalizacja pamięci
Strojenie za pośrednictwem systemu plików /proc
Funkcje i zmienne występujące w tym rozdziale
Pliki i katalogi występujące w tym rozdziale
129
135
138
140
142
146
146
147
4
|
Spis treści
8. Rejestracja i inicjacja urządzeń .................................................................................. 149
Kiedy urządzenie zostaje zarejestrowane
Kiedy urządzenie zostaje wyrejestrowane
Przydział struktur net_device
Szkielet zarejestrowania i wyrejestrowania karty sieciowej
Inicjacja urządzenia
Organizacja struktur net_device
Stan urządzenia
Rejestrowanie i wyrejestrowywanie urządzeń
Rejestracja urządzenia
Wyrejestrowanie urządzenia
Włączanie i wyłączanie urządzenia sieciowego
Aktualizacja stanu reguły kolejkowania
Konfigurowanie urządzeń z przestrzeni użytkownika
Urządzenia wirtualne
Blokowanie
Strojenie za pośrednictwem systemu plików /proc
Funkcje i zmienne występujące w tym rozdziale
Pliki i katalogi występujące w tym rozdziale
150
151
151
152
154
158
160
162
166
168
172
173
177
180
182
183
183
184
Część III Wysyłanie i odbieranie
Decyzje i kierunki ruchu
Powiadamianie sterownika o odebraniu ramki
Procedury obsługi przerwań
Struktura danych softnet_data
185
187
189
192
213
9. Przerwania i sterowniki sieciowe ..............................................................................187
10. Odbiór ramki ................................................................................................................217
Interakcje z innymi opcjami
Włączanie i wyłączanie urządzenia
Kolejki
Powiadamianie jądra o odbiorze ramki: NAPI i netif_rx
Stary interfejs pomiędzy sterownikami urządzeń i jądrem: pierwsza część netif_rx
Zarządzanie obciążeniem
Obsługa przerwania NET_RX_SOFTIRQ: net_rx_action
218
218
219
219
225
231
234
11. Wysyłanie ramki .........................................................................................................245
Włączanie i wyłączanie wysyłania
247
Spis treści
|
5
12. Informacje o przerwaniach ........................................................................................ 265
Dane statystyczne
Strojenie za pośrednictwem systemów plików /proc i sysfs
Funkcje i zmienne występujące w tej części książki
Pliki i katalogi występujące w tej części książki
265
266
267
268
13. Procedury obsługi protokołów ...................................................................................271
Przegląd stosu protokołowego
Wykonanie odpowiedniej procedury obsługi protokołu
Organizacja procedur obsługi protokołów
Rejestracja procedury obsługi protokołu
Ethernet i ramki IEEE 802.3
Strojenie za pośrednictwem systemu plików /proc
Funkcje i zmienne występujące w tym rozdziale
Pliki i katalogi występujące w tym rozdziale
271
279
283
284
286
296
297
297
Część IV Mostkowanie
Wtórniki, mosty i routery
Mosty i przełączniki
Hosty
Łączenie sieci lokalnych za pomocą mostów
Mostkowanie różnych technologii sieci lokalnych
Uczenie się adresów
Sieci z wieloma mostami
299
301
303
304
304
305
306
308
14. Mostkowanie: podstawowe koncepcje .................................................................... 301
15. Mostkowanie: protokół drzewa częściowego .......................................................... 315
Podstawowa terminologia
Przykład hierarchicznej topologii L2 zawierającej mosty
Podstawowe elementy protokołu Spanning Tree Protocol
Identyfikatory portów i mostów
Ramki BPDU
Definiowanie aktywnej topologii
Liczniki czasu
Zmiany topologii
Kapsułkowanie ramek BPDU
Wysyłanie konfiguracyjnych ramek BPDU
Przetwarzanie ramek wejściowych
Czas konwergencji
Przegląd nowych wersji protokołu STP
316
316
320
325
327
332
339
344
348
348
351
353
354
6
|
Spis treści
Zgłoś jeśli naruszono regulamin