当前位置:首页 > 工业技术
Linux内核网络栈源代码情景分析
Linux内核网络栈源代码情景分析

Linux内核网络栈源代码情景分析PDF电子书下载

工业技术

  • 电子书积分:22 积分如何计算积分?
  • 作 者:曹桂平编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2010
  • ISBN:9787115216267
  • 页数:810 页
图书介绍:本书主要对Linux 1.3.0内核协议栈的全部源代码做了详细的分析,该版本所有代码都在一个文件夹中,每种协议的实现都只是一个文件与之对应,分析该版本源代码可以方便读者迅速掌握Linux网络协议结构,有重要的现实意义。
《Linux内核网络栈源代码情景分析》目录

第1部分 网络栈总体架构 2

第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部分 网络协议 18

第1章 网络协议头文件分析 18

1.1etherdevice.h头文件 20

1.2icmp.h头文件 21

1.3if.h头文件 28

1.4if_arp.h头文件 31

1.5if_ether.h头文件 34

1.6if_plip.h头文件 36

1.7if_slip.h头文件 37

1.8igmp.h头文件 38

1.9in.h头文件 41

1.10inet.h头文件 45

1.11interrupt.h头文件 46

1.12ip.h头文件 49

1.13ip_fw.h头文件 57

1.14ipx.h头文件 62

1.15net.h头文件 67

1.16netdevice.h头文件 73

1.17notifier.h头文件 85

1.18ppp.h头文件 89

1.19route.h头文件 112

1.20skbuff.h头文件 115

1.21socket.h头文件 122

1.22sockios.h头文件 125

1.23tcp.h头文件 127

1.24timer.h头文件 136

1.25udp.h头文件 138

1.26un.h头文件 140

1.27本章小结 140

第3部分 网络栈实现分析 144

第2章 BSD socket层实现分析 144

2.1protocols.c文件 145

2.2socket.c文件 146

2.2.1头文件声明、全局变量定义、相关函数声明 148

2.2.2move_addr_to_kernel和move_addr_to_user函数 150

2.2.3get_fd函数 150

2.2.4socki_lookup和sockfd_lookup函数 151

2.2.5sock_alloc函数 153

2.2.6sock_release_peer、sock_release和sock_close函数 153

2.2.7网络套接字普通文件接口函数 158

2.2.8sock_awaitconn函数 160

2.2.9sock_socket函数 162

2.2.10sock_socketpair函数 164

2.2.11sock_bind函数 165

2.2.12sock_listen函数 166

2.2.13sock_accept函数 167

2.2.14sock_connect函数 168

2.2.15sock_getsockname和sock_getpeemame函数 170

2.2.16sock_send和sock_sendto函数 171

2.2.17sock_recv和sock_recvfrom函数 172

2.2.18sock_setsockopt和sock_getsockopt函数 173

2.2.19sock_shutdown函数 174

2.2.20sock_fcntl函数 175

2.2.21sys_socketcall函数 175

2.2.22sock_register和sock_unregister函数 178

2.2.23proto_init函数 179

2.2.24sock_init函数 179

2.2.25socket_get_info函数 180

2.2.26socket.c文件小结 181

第3章 INET socket层实现分析 182

3.1af_inet.c文件 183

3.1.1头文件声明、相关宏及变量定义 189

3.1.2sk_inuse函数 190

3.1.3get_new_socknum函数 192

3.1.4put_sock和remove_sock函数 194

3.1.5destroy_sock函数 196

3.1.6inet_fcntl函数 198

3.1.7inet_setsockopt和inet_getsockopt函数 199

3.1.8inet_autobind函数 200

3.1.9inet_listen函数 201

3.1.10def_callbackl、def_callback2和def_callback3函数 202

3.1.11inet_create和inet_dup函数 202

3.1.12closing和inet_release函数 207

3.1.13inet_bind函数 209

3.1.14inet_error函数 212

3.1.15inet_connect函数 212

3.1.16inet_socketpair函数 216

3.1.17inet_accept函数 217

3.1.18inet_getname函数 219

3.1.19inet_recvfrom、inet_recv和inet_read函数 221

3.1.20inet_send、inet_write和inet_sendto函数 222

