logo资料库

Linux网络体系结构_Linux内核中网络协议的设计与实现.pdf

第1页 / 共516页
第2页 / 共516页
第3页 / 共516页
第4页 / 共516页
第5页 / 共516页
第6页 / 共516页
第7页 / 共516页
第8页 / 共516页
资料共516页,剩余部分请下载后查看
封面
书名
版权
前言
目录
第一篇 Linux内核
第1章 推动因素
1.1 Linux操作系统
1.2 什么是Linux
1.3 使用Linux的理由
第2章 内核结构
2.1 整体式体系结构和微内核
2.2 Linux内核中的活动
2.2.1 进程和系统调用
2.2.2 硬件中断
2.2.3 软件中断
2.2.4 任务蕾
2.2.5 下半区
2.3 加锁——原子运算
2.3.1 位运算
2.3.2 环形锁
2.3.3 读写环形锁
2.3.4 信号量
2.4 内核模块
2.4.1 内核模块的管理
2.4.2 模块功能的注册和注销
2.4.3 在加载模块时传递参数
2.4.4 内核符号表和模块
2.5 设备驱动程序
2.6 内核中的存储管理
2.6.1 精选的存储管理函数
2.6.2 缓存
2.7 Linux内核中的定时
2.7.1 标准定时器
2.7.2 使用APIC作为高解析频率定时器
2.8 proc文件系统
2.9 版本化
第二篇 网络实现的体系结构
第3章 通信系统的体系结构
3.1 基于层的通信模型
3.1.1 ISO/OSI参考模型
3.1.2 TCP/IP参考模型
3.2 服务和协议
第4章 管理内核中的网络报文
4.1 套接字缓存
4.1.1 套接字缓存上的操作
4.1.2 其他函数
4.2 套接字缓存队列
第5章 网络设备
5.1 net_device接口
5.2 管理网络设备
5.2.1 网络设备的注册与注销
5.2.2 网络设备的开启与关闭
5.2.3 创建和寻找网络设备
5.2.4 为状态改变而设计的通知链
5.2.5 在网络设备上进行传输
5.3 网络设备
5.3.1 初始化网络适配器
5.3.2 打开和关闭网络适配器
5.3.3 传输数据
5.3.4 包传输过程中的问题
5.3.5 运行时配置
5.3.6 适配器相关的ioctl()命令
5.3.7 网络设备的统计信息
5.3.8 适配器层次的多播支持
第三篇 第Ⅰ+Ⅱ层——介质访问和逻辑链路层
第6章 数据链路层简介
6.1 数据链路层的结构
6.2 数据链路层上的进程
6.2.1 数据包的接收
6.2.2 数据包的传输
6.3 第3层协议的管理
第7章 串行线路Internet协议(SLIP)
7.1 简介
7.2 Linux内核中的SLIP实现
7.2.1 TTY设备和线路规范
7.2.2 一般过程
7.2.3 函数和数据结构
7.2.4 驱动器的初始化及连接的建立
7.2.5 网络设备的激活及撤销
7.2.6 拆除连接及取消驱动器的初始化
7.2.7 IP数据包的传输
7.2.8 IP数据包的接收
第8章 点对点协议(PPP)
8.1 简介
8.1.1 子协议
8.1.2 Linux实现的组成部分
8.2 Linux中的PPP配置
8.2.1 内核选项
8.2.2 pppd—PPP守护程序
8.2.3 Dial on Demand
8.2.4 自动回叫
8.3 Linux内核中的PPP实现
8.3.1 通用PPP驱动程序的功能和数据结构
8.3.2 异步PPP驱动程序的函数和数据结构
8.3.3 初始化
8.3.4 发送IP包
8.3.5 检测帧边界
8.3.6 接收IP包
8.4 实现PPP守护程序
8.4.1 管理子协议
8.4.2 状态
第9章 以太网上的PPP技术
9.1 简介
9.2 RFC 2516中的PPPOE规范
9.3 用户空间中的实现
9.4 Liniux内核中的实现
9.4.1 内核的变化
9.4.2 ppp守护程序的任务
9.4.3 配置
第10章 异步传输模式——ATM
10.1 简介
10.2 在linux中实现ATM
10.2.1 永久性虚拟通道
10.2.2 有信号虚拟通道
10.2.3 ATM设备驱动程序
10.2.4 进一步的ATM支持
10.3 配置
第11章 Linux中的蓝牙
11.1 主机控制器接口(HCI)
11.1.1 指令封包
11.1.2 事件封包
11.1.3 数据封包
11.1.4 访问主机控制器接口
11.2 L2CAP
11.2.1 连接建立阶段
11.2.2 配置阶段
11.2.3 数据传输阶段
11.3 其他协议
第12章 透明桥
12.1 介绍
12.2 基本概念
12.2.1 透明桥的属性
12.2.2 转发函数
12.2.3 学习功能
12.2.4 生成树协议
12.3 在Linux下配置桥
12.3.1 配置内核和网络适配器
12.3.2 用brctl工具配置Linux桥
12.3.3 检查桥功能
12.3.4 配置实例
12.4 实现
12.4.1 桥实现的体系结构
12.4.2 生成和连接重要的数据结构
12.4.3 包在内核中的路径
12.4.4 学习新MAC地址
12.4.5 实现生成树协议
第四篇 网络层
第13章 推动因素
Internet协议族
第14章 IPv4
14.1 IP的属性
14.1.1 在路由器之间路由IP包
14.1.2 IP包头
14.1.3 IP数据包的生存期
14.1.4 Internet上的寻址
14.1.5 IP地址和IP地址分类
14.2 IP的实现
14.2.1 传入IP包的路径
14.2.2 传输层的包
14.2.3 包的分片
14.2.4 IP实体的数据
14.2.5 一些IP辅助函数
14.3 IP的选项
14.3.1 标准IP包选项
14.3.2 配置
14.3.3 Linux内核中的ip_options类
14.3.4 IP层中的IP选项
14.4 Internet控制消息协议(ICMP)
14.4.1 ICMP的功能原理
14.4.2 ICMP的配置
14.4.3 Linux内核中的ICMP
第15章 地址解析协议(ARP)
15.1 运用地址解析协议
15.1.1 ARP协议数据单元的结构
15.1.2 接收一个ARP报文并应答
15.2 ARP命令
15.3 实现Linux内核中的ARP实例
15.3.1 管理ARP缓存中可达的计算机
15.3.2 地址解析协议(ARP)的运作方式
第16章 IP路由
16.1 序言
16.1.1 网络和路由器
16.1.2 转发和路由
16.1.3 IP地址
16.1.4 转发步骤
16.1.5 路由缓存
16.1.6 基于规则的路由
16.2 配置
16.2.1 内核的配置
16.2.2 proc文件系统中的文件
16.2.3 系统层级的配置
16.3 实现
16.3.1 路由规则
16.3.2 路由表
16.3.3 路由缓存
16.3.4 转发进程
第17章 用于组通信的IP多播
17.1 组通信
17.1.1 单播
17.1.2 广播
17.1.3 多播
17.2 IP多播
17.2.1 用作多播组的地址
17.2.2 Linux中的IP多播配置
17.2.3 多播编程
17.3 Internet组管理协议(IGMP)
17.3.1 IGMP包的格式与传送
17.3.2 不同的版本
17.3.3 IGMP协议的运作
17.3.4 IGMP的实现
17.4 Linux内核中的多播数据路径
17.4.1 MAC层上的多播支持
17.4.2 IP中的多播数据路径
17.5 当今Internet上的多播
17.5.1 多播骨干网(MBone)
17.5.2 通过mrouted守护进程访问MBone
17.5.3 DVMRP路由算法
17.6 多播传输协议
第18章 用流量控制支持服务质量(QoS)
18.1 引言
18.2 Linux中的流量控制的基本结构
18.3 外发方向上的流量控制
18.4 内核结构和接口
18.4.1 句柄
18.4.2 排队规则
18.4.3 类
18.4.4 过滤器
18.5 入口限制
18.6 实现一个排队规则
18.7 配置
18.7.1 RT网络连接接口
18.7.2 用户接口
第19章 包筛选器与防火墙
19.1 介绍
19.1.1 防火墙的工作原理
19.1.2 协议相关特性:TCP、FTP以及其他协议
19.1.3 筛选器实现的质量标准
19.1.4 防火墙工作原理的局限性
19.22.2 版本Linux的ipchains体系结构
19.2.1 ipchains规则语法
19.2.2 ipchains体系结构的缺陷
19.32.4 版本Linux的Netfilter体系结构
19.3.1 Linux内核中的Netfilter钩子
19.3.2 注册和注销包筛选函数
19.3.3 iptables与ipchains的比较
19.3.4 iptables命令行工具
19.3.5 netfilter标准模块
第20章 连接跟踪
20.1 简介
20.2 实现
20.2.1 基本结构
20.2.2 连接记录
20.2.3 传输协议
20.2.4 Helper模块
20.2.5 全局变量
20.2.6 函数
第21章 网络地址转换(NAT)
21.1 简介
21.1.1 重要术语
21.1.2 透明地址分配
21.1.3 透明路由
21.1.4 正确处理ICMP包
21.1.5 NAT与2.2版本Linux中的地址伪装有何不同
21.1.6 NAT的变化形式
21.1.7 相关问题
21.2 在Linux中配置NAT
21.3 实现NAT模块
21.3.1 重要的数据结构
21.3.2 初始化NAT模块和卸载NAT模块
21.3.3 NAT模块如何处理经过的IP包
21.3.4 初始化地址绑定过程
21.3.5 实际的地址转换
21.4 NAT模块的扩展接口
21.4.1 传输协议
21.4.2 Helper模块
第22章 扩展Linux网络体系结构功能——KIDS
22.1 管理动态可扩展的各项功能
22.2 KIDS构造系统的结构
22.2.1 基本QoS组件
22.2.2 钩子
22.3 用KIDS实例扩展Liunx网络体系结构
22.3.1 组件及其实例
22.3.2 注册和管理组件
22.3.3 管理组件实例
22.3.4 实现钩子
22.3.5 组件的工作方式
22.3.6 配置各KIDS组件
第23章 Ipv6——Internet协议第6版
23.1 介绍
23.2 IPv6的各项特性
23.2.1 地址分配
23.2.2 IPv6包报头
23.2.3 包报头扩展
23.3 IPv6实现
23.3.1 传入包
23.3.2 转发包
23.3.3 本地投递包
23.3.4 传输层包
第五篇 第四层——传输层
第24章 传输控制协议(TCP)
24.1 概述
24.1.1 对TCP的要求
24.1.2 TCP数据包的格式
24.2 TCP协议实例的实现
24.2.1 输入TCP段的处理
24.2.2 TCP段的发送
24.2.3 TCP实例的数据结构
24.3 连接管理
24.3.1 TCP状态机
24.3.2 建立连接
24.3.3 连接的拆卸
24.4 数据交换的协议机制
24.4.1 流控制
24.4.2 拥塞的检测、回避和处理
24.4.3 拥塞回避
24.5 TCP中的计时器管理
24.5.1 数据结构
24.5.2 函数
24.5.3 配置
第25章 用户数据报协议(UDP)
25.1 简介
25.2 数据结构
25.2.1 传递有效负荷
25.2.2 UDP数据报
25.2.3 UDP至网络体系结构的集成
25.3 UDP数据报的收发
第26章 套接字的概念
26.1 简介
26.2 BSD套接字
26.3 特定于协议的套接字
26.3.1 PF_INET套接字
26.3.2 PF_PACKET套接字
26.3.3 PF_NETLINK套接字
第六篇 第五层——应用层
第27章 涉及套接字的网络编程
27.1 简介
27.1.1 套接字的地址
27.1.2 一些套接字操作
27.2 套接字API函数
27.2.1 用于连接管理的函数
27.2.2 用于数据传输的函数
27.2.3 字节排序方法
27.2.4 用于处理Internet地址的函数
27.3 示例
第七篇 附录
附录A LXR源代码浏览器
A.1 功能
A.2 安装
附录B Linux内核中的调试
B.1 记录Linux内核输出
B.1.1 使用printk()创建日志输出
B.1.2 syslogd守护进程
B.1.3 使用console_print()进行直接输出
B.2 在内核中创建字符串
B.3 /PROC目录中的相关信息
B.4 用调试器调试Linux内核
附录C 用于网络操作的工具和命令
C.1 使用ifconfig以管理网络设备
C.2 使用ping以测试可抵达性
C.3 使用netstat以查看网络状态
C.4 使用route以处理路由信息
C.5 使用tcpdump以进行网络分析
C.6 使用traceroute以跟踪包
C.7 其他工具
分享到:
收藏