Àâòîðèçàöèÿ
Ïîèñê ïî óêàçàòåëÿì
Seth S., Venkatesulu M.A. — TCP/IP architecture, design and implementation in Linux
Îáñóäèòå êíèãó íà íàó÷íîì ôîðóìå
Íàøëè îïå÷àòêó? Âûäåëèòå åå ìûøêîé è íàæìèòå Ctrl+Enter
Íàçâàíèå: TCP/IP architecture, design and implementation in Linux
Àâòîðû: Seth S., Venkatesulu M.A.
Àííîòàöèÿ: This book provides thorough knowledge of Linux TCP/IP stack and kernel framework for its network stack, including complete knowledge of design and implementation. Starting with simple client-server socket programs and progressing to complex design and implementation of TCP/IP protocol in linux, this book provides different aspects of socket programming and major TCP/IP related algorithms. In addition, the text features netfilter hook framework, a complete explanation of routing sub-system, IP QOS implementation, and Network Soft IRQ. This book further contains elements on TCP state machine implementation,TCP timer implementation on Linux, TCP memory management on Linux, and debugging TCP/IP stack using lcrash.
ßçûê:
Ðóáðèêà: Ðóêîâîäñòâà ïî ïðîãðàììíîìó îáåñïå÷åíèþ /
Ñòàòóñ ïðåäìåòíîãî óêàçàòåëÿ: Ãîòîâ óêàçàòåëü ñ íîìåðàìè ñòðàíèö
ed2k: ed2k stats
Èçäàíèå: illustrated
Ãîä èçäàíèÿ: 2008
Êîëè÷åñòâî ñòðàíèö: 772
Äîáàâëåíà â êàòàëîã: 31.10.2010
Îïåðàöèè: Ïîëîæèòü íà ïîëêó |
Ñêîïèðîâàòü ññûëêó äëÿ ôîðóìà | Ñêîïèðîâàòü ID
Ïðåäìåòíûé óêàçàòåëü
Accept systemcall 157 — 159 157f 158f
Accept systemcall, file table entry 162
Accept systemcall, flow control 162 — 163
Accept systemcall, inet_accept() 159 — 161 160f 161f
Accept systemcall, inode and socket data structures linking 161 — 162
Accept systemcall, VFS and socket data structures linking 162
activation of keepalive timer 353 — 354
activation of syn-ack timer 356 — 357
activation of Time_wait timer 361 — 362
Application interfaces for TCP/IP, client application 27 — 29 28f
Application interfaces for TCP/IP, option values SO_BROADCAST 30
Application interfaces for TCP/IP, option values SO_DEBUG 29 — 30 30f
Application interfaces for TCP/IP, option values SO_DONTTROUTE 33
Application interfaces for TCP/IP, option values SO_KEEPALIVE 31 32f
Application interfaces for TCP/IP, option values SO_LINGER 31 — 32
Application interfaces for TCP/IP, option values SO_OOBINLINE 32
Application interfaces for TCP/IP, option values SO_RCVBUF 33
Application interfaces for TCP/IP, option values SO_RCVTIMEO 33 — 34 34f
Application interfaces for TCP/IP, option values SO_REUSEADDR 31
Application interfaces for TCP/IP, option values SO_SNDBUF 32 — 33
Application interfaces for TCP/IP, option values SO_SNDTIMEO 34 — 35 35f
Application interfaces for TCP/IP, server application 25 — 27 26f
Application interfaces for TCP/IP, socket options 29
ARP/RARP 97 — 98 97f 98f
basic components of Linux traffic control 592 592f
Basic implementation 1 — 2
BGP (see “Border Gateway Protocol”)
Border Gateway Protocol (BGP) 90
cancellation of syn-ack timer 357
CBQ (see “Class-based Queuing”)
CBQ queuing discipline Icrash STEPS 739
CBQ_dequeue() 623f 624f 627
CBQ_dequeue(), estimator 625 — 626
CBQ_dequeue(), from net/dev/core.c 626
CBQ_dequeue(), general scheduler 624
CBQ_dequeue(), link-sharing scheduler 625
CBQ_dequeue(), qdisc_restart() 626 — 627
CBQ_dequeue(), qdisc_run() 626
cbq_dequeuel() 629
cbq_dequeue_prio() 629 — 632
Class-based Queuing (CBQ) 622
Client side setup 164f
Client side setup, client side operations 164
Client side setup, connect 164 — 167 165f 166f
Client side setup, flow control for connection request 167 — 170 168f 169f
Client side setup, ip_route_connect() 167
Client side setup, tcp_connect 174 — 176 175f
Client side setup, tcp_transmit_skb() 176 — 178
Client side setup, tcp_v4_check_established() 171 — 174
Client side setup, tcp_v4_connect() 167
Client side setup, tcp_v4_hash_connect() 170 — 171
Compatibility framework FW_ACCEPT and FW_SKIP 647
Compatibility framework fw_in() 645 — 647
Compatibility framework FW_MASQUERADE 647
Compatibility framework FW_REDIRECT 647
Compatibility framework FW_REJECT 647
Connection queues 733 — 735
Connection request handling 151 — 154 152f 154f
Connection request handling, accept queue processing 155 — 156
Connection request handling, flow control for handling a new connection request 156
Connection request handling, SYN queue processing 155
Connection setup (cont’d) end of tcp_v4_get_port() 137
Connection setup (cont’d), fget() 131
Connection setup (cont’d), hash buckets for tcp Bind 125
Connection setup (cont’d), inet_bind() 131 — 133
Connection setup (cont’d), related data structures 125
Connection setup (cont’d), server side operations 124
Connection setup (cont’d), server side setup 122 — 124 123f
Connection setup (cont’d), sockfd_lookup() 130
Connection setup (cont’d), sys_bind() 130
Connection setup (cont’d), tcp_bhash 125 — 126
Connection setup (cont’d), tcp_bind_bucket 129 — 130
Connection setup (cont’d), tcp_bind_conflict() 135 — 136 136f
Connection setup (cont’d), tcp_bind_hashbucket 129
Connection setup (cont’d), tcp_ehash 125
Connection setup (cont’d), tcp_hashinfo 126 — 127 127f
Connection setup (cont’d), tcp_listening_hash 125
Connection setup (cont’d), tcp_v4_get_port() 133 — 135
Connection setup BIND 124 — 125 124f
Connection setup bind() 130
Connection setup end of fget() 131
Connection setup end of inet_bind() 137
Connection setup end of sockfd_lookup() 131
Core TCP processing 444f
data flow diagram 284f — 290f
Data segments processing 424 — 433
Data segments processing, DSACK block and 430 430f 431f
Data segments processing, implementation 425
Data segments processing, tcp_ofo_queue() 436 — 441 437f 439f 440f
Data segments processing, tcp_sack_extend() 435 — 436
Data segments processing, tcp_sack_maybe_coalesce() 434 — 435
Data segments processing, tcp_sack_new_ofo_skb() 433 — 434
Data segments processing, tcp_sack__remove() 441 — 442
definition of IP chains 647
Delay ack timer, ACK segments ending of 344 — 345
Delay ack timer, quick ACK mode 345
Delay ack timer, scheduling of 344
Delay ack timer, tcp_ack_snd_check() 346 — 347
Delay ack timer, tcp_clear_xmit_timer() 352 — 353
Delay ack timer, tcp_delack_timer() 348 — 349
Delay ack timer, tcp_reset_xmit_timer() 349 — 351
Delay ack timer, tcp_send_delayed_ask() 347 — 348
Delay ack timer, tcp_write_timer() 351 — 352
Delay ack timer, _tcp_ack_snd_check() 345 — 346
Duplicate/partial ACKs in loss state tcp_check_sack_reneging() 455 — 456
Duplicate/partial ACKs in loss state tcp_try_undo_loss() 453 — 455
Duplicate/partial ACKs in recovery state tcp_remove_reno_sacks() 450 — 451
Duplicate/partial ACKs in recovery state tcp_try_undo_partial() 451 — 452
Enqueue cbq_classify() 621
Enqueue cbq_enqueue() 620 — 621
EWMA (see “Exponential Weighted Moving Average”)
Exponential Weighted Moving Average (EWMA) 625
fib (see “Forwarding Information Base”)
FIB TABLE Icrash OUTPUT 745 — 749 746f 747f 748f
filtering with Ipchains 648 — 649 649f
Filters 615 — 616
Filters, route filter implementation 617f
Filters, route4_change() 618 — 619
Filters, tc_ctl_tfilter() 613f 611 613
Filters, u32_change() 615 — 616
flow of packet reception 698
Forwarding Information Base (FIB) 540
Fragmentation and reassembly 761
general description of routing 501 — 503
I/O, read() 38 38f
I/O, recv() 38 38f
I/O, select() 39 39f
I/O, send() 39 39f
I/O, write() 38 38f
ICMP 94f
ICMP, ping 95 — 96 95f 96f
Icrash output for route filter 749 — 755 750f 751f 752f 753f 754f
Iked source and patches 724
INET_CREATE 111f
introduction of netlink sockets 479 — 480
IP (Internet protocol) header checksum 89
IP (Internet protocol) header checksum, dst addr. 90
IP (Internet protocol) header checksum, fig. 89
IP (Internet protocol) header checksum, frag offset 89
IP (Internet protocol) header checksum, hlen 88
IP (Internet protocol) header checksum, ID 89
IP (Internet protocol) header checksum, Ipv6 761
IP (Internet protocol) header checksum, prot. 89
IP (Internet protocol) header checksum, src addr. 90
IP (Internet protocol) header checksum, TOS 88
IP (Internet protocol) header checksum, total len 88
IP (Internet protocol) header checksum, TTL 89
IP (Internet protocol) header checksum, ver. 88
IP chains, packet filtering, ip_fw_check() 653 — 655
IP chains, packet filtering, ip_rule_match() 655
IP chains, struct ip_chain 649 — 650
IP chains, struct ip_fw 651 — 652
IP chains, struct ip_fwkernel 650 — 651
IP chains, struct ip_reent 651
IP chains, table organization in 652f
IP forwarding 761
IP tables, filter rules 657 — 658
IP tables, filtering packets 664 — 668
IP tables, iptjnatch-iterate 668
IP tables, ipt_do_table() 664 — 668
IP tables, struct ipt_entry 661 — 662
IP tables, struct ipt_entry_match 662 — 663
IP tables, struct ipt_entry_target 664
IP tables, struct ipt_standard_target 664
IP tables, struct ipt_table 658
IP tables, struct ipt_table_info 658 — 661 660f
IP tables, struct ipt_tcp 663 — 664
Ipchain rules chains 649
keepalive timer, tcp_keepalive_timer() 354 — 356
Kernel 2.6 description 759
Kernel flow 214 216f
kernel netlink socket, creation of netlink sockets 481 — 482
Kernel synchronization mechanism, atomic operations 23
Kernel synchronization mechanism, semaphore 22
Kernel synchronization mechanism, spin lock 23 — 24 24f
Kernel version 2.4 11 — 14 13f 14f
Kernel version 2.4, new system call addition 16 — 17 17f
Kernel version 2.4, system call on Linux 14 — 16 15f
Length reordering 417 — 421 418f
Linux implementation of CBQ 623f
Linux process and thread, fork() 17 — 18 18f
Linux process and thread, kernel threads 19 — 21 20f 21f
Linux process and thread, thread 18 — 19 19f
Linux traffic control, classes 592
Linux traffic control, filters 593
Linux traffic control, policing 593
Linux traffic control, queuing discipline 592
Listen systemcall 138f
Listen systemcall, accept queue is full 147 — 150 148f 149f
Listen systemcall, connection request with complete three-way handshake 151
Listen systemcall, connection request with pending three-way handshake 150 — 151
Listen systemcall, END of inet_listen() 142
Listen systemcall, END of tcp_listen_start() 142
Listen systemcall, established sockets linked in tcp_ehash table 150
Listen systemcall, inet_listen() 139
Listen systemcall, listen flow 142
Listen systemcall, max_qlen_log 140
Listen systemcall, qlen 140
Listen systemcall, qlen_young 140
Listen systemcall, struct open_request 142 — 147 143f 144f
Listen systemcall, SYN QUEUE 140
Listen systemcall, syn_table 140 — 141
Listen systemcall, sys_listen() 138 — 139
Listen systemcall, tcp_listen_start() 139 — 142
management of Routing cache 523 — 525
Multicasting and broadcasting 760
Nagle’s algorithm (RFC) 896 69 69f 70f 71f
Net SoftlRQ 672f
Net SoftlRQ, irq_cpustat_t 675
Net SoftlRQ, packet reception 679 — 679 680f 682f
Net SoftlRQ, packet transmission 686 — 695 687f 691f 692f 694f 695f
Net SoftlRQ, reception 672 — 675
Net SoftlRQ, transmission 672
Netfilter hook framework 636 — 637
Netfilter hooks on IP stack, hooks for incoming packets 639 — 640
Netfilter hooks on IP stack, hooks for outgoing packets 638 — 639 638f
Netfilter hooks on IP stack, nf_hook_slow() 642 — 643
Netfilter hooks on IP stack, nf_iterate() 643 — 644
Netfilter hooks on IP stack, struct nf_hook_ops 644
Netlink data structure, nl_table 755 756f
Netlink data structure, rtnetlink_link 755
Netlink sockets (cont’d), socket example, TC command flow in user space 490 — 491 491f
Netlink sockets (cont’d), socket example, TC command in kernel space 491 — 495
Netlink sockets (cont’d), user netlink socket, creation of ADDR messages 484
Netlink sockets (cont’d), user netlink socket, creation of LINK parameter messages 483
Netlink sockets, CLASS massages 484
Netlink sockets, data structures, nl_table 485 — 486 486f
Netlink sockets, data structures, rtnetlinkjink 486 — 488
Netlink sockets, data structures, struct msghdr 489 — 490 490f
Netlink sockets, data structures, struct nlmsghdr 488 — 489
Netlink sockets, FILTER messages 484 — 485
Netlink sockets, flow diagram for TC command 495 — 496 496f
Netlink sockets, netlink packet format 490
Netlink sockets, QDISC messages 484
Netlink sockets, registration and initialization 480 — 481
Netlink sockets, ROUTE messages 484
New interface, addition of 761
OOB data, sending of 249 — 250
Open Shortest Path First (OSPF) 90 501
OSPF (see “Open Shortest Path First”)
Packet reception DMA ring buffers and 698
Packet transmission 701f
Packet transmission, device initialization 707
Packet transmission, DMA receive ring buffers initialization 709
Packet transmission, DMA transit ring buffers initialization 707 — 709
Packet transmission, el00tx_interrupt() 720 — 721
Packet transmission, el00_hardware_send_packet() 717
Packet transmission, el00_rx() 711 — 713
Packet transmission, el00_send_packet() 713 — 717 714f 715f
Packet transmission, flow of, with DMA 702
Packet transmission, implementation of reception 704 — 705 705f
Packet transmission, Rx descriptors 713
Packet transmission, Rx DMA buffer initialization 711
Packet transmission, Rx interrupt and 709 — 711 710f
Packet transmission, struct etrax_dma_descr 706 — 707
Packet transmission, struct etrax_eth_descr 705 — 706
Packet transmission, transmission ring buffer 702 703f
Packet transmission, Tx DMA ring buffer initialization 717 718f 719f
Packet traversing, APR and neighboring framework 212 — 213
Packet traversing, from socket layer to device 207 — 208 208f
Packet traversing, INET protocol packet switcher 223 — 224
Packet traversing, IP layer 206 — 207
Packet traversing, kernel path for TCP 209
Packet traversing, kernel path for TCP, IP layer 211 — 212
Packet traversing, kernel path for TCP, IP layer routing 210 — 211
Packet traversing, kernel path for TCP, netfilter hook 212
Packet traversing, kernel path for TCP, packet scheduler and hard transmission 213
Packet traversing, kernel path for TCP, socket layer 210
Packet traversing, kernel path for TCP, TCP layer 211
Packet traversing, link layer 207
Packet traversing, packet reception 219
Packet traversing, packet scheduler 207
Packet traversing, socket scheduler 207
Packet traversing, TCP layer 206 207
Packet traversing, up the TCP/IP stack 220f 221f
Packet traversing, up the TCP/IP stack from device to socket layer 219 220f 221f
Packet traversing, up the TCP/IP stack IP fragment handling 223
Packet traversing, up the TCP/IP stack IP layer 215 — 216 222
Packet traversing, up the TCP/IP stack kernel path for TCP 219 — 225
Packet traversing, up the TCP/IP stack local input netfliter hook 216
Packet traversing, up the TCP/IP stack packet reception 214
Packet traversing, up the TCP/IP stack packet switcher 222
Packet traversing, up the TCP/IP stack pre-routing netfliter hook 215
Packet traversing, up the TCP/IP stack Rx SOFT IRQ 214 — 215
Packet traversing, up the TCP/IP stack, Socket layer 225
Packet traversing, up the TCP/IP stack, SoftlRQ 219 — 220
Packet traversing, up the TCP/IP stack, TCP layer 218 — 219 224
PFIFO_FAST QDISC implementation 593 — 596 594f 595f
process of packet reception 698
processing of Net SoftlRQ 675 — 678 682
processing of netfilter hooks on IP stack 642
Processing TCP urgent pointer tcp_check_urg() 422 — 424
Protocol socket registration 105f 106f 105 107
Qdisc (see “Queuing Discipline”)
Queuing Discipline (Qdisc) 591
Queuing discipline data structure, struct cbq_class 599 — 601
Queuing discipline data structure, struct Qdisc 596 — 597
Queuing discipline data structure, struct Qdisc_class_opsy 598 — 599
Queuing discipline data structure, struct Qdisc_ops 597 — 598
Queuing mechanism, lock_sock() 265
Ðåêëàìà