没有合适的资源?快使用搜索试试~ 我知道了~
Linux Kernel Networking
5星 · 超过95%的资源 需积分: 49 146 下载量 175 浏览量
2014-07-02
21:52:54
上传
评论
收藏 5.34MB PDF 举报
温馨提示
试读
636页
Linux Kernel Networking - Implementation and Theory
资源推荐
资源详情
资源评论
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页未读,继续阅读
资源评论
- zhaiyutian2015-09-21如果想要详细了解网络的底层机理,好像也没有其他好书了,这本很好
- 蛋喵2014-12-17这个书很赞,是根据比较新的内核写的,找了很久才找到。
- goingstudy2018-12-17非常好,原理和代码都有讲
- shawnchenchen2014-12-16太棒了,本书对linux的网络子系统进行了深入的剖析,需要进行网络系统设计的人推荐参考。
雜貨鋪老闆
- 粉丝: 178
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功