Atjaunināt sīkdatņu piekrišanu

TCP/IP Illustrated, Volume 2: The Implementation [Mīkstie vāki]

  • Formāts: Paperback / softback, 1200 pages, height x width x depth: 235x188x39 mm, weight: 1786 g
  • Sērija : Addison-Wesley Professional Computing Series
  • Izdošanas datums: 15-Jan-2018
  • Izdevniecība: Addison Wesley
  • ISBN-10: 0134760131
  • ISBN-13: 9780134760131
Citas grāmatas par šo tēmu:
  • Mīkstie vāki
  • Cena: 84,62 €
  • Grāmatu piegādes laiks ir 3-4 nedēļas, ja grāmata ir uz vietas izdevniecības noliktavā. Ja izdevējam nepieciešams publicēt jaunu tirāžu, grāmatas piegāde var aizkavēties.
  • Daudzums:
  • Ielikt grozā
  • Piegādes laiks - 4-6 nedēļas
  • Pievienot vēlmju sarakstam
  • Formāts: Paperback / softback, 1200 pages, height x width x depth: 235x188x39 mm, weight: 1786 g
  • Sērija : Addison-Wesley Professional Computing Series
  • Izdošanas datums: 15-Jan-2018
  • Izdevniecība: Addison Wesley
  • ISBN-10: 0134760131
  • ISBN-13: 9780134760131
Citas grāmatas par šo tēmu:

TCP/IP Illustrated, an ongoing series covering the many facets of TCP/IP, brings a highly-effective visual approach to learning about this networking protocol suite.

TCP/IP Illustrated, Volume 2 contains a thorough explanation of how TCP/IP protocols are implemented. There isn't a more practical or up-to-date bookothis volume is the only one to cover the de facto standard implementation from the 4.4BSD-Lite release, the foundation for TCP/IP implementations run daily on hundreds of thousands of systems worldwide.

Combining 500 illustrations with 15,000 lines of real, working code, TCP/IP Illustrated, Volume 2 uses a teach-by-example approach to help you master TCP/IP implementation. You will learn about such topics as the relationship between the sockets API and the protocol suite, and the differences between a host implementation and a router. In addition, the book covers the newest features of the 4.4BSD-Lite release, including multicasting, long fat pipe support, window scale, timestamp options, and protection against wrapped sequence numbers, and many other topics.

Comprehensive in scope, based on a working standard, and thoroughly illustrated, this book is an indispensable resource for anyone working with TCP/IP.

