没有合适的资源?快使用搜索试试~ 我知道了~
首页Linux_Kernel_Networking_Implementation_and_Theory
Linux_Kernel_Networking_Implementation_and_Theory
5星 · 超过95%的资源 需积分: 10 19 下载量 77 浏览量
更新于2023-03-16
评论 1
收藏 4.57MB PDF 举报
Linux Kernel_Networking Implementation and Theory Linux 內核與網絡實現與理論 英文版
资源详情
资源评论
资源推荐
Rosen
Shelve in
Linux/General
User level:
Intermediate–Advanced
www.apress.com
SOURCE CODE ONLINE
RELATED
BOOKS FOR PROFESSIONALS BY PROFESSIONALS
®
Linux Kernel Networking
Linux Kernel Networking takes you on a guided in-depth tour of the current Linux
networking implementation and the theory behind it. Linux kernel networking is
a complex subject in itself, so the book won’t burden you with topics not directly
related to networking. This book will also not overload you with cumbersome line-
by-line code walkthroughs not directly related to what you’re searching for; you’ll
find just what you need, with in-depth explanations in each chapter and a quick
reference at the end of each chapter.
Linux Kernel Networking is the only up-to-date reference guide to understanding
how networking is implemented, and it will be indispensable in years to come since
so many devices now use Linux or operating systems based on Linux, like Android,
and since Linux is so prevalent in the data center arena, including Linux-based
virtualization technologies like Xen and KVM.
What You’ll Learn:
• Kernel networking basics, including socket buffers
• How key protocols like ARP, Neighbor Discovery and ICMP are implemented
• In-depth looks at both IPv4 and IPv6
• Everything you need to know about Linux routing
• How netfilter and IPsec are implemented
• Linux wireless networking
• Additional topics like Network Namespaces, NFC, IEEE 802.15.4, Bluetooth,
InfiniBand and more
9 781430 261964
55999
ISBN 978-1-4302-6196-4
For your convenience Apress has placed some of the front
matter material after the index. Please use the Bookmarks
and Contents at a Glance links to access them.
v
Contents at a Glance
About the Author �������������������������������������������������������������������������������������������������������������� xxv
About the Technical Reviewer ���������������������������������������������������������������������������������������� xxvii
Acknowledgments ����������������������������������������������������������������������������������������������������������� xxix
Preface ���������������������������������������������������������������������������������������������������������������������������� xxxi
Chapter 1: Introduction ■ �����������������������������������������������������������������������������������������������������1
Chapter 2: Netlink Sockets ■ ����������������������������������������������������������������������������������������������13
Chapter 3: Internet Control Message Protocol (ICMP) ■ �����������������������������������������������������37
Chapter 4: IPv4 ■ ����������������������������������������������������������������������������������������������������������������63
Chapter 5: The IPv4 Routing Subsystem ■ �����������������������������������������������������������������������113
Chapter 6: Advanced Routing ■ ����������������������������������������������������������������������������������������141
Chapter 7: Linux Neighbouring Subsystem ■ �������������������������������������������������������������������165
Chapter 8: IPv6 ■ ��������������������������������������������������������������������������������������������������������������209
Chapter 9: Netfilter ■ ��������������������������������������������������������������������������������������������������������247
Chapter 10: IPsec ■ ����������������������������������������������������������������������������������������������������������279
Chapter 11: Layer 4 Protocols ■ ���������������������������������������������������������������������������������������305
Chapter 12: Wireless in Linux ■ ���������������������������������������������������������������������������������������345
Chapter 13: InfiniBand ■ ���������������������������������������������������������������������������������������������������373
Chapter 14: Advanced Topics ■ ����������������������������������������������������������������������������������������405
■ Contents at a GlanCe
vi
Appendix A: Linux API ■ ���������������������������������������������������������������������������������������������������483
Appendix B: Network Administration ■ ����������������������������������������������������������������������������571
Appendix C: Glossary ■ �����������������������������������������������������������������������������������������������������589
Index ���������������������������������������������������������������������������������������������������������������������������������599
1
Chapter 1
Introduction
This book deals with the implementation of the Linux Kernel Networking stack and the theory behind it. You will find
in the following pages an in-depth and detailed analysis of the networking subsystem and its architecture. I will not
burden you with topics not directly related to networking, which you may encounter while reading kernel networking
code (for example, locking and synchronization, SMP, atomic operations, and so on). There are plenty of resources
about such topics. On the other hand, there are very few up-to-date resources that focus on kernel networking proper.
By this I mean primarily describing the traversal of the packet in the Linux Kernel Networking stack and its interaction
with various networking layers and subsystems—and how various networking protocols are implemented.
This book is also not a cumbersome, line-by-line code walkthrough. I focus on the essence of the implementation
of each network layer and the theory guidelines and principles that led to this implementation. The Linux operating
system has proved itself in recent years as a successful, reliable, stable, and popular operating system. And it seems
that its popularity is growing steadily, in a wide variety of flavors, from mainframes, data centers, core routers, and
web servers to embedded devices like wireless routers, set-top boxes, medical instruments, navigation equipment
(like GPS devices), and consumer electronics devices. Many semiconductor vendors use Linux as the basis for their
Board Support Packages (BSPs). The Linux operating system, which started as a project of a Finnish student named
Linus Torvalds back in 1991, based on the UNIX operating system, proved to be a serious and reliable operating
system and a rival for veteran proprietary operating systems.
Linux began as an Intel x86-based operating system but has been ported to a very wide range of processors,
including ARM, PowerPC, MIPS, SPARC, and more. The Android operating system, based upon the Linux kernel, is
common today in tablets and smartphones, and seems likely to gain popularity in the future in smart TVs. Apart from
Android, Google has also contributed some kernel networking features that were merged into the mainline kernel.
Linux is an open source project, and as such it has an advantage over other proprietary operating systems: its
source code is freely available under the General Public License (GPL). Other open source operating systems, like the
different types of BSD, have much less popularity. I should also mention in this context the OpenSolaris project, based
on the Common Development and Distribution License (CDDL). This project, started by Sun Microsystems, has not
achieved the popularity that Linux has. Among the large community of active Linux developers, some contribute
code on behalf of the companies they work for, and some contribute code voluntarily. All of the kernel development
process is accessible via the kernel mailing lists. There is one central mailing list, the Linux Kernel Mailing List
(LKML), and many subsystems have their own mailing lists. Contributing code is done via sending patches to the
appropriate kernel mailing lists and to the maintainers, and these patches are discussed over the mailing lists.
The Linux Kernel Networking stack is a very important subsystem of the Linux kernel. It is quite difficult to find
a Linux-based system, whether it is a desktop, a server, a mobile device or any other embedded device, that does not
use any kind of networking. Even in the rare case when a machine doesn't have any hardware network devices, you
will still be using networking (maybe unconsciously) when you use X-Windows, as X-Windows itself is based upon
client-server networking. A wide range of projects are related to the Linux Networking stack, from core routers to small
embedded devices. Some of these projects deal with adding vendor-specific features. For example, some hardware
vendors implement Generic Segmentation Offload (GSO) in some network devices. GSO is a networking feature of the
kernel network stack that divides a large packet into smaller ones in the Tx path. Many hardware vendors implement
checksumming in hardware in their network devices. Checksum is a mechanism to verify that a packet was not
剩余635页未读,继续阅读
qq_41597875
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 2023年中国辣条食品行业创新及消费需求洞察报告.pptx
- 2023年半导体行业20强品牌.pptx
- 2023年全球电力行业评论.pptx
- 2023年全球网络安全现状-劳动力资源和网络运营的全球发展新态势.pptx
- 毕业设计-基于单片机的液体密度检测系统设计.doc
- 家用清扫机器人设计.doc
- 基于VB+数据库SQL的教师信息管理系统设计与实现 计算机专业设计范文模板参考资料.pdf
- 官塘驿林场林防火(资源监管)“空天地人”四位一体监测系统方案.doc
- 基于专利语义表征的技术预见方法及其应用.docx
- 浅谈电子商务的现状及发展趋势学习总结.doc
- 基于单片机的智能仓库温湿度控制系统 (2).pdf
- 基于SSM框架知识产权管理系统 (2).pdf
- 9年终工作总结新年计划PPT模板.pptx
- Hytera海能达CH04L01 说明书.pdf
- 数据中心运维操作标准及流程.pdf
- 报告模板 -成本分析与报告培训之三.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论1