Linux核心網路棧原始碼情景分析

Linux核心網路棧原始碼情景分析

《Linux核心網路棧原始碼情景分析》是2010年01月人民郵電出版社出版的圖書。

基本介紹

  • 書名:Linux核心網路棧原始碼情景分析
  • 作者:曹桂平
  • ISBN:9787115216267
  • 定價:89.00 元
  • 出版社人民郵電出版社
  • 出版時間:2010年01月
  • 開本: 16開
內容簡介,作者簡介,圖書目錄,

內容簡介

《Linux核心網路棧原始碼情景分析》主要對Linux1.2.13核心協定棧的全部原始碼做了詳細的分析,該版本所有代碼都在一個資料夾中,每種協定的實現都只有一個檔案與之對應,分析該版本原始碼可以方便讀者迅速掌握Linux網路協定結構。
《Linux核心網路棧原始碼情景分析》共分為5個部分。具體內容包括網路棧總體架構分析、網路協定頭檔案分析、BSDsocket層實現分析、INETsocket層實現分析、網路層實現分析、鏈路層實現分析、網路設備驅動程式分析、系統網路棧初始化等內容。
《Linux核心網路棧原始碼情景分析》適合Linux網路開發人員及Linux核心愛好者閱讀。

作者簡介

曹桂平,中國科學技術大學博士,對作業系統和網路技術具有極其深厚的興趣,精通Linux核心及其網路線,ARM、PowerPC體系結構,曾開發Linux、Vxworks等平台的設備驅動,目前正致力於高速高精度數據採集方面的研究。

圖書目錄