3.1.21inet_shutdown函数 223

3.1.22inet_select和inet_ioctl函数 224

3.1.23get_sock和get_sock_raw函数 226

3.1.24INET层操作函数集定义 230

3.1.25inet_proto_init函数 231

3.1.26af_inet.c文件小结 233

第4章 传输层实现分析 234

4.1tcp.c文件 235

4.1.1头文件声明、相关变量及宏定义 241

4.1.2tcp_set_state函数 242

4.1.3tcp_select_window函数 243

4.1.4tcp_find_established、tcp_dequeue_established和tcp_accept函数 244

4.1.5tcp_close_pending函数 247

4.1.6tcptime_wait函数 248

4.1.7TCP协议超时重传处理函数集 248

4.1.8tcp_err函数 258

4.1.9tcp_readable函数 260

4.1.10tcp_listenselect函数 262

4.1.11tcp_select函数 263

4.1.12tcp_ioctl函数 265

4.1.13tcp_check和tcp_send_check函数 266

4.1.14tcp_send_skb函数 268

4.1.15tcp_dequeue_partial、tcp_send_partial和tcp_enqueue_partial函数 272

4.1.16tcp_send_ack函数 274

4.1.17tcp_build_header函数 276

4.1.18tcp_write函数 277

4.1.19tcp_sendto函数 286

4.1.20tcp_read_wakeup和tcp_write_wakeup函数 287

4.1.21cleanup_rbuf函数 291

4.1.22tcp_read_urg函数 293

4.1.23tcp_read函数 295

4.1.24tcp_close_state函数 305

4.1.25tcp_send_fin函数 307

4.1.26tcp_shutdown函数 309

4.1.27tcp_recvfrom函数 311

4.1.28tcp_reset函数 312

4.1.29tcp_options函数 314

4.1.30default_mask和tcp_init_seq函数 316

4.1.31tcp_conn_request函数 318

4.1.32tcp_close函数 326

4.1.33tcp_write_xmit函数 328

4.1.34tcp_ack函数 331

4.1.35tcp_fin函数 349

4.1.36tcp_data函数 355

4.1.37tcp_check_urg和tcp_urg函数 365

4.1.38tcp_accept函数 368

4.1.39tcp_connect函数 369

4.1.40tcp_sequence函数 372

4.1.41tcp_std_reset函数 374

4.1.42tcp_send_probe0函数 375

4.1.43tcp_setsockopt和tcp_getsockopt函数 376

4.1.44tcp_rcv函数 378

4.1.45TCP协议操作函数集定义 391

4.1.46tcp.c文件小结 392

4.2tcp.h头文件 393

4.3udp.c文件 397

4.3.1头文件声明、变量及宏定义和函数声明 398

4.3.2udp_err函数 399

4.3.3udp_check和udp_send_check函数 401

4.3.4udp_send、udp_sendto和udp_write函数 403

4.3.5udp_ioctl函数 407

4.3.6udp_recvfrom和udp_read函数 408

4.3.7udp_connect函数 411

4.3.8udp_close函数 411

4.3.9udp_rcv函数 412

4.3.10udp_deliver函数 416

4.3.11UDP协议操作函数集定义 417

4.4udp.h头文件 417

4.5sock.h头文件 419

4.6sock.c文件 427

4.6.1头文件声明、相关宏定义 429

4.6.2sock_setsockopt和sock_getsockopt函数 430

4.6.3sock_wmalloc和sock_rmalloc函数 434

4.6.4sock_rspace和sock_wspace函数 436

4.6.5sock_wfree和sock_rfree函数 437

4.6.6sock_alloc_send_skb函数 438

4.6.7sock_queue_rcv_skb函数 440

4.6.8release_sock函数 440

4.7datagram.c文件 442

4.7.1skb_recv_datagram函数 443

4.7.2skb_free_datagram函数 446

4.7.3skb_copy_datagram函数 447

4.7.4datagram_select函数 447

4.8icmp.c文件 449

4.8.1头文件声明、变量定义 450

4.8.2icmp_send函数 451

4.8.3icmp_unreach函数 456

4.8.4icmp_redirect函数 458

