- 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
- 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
- 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
第1章 概 述
1.1 引言
本章介绍伯克利 ( B e r k e l e y )联网程序代码。开始我们先看一段源代码并介绍一些通篇要用
的印刷约定。对各种不同代码版本的简单历史回顾让我们可以看到本书中的源代码处于什么
位置。接下来介绍了两种主要的编程接口,它们在 U n i x与非U n i x系统中用于编写T C P / I P协议。
然后我们介绍一个简单的用户程序,它发送一个 U D P数据报给一个位于另一主机上的日
期/ 时间服务器,服务器返回一个 U D P 数据报,其中包含服务器上日期和时间的 A S C I I码字符
串。这个进程发送的数据报经过所有的协议栈到达设备驱动器,来自服务器的应答从下向上
经过所有协议栈到达这个进程。通过这个例子的这些细节介绍了很多核心数据结构和概念,
这些数据结构和概念在后面的章节中还要详细说明。
本章的最后介绍了在本书中各源代码的组织,并显示了联网代码在整个组织中的位置。
1.2 源代码表示
不考虑主题,列举 15 000行源代码本身就是一件难事。下面是所有源代码都使用的文本
格式:
1.2.1 将拥塞窗口设置为 1
3 8 7 - 3 8 8 这是文件t c p _ s u b r . c中的函数t c p _ q u e n c h。这些源文件名引用4 . 4 B S D - L i t e发
布的文件。4 . 4 B S D在 1 . 1 3节中讨论。每个非空白行都有编号。正文所描述的代码的起始和结
束位置的行号记于行开始处,如本段所示。有时在段前有一个简短的描述性题头,对所描述
的代码提供一个概述。
这些源代码同4 . 4 B S D - L i t e发行版一样,偶尔也包含一些错误,在遇到时我们会提出来并
加以讨论,偶尔还包括一些原作者的编者评论。这些代码已通过了 G N U缩进程序的运行,使
它们从版面上看起来具有一致性。制表符的位置被设置成 4个栏的界线使得这些行在一个页面
中显示得很合适。在定义常量时,有些 # i f d e f语句和它们的对应语句 # e n d i f被删去 (如:
G A T E W A Y M R O U T I N G
和 ,因为我们假设系统被作为一个路由器或多播路由器 ) 。所有r e g i s t e r说
2计计TCP/IP详解 卷2 :实现
明符被删去。有些地方加了一些注释,并且一些注释中的印刷错误被修改了,但代码的其他
部分被保留下来。
这些函数大小不一,从几行 (如前面的 t c p _ q u e n c h) 到最大 11 0 0行(t c p _ i n p u t) 。超过
大约4 0行的函数一般被分成段,一段一段地显示。虽然尽量使代码和相应的描述文字放在同
一页或对开的两页上,但为了节约版面,不可能完全做到。
本书中有很多对其他函数的交叉引用。为了避免给每个引用都添加一个图号和页码,书
封底内页中有一个本书中描述的所有函数和宏的字母交叉引用表和描述的起始页码。因为本
书的源代码来自公开的 4 . 4 B S D _ L i t e版,因此很容易获得它的一个拷贝:附录 B 详细说明了各
种方法。当你阅读文章时,有时它会帮助你搜索一个在线拷贝 [例如U n i x程序grep ( 1 ) ]。
描述一个源代码模块的各章通常以所讨论的源文件的列表开始,接着是全局变量、代码
维护的相关统计以及一个实际系统的一些例子统计,最后是与所描述协议相关的 S N M P变量。
全局变量的定义通常跨越各种源文件和头文件,因此我们将它们集中到的一个表中以便于参
考。这样显示所有的统计,简化了后面当统计更新时对代码的讨论。卷 1的第2 5 章提供了
S N M P 的所有细节。我们在本文中关心的是由内核中的 T C P / I P 例程维护的、支持在系统上运
行的S N M P代理的信息。
1.2.2 印刷约定
通篇的图中,我们使用一个等宽字体表示变量名和结构成员名 (m _ n e x t) ,用斜体等宽字
体表示定义常量 ( N U L L)或常量的值 (5 1 2) 的名称,用带花括号的粗体等宽字体表示结构名称
(m b u f { }) 。这里有一个例子:
在表中,我们使用等宽字体表示变量名称和结构成员名称,用斜体等宽字体表示定义的
常量。这里有一个例子:
您可能关注的文档
- 《现代精神与儒家传统》【杜维明 三联书店】【精品】.pdf
- 【当代世界学术名着】博弈学习理论【[美]朱·弗登伯格 等】【精品】.pdf
- 【关于书画的书】中国现代十大名画家画集 张大千【精品】.pdf
- 【关于书画的书】中国现代十大名画家画集++潘天寿【精品】.pdf
- 【关于书画的书】中国现代十大名画家画集++齐白石【精品】.pdf
- 【关于书画的书】中国现代十大名画家画集++徐悲鸿【精品】.pdf
- 【海德格尔研究】海德格尔哲学中的艺术与存在【精品】.pdf
- 【朗道理论物理教程】卷五 统计物理I【精品】.pdf
- 01、光伏系统存在的问题及设计要点【精品】.pdf
- 20岁的你应该知道的事【精品】.pdf
文档评论(0)