作者:
Christian Benvenuti
出版社: 东南大学出版社
副标题: Understanding Linux Network Internals
出版年: 2006-5
页数: 1035
定价: 98.00元
装帧: 平装
ISBN: 9787564103675
出版社: 东南大学出版社
副标题: Understanding Linux Network Internals
出版年: 2006-5
页数: 1035
定价: 98.00元
装帧: 平装
ISBN: 9787564103675
内容简介 · · · · · ·
本书系统地阐述了网络的基本概念,并指导你如何用C语言实现。同时描述了Linux网络的全貌,解释了Linux代码是如何工作的,主要网络特性的目的,网络通信的主要问题,以及在不同解决方案间是如何抉择的。同时,本书还包含了大量的流程图和其他图表以帮助读者理解。
目录 · · · · · ·
前言
第一部分 基础背景
第一章 简介
基本术语
常见编码模式
用户空间工具
浏览源代码
当功能以补丁形式提供时
第二章 关键数据结构
套接字缓冲区:sk—buff结构
net—device结构
本章涉及的文件
第三章 用户空间与内核的接
概论
procfs与sysctl
ioctl
Netlink
配置改变串行化
第二部分 系统初始化
第四章 通知链
使用通知链的原因
概论
定义链
链注册
链上的通知事件
网络子系统的通知链
通过/proc文件系统的调整
本章涉及的函数和变量
本章涉及的文件和目录
第五章 网络设备初始化
系统初始化概论
设备注册和初始化
NIC初始化的基本目标
设备与内核之间的交互
初始化选项
模块选项
设备处理层初始化:net—dev—init
用户空间辅助程序
虚拟设备
通过/proc文件系统调整
本章涉及的函数和变量
本章涉及的文件和目录
第六章 PCI层和网络接口卡
本章涉及的数据结构
PCI NIC设备驱动程序的注册
电源管理和网络唤醒
PCI NIC驱动程序注册范例
大蓝图
通过/proc文件系统调整
本章涉及的函数和变量
本章涉及的文件和目录
第七章 组件初始化的内核基础架构
引导期间的内核选项
模块初始化代码
优化宏卷标
引导期间初始化函数
内存最优化
通过/proc文件系统调整
本章涉及的函数和变量
本章涉及的文件和目录
第八章 设备注册和初始化
设备注册之时
设备除名之时
分配net—device结构
NIC注册和除名的架构
设备初始化
net—device结构的组织
设备状态
设备的注册和除名
设备注册
设备除名
开启和关闭网络设备
更新设备队列规则状态
从用户空间配置设备相关信息
虚拟设备
上锁
通过/proc文件系统调整
本章涉及的函数和变量
本章涉及的文件和目录
第三部分 传输和接收
第九章 中断和网络驱动程序
决策和流量方向
接收到帧时通知驱动程序
中断处理函数
softnet—data结构
第十章 帧的接收
与其他功能交互
设备的开启和关闭
队列
通知内核帧已接收:NAPI和netif_rx
设备驱动程序与内核问的IB接口:netif_rx的第一部分
拥塞管理
处理NET_RX_SOFTIRQ:net_rxa_ction
第十一章 帧的传输
传输的开启和关闭
第十二章 中断事件一般性参考数据
统计数据
通过/proc和sysfs文件系统调整
本部分涉及的函数和变量
本部分涉及的文件和目录
第十三章 协议处理函数
网络协议栈概论
执行正确的协议处理函数
协议处理函数的组织
协议处理函数的注册
Ethernet与IEEE 802.3帧
通过/proc文件系统进行调整
本章涉及的函数和变量
本章涉及的文件和目录
第四部分 桥接
第十四章 桥接:概念
中继器、网桥以及路由器
网桥与交换机
主机
用网桥合并LAN
桥接不同技术的LAN
地址学习
多台网桥
第十五章 桥接:生成树协议
基本术语
阶层交换式L2拓扑范例
生成树协议的基本元素
网桥ID和端口ID
网桥协议数据单元(BPDU)
定义活跃拓扑
定时器
拓扑变化
BPDU封装
传输配置BPDU
处理入口帧
收敛时间
新版生成树协议概况
第十六章 桥接:Linux实现
网桥设备抽象
重要的数据结构
桥接程序的初始化
建立网桥设备和网桥端口
建立一个新网桥设备
阿桥设备设置函数
删除网桥
给网桥添加端口
启动和关闭网桥设备
启动和关闭网桥端口
改变网桥端口状态
大蓝图
转发数据库
处理入口流量
网桥设备上的传输
生成树协议(STP)
netdevice通知链
第十七章 桥接:其他主题
用户空间配置工具
通过/proc文件系统调整网桥
通过/sys文件系统调整网桥
统计数据
本部分涉及的数据结构
本部分涉及的函数和变量
本部分涉及的文件和目录
第五部分 因特网协议第4版(IPv4)
第六部分 邻居子系统
第七部分 路由
· · · · · · (收起)
第一部分 基础背景
第一章 简介
基本术语
常见编码模式
用户空间工具
浏览源代码
当功能以补丁形式提供时
第二章 关键数据结构
套接字缓冲区:sk—buff结构
net—device结构
本章涉及的文件
第三章 用户空间与内核的接
概论
procfs与sysctl
ioctl
Netlink
配置改变串行化
第二部分 系统初始化
第四章 通知链
使用通知链的原因
概论
定义链
链注册
链上的通知事件
网络子系统的通知链
通过/proc文件系统的调整
本章涉及的函数和变量
本章涉及的文件和目录
第五章 网络设备初始化
系统初始化概论
设备注册和初始化
NIC初始化的基本目标
设备与内核之间的交互
初始化选项
模块选项
设备处理层初始化:net—dev—init
用户空间辅助程序
虚拟设备
通过/proc文件系统调整
本章涉及的函数和变量
本章涉及的文件和目录
第六章 PCI层和网络接口卡
本章涉及的数据结构
PCI NIC设备驱动程序的注册
电源管理和网络唤醒
PCI NIC驱动程序注册范例
大蓝图
通过/proc文件系统调整
本章涉及的函数和变量
本章涉及的文件和目录
第七章 组件初始化的内核基础架构
引导期间的内核选项
模块初始化代码
优化宏卷标
引导期间初始化函数
内存最优化
通过/proc文件系统调整
本章涉及的函数和变量
本章涉及的文件和目录
第八章 设备注册和初始化
设备注册之时
设备除名之时
分配net—device结构
NIC注册和除名的架构
设备初始化
net—device结构的组织
设备状态
设备的注册和除名
设备注册
设备除名
开启和关闭网络设备
更新设备队列规则状态
从用户空间配置设备相关信息
虚拟设备
上锁
通过/proc文件系统调整
本章涉及的函数和变量
本章涉及的文件和目录
第三部分 传输和接收
第九章 中断和网络驱动程序
决策和流量方向
接收到帧时通知驱动程序
中断处理函数
softnet—data结构
第十章 帧的接收
与其他功能交互
设备的开启和关闭
队列
通知内核帧已接收:NAPI和netif_rx
设备驱动程序与内核问的IB接口:netif_rx的第一部分
拥塞管理
处理NET_RX_SOFTIRQ:net_rxa_ction
第十一章 帧的传输
传输的开启和关闭
第十二章 中断事件一般性参考数据
统计数据
通过/proc和sysfs文件系统调整
本部分涉及的函数和变量
本部分涉及的文件和目录
第十三章 协议处理函数
网络协议栈概论
执行正确的协议处理函数
协议处理函数的组织
协议处理函数的注册
Ethernet与IEEE 802.3帧
通过/proc文件系统进行调整
本章涉及的函数和变量
本章涉及的文件和目录
第四部分 桥接
第十四章 桥接:概念
中继器、网桥以及路由器
网桥与交换机
主机
用网桥合并LAN
桥接不同技术的LAN
地址学习
多台网桥
第十五章 桥接:生成树协议
基本术语
阶层交换式L2拓扑范例
生成树协议的基本元素
网桥ID和端口ID
网桥协议数据单元(BPDU)
定义活跃拓扑
定时器
拓扑变化
BPDU封装
传输配置BPDU
处理入口帧
收敛时间
新版生成树协议概况
第十六章 桥接:Linux实现
网桥设备抽象
重要的数据结构
桥接程序的初始化
建立网桥设备和网桥端口
建立一个新网桥设备
阿桥设备设置函数
删除网桥
给网桥添加端口
启动和关闭网桥设备
启动和关闭网桥端口
改变网桥端口状态
大蓝图
转发数据库
处理入口流量
网桥设备上的传输
生成树协议(STP)
netdevice通知链
第十七章 桥接:其他主题
用户空间配置工具
通过/proc文件系统调整网桥
通过/sys文件系统调整网桥
统计数据
本部分涉及的数据结构
本部分涉及的函数和变量
本部分涉及的文件和目录
第五部分 因特网协议第4版(IPv4)
第六部分 邻居子系统
第七部分 路由
· · · · · · (收起)
原文摘录 · · · · · · ( 全部 )
-
Few C programmers like the goto statement. Without getting into the history of the goto (one of the longest and most famous controversies in computer programming), I'll summarize some of the reasons the goto is usually deprecated, but why the Linux kernel uses it anyway. Any piece of code that uses goto can be rewritten without it. The use of goto statements can reduce the readability of the code, and make debugging harder, because at any position following a goto you can no longer derive unequivocally the conditions that led the execution to that point. Let me make this analogy: given any node in a tree, you know what the path from the root to the node is. But if you add vines that entwine around branches randomly, you do not always have a unique path between the root and the other nodes ... (查看原文) —— 引自第8页 -
NETDEV_TX_OK* The transmission succeeded. The buffer is not released yet (kfree_skb is not issued). We will see in the section “Processing the NET_TX_SOFTIRQ: net_tx_ action” that the driver does not release the buffer itself but asks the kernel to do so by means of the NET_TX_SOFTIRQ softirq. This provides more efficient memory handling than if each driver did its own freeing. (查看原文) —— 引自第248页
> 全部原文摘录
喜欢读"深入理解LINUX网络内幕"的人也喜欢 · · · · · ·
深入理解LINUX网络内幕的书评 · · · · · · ( 全部 10 条 )