4.8.5icmp_echo函数 461

4.8.6icmp_timestamp函数 463

4.8.7icmp_info函数 467

4.8.8icmp_address函数 467

4.8.9icmp_rcv函数 469

4.8.10icmp_ioctl函数 473

4.8.11icmp.c文件小结 473

4.9icmp.h头文件 474

4.10igmp.c文件* 475

4.10.1igmp_stop_timer、igmp_start_timer、igmp_timer_expire、igmp_init_timer和random函数 481

4.10.2igmp_send_report函数 483

4.10.3igmp_heard_report和igmp_heard_query函数 483

4.10.4ip_mc_map函数 484

4.10.5ip_mc_filter_add和ip_mc_filter_del函数 484

4.10.6igmp_group_dropped和igmp_group_added函数 485

4.10.7igmp_rcv函数 486

4.10.8ip_mc_inc_group和ip_mc_dec_group函数 487

4.10.9ip_mc_join_group和ip_mc_leave_group函数 489

4.10.10ip_mc_drop_device函数 491

4.10.11ip_mc_allhost函数 492

4.10.12ip_mc_drop_socket函数 492

4.10.13igmp.c文件小结 493

4.11snmp.h头文件 493

4.12protocol.h头文件 496

4.13protocol.c文件 498

4.14proc.c文件 503

第5章 网络层实现分析 509

5.1route.h头文件 510

5.2route.c文件 512

5.2.1头文件声明、系统变量定义 512

5.2.2rt_del函数 513

5.2.3ip_rt_flush函数 514

5.2.4default_mask和guess_mask函数 515

5.2.5get_gw_dev函数 516

5.2.6ip_rt_add函数 517

5.2.7bad_mask函数 521

5.2.8rt_new函数 522

5.2.9rt_kill函数 525

5.2.10rt_get_info函数 526

5.2.11ip_rt_route和ip_rt_local函数 527

5.2.12ip_get_old_rtent函数 530

5.2.13ip_rt_ioctl函数 530

5.2.14route.c文件小结 531

5.3ip.h头文件 532

5.4ip.c文件 535

5.4.1头文件声明、变量定义 537

5.4.2ip_ioctl函数 538

5.4.3strict_route、loose_route和ip_route_check函数 539

5.4.4build_options函数 539

5.4.5ip_send和ip_build_header函数 540

5.4.6do_options函数 546

5.4.7ip_compute_csum和ip_send_check函数 550

5.4.8ip_frag_create函数 554

5.4.9ip_find函数 554

5.4.10ip_free函数 555

5.4.11ip_expire函数 556

5.4.12ip_create函数 557

5.4.13ip_done函数 559

5.4.14ip_glue函数 560

5.4.15ip_defrag函数 564

5.4.16ip_fragment函数 570

5.4.17ip_forward函数 577

5.4.18ip_rcv函数 584

5.4.19ip_loopback函数 595

5.4.20ip_queue_xmit函数 596

5.4.21ip_mc_procinfo函数 603

5.4.22ip_setsockopt和ip_getsockopt函数 604

5.4.23ip_rt_event函数 611

5.4.24ip_init函数 612

5.4.25ip.c文件小结 612

5.5ip_fw.c文件 613

5.5.1头文件声明、宏及系统变量定义 614

5.5.2port_match函数 616

5.5.3ip_fw_chk函数 616

5.5.4zero_fw_chain函数 625

5.5.5free_fw_chain函数 626

5.5.6add_to_chain和del_from_chain函数 626

5.5.7check_ipfw_struct函数 634

5.5.8ip_acct_cnt函数 635

5.5.9ip_acct_ctl,ip_fw_ctl函数 636

5.5.10ip_chain_procinfo函数 640

5.5.11ip_acct_procinfo、ip_fw_blk_procinfo和ip_fw_fwd_pro cinfo函数 642

5.5.12ip_fw.c文件小结 643

5.6raw.c文件 645

5.6.1raw_err函数 646

5.6.2raw_rcv函数 647

5.6.3raw_sendto和raw_write函数 648

5.6.4raw_close函数 652

5.6.5raw_init函数 652

5.6.6raw_recvfrom和raw_read函数 652

