tcpip详解卷2:实现

tcpip详解卷2:实现

ID:31618908

大小:17.88 MB

页数:537页

时间:2019-01-16

tcpip详解卷2:实现_第1页
tcpip详解卷2:实现_第2页
tcpip详解卷2:实现_第3页
tcpip详解卷2:实现_第4页
tcpip详解卷2:实现_第5页
资源描述:

《tcpip详解卷2:实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、下载第1章概述1.1引言本章介绍伯克利(Berkeley)联网程序代码。开始我们先看一段源代码并介绍一些通篇要用的印刷约定。对各种不同代码版本的简单历史回顾让我们可以看到本书中的源代码处于什么位置。接下来介绍了两种主要的编程接口,它们在Unix与非Unix系统中用于编写TCP/IP协议。然后我们介绍一个简单的用户程序,它发送一个UDP数据报给一个位于另一主机上的日期/时间服务器,服务器返回一个UDP数据报,其中包含服务器上日期和时间的ASCII码字符串。这个进程发送的数据报经过所有的协议栈到达设备驱动器,来自服务器的应答从下向上经过所有协议栈到达这个进程。通过这个例子的这些细节介绍了很

2、多核心数据结构和概念,这些数据结构和概念在后面的章节中还要详细说明。本章的最后介绍了在本书中各源代码的组织,并显示了联网代码在整个组织中的位置。1.2源代码表示不考虑主题,列举15000行源代码本身就是一件难事。下面是所有源代码都使用的文本格式:1.2.1将拥塞窗口设置为1387-388这是文件tcp_subr.c中的函数tcp_quench。这些源文件名引用4.4BSD-Lite发布的文件。4.4BSD在1.13节中讨论。每个非空白行都有编号。正文所描述的代码的起始和结束位置的行号记于行开始处,如本段所示。有时在段前有一个简短的描述性题头,对所描述的代码提供一个概述。这些源代码同4.

3、4BSD-Lite发行版一样,偶尔也包含一些错误,在遇到时我们会提出来并加以讨论,偶尔还包括一些原作者的编者评论。这些代码已通过了GNU缩进程序的运行,使它们从版面上看起来具有一致性。制表符的位置被设置成4个栏的界线使得这些行在一个页面中显示得很合适。在定义常量时,有些#ifdef语句和它们的对应语句#endif被删去(如:GATEWAY和MROUTING,因为我们假设系统被作为一个路由器或多播路由器)。所有register说2计计TCP/IP详解卷2:实现下载明符被删去。有些地方加了一些注释,并且一些注释中的印刷错误被修改了,但代码的其他部分被保留下来。这些函数大小不一,从几行(如前

4、面的tcp_quench)到最大1100行(tcp_input)。超过大约40行的函数一般被分成段,一段一段地显示。虽然尽量使代码和相应的描述文字放在同一页或对开的两页上,但为了节约版面,不可能完全做到。本书中有很多对其他函数的交叉引用。为了避免给每个引用都添加一个图号和页码,书封底内页中有一个本书中描述的所有函数和宏的字母交叉引用表和描述的起始页码。因为本书的源代码来自公开的4.4BSD_Lite版,因此很容易获得它的一个拷贝:附录B详细说明了各种方法。当你阅读文章时,有时它会帮助你搜索一个在线拷贝[例如Unix程序grep(1)]。描述一个源代码模块的各章通常以所讨论的源文件的列表

5、开始,接着是全局变量、代码维护的相关统计以及一个实际系统的一些例子统计,最后是与所描述协议相关的SNMP变量。全局变量的定义通常跨越各种源文件和头文件,因此我们将它们集中到的一个表中以便于参考。这样显示所有的统计,简化了后面当统计更新时对代码的讨论。卷1的第25章提供了SNMP的所有细节。我们在本文中关心的是由内核中的TCP/IP例程维护的、支持在系统上运行的SNMP代理的信息。1.2.2印刷约定通篇的图中,我们使用一个等宽字体表示变量名和结构成员名(m_next),用斜体等宽字体表示定义常量(NULL)或常量的值(512)的名称,用带花括号的粗体等宽字体表示结构名称(mbuf{})。

6、这里有一个例子:在表中,我们使用等宽字体表示变量名称和结构成员名称,用斜体等宽字体表示定义的常量。这里有一个例子:m_flags说明M_BCAST以链路层广播发送/接收通常用这种方式显示所有的#define符号。如果必要,我们显示符号的值(M_BCAST的值无关紧要)并且所列符号按字母排序,除非对顺序有特殊要求。通篇我们会使用像这样的缩进的附加说明来描述历史的观点或实现的细节。我们用有一个数字在圆括号里的命令名称来表示Unix命令,如grep(1)。圆括号中的数字是4.4BSD手册“manualpage”中此命令的节号,在那里可以找到其他的信息。1.3历史本书讨论在伯克利的加利福尼亚大

7、学计算机系统研究组的TCP/IP实现的常用引用。历史上,它曾以4.xBSD系统(伯克利软件发行)和“BSD联网版本”发行。这个源代码是很多其他实现的起点,不论是Unix或非Unix操作系统。图1-1显示了各种BSD版本的年表,包括重要的TCP/IP特征。显示在左边的版本是公开可第1章概述计计3下载用源代码版,它包括所有联网代码:协议本身、联网接口的内核例程及很多应用和实用程序(如Telnet和FTP)。4.2BSD(1983)第一次被广泛应用的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。