关于Linux 内核中网络部分的最好的书吧
这本书的从系统的初始化,然后讲述了接受和发送,桥的原理、实现和配置,然后开始描述IPv4协议以及在内核中的实现,并且阐述了TCP/IP协议族中的信令协议,ICMPv4的实现。然后讲述了ARP协议,邻居系统的实现,最后阐述了路由,将Linux系统作为一个路由器的做法。 赶快看吧,是...
(展开)

买实体书对照英文电子版,翻译真不行。
“The function consists of a wrapper that grabs the lock, does its work by invoking a function whose name begins with two underscores, and releases the lock.”翻译成:此函数内有一个包裹函数会取得回转锁,然后调用一个以两个下划线符号开头命名的函数,接着再释放...
(展开)


整理分2个部分(网络设备驱动、L3协议)
先挑个错,720页的图28-11和28-12,没有画图,我在英文版上找到了 2024年投了一下,(2024-08之前对1-13章有了感觉,当然有了感觉,不代表就是会了,只不过不怵了,还是很深入,配合代码的理解),2024-08后期在看邻居子系统(arp.c看着没啥,细节还蛮多啊),后面再来更新 网...
(展开)
> 更多书评 10篇
论坛 · · · · · ·
在这本书的论坛里发言这本书的其他版本 · · · · · · ( 全部3 )
-
中国电力出版社 (2009)8.4分 50人读过
-
O'Reilly Media (2005)9.5分 80人读过
在哪儿借这本书 · · · · · ·
以下书单推荐 · · · · · · ( 全部 )
- road to kernel (沙漏钟摆)
- TCPIP 协议栈源码 (hoterran)
- 37°暖书单(一) (37°暖)
- 去圖書館才是正經事 (悟怡)
- Linux_Kernel (grape0303)
谁读这本书? · · · · · ·
二手市场
· · · · · ·
订阅关于深入理解LINUX网络内幕的评论:
feed: rss 2.0
0 有用 天行 2011-01-15 05:10:02
自有
3 有用 lifanxi 2010-06-05 21:56:58
有点枯燥的大而全的书。
0 有用 默尔根 2011-10-04 14:07:35
多数没看懂
1 有用 Jekton 2021-05-17 13:11:00
翻译是傻逼
0 有用 fuzhli 2020-01-29 21:12:02
每次读都有新收获,已经超过FreeBSD了。