出版时间:2010-8 出版社:电子工业出版社 作者:肖宇峰,李昕,时岩 编著 页数:354
Tag标签:无
前言
随着Internet在社会各领域的延伸,人类的生产、生活方式发生了翻天覆地的变化。Internet提供了强大的信息交互平台,带来了多样化的网络服务和消费品,极大地提高了生产效率,使人类的生活更加方便、快捷。 要认识并理解Internet的运行方式,读者应首先学习TCP/IP协议体系。一方面,只有使用和分析实际网络原型,才能深入掌握这些知识,并用于生产实践。另一方面,现有的TCP/IP体系已经比较成熟,若要增加新功能或者研究开发新一代网络,最有效的途径就是从一个实际原型入手改进或者扩展现有的网络架构。作为开源平台,Linux网络内核能充分满足这两方面需要,为不同层次的学生、广大王程和科研人员提供强大的学习和开发平台。 本书把网络内核从Linux内核架构中取出来独立分析,不仅从源码级角度阐述了TCP/IP的工作原理,而且从开发角度引入实例,向读者展示了网络内核的工作流程和开发方法。
内容概要
本书全面描述了Linux网络内核的结构和源码,力图使读者了解和掌握网络内核的工作原理和开发方法。全书共分为9章,主要介绍了Linux内核和相关开发工具、Linux网络内核结构、套接字及其设计、传输层协议实现与设计、网络层实现、数据链路层实现、网络设备驱动程序及其设计、路由模块与邻居子系统、MPLS网络及其协议实现等内容。 本书适用于从事计算机网络、协议研发、嵌入式产品开发的技术人员,也适用于计算机、通信专业的本科生和研究生。
书籍目录
第1章 Linux系统内核 1.1 Linux系统内核组成结构 1.1.1 内核组成结构 1.1.2 Linux内核源码浏览工具 1.2 Linux系统内核编译 1.2.1 Linux内核编译步骤 1.2.2 Linux内核编译选项 1.3 Linux系统内核调试工具 1.3.1 KGDB调试工具 1.3.2 UML调试工具 1.3.3 用虚拟机软件搭建内核调试平台 1.4 GDB使用 1.4.1 基本命令 1.4.2 断点 1.4.3 查看运行时数据 1.4.4 改变程序的执行 1.5 调试范例 1.5.1 调试示例程序 1.5.2 调试前的工作 1.5.3 调试运行第2章 Linux网络内核 2.1 TCP/IP协议体系 2.1.1 TCP/IP协议体系架构 2.1.2 网络数据包的封装与解封 2.2 Linux网络内核组成 2.2.1 Linux网络内核的组成模块 2.2.2 内核中的数据包处理流程 2.3 网络内核的重要数据结构 2.3.1 套接字缓冲区 2.3.2 网络设备第3章 套接字 3.1 套接字与套接字接口 3.1.1 套接字 3.1.2 套接字接口的使用 3.1.3 套接字编程实例 3.2 套接字内核实现 3.2.1 套接字创建流程 3.2.2 套接字数据结构 3.2.3 套接字功能实现 3.3 新协议族与套接字 3.3.1 数据定义 3.3.2 函数设计第4章 传输层 4.1 UDP协议 4.1.1 UDP简介 4.1.2 UDP协议模块处理流程 4.1.3 UDP头部实现 4.1.4 UDP包的发送 4.1.5 UDP包的接收 4.1.6 UDP连接的建立 4.2 TCP协议 4.2.1 TCP协议简介 4.2.2 TCP协议模块处理流程 4.2.3 TCP头部实现 4.2.4 TCP连接建立 4.2.5 TCP包的发送 4.2.6 TCP包的接收 4.3 原始数据包处理模块 4.3.1 原始套接字简介 4.3.2 原始数据包处理流程 4.3.3 原始数据包的发送 4.3.4 原始数据包的接收 4.4 新传输层协议与套接字设计 4.4.1 数据结构 4.4.2 函数设计第5章 网络层 5.1 IPv4介绍 5.2 IPv4协议实现 5.2.1 IP包头实现 5.2.2 IP层处理流程 5.2.3 IP包的本地发送 5.2.4 IP包的本地接收 5.2.5 IP包的转发 5.3 ICMP协议实现 5.3.1 ICMP简介 5.3.2 ICMP流程 5.4 IPv6协议实现 5.4.1 IPv6协议简介 5.4.2 给内核配置IPv6 5.4.3 IPv6协议模块处理流程 5.4.4 IPv6包的发送 5.4.5 IPv6包的接收 5.4.6 IPv6包的转发 5.4.7 相关协议实现第6章 数据链路层 6.1 数据链路层协议 6.2 帧的发送和接收 6.2.1 设备初始化函数 6.2.2 帧的发送实现 6.2.3 帧的接收实现 6.2.4 驱动上层的数据包类型与递交方法 6.3 通用点对点(PPP)协议实现 6.3.1 点对点协议 6.3.2 PPP协议管理 6.3.3 发送帧 6.3.4 接收帧 6.4 异步PPP协议实现 6.4.1 ppp_async_init函数 6.4.2 ppp_async_send函数 6.4.3 ppp_asynctty_receive函数 6.5 以太网上的PPP协议实现 6.5.1 PPPoE协议规范 6.5.2 数据结构 6.5.3 PPPoE驱动程序第7章 网络设备驱动程序 7.1 网络设备驱动程序 7.1.1 数据结构 7.1.2 网络设备的初始化 7.1.3 网络设备的打开和关闭 7.1.4 发送数据包 7.1.5 接收数据包 7.1.6 网络设备的统计信息 7.2 CS89x0网卡驱动程序设计 7.2.1 数据定义 7.2.2 I/O端口访问函数 7.2.3 CS89x0网卡的初始化 7.2.4 CS89x0网卡的打开和关闭 7.2.5 CS89x0网卡发送数据包 7.2.6 CS89x0网卡接收数据包第8章 路由模块与邻居子系统 8.1 路由原理 8.2 路由表数据结构 8.2.1 路由表类型 8.2.2 路由表缓存类型 8.3 路由信息管理 8.3.1 路由规则管理 8.3.2 路由表管理 8.4 路由查询 8.4.1 发送时路由查询 8.4.2 接收时路由查询 8.5 邻居子系统 8.5.1 邻居子系统类型 8.5.2 邻居子系统处理模块第9章 MPLS网络与协议实现 9.1 MPLS协议原理 9.1.1 原理介绍 9.1.2 Linux内核的MPLS配置 9.2 MPLS协议模块 9.2.1 流程 9.2.2 数据结构 9.2.3 初始化 9.2.4 MPLS标签转发表管理 9.2.5 MPLS层的数据发送 9.2.6 MPLS层的数据接收与转发参考文献
章节摘录
应用层,为网络用户提供各种服务,例如电子邮件、文件传输等。 表示层,为不同主机间的通信提供统一的数据表示形式。 会话层,负责信息传输的组织和协调,管理进程会话过程。 传输层,管理网络通信两端的数据传输,提供可靠或不可靠的传输服务。 网络层,负责数据传输的路由选择和网际互连。 数据链路层,负责物理相邻(通过网络介质相连)的主机间的数据传输,主要作用包括物理地址寻址、数据帧封装、差错控制等。该层可分为逻辑链路控制子层(LLC)和介质访问控制子层(MAC)。 物理层,负责把主机中的数据转换成电信号,再通过网络介质(双绞线、光纤、无线信道等)来传输。该层描述了通信设备的机械、电气、功能等特性。 在某些文献中,上述的传输层、网络层、数据链路层和物理层又被依次称为第四层、第三层、第二层和第一层,本书也沿用该说法。相比于OSI体系,TCP/IP协议体系的架构更加简单实用。如图2.1(b)所示,该体系包括下面四个层次: 应用层,对应OSI传输层之上的层次,包括提供文件传输服务的FTP协议,提供万维网服务的H/TP协议,提供电子邮件服务的SMTP协议等。由于该层不属于系统内核,本书未描述这部分内容。
图书封面
图书标签Tags
无
评论、评分、阅读与下载