红联Linux门户
Linux帮助

深入理解Linux网络内幕-PART I -通用背景

发布时间:2006-10-09 01:37:31来源:红联作者:flycocoon
这一部分内容是你顺利的理解本书其余章节所必须的。如果你已经熟悉了Linux内核,亦或者你是一个老道的软件工程师,那么你会非常快的过完这些章节。而对于其他读者,我建议先熟悉这一部分内容然后再开始本书的其他部分:

第一章,介绍

本章的主旨在于介绍一些常见的编程模式和技巧,这些模式与技巧你将在网络部分源码中经常碰到。

第二章,重要的数据结构

在这一章中,你将看到网络部分代码中用到的两个重要数据结构的详细描述:socket缓冲结构sk_buff和网络设备结构net_device。

第三章,用户空间到内核的接口

本书中讨论的每一个Linux网络特征,都以介绍用户空间工具怎样与内核通讯的小节为终结。这一章的信息将帮助你更好的理解这些小节。

第一章 介绍
研究一个大工程的源代码,就好像进入了一个有着自己的风俗和语言的陌生新大陆。预先学习一些主要的当地习俗,并且试着与当地居民交流而不是避而远之,这都是非常有用的。

本章主要为你介绍一些通用的编程模式和技巧,你将在网络部分代码中经常碰到他们。

如果可能的话,我鼓励你,试着通过用户空间的工具与一块特定网络部分代码进行交互。如果你的Linux发行版还没有安装这些工具,或假如你只是简单的想将他们升级到最新版本,那么在这章,我将告诉你一些信息哪里能下载到那些工具。

我还会介绍一些工具,他们可以使你轻松的穿越庞大的源代码。最后,我将简短的介绍一下为什么一些内核特征没有被整合进官方发布版中,虽然他们已经在Linux社区中被广泛使用。

基本术语
这一小节,我将介绍一些本书中广泛使用的术语与缩写词。

8位元在网络领域通常被称为octets。然而,在本书,我将使用更为通用的术语字节(byte)。毕竟,本书描述的是内核的行为而不是网络抽象,而且内核开发人员也更习惯于使用字节。

向量(vector)和数组(array)将被交互的使用。

当提及TCP/IP协议栈的层次时,我将分别使用缩写L2,L3,L4来代替数据链路层,网络层和传输层。缩写中的数字基于著名的(也许现在已不恰当)七层OSI模型。在绝大多数例子中,L2将成为以太的同义词,L3则代表了IPv4或IPV6,而L4则是UDP,TCP,ICMP等协议。当我要提及一种具体的协议时,我会使用它的名字(比如TCP)而不是术语"Ln层协议"。

待续...
文章评论

共有 0 条评论