5.6.7RAW协议操作函数集定义 654

5.6.8raw.c文件小结 654

5.7raw.h头文件 655

5.8packet.c文件 656

5.8.1packet_rcv函数 659

5.8.2packet_sendto和packet_write函数 660

5.8.3packet_close函数 663

5.8.4packet_init函数 664

5.8.5packet_recvfrom和packet_read函数 665

5.8.6PACKET协议操作函数集定义 667

5.8.7packet.c文件小结 667

第6章 链路层实现分析 669

6.1dev_mcast.c文件 671

6.1.1dev_mc_add函数 673

6.1.2dev_mc_upload函数 674

6.1.3dev_mc_delete函数 676

6.1.4dev_mc_discard函数 676

6.2p8022.h头文件 677

6.3p8022call.h头文件 677

6.4datalink.h头文件 680

6.5p8022.c文件 680

6.5.1find_8022_client函数 681

6.5.2p8022_rcv函数 681

6.5.3p8022_datalink_header函数 682

6.5.4802.2协议模块注册 683

6.5.5register_8022_client函数 683

6.5.6p8022.c文件小结 684

6.6psnap.h头文件 685

6.7psnapcall.h头文件 686

6.8psnap.c文件 686

6.8.1find_snap_client函数 687

6.8.2snap_rcv函数 687

6.8.3snap_datalink_header函数 688

6.8.4snap_proto_init函数 689

6.8.5register_snap_client函数 690

6.9eth.c文件 691

6.9.1eth_setup函数 693

6.9.2eth_header和eth_rebuild_header函数 693

6.9.3eth_type_trans函数 697

6.9.4eth.c文件小结 698

6.10eth.h头文件 698

6.11p8023.c文件 699

6.11.1p8023_datalink_header函数 700

6.11.2make_8023_client函数 700

6.12arp.c文件 703

6.12.1ARP缓存表项表示结构及系统变(常)量定义 705

6.12.2arp_check_expire函数 708

6.12.3arp_release_entry函数 710

6.12.4arp_device_event函数 711

6.12.5arp_send函数 712

6.12.6arp_expire_request函数 713

6.12.7arp_send_q函数 716

6.12.8arp_destroy函数 718

6.12.9arp_rcv函数 719

6.12.10arp_find函数 729

6.12.11arp_get_info函数 732

6.12.12arp_lookup函数 734

6.12.13arp_req_set和arp_req_get函数 735

6.12.14arp_ioctl函数 739

6.12.15ARP协议注册、初始化 741

6.12.16arp.c文件小结 741

6.13arp.h头文件 742

6.14devinit.c文件 742

6.14.1Ip_get_mask函数 744

6.14.2ip_chk_addr函数 744

6.14.3ip_my_addr函数 747

6.14.4ip_dev_check函数 748

6.14.5devinit.c文件小结 749

6.15dev.c文件 749

6.15.1头文件声明、系统变量定义 750

6.15.2dev_add_pack和dev_remove_pack函数 753

6.15.3dev_get、dev_open和dev_close函数 754

6.15.4register_netdevice_notifier和unregister_netdevice_notifier函数 757

6.15.5dev_queue_xmit函数 759

6.15.6netif_rx和dev_rint函数 764

6.15.7dev_transmit和dev_tint函数 768

6.15.8in_net_bh和net_bh函数 769

6.15.9dev_ifconf函数 773

6.15.10sprintf_stats和dev_get_info函数 774

6.15.11bad_mask函数 776

6.15.12dev_ifsioc函数 776

6.15.13dev_ioctl函数 783

6.15.14dev_init函数 784

6.15.15dev.c文件小结 785

网络栈实现小结 785

第4部分 网络设备驱动程序 788

第7章 网络设备驱动程序分析 788

7.1关键变量、函数定义及网络设备驱动初始化 789

7.2网络设备驱动程序结构 795

7.3本章小结 796

第5部分 系统网络栈初始化 798

第8章 系统网络栈初始化 798

8.1网络栈初始化流程 799

8.2数据包传送通道解析 800

8.3本章小结 802

附录A TCP协议可靠性数据传输实现原理分析 803

主要参考文献 810

返回顶部