购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

第1章

概 述

本章在介绍Linux内核的主要组件及功能的基础上,概要描述了作为Linux内核组件中的网络子系统在实现过程需要的共享系统资源、资源管理技术、内核活动类型和特点、并发访问控制、模块机制等内容。本章的主要目的是让读者了解网络子系统的实现应具备的预备知识。

TCP/IP协议栈是使用最广泛的网络协议栈,Internet就是建立在TCP/IP协议栈基础上的。本书将以TCP/IP协议栈在Linux内核中的设计和实现为实例来讲解Linux的网络体系结构。我们将深入到TCP/IP协议栈在Linux内核中的实现细节,包括各层协议工作的基本原理、Linux内核中描述协议的数据结构、协议层之间的接口和实现源码分析;由此揭示TCP/IP协议栈在Linux中实现的优异性,它异常健壮、成熟和稳定。在本书中我们不仅会分析Linux内核TCP/IP协议栈与网络体系结构,同时也会带领读者深入到内核的源代码中,给出跟踪Linux内核源代码执行流程的方法。

Linux 内核网络体系结构的设计和实现非常高效,极易扩展和增加新的协议栈。除TCP/IP协议栈外,Linux内核可以支持多个不同的协议栈。本书以TCP/IP协议栈的实现为基础,来讲解Linux内核网络子系统的体系结构。全书内容涵盖:网络数据包在TCP/IP协议栈各层协议的处理;网络设备驱动程序的设计和实现;Linux网络应用程序设计和实现;应用如何与内核网络功能交互。

虽然网络子系统的功能在Linux内核中相对独立,但它与内核中其他子系统类似,需要使用系统资源,实现对资源的管理,如内存管理、数据对象分配和释放、系统时钟、中断资源等。网络子系统中的活动是内核中的活动,具有内核活动的共同特点,比如它有中断处理、tasklet、系统调用等。在这一章中,我们将对Linux 内核的整体结构和网络子系统实现需要用到的系统服务、资源和活动做概要性的介绍,以便读者更好地理解网络子系统的工作过程。

本书在写作时分析的Linux源代码是基于Linux-2.6.29.6版本的,读者可以从http://www.kernel.org下载该版本的全部源代码。在本书中我们常会用到以下的缩写来表示协议栈的各层。

● L2数据链路层(如以太网协议)。

● L3网络层(如IP协议)。

● L4传输层(如UDP/TCP/ICMP协议)。 W6XEU204x6r5qRpzZjmaNHISpvu6vCnTAQ+cPdJ1VOn2bu3h09+z08Nnia5QeiQ6

点击中间区域
呼出菜单
上一章
目录
下一章
×