home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 1999 January
/
pcwk_01_1999.iso
/
Ksiazki
/
RM
/
TCPIP2.TXT
< prev
next >
Wrap
Text File
|
1998-07-22
|
14KB
|
507 lines
W. Richard Stevens, Gary R. Wright
t│um. Piotr Czarnocki, Marcin Palacz
Biblia TCP/IP, tom 2
Ksi╣┐ka ta przeznaczona jest dla
wszystkich, kt≤rzy chc╣ zrozumieµ, w jaki
spos≤b zaimplementowane zosta│y protoko│y
TCP/IP: programist≤w pisz╣cych aplikacje
sieciowe, administrator≤w odpowiedzialnych
za funkcjonowanie system≤w komputerowych i
sieci u┐ywaj╣cych TCP/IP, jak r≤wnie┐ dla
wszystkich innych programist≤w, chc╣cych
dowiedzieµ siΩ, w jaki spos≤b du┐y i
nietrywialny kod zosta│ umieszczony w
rzeczywistym systemie operacyjnym.
W ksi╣┐ce przedstawiony i om≤wiony zosta│
kod ƒr≤d│owy powszechnie spotykanej, i
czΩsto traktowanej jako referencyjna,
implementacji TCP/IP. Jest to
implementacja pochodz╣ca z Computer
Systems Research Group (CSRG) w
Uniwersytecie Kalifornijskim w Berkeley.
Spis tre£ci
Przedmowa
Rozdzia│ 1 WstΩp
1.1 WstΩp
1.2 Prezentacja kodu ƒr≤d│owego
1.3 Historia
1.4 Interfejsy programowe aplikacji
1.5 Przyk│adowy program
1.6 Wywo│ania systemowe i funkcje
biblioteczne
1.7 Om≤wienie implementacji obs│ugi sieci
1.8 Deskryptory
1.9 Bufory pamiΩci (mbuf) i przetwarzanie
na wyj£ciu
1.10 Przetwarzanie danych wej£ciowych
1.11 Implementacja sieciowa - raz jeszcze
1.12 Poziomy przerwa± i wsp≤│bie┐no£µ
1.13 Organizacja kodu ƒr≤d│owego
1.14 Testowa sieµ
1.14 Podsumowanie
Rozdzia│ 2 Mbuf: bufory pamiΩci
2.1 WstΩp
2.2 Wprowadzenie do kodu ƒr≤d│owego
2.3 Definicje mbuf
2.4 Struktura mbuf
2.5 Proste makroinstrukcje i funkcje
operuj╣ce na buforach mbuf
2.6 Funkcje m\_devget i m\_pullup
2.7 Podsumowanie makroinstrukcji i funkcji
mbuf
2.8 Podsumowanie struktur danych kodu
sieciowego Net/3
2.9 m_copy i liczniki odwo│a± do klastra
2.10 Alternatywy
2.11 Podsumowanie
Rozdzia│ 3 Warstwa interfejsu
3.1 WstΩp
3.2 Wprowadzenie do kodu ƒr≤d│owego
3.3 Struktura ifnet
3.4 Struktura ifaddr
3.5 Struktura sockaddr
3.6 Specjalizacja ifnet i ifaddr
3.7 Przegl╣d inicjacji sieci
3.8 Inicjacja Ethernetu
3.9 Inicjacja SLIP
3.10 Inicjacja pΩtli zwrotnej
3.11 Funkcja if_attach
3.12 Funkcja ifinit
3.13 Podsumowanie
Rozdzia│ 4 Interfejsy: Ethernet
4.1 WstΩp
4.2 Wprowadzenie do kodu ƒr≤d│owego
4.3 Interfejs Ethernet
4.4 Wywo│anie systemowe ioctl
4.5 Podsumowanie
Rozdzia│ 5 Interfejsy: SLIP i pΩtla
zwrotna
5.1 WstΩp
5.2 Wprowadzenie do kodu ƒr≤d│owego
5.3 Interfejs SLIP
5.4 Interfejs pΩtli zwrotnej
5.5 Podsumowanie
Rozdzia│ 6 Adresowanie IP
6.1 WstΩp
6.2 Wprowadzenie do kodu ƒr≤d│owego
6.3 Przegl╣d struktur interfejs≤w i
adresowych
6.4 Struktura sockaddr_in
6.5 Struktura in_ifaddr
6.6 Przypisanie adresu
6.7 Przetwarzanie ioctl w interfejsie
6.8 Internetowe funkcje narzΩdziowe
6.9 Funkcje narzΩdziowe ifnet
6.10 Podsumowanie
Rozdzia│ 7 Domeny i protoko│y
7.1 WstΩp
7.2 Wprowadzenie do kodu ƒr≤d│owego
7.3 Struktura domain
7.4 Struktura protosw
7.5 Struktury IP: domain i protosw
7.6 Funkcje pffindproto i pffindtype
7.7 Funkcja pfctlinput
7.8 Inicjacja IP
7.9 Wywo│anie systemowe sysctl
7.10 Podsumowanie
Rozdzia│ 8 IP - protok≤│ Internetu
8.1 WstΩp
8.2 Wprowadzenie do kodu ƒr≤d│owego
8.3 Pakiety IP
8.4 Przetwarzanie na wej£ciu - funkcja
ipintr
8.5 Przekazywanie - funkcja ip_forward
8.6 Przetwarzanie wyj£ciowe - funkcja
ip_output
8.7 Suma kontrolna - funkcja in_cksum
8.8 Wywo│ania systemowe setsockopt i
getsockopt
8.9 Funkcja ip_sysctl
8.10 Podsumowanie
Rozdzia│ 9 Przetwarzanie opcji IP
9.1 WstΩp
9.2 Wprowadzenie do kodu ƒr≤d│owego
9.3 Format opcji
9.4 Funkcja ip_dooptions
9.5 Opcja rejestracji trasy
9.6 Opcja trasy nadawcy i rejestracji
trasy
9.7 Opcja znacznika czasu
9.8 Funkcja ip_insertoptions
9.9 Funkcja ip_pcbopts
9.10 Ograniczenia
9.11 Podsumowanie
Rozdzia│ 10 Fragmentacja i odtwarzanie
datagram≤w IP
10.1 WstΩp
10.2 Wprowadzenie do kodu ƒr≤d│owego
10.3 Fragmentacja
10.4 Funkcja ip_optcopy
10.5 Odtwarzanie datagram≤w
10.6 Funkcja ip_reass
10.7 Funkcja ip_slowtimo
10.8 Podsumowanie
Rozdzia│ 11 ICMP - internetowy protok≤│
komunikat≤w kontrolnych
11.1 WstΩp
11.2 Wprowadzenie do kodu ƒr≤d│owego
11.3 Struktura icmp
11.4 Struktura protosw protoko│u ICMP
11.5 Przetwarzanie wej£ciowe - funkcja
icmp_input
11.6 Przetwarzanie komunikat≤w o b│Ωdach
11.7 Przetwarzanie ┐╣da±
11.8 Przetwarzanie komunikat≤w o
przekierowaniu
11.9 Przetwarzanie odpowiedzi
11.10 Przetwarzanie wyj£ciowe
11.11 Funkcja icmp_error
11.12 Funkcja icmp_reflect
11.13 Funkcja icmp_send
11.14 Funkcja icmp_sysctl
11.15 Podsumowanie
Rozdzia│ 12 Przesy│anie w trybie multicast
IP
12.1 WstΩp
12.2 Wprowadzenie do kodu ƒr≤d│owego
12.3 Ethernetowe adresy multicast
12.4 Struktura ether_multi
12.5 Ethernetowe odbieranie w trybie
multicast
12.6 Struktura in_multi
12.7 Struktura ip_moptions
12.8 Opcje gniazd zwi╣zane z przesy│aniem
w trybie multicast
12.9 Warto£ci TTL przy przesy│aniu w
trybie multicast
12.10 Funkcja ip_setmoptions
12.11 Do│╣czanie do grupy multicast IP
12.12 Rezygnacja z przynale┐no£ci do grupy
multicastowej IP
12.13 Funkcja ip_getmoptions
12.14 Przetwarzanie wej£ciowe przy
przesy│aniu multicast - funkcja ipintr
12.15 Przetwarzanie wyj£ciowe przy
przesy│aniu multicast - funkcja ip_output
12.16 Rozwa┐ania o szybko£ci dzia│ania
12.17 Podsumowanie
Rozdzia│ 13 IGMP - internetowy protok≤│
zarz╣dzania grupami
13.1 WstΩp
13.2 Wprowadzenie do kodu ƒr≤d│owego
13.3 Struktura igmp
13.4 Struktura protosw IGMP
13.5 Do│╣czanie do grupy - funkcja
igmp_joingroup
13.6 Funkcja igmp_fasttimo
13.7 Przetwarzanie wej£ciowe - funkcja
igmp_input
13.8 Opuszczanie grupy - funkcja
igmp_leavegroup
13.9 Podsumowanie
Rozdzia│ 14 Rutowanie przesy│ania
grupowego IP
14.1 WstΩp
14.2 Wprowadzenie do kodu ƒr≤d│owego
14.3 Przetwarzanie wyj£ciowe przesy│ania
multicast - raz jeszcze
14.4 Demon mrouted
14.5 Interfejsy wirtualne
14.6 IGMP raz jeszcze
14.7 Routing przesy│ania multicast
14.8 Przekazywanie multicast - funkcja
ip_mforward
14.9 Zako±czenie przetwarzania - funkcja
ip_mrouter_done
14.10 Podsumowanie
Rozdzia│ 15 Warstwa gniazd
15.1 WstΩp
15.2 Wprowadzenie do kodu ƒr≤d│owego
15.3 Struktura socket
15.4 Wywo│ania systemowe
15.5 Procesy, deskryptory i gniazda
15.6 Wywo│anie systemowe socket
15.7 Funkcja getsock i sockargs
15.8 Wywo│anie systemowe bind
15.9 Wywo│anie systemowe listen
15.10 Funkcje tsleep i wakeup
15.11 Wywo│anie systemowe accept
15.12 Funkcje sonewconn i soisconnected
15.13 Wywo│anie systemowe connect
15.14 Wywo│anie systemowe shutdown
15.15 Wywo│anie systemowe close
15.16 Podsumowanie
Rozdzia│ 16 Operacje wej£cia/wyj£cia
gniazda
16.1 Wprowadzenie
16.2 Wprowadzenie do kodu ƒr≤d│owego
16.3 Bufory gniazd
16.4 Wywo│ania systemowe write, writev,
sendto i sendmsg
16.5 Odwo│anie systemowe sendmsg
16.6 Funkcja sendit
16.7 Funkcja sosend
16.8 Wywo│ania systemowe read, readv,
recvfrom oraz recvmsg
16.9 Wywo│anie systemowe recvmsg
16.10 Funkcja recvit
16.11 Funkcja soreceive
16.12 Kod soreceive
16.13 Wywo│anie systemowe select
16.14 Podsumowanie
Rozdzia│ 17 Opcje gniazda
17.1 Wprowadzenie
17.2 Wprowadzenie do kodu ƒr≤d│owego
17.3 Funkcja systemowa setsockopt
17.4 Wywo│anie systemowe getsockopt
17.5 Wywo│ania systemowe fcntl oraz ioctl
17.6 Wywo│anie systemowe getsockname
17.7 Wywo│anie systemowe getpeername
17.8 Podsumowanie
Rozdzia│ 18 Drzewo podstawowe tablic
routingu
18.1 Wprowadzenie
18.2 Struktura tablic routingu
18.3 Gniazda routingu
18.4 Wprowadzenie do kodu ƒr≤d│owego
18.5 Struktura danych wΩz│a podstawowego
18.6 Struktury rutuj╣ce
18.7 Inicjacja: funkcje route_init oraz
rtable_init
18.8 Inicjacja: funkcje rn_init i
rn_inithead
18.9 Powielone klucze i listy masek
18.10 Funkcja rn_match
18.11 Funkcja rn_search
18.12 Podsumowanie
Rozdzia│ 19 »╣dania routingu oraz
komunikaty routingu
19.1 Wprowadzenie
19.2 Funkcje rtalloc oraz rtalloc1
19.3 Makro RTFREE oraz funkcja rtfree
19.4 Funkcja rtrequest
19.5 Funkcja rt_setgate
19.6 Funkcja rtinit
19.7 Funkcja rtredirect
19.8 Struktura komunikatu routingu
19.9 Funkcja rt_missmsg
19.10 Funkcja rt_ifmsg
19.11 Funkcja rt_newaddrmsg
19.12 Funkcja rt_msg1
19.13 Funkcja rt_msg2
19.14 Funkcja sysctl_rtable
19.15 Funkcja sysctl_dumpentry
19.16 Funkcja sysctl_iflist
19.17 Podsumowanie
Rozdzia│ 20 Gniazda rutowania
20.1 Wprowadzenie
20.2 Struktury routedomain oraz protosw
20.3 Bloki kontroli rutowania
20.4 Funkcja raw_init
20.5 Funkcja route_output
20.6 Funkcja rt_xaddrs
20.7 Funkcja rt_setmetrics
20.8 Funkcja raw_input
20.9 Funkcja route_usrreq
20.10 Funkcja raw_usrreq
20.11 Funkcje raw_attach, raw_detach oraz
raw_disconnect
20.12 Podsumowanie
Rozdzia│ 21 ARP: Protok≤│ rozr≤┐niania
adres≤w
21.1 Wprowadzenie
21.2 ARP i tablica routingu
21.3 Wprowadzenie do kodu ƒr≤d│owego
21.4 Struktury ARP
21.5 Funkcja arpwhohas
21.6 Funkcja arprequest
21.7 Funkcja arpintr
21.8 Funkcja in_arpinput
21.9 Funkcje zegara ARP
21.10 Funkcja arpresolve
21.11 Funkcja arplookup
21.12 Proxy ARP
21.13 Funkcja arp_rtrequest
21.14 ARP i przesy│anie multicast
21.15 Podsumowanie
Rozdzia│ 22 Bloki kontroli protoko│u
22.1 Wprowadzenie
22.2 Wprowadzenie do kodu ƒr≤d│owego
22.3 Struktura inpcb
22.4 Funkcje in_pcballoc oraz in_pcbdetach
22.5 Wi╣zanie, │╣czenie oraz
demultipleksacja
22.6 Funkcja in_pcblookup
22.7 Funkcja in_pcbbind
22.8 Funkcja in_pcbconnect
22.9 Funkcja in_pcbdisconnect
22.10 Funkcje in_setsockaddr oraz
in_setsockport
22.11 Funkcje in_pcbnotify, in_rtchange
oraz in_losing
22.12 U£ci£lenia implementacyjne
22.13 Podsumowanie
Rozdzia│ 23 UDP: Protok≤│ datagram≤w
u┐ytkownika
23.1 Wprowadzenie
23.2 Wprowadzenie do kodu ƒr≤d│owego
23.3 Struktura UDP protosw
23.4 Nag│≤wek UDP
23.5 Funkcja udp_init
23.6 Funkcja udp_output
23.7 Funkcja udp_input
23.8 Funkcja udp_saveport
23.9 Funkcja udp_ctlinput
23.10 Funkcja udp_usrreq
23.11 Funkcja udp_sysctl
23.12 U£ci£lenia implementacyjne
23.13 Podsumowanie
Rozdzia│ 24 TCP: Protok≤│ steruj╣cy
transmisj╣
24.1 Wprowadzenie
24.2 Wprowadzenie do kodu ƒr≤d│owego
24.3 Struktura protosw TCP
24.4 Nag│≤wek TCP
24.6 Diagram przej£µ pomiΩdzy stanami TCP
24.7 Numery kolejne TCP
24.8 Funkcja tcp_init
24.9 Podsumowanie
Rozdzia│ 25 Zegary TCP
25.1 Wprowadzenie
25.2 Wprowadzenie do kodu ƒr≤d│owego
25.3 Funkcja tcp_canceltimers
25.4 Funkcja tcp_fasttimo
25.5 Funkcja tcp_slowtimo
25.6 Funkcja tcp_timers
25.7 Wyznaczanie warto£ci zegara
retransmisji
25.8 Funkcja tcp_newtcpcb
25.9 Funkcja tcp_setpersist
25.10 Funkcja tcp_xnit_timer
25.11 Czas oczekiwania na retransmisjΩ:
funkcja tcp_timers
25.12 Przyk│ad RTT
25.13 Podsumowanie
Rozdzia│ 26 Wyj£cie TCP
26.1 Wprowadzenie
26.2 Przegl╣da tcp_output
26.3 Okre£lenie, czy segment powinien
zostaµ wys│any
26.4 Opcje TCP
26.5 Opcja skali okna
26.6 Opcja znacznika czasu
26.7 Wys│anie segmentu
26.8 Funkcja tcp_template
26.9 Funkcja tcp_respond
26.10 Podsumowanie
Rozdzia│ 27 Funkcje TCP
27.1 Wprowadzenie
27.2 Funkcja tcp_drain
27.3 Funkcja tcp_drop
27.4 Funkcja tcp_close
27.5 Funkcja tcp_mss
27.6 Funkcja tcp_ctlinput
27.7 Funkcja tcp_notify
27.8 Funkcja tcp_quench
27.9 Makro TCP_REASS oraz funkcja
tcp_reass
27.10 Funkcja tcp_trace
27.11 Podsumowanie
Rozdzia│ 28 Wej£cie TCP
28.1 Wprowadzenie
28.2 Przetwarzanie wstΩpne
28.3 Funkcja tcp_dooptions
28.4 Przewidywanie nag│≤wka
28.5 Przetwarzanie danych wej£ciowych TCP:
d│uga £cie┐ka
28.6 Zako±czenie operacji aktywnego i
pasywnego otwarcia po│╣czenia
28.7 PAWS - zabezpieczenie przed
zawiniΩtymi numerami kolejnymi
28.8 Obcinanie segment≤w, aby dane
zmie£ci│y siΩ w oknie
28.9 Po│╣czenia z samym sob╣ i otwarcia
jednoczesne
28.10 ZapamiΩtywanie znacznika czasu
28.11 Przetwarzanie RST
28.12 Podsumowanie
Rozdzia│ 29 Wej£cie TCP (ci╣g dalszy)
29.1 WstΩp
29.2 Przegl╣d przetwarzania ACK
29.3 Doko±czenie operacji pasywnego
otwarcia i jednoczesnego otwarcia
29.4 Algorytmy szybkiej retransmisji i
odzyskiwania danych
29.5 Przetwarzanie ACK
29.6 Od£wie┐enie informacji dotycz╣cych
okna
29.7 Przetwarzanie w trybie pilnym
29.8 Funkcja tcp_pulloutofband
29.9 Przetwarzanie odebranych danych
29.10 Przetwarzanie FIN
29.11 Przetwarzanie ko±cowe
29.12 U£ci£lenia implementacyjne
29.13 Kompresja nag│≤wka
29.14 Podsumowanie
Rozdzia│ 30 TCP - ┐╣dania u┐ytkownika
30.1 Wprowadzenie
30.2 Funkcja tcp_usrreq
30.3 Funkcja tcp_attach
30.4 Funkcja tcp_disconnect
30.5 Funkcja tcp_usrclosed
30.6 Funkcja tcp_ctloutput
30.7 Podsumowanie
Rozdzia│ 31 BPF: Filtr pakiet≤w BSD
31.1 Wprowadzenie
31.2 Wprowadzenie do kodu ƒr≤d│owego
31.3 Struktura bpf_if
31.5 Wej£cie BPF
31.6 Wyj£cie BPF
31.7 Podsumowanie
Rozdzia│ 32 IP dla danych
nieprzetworzonych
32.1 Wprowadzenie
32.2 Wprowadzenie do kodu ƒr≤d│owego
32.3 Struktura protosw IP dla danych
nieprzetworzonych
32.4 Funkcja rip_init
32.5 Funkcja rip_input
32.6 Funkcja rip_output
32.7 Funkcja rip_usrreq
32.8 Funkcja rip_ctloutput
32.9 Podsumowanie
Epilog
Dodatek A Rozwi╣zania do wybranych µwicze±
Dodatek B DostΩp do kodu ƒr≤d│owego
Dodatek C Zgodno£µ z RFC 1122
C.1 Wymagania dla warstwy │╣cza
C.2 Wymagania IP
C.3 Wymagania dla opcji IP
C.4 Fragmentacja i wymagania dotycz╣ce
odtwarzania
C.5 Wymagania dotycz╣ce ICMP
C.6 Wymagania dotycz╣ce przesy│ania
multicast
C.7 Wymagania dotycz╣ce IGMP
C.8 Wymagania dotycz╣ce rutowania
C.9 Wymagania dotycz╣ce ARP
C.10 Wymagania dotycz╣ce UDP
C.11 Wymagania dotycz╣ce TCP
Bibliografia
Indeks
------------------
ISBN 83-87216-25-9
Wydawnictwo RM, kwiecie± 98
str. 1236, format 172x242,
oprawa twarda lakierowana
WiΩcej informacji:
http://www.rm.com.pl/tcpip2.htm