Preface xix
Chapter 1 Introduction 1(30)
1.1 Introduction
1(1)
1.2 Source Code Presentation
1(2)
1.3 History
3(2)
1.4 Application Programming Interfaces
5(1)
1.5 Example Program
5(2)
1.6 System Calls and Library Functions
7(2)
1.7 Network Implementation Overview
9(1)
1.8 Descriptors
10(5)
1.9 Mbufs (Memory Buffers) and Output Processing
15(4)
1.10 Input Processing
19(3)
1.11 Network Implementation Overview Revisited
22(1)
1.12 Interrupt Levels and Concurrency
23(3)
1.13 Source Code Organization
26(2)
1.14 Test Network
28(1)
1.15 Summary
29(2)
Chapter 2 Mbufs: Memory Buffers 31(32)
2.1 Introduction
31(5)
2.2 Code Introduction
36(1)
2.3 Mbuf Definitions
37(1)
2.4 mbuf Structure
38(2)
2.5 Simple Mbuf Macros and Functions
40(4)
2.6 m_devget and mpullup Functions
44(7)
2.7 Summary of Mbuf Macros and Functions
51(3)
2.8 Summary of Net/3 Networking Data Structures
54(2)
2.9 m_copy and Cluster Reference Counts
56(4)
2.10 Alternatives
60(1)
2.11 Summary
60(3)
Chapter 3 Interface Layer 63(32)
3.1 Introduction
63(1)
3.2 Code Introduction
64(1)
3.3 ifnet Structure
65(8)
3.4 ifaddr Structure
73(1)
3.5 sockaddr Structure
74(2)
3.6 ifnet and ifaddr Specialization
76(1)
3.7 Network Initialization Overview
77(3)
3.8 Ethernet Initialization
80(2)
3.9 SLIP Initialization
82(3)
3.10 Loopback Initialization
85(1)
3.11 if_attach Function
85(8)
3.12 ifinit Function
93(1)
3.13 Summary
94(1)
Chapter 4 Interfaces: Ethernet 95(32)
4.1 Introduction
95(1)
4.2 Code Introduction
96(2)
4.3 Ethernet Interface
98(16)
4.4 ioctl System Call
114(11)
4.5 Summary
125(2)
Chapter 5 Interfaces: SLIP and Loopback 127(28)
5.1 Introduction
127(1)
5.2 Code Introduction
127(1)
5.3 SLIP Interface
128(22)
5.4 Loopback Interface
150(3)
5.5 Summary
153(2)
Chapter 6 IP Addressing 155(30)
6.1 Introduction
155(3)
6.2 Code Introduction
158(1)
6.3 Interface and Address Summary
158(2)
6.4 sockaddr_in Structure
160(1)
6.5 in_ifaddr Structure
161(1)
6.6 Address Assignment
161(16)
6.7 Interface ioctl Processing
177(4)
6.8 Internet Utility Functions
181(1)
6.9 ifnet Utility Functions
182(1)
6.10 Summary
183(2)
Chapter 7 Domains and Protocols 185(20)
7.1 Introduction
185(1)
7.2 Code Introduction
186(1)
7.3 domain Structure
187(1)
7.4 protosw Structure
188(3)
7.5 IP domain and protosw Structures
191(5)
7.6 pffindproto and pffindtype Functions
196(2)
7.7 pfctlinput Function
198(1)
7.8 IP Initialization
199(2)
7.9 sysctl System Call
201(3)
7.10 Summary
204(1)
Chapter 8 IP: Internet Protocol 205(42)
8.1 Introduction
205(1)
8.2 Code Introduction
206(4)
8.3 IP Packets
210(2)
8.4 Input Processing: ipintr Function
212(8)
8.5 Forwarding: ip_forward Function
220(8)
8.6 Output Processing: ip_output Function
228(6)
8.7 Internet Checksum: in_cksum Function
234(5)
8.8 setsockopt and getsockopt System Calls
239(5)
8.9 ip_sysctl Function
244(1)
8.10 Summary
245(2)
Chapter 9 IP Option Processing 247(28)
9.1 Introduction
247(1)
9.2 Code Introduction
247(1)
9.3 Option Format
248(1)
9.4 ip_dooptions Function
249(3)
9.5 Record Route Option
252(2)
9.6 Source and Record Route Options
254(7)
9.7 Timestamp Option
261(4)
9.8 ip_insertoptions Function
265(4)
9.9 ip_pcbopts Function
269(3)
9.10 Limitations
272(1)
9.11 Summary
272(3)
Chapter 10 IP Fragmentation and Reassembly 275(26)
10.1 Introduction
275(2)
10.2 Code Introduction
277(1)
10.3 Fragmentation
278(4)
10.4 ip_optcopy Function
282(1)
10.5 Reassembly
283(3)
10.6 ip_reass Function
286(12)
10.7 ip_slowtimo Function
298(2)
10.8 Summary
300(1)
Chapter 11 ICMP: Internet Control Message Protocol 301(36)
11.1 Introduction
301(4)
11.2 Code Introduction
305(3)
11.3 icmp Structure
308(1)
11.4 ICMP protosw Structure
309(1)
11.5 Input Processing: icmp_input Function
310(3)
11.6 Error Processing
313(3)
11.7 Request Processing
316(5)
11.8 Redirect Processing
321(2)
11.9 Reply Processing
323(1)
11.10 Output Processing
324(1)
11.11 icmp_error Function
324(4)
11.12 icmp_reflect Function
328(5)
11.13 icmp_send Function
333(1)
11.14 icmp_sysctl Function
334(1)
11.15 Summary
335(2)
Chapter 12 IP Multicasting 337(44)
12.1 Introduction
337(3)
12.2 Code Introduction
340(1)
12.3 Ethernet Multicast Addresses
341(1)
12.4 ether_multi Structure
342(2)
12.5 Ethernet Multicast Reception
344(1)
12.6 in_multi Structure
345(2)
12.7 ip_moptions Structure
347(1)
12.8 Multicast Socket Options
348(1)
12.9 Multicast TTL Values
348(3)
12.10 ip_setmopt ions Function
351(4)
12.11 Joining an IP Multicast Group
355(11)
12.12 Leaving an IP Multicast Group
366(5)
12.13 ip_getmoptions Function
371(2)
12.14 Multicast Input Processing: ipintr Function
373(2)
12.15 Multicast Output Processing: ip_output Function
375(4)
12.16 Performance Considerations
379(1)
12.17 Summary
379(2)
Chapter 13 IGMP: Internet Group Management Protocol 381(16)
13.1 Introduction
381(1)
13.2 Code Introduction
382(2)
13.3 igmp Structure
384(1)
13.4 IGMP protosw Structure
384(2)
13.5 Joining a Group: igmp_j oingroup Function
386(1)
13.6 igmp_fasttimo Function
387(4)
13.7 Input Processing: igmp_input Function
391(4)
13.8 Leaving a Group: igmp_leavegroup Function
395(1)
13.9 Summary
396(1)
Chapter 14 IP Multicast Routing 397(38)
14.1 Introduction
397(1)
14.2 Code Introduction
398(1)
14.3 Multicast Output Processing Revisited
399(2)
14.4 mrouted Daemon
401(3)
14.5 Virtual Interfaces
404(7)
14.6 IGMP Revisited
411(5)
14.7 Multicast Routing
416(8)
14.8 Multicast Forwarding: ip_mforward Function
424(9)
14.9 Cleanup: ip_mrouter_done Function
433(1)
14.10 Summary
434(1)
Chapter 15 Socket Layer 435(40)
15.1 Introduction
435(1)
15.2 Code Introduction
436(1)
15.3 socket Structure
437(4)
15.4 System Calls
441(4)
15.5 Processes, Descriptors, and Sockets
445(2)
15.6 socket System Call
447(4)
15.7 getsock and sockargs Functions
451(2)
15.8 bind System Call
453(2)
15.9 listen System Call
455(1)
15.10 tsleep and wakeup Functions
456(1)
15.11 accept System Call
457(4)
15.12 sonewconn and soisconnected Functions
461(3)
15.13 connect System call
464(4)
15.14 shutdown System Call
468(3)
15.15 close System Call
471(3)
15.16 Summary
474(1)
Chapter 16 Socket I/O 475(62)
16.1 Introduction
475(1)
16.2 Code Introduction
475(1)
16.3 Socket Buffers
476(4)
16.4 write, writev, sendto, and sendmsg System Calls
480(3)
16.5 sendmsg System Call
483(2)
16.6 sendit Function
485(4)
16.7 sosend Function
489(11)
16.8 read, ready, recvfrom, and recvmsg System Calls
500(1)
16.9 recvmsg System Call
501(2)
16.10 recvit Function
503(2)
16.11 soreceive Function
505(5)
16.12 soreceive Code
510(14)
16.13 select System Call
524(10)
16.14 Summary
534(3)
Chapter 17 Socket Options 537(22)
17.1 Introduction
537(1)
17.2 Code Introduction
538(1)
17.3 setsockopt System Call
539(6)
17.4 getsockopt System Call
545(3)
17.5 fcntl and ioctl System Calls
548(6)
17.6 getsockname System Call
554(1)
17.7 getpeername System Call
554(3)
17.8 Summary
557(2)
Chapter 18 Radix Tree Routing Tables 559(42)
18.1 Introduction
559(1)
18.2 Routing Table Structure
560(9)
18.3 Routing Sockets
569(1)
18.4 Code Introduction
570(3)
18.5 Radix Node Data Structures
573(5)
18.6 Routing Structures
578(3)
18.7 Initialization: route_init and rtable_init Functions
581(3)
18.8 Initialization: rn_init and rn_inithead Functions
584(3)
18.9 Duplicate Keys and Mask Lists
587(4)
18.10 rn_match Function
591(8)
18.11 rn_search Function
599(1)
18.12 Summary
599(2)
Chapter 19 Routing Requests and Routing Messages 601(44)
19.1 Introduction
601(1)
19.2 rtalloc and rtallocl Functions
601(3)
19.3 RTFREE Macro and rtfree Function
604(3)
19.4 rtrequest Function
607(5)
19.5 rt_setgate Function
612(3)
19.6 rtinit Function
615(2)
19.7 rtredirect Function
617(4)
19.8 Routing Message Structures
621(4)
19.9 rt_missmsg Function
625(2)
19.10 rt_ifmsg Function
627(1)
19.11 rt_newaddrmsg Function
628(2)
19.12 rt_msg1 Function
630(2)
19.13 rt_msg2 Function
632(3)
19.14 sysctl_rtable Function
635(5)
19.15 sysctl_dumpentry Function
640(2)
19.16 sysctl_iflist Function
642(2)
19.17 Summary
644(1)
Chapter 20 Routing Sockets 645(30)
20.1 Introduction
645(1)
20.2 routedomain and protosw Structures
646(1)
20.3 Routing Control Blocks
647(1)
20.4 raw_init Function
647(1)
20.5 route_output Function
648(12)
20.6 rt_xaddrs Function
660(1)
20.7 rt_setmetrics Function
661(1)
20.8 raw_input Function
662(2)
20.9 route_usrreq Function
664(2)
20.10 raw_usrreq Function
666(5)
20.11 raw_attach, raw_detach, and raw_disconnect Functions
671(1)
20.12 Summary
672(3)
Chapter 21 ARP: Address Resolution Protocol 675(38)
21.1 Introduction
675(1)
21.2 ARP and the Routing Table
675(3)
21.3 Code Introduction
678(3)
21.4 ARP Structures
681(2)
21.5 arpwhohas Function
683(1)
21.6 arprequest Function
684(3)
21.7 arpintr Function
687(1)
21.8 in_arpinput Function
688(6)
21.9 ARP Timer Functions
694(2)
21.10 arpresolve Function
696(5)
21.11 arplookup Function
701(2)
21.12 Proxy ARP
703(1)
21.13 arp_rtrequest Function
704(6)
21.14 ARP and Multicasting
710(1)
21.15 Summary
711(2)
Chapter 22 Protocol Control Blocks 713(42)
22.1 Introduction
713(2)
22.2 Code Introduction
715(1)
22.3 inpcb Structure
716(1)
22.4 in_pcballoc and inpcbdetach Functions
717(2)
22.5 Binding, Connecting, and Demultiplexing
719(5)
22.6 in_pcblookup Function
724(4)
22.7 in_pcbbind Function
728(7)
22.8 in_pcbconnect Function
735(6)
22.9 in_pcbdisconnect Function
741(1)
22.10 in_setsockaddr and in_setpeeraddr Functions
741(1)
22.11 in_pcbnotify, in_rtchange, and in_losing Functions
742(8)
22.12 Implementation Refinements
750(1)
22.13 Summary
751(4)
Chapter 23 UDP: User Datagram Protocol 755(40)
23.1 Introduction
755(1)
23.2 Code Introduction
755(3)
23.3 UDP protosw Structure
758(1)
23.4 UDP Header
759(1)
23.5 udp_init Function
760(1)
23.6 udp_output Function
760(9)
23.7 udp_input Function
769(12)
23.8 udp_saveopt Function
781(1)
23.9 udp_ctlinput Function
782(2)
23.10 udp_usrreq Function
784(6)
23.11 udp_sysctl Function
790(1)
23.12 Implementation Refinements
791(2)
23.13 Summary
793(2)
Chapter 24 TCP: Transmission Control Protocol 795(22)
24.1 Introduction
795(1)
24.2 Code Introduction
795(6)
24.3 TCP protosw Structure
801(1)
24.4 TCP Header
801(2)
24.5 TCP Control Block
803(2)
24.6 TCP State Transition Diagram
805(2)
24.7 TCP Sequence Numbers
807(5)
24.8 tcp_init Function
812(3)
24.9 Summary
815(2)
Chapter 25 TCP Timers 817(34)
25.1 Introduction
817(2)
25.2 Code Introduction
819(2)
25.3 tcp_canceltimers Function
821(1)
25.4 tcp_f asttimo Function
821(1)
25.5 tcp_slowtimo Function
822(2)
25.6 tcp_timers Function
824(7)
25.7 Retransmission Timer Calculations
831(2)
25.8 tcp_newtcpcb Function
833(2)
25.9 tcp_setpersist Function
835(1)
25.10 tcp_xmit_timer Function
836(5)
25.11 Retransmission Timeout: tcp_timers Function
841(5)
25.12 An RTT Example
846(2)
25.13 Summary
848(3)
Chapter 26 TCP Output 851(40)
26.1 Introduction
851(1)
26.2 tcp_output Overview
852(1)
26.3 Determine if a Segment Should be Sent
852(12)
26.4 TCP Options
864(2)
26.5 Window Scale Option
866(1)
26.6 Timestamp Option
866(5)
26.7 Send a Segment
871(13)
26.8 tcp_template Function
884(1)
26.9 tcp_respond Function
885(3)
26.10 Summary
888(3)
Chapter 27 TCP Functions 891(32)
27.1 Introduction
891(1)
27.2 tcp_drain Function
892(1)
27.3 tcp_drop Function
892(1)
27.4 tcp_close Function
893(4)
27.5 tcp_mss Function
897(7)
27.6 tcp_ctlinput Function
904(1)
27.7 tcp_notify Function
904(2)
27.8 tcp_quench Function
906(1)
27.9 TCP_REASS Macro and tcp_reass Function
906(10)
27.10 tcp_trace Function
916(4)
27.11 Summary
920(3)
Chapter 28 TCP Input 923(44)
28.1 Introduction
923(2)
28.2 Preliminary Processing
925(8)
28.3 tcp_dooptions Function
933(1)
28.4 Header Prediction
934(7)
28.5 TCP Input: Slow Path Processing
941(1)
28.6 Initiation of Passive Open, Completion of Active Open
942(9)
28.7 PAWS: Protection Against Wrapped Sequence Numbers
951(3)
28.8 Trim Segment so Data is Within Window
954(6)
28.9 Self-Connects and Simultaneous Opens
960(3)
28.10 Record Timestamp
963(1)
28.11 RST Processing
963(2)
28.12 Summary
965(2)
Chapter 29 TCP Input (Continued) 967(40)
29.1 Introduction
967(1)
29.2 ACK Processing Overview
967(1)
29.3 Completion of Passive Opens and Simultaneous Opens
967(3)
29.4 Fast Retransmit and Fast Recovery Algorithms
970(4)
29.5 ACK Processing
974(7)
29.6 Update Window Information
981(2)
29.7 Urgent Mode Processing
983(3)
29.8 tcp_pulloutofband Function
986(2)
29.9 Processing of Received Data
988(2)
29.10 FIN Processing
990(2)
29.11 Final Processing
992(2)
29.12 Implementation Refinements
994(1)
29.13 Header Compression
995(9)
29.14 Summary
1004(3)
Chapter 30 TCP User Requests 1007(20)
30.1 Introduction
1007(1)
30.2 tcp_usrreq Function
1007(11)
30.3 tcp_attach Function
1018(1)
30.4 tcp_disconnect Function
1019(2)
30.5 tcp_usrclosed Function
1021(1)
30.6 tcp_ctloutput Function
1022(3)
30.7 Summary
1025(2)
Chapter 31 BPF: BSD Packet Filter 1027(22)
31.1 Introduction
1027(1)
31.2 Code Introduction
1028(1)
31.3 bpf_if Structure
1029(3)
31.4 bpf_d Structure
1032(14)
31.5 BPF Input
t1040
31.6 BPF Output
1046(1)
31.7 Summary
1047(2)
Chapter 32 Raw IP 1049(18)
32.1 Introduction
1049(1)
32.2 Code Introduction
1050(1)
32.3 Raw IP protosw Structure
1051(2)
32.4 rip_init Function
1053(1)
32.5 rip_input Function
1053(3)
32.6 rip_output Function
1056(2)
32.7 rip_usrreq Function
1058(5)
32.8 rip_ctloutput Function
1063(2)
32.9 Summary
1065(2)
Epilogue 1067(2)
Appendix A. Solutions to Selected Exercises 1069(24)
Appendix B. Source Code Availability 1093(4)
Appendix C. RFC 1122 Compliance 1097(28)
C.1 Link-Layer Requirements
1097(1)
C.2 IP Requirements
1098(4)
C.3 IP Options Requirements
1102(2)
C.4 IP Fragmentation and Reassembly Requirements
1104(1)
C.5 ICMP Requirements
1105(5)
C.6 Multicasting Requirements
1110(1)
C.7 IGMP Requirements
1111(1)
C.8 Routing Requirements
1111(2)
C.9 ARP Requirements
1113(1)
C.10 UDP Requirements
1113(2)
C.11 TCP Requirements
1115(10)
Bibliography 1125(8)
Index 1133
Gary R. Wright has worked with TCP/IP for more than eight years. He is President of Connix, a Connecticut-based company providing Internet access and consulting services.

