这本书《精通Linux内核网络》由以色列专家Rami Rosen编写,袁国忠翻译。全书从网络开发者的视角深入讲解了Linux内核网络栈的实现原理,并通过清晰的图表分析了网络子系统的架构和核心细节。内容涵盖了Netlink套接字、ARP、邻居发现、ICMP、IPv4/IPv6协议、路由选择、Netfilter和IPsec等关键知识点,适合网络开发人员和Linux内核爱好者阅读。
作者Rami Rosen是Linux内核网络领域的专家,参与过多个尖端项目,并在相关领域发表了多篇文章。译者袁国忠经验丰富,翻译了大量技术书籍,确保了这本书的高质量中文呈现。
书中详细讲解了Linux网络栈的工作机制,包括数据包处理、协议实现和内核网络开发模型等内容。通过实际案例分析,帮助读者理解复杂的网络协议和系统架构。如果你对Linux内核网络有浓厚兴趣或从事相关工作,这本书将为你提供深入的知识和实用的指导。
总的来说,这是一本适合专业人士和技术爱好者的优秀读物,能够帮助你更好地掌握Linux内核网络的核心技术。
精通linux内核网络是一本linux内核网络学习书籍,由以色列人Rami Rosen编著。全书从网络开发者视角讲解,详细介绍了linux内核网络栈的实现及其原理,并且配合清晰的图表,深入而详尽的分析了网络子系统架构和Linux内核网络子系统的内部细节及核心实现,非常适合从事网络相关项目的专业人员和linux内核爱好者参考学习。
内容介绍
《精通Linux内核网络》讨论Linux 内核网络栈的实现及其原理,深入而详尽地分析网络子系统及其架构,主要内容包括:内核网络基础知识、Netlink 套接字、ARP、邻居发现和ICMP 等重要协议的实现、IPv4 和IPv6 的深入探索、Linux 路由选择、Netfilter 和IPsec 的实现、Linux 线网络、InfiniBand 等,适用于从事网络相关项目的专业人员参考,也能为相关研究人员和学生提供极大帮助。
作者介绍
Rami Rosen 专业软件工程师,Linux内核网络专家。从业十余年间,参与过多个尖端Linux内核项目,曾就Linux内核网络和虚拟化发表过多篇文章,并做过多次演讲。
袁国忠 自由译者;2000年起专事翻译,主译图书,偶译新闻稿、软文;出版译著40余部,其中包括《C++ Prime Plus中文版》《CCNA学习指南》《CCNP ROUTE学习指南》《面向模式的软件架构:模式系统》《Android应用UI设计模式》《风投的选择:谁是下一个十亿美元级公司》等,总计700余万字;专事翻译前,从事过三年化工产品分析和开发,做过两年杂志和图书编辑。
精通linux内核网络章节目录
第1章 绪论1 1.1 Linux网络栈2 1.2 网络设备4 1.2.1 网络设备中的NAPI5 1.2.2 数据包的收发5 1.2.3 套接字缓冲区7 1.3 Linux内核网络开发模型10 1.4 总结12 第2章 Netlink套接字13 2.1 Netlink簇13 2.1.1 Netlink套接字库15 2.1.2 结构sockaddr_nl15 2.1.3 用于控制TCP/IP联网的用户 空间包15 2.1.4 内核Netlink套接字16 2.1.5 Netlink消息报头20 2.1.6 NETLINK_ROUTE消息22 2.1.7 在路由选择表中添加和删除 路由选择条目24 2.2 通用Netlink协议25 2.2.1 创建和发送通用Netlink消息29 2.2.2 套接字监视接口31 2.3 总结32 2.4 快速参考32 第3章 Internet控制消息协议(ICMP)36 3.1 ICMPv436 3.1.1 ICMPv4的初始化37 3.1.2 ICMPv4报头38 3.1.3 接收ICMPv4消息42 3.1.4 发送ICMPv4消息:目的地 不可达43 3.2 ICMPv647 3.2.1 ICMPv6初始化47 3.2.2 ICMPv6报头48 3.2.3 接收ICMPv6消息49 3.2.4 发送ICMPv6消息52 3.3 ICMP套接字(ping套接字)55 3.4 总结56 3.5 快速参考56 3.5.1 方法56 3.5.2 表格57 3.5.3 procfs条目58 3.5.4 使用iptables创建“目的地 不可达”消息59 第4章 IPv461 4.1 IPv4报头62 4.2 IPv4的初始化63 4.3 接收IPv4数据包64 4.4 接收IPv4组播数据包67 4.5 IP选项69 4.5.1 时间戳选项71 4.5.2 记录路由选项74 4.5.3 IP选项和分段82 4.5.4 创建IP选项84 4.6 发送IPv4数据包85 4.7 分段89 4.7.1 快速路径90 4.7.2 慢速路径93 4.8 重组94 4.9 转发99 4.10 总结101 4.11 快速参考101 4.11.1 方法102 4.11.2 宏104 第5章 IPv4路由选择子系统105 5.1 转发和FIB105 5.2 在路由选择子系统中进行查找107 5.3 FIB表110 5.3.1 FIB信息110 5.3.2 缓存115 5.3.3 下一跳115 5.3.4 策略路由选择117 5.3.5 FIB别名118 5.4 ICMPv4重定向消息121 5.4.1 生成ICMPv4重定向消息122 5.4.2 接收ICMPv4重定向消息123 5.4.3 IPv4路由选择缓存125 5.5 总结126 5.6 快速参考126 5.6.1 方法127 5.6.2 宏128 5.6.3 表128 5.6.4 路由标志129 第6章 高级路由选择131 6.1 组播路由选择131 6.1.1 IGMP132 6.1.2 组播路由选择表133 6.1.3 组播转发缓存(MFC)134 6.1.4 组播路由器136 6.1.5 vif设备137 6.1.6 IPv4组播接收路径138 6.1.7 方法ip_mr_forward()141 6.1.8 方法ipmr_queue_xmit()143 6.1.9 方法ipmr_forward_finish()145 6.1.10 组播流量中的TTL146 6.2 策略路由选择146 6.2.1 策略路由选择的管理147 6.2.2 策略路由选择的实现147 6.3 多路径路由选择148 6.4 总结149 6.5 快速参考149 6.5.1 方法149 6.5.2 宏151 6.5.3 procfs组播条目152 6.5.4 表152 第7章 Linux邻接子系统153 7.1 邻接子系统的核心153 7.1.1 创建和释放邻居160 7.1.2 用户空间和邻接子系统之间 的交互161 7.1.3 处理网络事件163 7.2 ARP协议(IPv4)163 7.2.1 ARP:发送请求165 7.2.2 ARP:接收请求和应答168 7.3 NDISC协议(IPv6)174 7.3.1 重复地址检测(DAD)174 7.3.2 NIDSC:发送请求176 7.3.3 NDISC:接收邻居请求和 通告179 7.4 总结185 7.5 快速参考186 7.5.1 方法186 7.5.2 宏189 7.5.3 结构neigh_statistics190 7.5.4 表191 第8章 IPv6192 8.1 IPv6简介192 8.2 IPv6地址193 8.2.1 特殊地址193 8.2.2 组播地址194 8.3 IPv6报头195 8.4 扩展报头197 8.5 IPv6初始化199 8.6 自动配置200 8.7 接收IPv6数据包201 8.7.1 本地投递204 8.7.2 转发206 8.8 接收IPv6组播流量210 8.9 组播侦听者发现(MLD)211 8.9.1 加入和退出组播组212 8.9.2 MLDv2组播侦听者报告215 8.9.3 组播源过滤215 8.10 发送IPv6数据包220 8.11 IPv6路由选择221 8.12 总结221 8.13 快速参考221 8.13.1 方法221 8.13.2 宏224 8.13.3 表224 8.13.4 特殊地址225 8.13.5 IPv6路由选择表的管理226 第9章 Netfilter227 9.1 Netfilter框架227 9.2 Netfilter挂接点228 注册Netfilter钩子回调函数229 9.3 连接跟踪230 9.3.1 连接跟踪的初始化231 9.3.2 连接跟踪条目234 9.3.3 连接跟踪辅助方法和期望 连接238 9.3.4 iptables241 9.3.5 投递到当前主机243 9.3.6 转发数据包245 9.3.7 网络地址转换(NAT)245 9.3.8 NAT钩子回调函数和连接 跟踪钩子回调函数247 9.3.9 NAT钩子回调函数250 9.3.10 连接跟踪扩展252 9.4 总结253 9.5 快速参考253 9.5.1 方法253 9.5.2 宏255 9.5.3 表255 9.5.4 工具和库256 第10章 IPsec257 10.1 概述257 10.2 Internet密钥交换(IKE)257 10.3 IPsec和加密259 10.4 XFRM框架259 10.4.1 XFRM的初始化260 10.4.2 XFRM策略260 10.4.3 XFRM状态(安全关联)263 10.5 IPv4 ESP的实现266 10.6 接收IPsec数据包(传输模式)268 10.7 发送IPsec数据包(传输模式)271 10.8 XFRM查找272 10.9 IPsec的NAT穿越功能275 10.10 总结276 10.11 快速参考276 10.11.1 方法276 10.11.2 表278 第11章 第4层协议280 11.1 套接字280 11.2 创建套接字281 11.3 用户数据包协议(UDP)285 11.3.1 UDP的初始化286 11.3.2 发送UDP数据包287 11.3.3 接收来自网络层(L3)的 UDP数据包290 11.4 传输控制协议(TCP)293 11.4.1 TCP报头293 11.4.2 TCP的初始化295 11.4.3 TCP定时器296 11.4.4 TCP套接字的初始化297 11.4.5 TCP连接的建立297 11.4.6 接收来自网络层(L3)的 TCP数据包298 11.4.7 发送TCP数据包299 11.5 流控制传输协议(SCTP)300 11.5.1 SCTP数据包和数据块301 11.5.2 SCTP块头302 11.5.3 SCTP块302 11.5.4 SCTP关联303 11.5.5 建立SCTP关联305 11.5.6 接收SCTP数据包305 11.5.7 发送SCTP数据包306 11.5.8 SCTP心跳306 11.5.9 SCTP多流306 11.5.10 SCTP多宿主307 11.6 数据报拥塞控制协议(DCCP)307 11.6.1 DCCP报头307 11.6.2 DCCP的初始化3
使用说明
1、下载并解压,得出pdf文件2、如果打不开本文件,请务必下载pdf阅读器
3、安装后,在打开解压得出的pdf文件
4、双击进行阅读




























共有 0条评论