第1部分 網路棧總體架構
第0章 網路棧總體架構分析 2
0.1 網路棧本質及其分層架構 3
0.2 系統調用接口到核心的請求傳遞 6
0.2.1 第一層入口:accept.S檔案 10
0.2.2 第二層入口:socket.S檔案 10
0.2.3 第三層入口:entry.S檔案 15
第2部分 網路協定
第1章 網路協定頭檔案分析 18
1.1 etherdevice.h頭檔案 20
1.2 icmp.h頭檔案 21
1.3 if.h頭檔案 28
1.4 if_arp.h頭檔案 31
1.5 if_ether.h頭檔案 34
1.6 if_plip.h頭檔案 36
1.7 if_slip.h頭檔案 37
1.8 igmp.h頭檔案 38
1.9 in.h頭檔案 41
1.10 inet.h頭檔案 45
1.11 interrupt.h頭檔案 46
1.12 ip.h頭檔案 49
1.13 ip_fw.h頭檔案 57
1.14 ipx.h頭檔案 62
1.15 net.h頭檔案 67
1.16 netdevice.h頭檔案 73
1.17 notifier.h頭檔案 85
1.18 ppp.h頭檔案 89
1.19 route.h頭檔案 112
1.20 skbuff.h頭檔案 115
1.21 socket.h頭檔案 122
1.22 sockios.h頭檔案 125
1.23 tcp.h頭檔案 127
1.24 timer.h頭檔案 136
1.25 udp.h頭檔案 138
1.26 un.h頭檔案 140
1.27 本章小結 140
第3部分 網路棧實現分析
第2章 BSD socket層實現分析 144
2.1 protocols.c檔案 145
2.2 socket.c檔案 146
2.2.1 頭檔案聲明、全局變數定義、相關函式聲明 148
2.2.2 move_addr_to_kernel和move_addr_to_user函式 150
2.2.3 get_fd函式 150
2.2.4 socki_lookup和sockfd_lookup函式 151
2.2.5 sock_alloc函式 153
2.2.6 sock_release_peer、sock_release和sock_close函式 153
2.2.7 網路套接字普通檔案接口函式 158
2.2.8 sock_awaitconn函式 160
2.2.9 sock_socket函式 162
2.2.10 sock_socketpair函式 164
2.2.11 sock_bind函式 165
2.2.12 sock_listen函式 166
2.2.13 sock_accept函式 167
2.2.14 sock_connect函式 168
2.2.15 sock_getsockname和sock_getpeername函式 170
2.2.16 sock_send和sock_sendto函式 171
2.2.17 sock_recv和sock_recvfrom函式 172
2.2.18 sock_setsockopt和sock_getsockopt函式 173
2.2.19 sock_shutdown函式 174
2.2.20 sock_fcntl函式 175
2.2.21 sys_socketcall函式 175
2.2.22 sock_register和sock_unregister函式 178
2.2.23 proto_init函式 179
2.2.24 sock_init函式 179
2.2.25 socket_get_info函式 180
2.2.26 socket.c檔案小結 181
第3章 INET socket層實現分析 182
3.1 af_inet.c檔案 183
3.1.1 頭檔案聲明、相關宏及變數定義 189
3.1.2 sk_inuse函式 190
3.1.3 get_new_socknum函式 192
3.1.4 put_sock和remove_sock函式 194
3.1.5 destroy_sock函式 196
3.1.6 inet_fcntl函式 198
3.1.7 inet_setsockopt和inet_getsockopt函式 199
3.1.8 inet_autobind函式 200
3.1.9 inet_listen函式 201
3.1.10 def_callback1、def_callback2和def_callback3函式 202
3.1.11 inet_create和inet_dup函式 202
3.1.12 closing和inet_release函式 207
3.1.13 inet_bind函式 209
3.1.14 inet_error函式 212
3.1.15 inet_connect函式 212
3.1.16 inet_socketpair函式 216
3.1.17 inet_accept函式 217
3.1.18 inet_getname函式 219
3.1.19 inet_recvfrom、inet_recv和inet_read函式 221
3.1.20 inet_send、inet_write和inet_sendto函式 222
3.1.21 inet_shutdown函式 223
3.1.22 inet_select和inet_ioctl函式 224
3.1.23 get_sock和get_sock_raw函式 226
3.1.24 INET層操作函式集定義 230
3.1.25 inet_proto_init函式 231
3.1.26 af_inet.c檔案小結 233
第4章 傳輸層實現分析 234
4.1 tcp.c檔案 235
4.1.1 頭檔案聲明、相關變數及宏定義 241
4.1.2 tcp_set_state函式 242
4.1.3 tcp_select_window函式 243
4.1.4 tcp_find_established、tcp_dequeue_established和tcp_accept函式 244
4.1.5 tcp_close_pending函式 247
4.1.6 tcp_time_wait函式 248
4.1.7 TCP協定逾時重傳處理函式集 248
4.1.8 tcp_err函式 258
4.1.9 tcp_readable函式 260
4.1.10 tcp_listen_select函式 262
4.1.11 tcp_select函式 263
4.1.12 tcp_ioctl函式 265
4.1.13 tcp_check和tcp_send_check函式 266
4.1.14 tcp_send_skb函式 268
4.1.15 tcp_dequeue_partial、tcp_send_partial和tcp_enqueue_partial函式 272
4.1.16 tcp_send_ack函式 274
4.1.17 tcp_build_header函式 276
4.1.18 tcp_write函式 277
4.1.19 tcp_sendto函式 286
4.1.20 tcp_read_wakeup和tcp_write_wakeup函式 287
4.1.21 cleanup_rbuf函式 291
4.1.22 tcp_read_urg函式 293
4.1.23 tcp_read函式 295
4.1.24 tcp_close_state函式 305
4.1.25 tcp_send_fin函式 307
4.1.26 tcp_shutdown函式 309
4.1.27 tcp_recvfrom函式 311
4.1.28 tcp_reset函式 312
4.1.29 tcp_options函式 314
4.1.30 default_mask和tcp_init_seq函式 316
4.1.31 tcp_conn_request函式 318
4.1.32 tcp_close函式 326
4.1.33 tcp_write_xmit函式 328
4.1.34 tcp_ack函式 331
4.1.35 tcp_fin函式 349
4.1.36 tcp_data函式 355
4.1.37 tcp_check_urg和tcp_urg函式 365
4.1.38 tcp_accept函式 368
4.1.39 tcp_connect函式 369
4.1.40 tcp_sequence函式 372
4.1.41 tcp_std_reset函式 374
4.1.42 tcp_send_probe0函式 375
4.1.43 tcp_setsockopt和tcp_getsockopt函式 376
4.1.44 tcp_rcv函式 378
4.1.45 TCP協定操作函式集定義 391
4.1.46 tcp.c檔案小結 392
4.2 tcp.h頭檔案 393
4.3 udp.c檔案 397
4.3.1 頭檔案聲明、變數及宏定義和函式聲明 398
4.3.2 udp_err函式 399
4.3.3 udp_check和udp_send_check函式 401
4.3.4 udp_send、udp_sendto和udp_write函式 403
4.3.5 udp_ioctl函式 407
4.3.6 udp_recvfrom和udp_read函式 408
4.3.7 udp_connect函式 411
4.3.8 udp_close函式 411
4.3.9 udp_rcv函式 412
4.3.10 udp_deliver函式 416
4.3.11 UDP協定操作函式集定義 417
4.4 udp.h頭檔案 417
4.5 sock.h頭檔案 419
4.6 sock.c檔案 427
4.6.1 頭檔案聲明、相關宏定義 429
4.6.2 sock_setsockopt和sock_getsockopt函式 430
4.6.3 sock_wmalloc和sock_rmalloc函式 434
4.6.4 sock_rspace和sock_wspace函式 436
4.6.5 sock_wfree和sock_rfree函式 437
4.6.6 sock_alloc_send_skb函式 438
4.6.7 sock_queue_rcv_skb函式 440
4.6.8 release_sock函式 440
4.7 datagram.c檔案 442
4.7.1 skb_recv_datagram函式 443
4.7.2 skb_free_datagram函式 446
4.7.3 skb_copy_datagram函式 447
4.7.4 datagram_select函式 447
4.8 icmp.c檔案 449
4.8.1 頭檔案聲明、變數定義 450
4.8.2 icmp_send函式 451
4.8.3 icmp_unreach函式 456
4.8.4 icmp_redirect函式 458
4.8.5 icmp_echo函式 461
4.8.6 icmp_timestamp函式 463
4.8.7 icmp_info函式 467
4.8.8 icmp_address函式 467
4.8.9 icmp_rcv函式 469
4.8.10 icmp_ioctl函式 473
4.8.11 icmp.c檔案小結 473
4.9 icmp.h頭檔案 474
4.10 igmp.c檔案* 475
4.10.1 igmp_stop_timer、igmp_start_timer、igmp_timer_exp ire、igmp_init_timer和random函式 481
4.10.2 igmp_send_report函式 483
4.10.3 igmp_heard_report和igmp_heard_query函式 483
4.10.4 ip_mc_map函式 484
4.10.5 ip_mc_filter_add和ip_mc_filter_del函式 484
4.10.6 igmp_group_dropped和igmp_group_added函式 485
4.10.7 igmp_rcv函式 486
4.10.8 ip_mc_inc_group和ip_mc_dec_group函式 487
4.10.9 ip_mc_join_group和ip_mc_leave_group函式 489
4.10.10 ip_mc_drop_device函式 491
4.10.11 ip_mc_allhost函式 492
4.10.12 ip_mc_drop_socket函式 492
4.10.13 igmp.c檔案小結 493
4.11 snmp.h頭檔案 493
4.12 protocol.h頭檔案 496
4.13 protocol.c檔案 498
4.14 proc.c檔案 503
第5章 網路層實現分析 509
5.1 route.h頭檔案 510
5.2 route.c檔案 512
5.2.1 頭檔案聲明、系統變數定義 512
5.2.2 rt_del函式 513
5.2.3 ip_rt_flush函式 514
5.2.4 default_mask和guess_mask函式 515
5.2.5 get_gw_dev函式 516
5.2.6 ip_rt_add函式 517
5.2.7 bad_mask函式 521
5.2.8 rt_new函式 522
5.2.9 rt_kill函式 525
5.2.10 rt_get_info函式 526
5.2.11 ip_rt_route和ip_rt_local函式 527
5.2.12 ip_get_old_rtent函式 530
5.2.13 ip_rt_ioctl函式 530
5.2.14 route.c檔案小結 531
5.3 ip.h頭檔案 532
5.4 ip.c檔案 535
5.4.1 頭檔案聲明、變數定義 537
5.4.2 ip_ioctl函式 538
5.4.3 strict_route、loose_route和ip_route_check函式 539
5.4.4 build_options函式 539
5.4.5 ip_send和ip_build_header函式 540
5.4.6 do_options函式 546
5.4.7 ip_compute_csum和ip_send_check函式 550
5.4.8 ip_frag_create函式 554
5.4.9 ip_find函式 554
5.4.10 ip_free函式 555
5.4.11 ip_expire函式 556
5.4.12 ip_create函式 557
5.4.13 ip_done函式 559
5.4.14 ip_glue函式 560
5.4.15 ip_defrag函式 564
5.4.16 ip_fragment函式 570
5.4.17 ip_forward函式 577
5.4.18 ip_rcv函式 584
5.4.19 ip_loopback函式 595
5.4.20 ip_queue_xmit函式 596
5.4.21 ip_mc_procinfo函式 603
5.4.22 ip_setsockopt和ip_getsockopt函式 604
5.4.23 ip_rt_event函式 611
5.4.24 ip_init函式 612
5.4.25 ip.c檔案小結 612
5.5 ip_fw.c檔案 613
5.5.1 頭檔案聲明、宏及系統變數定義 614
5.5.2 port_match函式 616
5.5.3 ip_fw_chk函式 616
5.5.4 zero_fw_chain函式 625
5.5.5 free_fw_chain函式 626
5.5.6 add_to_chain和del_from_chain函式 626
5.5.7 check_ipfw_struct函式 634
5.5.8 ip_acct_cnt函式 635
5.5.9 ip_acct_ctl,ip_fw_ctl函式 636
5.5.10 ip_chain_procinfo函式 640
5.5.11 ip_acct_procinfo、ip_fw_blk_procinfo和ip_fw_fwd_pro cinfo函式 642
5.5.12 ip_fw.c檔案小結 643
5.6 raw.c檔案 645
5.6.1 raw_err函式 646
5.6.2 raw_rcv函式 647
5.6.3 raw_sendto和raw_write函式 648
5.6.4 raw_close函式 652
5.6.5 raw_init函式 652
5.6.6 raw_recvfrom和raw_read函式 652
5.6.7 RAW協定操作函式集定義 654
5.6.8 raw.c檔案小結 654
5.7 raw.h頭檔案 655
5.8 packet.c檔案 656
5.8.1 packet_rcv函式 659
5.8.2 packet_sendto和packet_write函式 660
5.8.3 packet_close函式 663
5.8.4 packet_init函式 664
5.8.5 packet_recvfrom和packet_read函式 665
5.8.6 PACKET協定操作函式集定義 667
5.8.7 packet.c檔案小結 667
第6章 鏈路層實現分析 669
6.1 dev_mcast.c檔案 671
6.1.1 dev_mc_add函式 673
6.1.2 dev_mc_upload函式 674
6.1.3 dev_mc_delete函式 676
6.1.4 dev_mc_discard函式 676
6.2 p8022.h頭檔案 677
6.3 p8022call.h頭檔案 677
6.4 datalink.h頭檔案 680
6.5 p8022.c檔案 680
6.5.1 find_8022_client函式 681
6.5.2 p8022_rcv函式 681
6.5.3 p8022_datalink_header函式 682
6.5.4 802.2協定模組註冊 683
6.5.5 register_8022_client函式 683
6.5.6 p8022.c檔案小結 684
6.6 psnap.h頭檔案 685
6.7 psnapcall.h頭檔案 686
6.8 psnap.c檔案 686
6.8.1 find_snap_client函式 687
6.8.2 snap_rcv函式 687
6.8.3 snap_datalink_header函式 688
6.8.4 snap_proto_init函式 689
6.8.5 register_snap_client函式 690
6.9 eth.c檔案 691
6.9.1 eth_setup函式 693
6.9.2 eth_header和eth_rebuild_header函式 693
6.9.3 eth_type_trans函式 697
6.9.4 eth.c檔案小結 698
6.10 eth.h頭檔案 698
6.11 p8023.c檔案 699
6.11.1 p8023_datalink_header函式 700
6.11.2 make_8023_client函式 700
6.12 arp.c檔案 703
6.12.1 ARP快取表項表示結構及系統變(常)量定義 705
6.12.2 arp_check_expire函式 708
6.12.3 arp_release_entry函式 710
6.12.4 arp_device_event函式 711
6.12.5 arp_send函式 712
6.12.6 arp_expire_request函式 713
6.12.7 arp_send_q函式 716
6.12.8 arp_destroy函式 718
6.12.9 arp_rcv函式 719
6.12.10 arp_find函式 729
6.12.11 arp_get_info函式 732
6.12.12 arp_lookup函式 734
6.12.13 arp_req_set和arp_req_get函式 735
6.12.14 arp_ioctl函式 739
6.12.15 ARP協定註冊、初始化 741
6.12.16 arp.c檔案小結 741
6.13 arp.h頭檔案 742
6.14 devinit.c檔案 742
6.14.1 Ip_get_mask函式 744
6.14.2 ip_chk_addr函式 744
6.14.3 ip_my_addr函式 747
6.14.4 ip_dev_check函式 748
6.14.5 devinit.c檔案小結 749
6.15 dev.c檔案 749
6.15.1 頭檔案聲明、系統變數定義 750
6.15.2 dev_add_pack和dev_remove_pack函式 753
6.15.3 dev_get、dev_open和dev_close函式 754
6.15.4 register_netdevice_notifier和unregister_netdevice_notifier函式 757
6.15.5 dev_queue_xmit函式 759
6.15.6 netif_rx和dev_rint函式 764
6.15.7 dev_transmit和dev_tint函式 768
6.15.8 in_net_bh和net_bh函式 769
6.15.9 dev_ifconf函式 773
6.15.10 sprintf_stats和dev_get_info函式 774
6.15.11 bad_mask函式 776
6.15.12 dev_ifsioc函式 776
6.15.13 dev_ioctl函式 783
6.15.14 dev_init函式 784
6.15.15 dev.c檔案小結 785
網路棧實現小結 785
第4部分 網路設備驅動程式
第7章 網路設備驅動程式分析 788
7.1 關鍵變數、函式定義及網路設備驅動初始化 789
7.2 網路設備驅動程式結構 795
7.3 本章小結 796
第5部分 系統網路棧初始化
第8章 系統網路棧初始化 798
8.1 網路棧初始化流程 799
8.2 數據包傳送通道解析 800
8.3 本章小結 802
附錄A TCP協定可靠性數據傳輸實現原理分析 803
主要參考文獻 810

相關詞條

熱門詞條

聯絡我們