We are deeply saddened to learn of the death of noted author W. Richard Stevens. His passing is obviously a tremendous loss for the technical community, but it is a personal one for us as well. Rich was both a gifted colleague and a valued friend who will be greatly missed. We extend our sympathies to his family.

Obituary from the Arizona Daily Star:

STEVENS, W. Richard, noted author of computer books died on September 1. He is best known for his "UNIX Network Programming" series (1990, 1998, 1999), "Advanced Programming in the UNIX Environment" (1992), and "TCP/IP Illustrated" series (1994, 1995, 1996). Richard was born in 1951 in Luanshya, Northern Rhodesia (now Zambia), where his father worked for the copper industry. The family moved to Salt Lake City, Hurley, New Mexico, Washington, DC and Phalaborwa, South Africa. Richard attended Fishburne Military School in Waynesboro, Virginia. He received a B.SC. in Aerospace Engineering from the University of Michigan in 1973, and an M.S. (1978) and Ph.D. (1982) in Systems Engineering from the University of Arizona. He moved to Tucson in 1975 and from then until 1982 he was employed at Kitt Peak National Observatory as a computer programmer. From 1982 until 1990 he was Vice President of Computing Services at Health Systems International in New Haven, CT, moving back to Tucson in 1990. Here he pursued his career as an author and consultant. He was also an avid pilot and a part-time flight instructor during the 1970's. He is survived by his loving wife of 20 years, Sally Hodges Stevens; three wonderful children, Bill, Ellen and David; sister, Claire Stevens of Las Vegas, NV; brother, Bob and wife Linda Stevens of Dallas, TX; nieces, Laura, Sarah, Collette, Christy; and nephew, Brad. He is predeceased by his parents, Royale J. Stevens (1915-1984); and Helen Patterson Stevens (1916-1997). Helen lived in Tucson from 1991-1997, and Royale lived here in the early 1930's attending Tucson High School while his father was treated for TB at the Desert Sanitorium (now TMC). The family asks that in lieu of flowers, donations be made in Richard's name to Habitat for Humanity, 2950 E. 22nd Street, Tucson, AZ 85713. A memorial service for Richard will be held at St. Phillip's in the Hills Episcopal Church on Tuesday, September 7th at 12:00 noon. Following the service there will be a reception in the Murphy Gallery of the Church. Please wear colorful clothing to the service; Richard loved colors.

W. Richard Stevens was an acknowledged UNIX and networking expert and the highly-respected author of several books. He was also a sought-after instructor and consultant.





020163354XAB04062001