




已阅读5页,还剩88页未读, 继续免费阅读
(计算机软件与理论专业论文)网络专用文件服务器的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
堕堑童旦壅堡里墨登塑堡盐量塞垫 一 摘要 i 随着i n t e r n e t 的不断发展,计算环境向多种操作系统并存和交互方向发展的趋 势日盗明显。如何使新兴的l i n u x 满足w i n d o w s 用户的需求,特别是w i n d o w s 网络基于s m b 协议的文件共享的需求,在实际应用上很有意义。 网络专用文件服务器是一种软硬件相结合的网络计算设备。与通用服务器不 同,网络专用文件服务器只向用户提供网络文件共享服务。由于采用了专而精的 设计思想,网络专用服务器能以较低廉的价格向用户提供高性能、高可靠性、易 维护的网络服务,3 , 本文详细描述了网络专用文件服务器的设计方案和实现技术。完成了三个设 计子目标:( 1 ) 为用户提供高性能的基于s m b 协议的文件共享服务。设计和实 现了内核s m b 加速模块,使服务器的性能曲线接近于提供同样服务的w i n d o w s 服务器。( 2 ) 具有容错性和可恢复性。设计和实现了数据热备份模块,通过主一一 从服务器结构,保证了用户文件的可靠存储和灾难后的系统恢复。( 3 ) 易于管理 和配置。设计和实现了核心虚拟设备管理模块,为用户提供了方便易用的管理界 面。 论文主要分为五大部分,第一部分是网络专用文件服务器概述。第二部分是 网络相关知识。讲解了相关的t c p ,【j d p 协议、i c m p 报文、n e t b i o s 服务和s m b 协议。第三部分是系统环境。介绍了l i n u x 操作系统环境、网络实现和设备驱动 程序设计,这是实现网络专用文件服务器的关键技术基础。第四部分是网络专用 文件服务器的具体设计与实现。详述了系统的三个主要模块的设计方案和实现技 术。第五部分是系统性能测试及尚待考虑的问题。给出了所实现网络专用文件服 务器的性能数据,并提出了进一步的工作方向。 、 t 关键词文件服务器,。l i n u x ,内核,设备驱动程序,读加速,热备份。 旦堡童旦壅堂墅箜墨塑堡盐兰窭翌 a b s t r a c t w i t ht h ee x p a n s i o no fi n t e r n e t ,c o m p u t i n ge n v i r o n m e n ti sd e v e l o p i n gt o w a r d s m u l t i o sa n di n t e r o p e r a t i o n t om a k et h el i n u xo p e r a t i n gs y s t e ms u p p o r tw i n d o w s u s e r s ,e s p e c i a l l yp r o v i d es m b b a s e d f i l es h a r i n gs e r v i c ei naw i n d o w sn e t w o r k ,i so f g r e a tp r a c t i c a l v a l u e n e t w o r k - s p e c i a l i z e d f i l es e r v e ri sak i n do fc o m p u t i n ge q u i p m e n ts p e c i a l l y d e s i g n e df o rn e t w o r ka p p l i c a t i o n u n l i k eg e n e r a l - p u r p o s es e v e r s ,n e t w o r k s p e c i a l i z e d f i l es e v e ro n l yp r o v i d en e t w o r kf i l es h a r i n gs e r v i c e t h i sd e s i g np r i n c i p l eo f p r o v i d i n g l e s sb u tb e t t e rs e r v i c e sm a k en e t w o r k s p e c i a l i z e df i l es e r v e rc h e a p e r , a tt h es a n et i m e i t so f h i g h e r p e r f o r m a n c e ,m o r er e l i a b i l i t ya n d e a s i e ru s a g e i nt h i st h e s i s id e s c r i b e di nd e t a i l t h e d e s i g n a n d i m p l e m e n t a t i o n o f n e t w o r k s p e c i a l i z e df i l es e r v e r t h r e ed e s i g no b j e c t i v e sw e r ea c h i e v e d :( 1 ) p r o v i d i n g h i g hp e r f o r m a n c e ,s m bp r o t o c o lb a s e df i l es h a r i n gs e r v i c e 1 1 1 ek e r n e ls m bs p e e d i n g m o d u l em a d eo u rs e r v e ra c h i e v es i m i l a rp e r f o r n l a n c ec u r v ew i t hw 砌o w ss e r v e r p r o v i d i n gs a n l ek i n do fs e r v i c e 佗1f a u l tt o l e r a n c ea n dr e c o v e r a b i l i t y t h er e a l - t i m e b a c k u pm o d u l e ,u s i n gam a s t e r - s l a v ea r c h i t e c t u r e ,g u a r a n t e e du s e r f i l e s a f e t y a n d r e c o v e r a b i l i t ya f t e rs y s t e mc r a s h e s ( 3 ) e a s ym a i n t e n a n c e t h ek e m e lv i r t u a ld e v i c e m a n a g i n gm o d u l ep r o v i d e df r i e n d | yi n t e r f a e et os e r v e ra d m i n i s t r a t o r s t h i st h e s i sh a sf i v ec h a p t e r s c h a p t e r1i sao v e r v i e wo f n e t w o r k - s p e c i a l i z e df i l e s e r v e r s c h a p t e r2i n t r o d u c e dt c pa n du d pp r o t o c o l s ,i c m pp a c k e t ,n e t b i o s s e r v i c ea n ds m b p r o t o c 0 1 c h a p t e r3i n t r o d u c e dl i n u xo p e r a t i n gs y s t e me n v i r o n m e n t i t sn e t w o r k i n gi m p l e m e n t a t i o na n dd e v i c ed r i v e rd e s i g n ,w h i c hw e r e k e yt e c h n i q u e si n n e t w o r k s p e c i a l i z e df i l e s e r v e ri m p l e m e n t a t i o n c h a p t e r4d e s c r i b e dm yd e s i g na n d i m p l e m e n t a t i o n so ft h et h r e em a i nm o d u l e s c h a p t e r5g a v et h ep e r f o r m a n c et e s t i n g r e s u l t so ft h en e t w o r k s p e c i a l i z e df i l es e r v e ri m p l e m e n t e d ,a n dd i s c u s s e dd i r e c t i o n so f f u r t h e rw o r k k e y w o r d s : f i l es e r v e r , l i n u x ,k e r n e l ,d e v i c ed r i v e r , r e a d s p e e d i n g ,r e a l t i m eb a c k u p 4 旦丝童旦塞笪竖墨墨塑丝盐量壅望一 第一章引言 本课题中的网络专用文件服务器属于网络专用服务器中的一种,其功能主要 是实现l i n u x 和w i n d o w s 系统间的文件共享。 随着i n t e m e t 的不断发展,计算环境向多种操作系统并存和交互方向发展的趋 势日益明显。对这一趋势进行研究具有理论上的价值。另一方面,w i n d o w s 将在 很长一段时间里保持p c 上的主流操作系统地位,如何使新兴的l i n u x 满足 w i n d o w s 用户的需求,特别是w i n d o w 网络基于s m b 协议的文件共享的需求,同 样在实际应用上很有意义。 网络专用服务器是一种软硬件相结合的网络计算设备。与通用服务器不同, 网络专用服务器只向用户提供一种或几种网络服务( 比如文件共享服务、w e b 服 务、代理服务) 。由于采用了专而精的设计思想,网络专用服务器能以较低廉的 价格向用户提供高性能、高可靠性、易维护的网络服务。 目前在国内还没有厂商生产网络专用服务器。但在国外,尤其是美国今年已 经出现很多生产网络专用服务器的公司。这些产品都无一例外地把s m b 协议支 持( c i f ss u p p o r t ) 作为重要特性。两种有代表性的产品是q u t u m n 公司的 s n a p s e r v e r4 1 0 0 工作组级服务器和n e t w o r ka p p l i c a n c e 公司的n e t a p pf 8 5 中端服 务器。它们都支持s m b c i f s 协议( s m b 协议的新版本又被称为c i f s ) 。并且在 软件和硬件方面采取了一系列技术来提高文件访问效率。服务器性能和所应用技 术都已达到了较高标准。 网络专用文件服务器的操作系统平台一l i n u x 作为一种新兴的操作系统,其本 身和运行在其上的应用软件和开发工具具有发展迅速、使用免费的优势:而且在 l i n u x 上运行的形形色色的自由软件中,已经出现了s m b 协议支持软件包s a m b a 。 但是要实现网络专用文件服务器,并不是安装l i n u x - - ) 安装s a m b a - 运行测 试这么简单。必须考虑以下问题: 一访问性能: 简单的测试表明,在轻负载下,使用l i n u x + s a m b a 的服务 器响应时间与同等负载情形下在w i n 2 0 0 0 服务器响应时间比例r 。为i 3 。 而随着负载的增大,r 。随之上升,最高可达1 7 ( 见文内详细数据) 。这 样的性能对专用服务器来说是不能接受的。 网络专用文件服务器的设计与实现 二容错能力:要保证服务器2 4 x 7 地运行,除了选用高可靠性的操作系统和 硬件外,还应该有一套完善的容错机制。对文件服务器来说,容错性主 要体现在绝对保持数据的完整性( d a t a i n t e g r i t y ) 。 数据完整性指的是服 务器在磁盘失效或系统当机时保持数据不丢失的能力,对于没有容错机 制的文件服务器,数据的破坏通常会带来灾难性的后果。为降低专用服 务器的成本,选择了纯软件方式的双机热备份系统这一种可靠性好、价 格便宜的方案。但是目前在l i n u x 下还没有相应产品,必须自主设计与 实现。 三网络专用文件服务器应该为其管理员提供方便易用的管理界面。由于性 能提升部分和容错部分都为自主设计实现,因此必须同时提供自己的管 理模块。 基于以上两点的考虑,我把课题划分为三个模块的设计与实现: 一针对s a m b a 的内核加速模块。设计实现了一个内核可加载模块s f s r e a d 。 完成s a m b a 读加速。 二双机数据热备份模块。设计实现了自己的虚拟磁盘s f s d i s k ( 块设备) 和网络盘s f s n e t d i s k ( 字符设备) ;以及两个用户进程s f s b a c k u p 和 s f s m o n i t o r 。完成在l i n u x 下主从结构的纯软件双机热备份。 三核心虚拟设备管理模块。设计实现了字符设备文件s f s a d m i n ,对 s f s r e a d ,s f s d i s k 和s f s n e t d i s k 进行管理。 课题最终实现了基于l i r t u x ,提供s m b 协议支持的网络专用文件服务器。测 试数据表明该服务器具有商业级性能和可靠性。 6 网络专用塞堡里堑墨堕堡盐量茎望 2 1t c p 协议 2 1 1t c p 数据段头结构 第二章网络相关知识 传输控制协议t o p ( t r a n s m i s s i o nc o n t r o lp r o t o c 0 1 ) 是专门用于在不可靠的 i n t e r n e t 上提供可靠的,端到端的字节流通信的协议。i n t e r n e t 不同于一个单 一的网络,不同部分可能具有不同的拓扑结构,带宽,延迟,分组大小以及其他 特性。t c p 被设计成能动态的满足互联网的要求,并且足以健壮的面对多种错误。 为了很好的了解t c p 数据包,有必要首先学习它的头结构。 t c p 数据包结构如图1 所示: 图1t c p 数据包结构 在t c p 头中,源端口和目的端口字段标示出本地和远端的连接点。每个主机都可 以自行决定如何分配自己的端口( 从2 5 6 号开始) 。端口号加上其主机的i p 地址 构成一个4 8 位的唯一t s a p ( 传输层服务访问点) 。用源端和目的机器的套接字序 网络专用文件服务器的设计与实现 _ _ _ _ _ _ - _ _ 一 号起来标示一个连接。 顺序号和确认号字段执行它的通常功能。注意,后者指希望接受的下一包, 而不是前面已经正确接受的包。二者均为3 2 位,因为在t e l 流中,每个数据包 都被编号了。 t c p 头长表示在t c p 头中有多少个3 2 位字。这条信息是必要的,应为可选项 字段是变长的,因此t c p 头也是变长的。实际上,这一字段指明数据在数据段中 的开始位置,它是以3 2 位字为单位为单位来测量的,但是该数字只是给出了头 部包括多少个3 2 位字,因此二者的效果是一样的。 在t c p 头中有一个8 比特的标志( 码位) 域和一个变长的选项域。标志域 指出t c p 段的目的和内容。各位含义如图2 所示: 位 置位时的含义 u r g ( o x 2 0 )紧急偏移域有效 a c k ( 0 x 1 0 ) 确认域有效 p s h ( 0 x 0 8 ) p u s h 操作 r s t ( 0 x 0 4 ) 连接复位 s y n ( 0 x 0 2 ) 同步序号 f i n ( 0 x 0 1 )最后的发送数据 图2 t o p 头中的标志域 为提高传输效率,t c p 往往要收集到一定的数据后才发送一数据段或才传给 用户进程。为满足实时性的要求,t c p 向应用程序提供p u s h 操作以屏蔽上述传 输策略。当用户进程发出带p u s h 标志的s e n d 调用后,t c p 将发送所有未发送数 据,并将最后发出段的p s h 位置1 ;当收方t c p 接收到p s h 位置1 的段时,它 将强迫把接收缓冲区的数据传给用户进程。另外,t c p 也必须将最后发送的缓冲 数据段的p s h 位置l 。一般交互的应用协议应在其一个命令和回应的最后或为防 止缓冲区死锁而执行p u s h 操作。 网络专用文件服务器的设计与实现 一 u r g 位置l ,同时也告诉接收方发送方已进入紧急模式( u r g e n tm o d e ) 以及 带外( o u t o f - b a n d ) 字节的位置。t c p 实际上没有真正的带外数据,它并没有将 带外数据和普通数据分开传送,而仅提供紧急模式来代替。当一进程w r i t e 一单 字节带外数据时,t c p 将该字节放入其s o c k e t 发送缓冲区中第一个有效位置,并 设置其下一个发送段的t c p 头中的u r g 位和紧急偏移域,使u r g 位置1 。使紧 急偏移域的值加上该段的序号域的值得到的紧急指针指向带外字节的后一位置。 但该段不一定包含该带外字节。 t c p 仅支持一个字节的带外数据,也仅为每一连接提供一个字节的带外缓冲 区。若同时w r i t e 多字节带外数据,仅最后的字节被认为是带外字节。收方对带 外数据的处理的过程如下: i 当t c p 接收到u r g 置位的段时,先计算紧急指针,然后判断该指针是否是 指向新的带外数据。t c p 常发送多个u r g 置位的段,但它们的紧急指针都 指向相同的带外字节,这些段中的仅有第一个段会引起收方注意到新的带外 数据的到达。 2 若是新的紧急指针,那么无论所指带外字节到达与否,都将发送s i g u r g 信 号给该s o c k e t 的用户进程。 3 当紧急指针所指的带外字节到达时,t c p 将该字节从普通数据中分离出来, 放入该连接一个字节的带外缓冲区中。若应用进程设置了s oo o b i n l i n e s o c k e t 选项,则带外字节仍留在s o c k e t 接收缓冲区中。 s y n 位置1 的段( 简称s y n 段) 表示连接请求,f i n 位置1 的段( 简称f i n 段) 表示连接关闭请求。应当注意,为了保证s y n 段和f i n 段以正确的顺序被 处理,它们都占一个字节的序号空间;一般s y n 段仅包含一个t c p 头及其t c p 选项,不包含数据部分,每一个s y n 段可包含t c p 选项。 一个t c p 选项可从任意的字节边界开始,它有两种格式:一种是只有单字节 的选项类;另一种是一字节的选项类,后跟一字节的选项长度,再接选项数据。 选项域后跟有一个填充域,它用值为0 的字节填充使t c p 头的字节长为4 的整数 倍。当前定义的选项如图3 所示: 9 网络专用文件服务器的设计与实现 选项类选项长度 意义 o选项表结束( 标志选项域结束) l无操作 24最大段尺寸m s s ( m a x i m u m s e g m e n ts i z e ) 33窗口比例( w i n d o ws c a l e ) 81 0 时戳( t i m e s t a m p s ) 图3 t c p 头部选项域 m s s 选项为大多数t c p 软件所支持,而后两个选项较新,它们是否有效取决于 连接两端的t c p 软件是否都支持它们。 m s s 选项数据为1 6 比特。t c p 发送包含该选项的s y n 段以向连接的另一 方声明其最大段尺寸,即它期望接收的每一t c p 段的最大数据量。 窗口比例选项数据为8 比特。t c p 头中窗口域只有1 6 比特,其最大值为 6 5 5 3 5 ,但高速和长延迟的网络需要更大的窗口以尽可能获得最大的吞吐率。该 选项说明t c p 头中窗口域的值左移的位数,范围为0 1 4 ,因此,它使得最大窗口 可达1 g ( 6 5 5 3 5 2 1 4 ) 。 时戳选项用于在高速网络中以防止因滞留而产生的重复报文破坏数据的可 能性。该选项数据包含两个4 字节的时戳:时戳值( t i m e s t a r n pv a l u e ) 和时戳回 应( t i m e s t a m p e c h o r e p l y ) 。时戳值包含发送该选项时发方的当前时钟,时戳回 应只有在a c k 位置i 时才有效,它包含收方回应的时钟,若a c k 位为0 ,则时 戳回应必须为0 。 2 1 2 t c p 传输策略 各种m a c 子层协议,对帧数据区大小有不同的规定,叫做最大传输单元 m t u ( m a x i m u m t r a n s m i s s i o n u n i t ) ,它由硬件决定,例如:以太网为1 5 0 0 字节: s l i p 常常为2 9 6 字节;p p p 的m t u 可配置。 0 网络专用文件服务器的设计与实现 一 i p 所支持的最小m t u 为6 8 字节,i p 数据包的最大尺寸为6 5 5 3 5 字节。当 一个i p 数据包要从一接口发出时,如果其尺寸超过该接口的m t u ,则i p 将该 数据包进行分片,所有的分片在到达信宿端之前是不会被重组的。也就是说,i p 数据包分片只发生在信源端和转发它们的路由器上,而分片的重组只在信宿端进 行。一旦i p 数据包被分片,各片就作为独立的i p 数据包进行传输,并且可能被 再次分片。 段是t c p 传输数据的基本单位。t c p 所发出的每个段的最大数据量是由连 接的另一方在s y n 段的m s s 选项中声明的最大段尺寸所决定的,这个最大尺寸 取决于接口的m t u 减去i p 和t c p 头的固定长度与接收缓冲区一半大小的较小值, 一般前者都小于后者,例如使用i p v 4 的以太网,其值应为1 4 6 0 ,但如果对方没 有发送m s s 选项,那么使用它的默认值。可见,t c p 分段目的在于尽量避免i p 分片。u d p 没有此特性。因此,u d p 报文比t c p 报文具有更高的分片可能性。 另外,有个概念叫路径m t u ( p m t u ) ,它指两主机问路径上的最小m t u 。源端可 通过假设和向目的端发送d f 置1 的i p 包进行试探,并通过是否接收到信宿不可 达且码值为”需分片但d f 置位的i c m p 报文,来判断假设的正确性,这样获得 近似的p m t u 。若两个方向的路由不对称,那么两方向的p m t u 就不一定相等。 t c p 是一个可靠的,面向连接的字节流协议。它需要解决传输可靠性、流量 控制、拥塞控制、传输效率和段重组等问题。为此t c p 必须为每个连接建立一个 传输控制块t c b ( t r a n s m i s s i o nc o n t r o lb l o c k ) ,跟踪记录连接的状态、下发送 序号、未确认的最小序号、对方接收窗口大小( 即接收到对方发来的上一段的窗 口大小) 、发送缓冲区中待发送数据的字节数、期望接收的下一序号,接收窗口 大小、接收缓冲区中未读取的数据的字节数等等信息。通过使用这样的信息,系 统可以很好的保证数据在绝大多数情况下都可以正确的传输到对方主机,在实际 中也证明效果很好。 2 1 3t c p 连接建立与撤除 在客户和服务器之间进行真正的数据传输之间,应该首先在客户端和服务端 之间建立一个连接,其目的是使双方同步,以便更好更正确的传输数据。t c p 协 网络专用文件服务器的设计与实现 议中建立连接连接的过程如下: 1 服务器必须准备好接受外来的连接,即它通过依次调用s o c k e t 、b i n d 、l i s t e n 和a c c e p t 来完成,这个过程称为被动打开( p a s s i v eo p e n ) ,并分配一t c b , 该t c b 被称为通配( w i l d c a r d ) t c b ,以匹配来自任何i p 地址和端口的相应 的连接请求。 2 客户端通过调用c o n n e c t 进行主动打开操作( a c t i v eo p e n ) 。首先,其t c p 为 此连接创建一t c b ,并初始化,令未确认的最小序号s n d _ u n a = i s s ( 全局的 初始序号变量) ,下一发送序号s n d _ n x t ;i s s + 1 ,接着将该i s s 的值作为序号 发送一s y n 段,来告诉服务器它在本次连接中所发送数据的初始序号。初始 序号变量的值按一定算法增加。 3 当该s y n 段到达目的端时,其t c p 应先查找匹配的t c b ,并判断其状态是 否是l i s t e n ,这样来判断是否有进程在该端口上“监听”,若没有,它应发 回一r s t 位置1 的段以拒绝这次连接,否则,分配一新的t c b ,并将其初始 化,接着,置其状态为s y n _ r c v d ,期望接收的下一序号r e v n x t = 传输段 的序号t i s e q + 1 ,如同过程2 一样,获得在本次连接中的初始序号,然后以 该初始序号作为序号。以r c vn x t 作为确认号发回一s y n 和a c k 标志位都 置1 的段。 4 客户端应该确认服务器的s y n 段。 连接的建立最少要进行三次数据交互,因此称为三次握手( t l l r e e w a y h a n d s h a k e ) 在图4 中展示了这个过程: 1 2 旦竺童旦奎壁墅量墨箜堡盐皇壅堡一 s o c k e t c o n n e c t ( 阻塞) ( 主动打开) c o n n e c t 返回 s o c k e t ,b i n d ,1 i s t e n a c c e p t ( 阻塞) a c c e p t 返回 r e a d ( 阻塞) 图4 t c p 建立连接过程 上面讨论了t c p 建立连接的过程,有建立就必然有关闭。下面,讨论一下一 个t c p 连接的关闭连接过程t c p 连接是一个全双工的数据通道,关闭它时,应 关闭其两个方向上的连接,每个方向上连接的关闭都需要一个f i n 和a c k 段, 关闭过程如下: 1 某应用首先程序调用c l o s e ,称这一方进行主动关闭( a c t i v ec l o s e ) ,这使得这 一端的t c p 发送一f i n 段,表示数据传输完毕。 2 接收到该f i n 段的另一端执行被动关闭( p a s s i v ec l o s e ) 。首先其t c p 会回送 一个确认收到该f i n 段的a c k 段,接着向其应用程序传送一个文件结束符。 一接收到f i n 段就意味着其应用程序随后将不能从该连接上接收到任何数 据。 3 当其应用程序接收到这个文件结束符后,它将关闭其s o c k e t 。这导致其t c p 回送一个f i n 段。 4 原发送方( 主动关闭的那一方) 接收到这个f i n 段后,就表明主动关闭操作 的结束,并对此作出确认。 2 1 4t o p 状态转化 如同前面所讲到的,t c p 是一个保证传输可靠的协议,是一个完整协议的典 范。它为连接定义了1 1 个状态,有着自己的状态机。其含义如下: 一堕塑童旦奎生墅釜塑塑堡生皇塞塑 一 一 c l o s e d :表示完全没有状态。它实际上是虚构的状态,指示没有t c b ,即 没有连接。 l i s t e n :表示等待任何从远程的i p 地址和端口上来的连接请求。 s y ns e n d :表示已经发出一个连接请求,并等待一匹配的连接请求,也表 示用户进程开始打开一个连接。 s y nr e c e i v e d :表示已经收到一连接请求,并且也已向对方发出一连接请 求作为回应,正等待对方的确认。 e s t a b l i s h e d :表示连接已建立,处于数据传输的正常状态,用户进程可通 过该连接发送和接收数据。 f i nw a i t1 :表示已发出连接关闭请求,等待对方的确认或回应的连接关闭 请求,也表示用户进程的数据传输己结束,开始关闭该连接。 f i nw a i t2 :表示已收到对方对连接关闭请求的确认,并等待对方回应的连 接关闭请求。 c l o s ew a i t :表示己收到一连接关闭请求,并等待用户进程关闭连接。 c l o s i n g :表示双方同时试图关闭连接,即已发送和接收到连接关闭请求, 并等待对方对连接关闭请求的确认。 l a s ta c k :表示已发出连接关闭请求,等待对方的确认。 t i m ew a i t :表示等待足够的时间确保对方能收到其连接关闭请求的确认, 并让在网络中属于该连接的所有过时或重复的段过期死亡。该状态维持2 倍 最大段生存时间m s l ( m a x i m u ms e g m e n t l i f e t i m e ) ,r f c 1 1 2 2 推荐m s l 的值 为2 分钟;基于b e r k e l e y 的实现大多习惯将它作为3 0 秒。 每一连接都开始于c l o s e d 状态,最终也结束在c l o s e d 状态。连接从一 个状态转变到另一状态,取决于它当前的状态和接收到的事件。这些事件主要包 括以下三种: 用户发出的系统调用,如o p e n 、c l o s e 、s e n d 、c o n n e c t 、和l i s t e n : 接收的段,特别是那些s y n 、f i n 、a c k 或r s t 标志位置1 的段; 超时事件。 1 4 网络专用文件服务器的设计与实现 在转变的同时,作为对事件的反应,t c p 往往会做出动作,即向对方发送一个控 制段,如s y n 、f i n 、a c k 或r s t 标志位置1 的段。 除在l i s t e n 状态时,t c p 会忽略接收到的r s t 段外,其它的所有状态都 可接收有效的r s t 段,它将复位该连接,即刷新其队列,释放其t c b ,使该连 接处于c l o s e d 状态,但在s y ns e n d 状态时,对接收到的r s t 段的有效性检 查除检查其序号外,还需检查其确认号。 除在c l o s e d 、l i s t e n 和s y ns e n d 状态外,只要t c p 在其窗口内接收 到一s y n 段,它将复位该连接,并发送一r s t 段给对方。 图5 给出了t c p 的状态图: 网竺童旦苎堡望墅堂塑堡:! 兰塞堡 一 起始点 主动关闭 - 表示客户方正常的状态转换 一 l i t , - 表示服务方正常的状态转换 接收t表示状态转换在接收到什么时发生 发送:表示这个转化发送什么 2 2u d p 协议 图5 f g p 状态转换图 用户数据报协议( u s e rd a t a g r a mp r o t o c 0 1 ) 建立在i p 协议之上,同i p 协议 样提供无连接的数据报传输。相对于i p 协议,它唯一增强的能力是提供协议端口, 旦笪童旦茎堡竖笠墨塑堡笪量壅望 以保证进程通信。 许多基于u d p 的应用程序在高可靠性,低延迟的局域网上运行的很好,而一 旦到了通信子网q o s 很低的网间网环境下,可能更本就无法运行。原因就在于 u d p 不可靠,而这些程序本身又没有做可靠性处理。因此,基于u d p 的应用程 序在不可靠的子网上运行就必须自己解决可靠性问题,诸如报文丢失,重复,失 序和流控等等问题。 一条u d p 报文就叫一条用户数据报,在概念上分为两部分:头标和数据区。其 格式如图6 所示: 01 51 63 l u d p 源端口u d p 信宿端口 长度u d p 校验和 数据 图6 u d p 数据报格式 各域的意义分别如下所述: 信源端口( s o u r c e p o r t ) :发送端u d p 端口,当不需要返回数据时, 该域置0 。 信宿端口( d e s t i n a t i o np o r t ) :接收端u d p 端口。 长度( l e n g t h ) :以字节计的整个报文长度,最小值为8 ( 头标长) 。 校验和( c h e c k s u m ) :这是一个可选域,置0 时表示未选,全1 ( 负0 的反码) 表示校验和为0 。 u d p 建立在i p 之上,意味着整个u d p 报文封装在i p 数据报中传送,它的 数据报文封装如图7 所示: 堕竺皇旦塞堡堡釜墨堕堡盐兰塞婴 一一一 u dp 头标u d p 数据区 1r1 r1 i i p 头标 1 p数据区 图7 u d p 的报文封装 所谓封装就是接收端u d p 软件将u d p 报文交给i p 软件后,i p 软件在前面 加一个头标,构成i p 数据报,这一过程相当于将u d p 报文封装入i p 数据报数据 区。 根据分层原则,接收端收到数据后,将对它进行一个与封装相反的过程,以 保证对应层收到完全相同的数据:接收端i p 层收到跟发送端i p 层完全相同的i p 数据报,进行相应的处理,去掉头标,将数据部分( i p 数据区内容) 交给u d p 软件,u d p 便获得一个与发方u d p 数据报相同的报文。 值得注意的是,u d p 数据报中不指定信源主机和信宿主机的地址,应为这没 有必要,传输层只需识别端口,而不用识别主机,识别主机的工作由网络层( i p 软件) 完成。 2 3 差错与控制报文( 1 c m p ) 在i p 数据报这样的传输系统中,网关自主地完成寻径和报文传输工作,无需 信源机的参与。系统一旦发生传输错误,i p 协议本身并没有一种内在的机制获取 差错信息并进行相应控制。而发生错误的可能性是很大的。为了处理上述错误, t c p i p 专门设计了i c m p 协议( i n t c r n c rc o n t r o lm e s s a g ep r o t o c 0 1 ) 。当中间网关 发现传输错误时,立即向信源机发送i c m p 报文,报告出错情况,以便信源机采 取相应的纠正措施。在实际应用中,i c m p 并不是;一个功能如此狭义的协议。 从广泛的意义上讲,i c m p 是一种差错和控制报文的协议,他不仅用于传输差错 报文,而且用于传输控制报文。 堕竺童旦苎竺! 堡堑墨塑堡盐量塞堡一 如同其他高层数据一样,i c m p 报文也是封装在i p 数据报的数据部分中迸行 传输的,如图8 所示: 2 3 1 i c m p 请求应答报文对 图8i g m p 数据的封装 i c m p 报文 i p 数据报 回应请求与应答对用于测试信宿机的可到达性,其报文格式如图9 所示。 o81 63 2 f 类型( 8 或o ) f 码( o )校验和 i标识符序号 f任选数据 图9 回应请求( 类型8 ) ,应答( 类型0 ) 报文格式 请求者( 某机器) 向特定信宿机发送一个回应请求,其中包含一个任选的数 据区;信宿机发回相应的回应应答,其中包含一个请求中任选数据的拷贝。图3 2 中所似的“标识符”和“序号”用于匹配请求与应答( 同一机器可以同时向若干 信宿机发出请求) 。 回应请求与回应应答均以i p 数据报形式在网间网中传输,假如成功地收到一 个应答( 应答中的数据拷贝与请求中的任选数据完全一致) ,不但说明信宿机可 以到达,而且说明数据报传输系统的相当部分工作正常,至少信源机与信宿机的 i c m p 和i p 软件工作正常,请求与应答经过的中间网关也能正常寻径。 在许多t c p i p 实现中,用户命令p i n g 便是利用i c m p 回应请求应答报文测 试信宿机的可到达性。 1 9 网络专用文件服务器的设计与实现 2 4n e t b l 0 s 服务 n e t b i o s ( n e t w o r k b a s i c i n p u v o u t p u ts y s t e m ,网络基本输入输出系统) 为 s m b 协议提供底层服务。s m b 网络和通常的u n i xt c p i p 网络在概念上有较大 的差异。s m b 协议工作在应用层和表示层,所以它并不关心下层网络的命名和寻 址实现。s m b 的命名和寻址是通过n e t b i o s 名字来实现的。图1 0 说明了s m b 的协议栈结构。 o s it e 删 a p p f i o a t l o n 8 i 妊b p e s e n t a f i o n h , p p l i b a t i o n s e s s i o nn e t b i b sn e t b i o sn c t b ! o i s t r a n s p o r t l p x l n o t b e u ! d 狂c n c t t c = 脚朝脚t g 孰哪d p n o t w o f k 琢,i p 8 0 2 8 q 2 2e i l e r n c to r l m ke l | i e t n e tv 2e m e r n o t 气陵 8 0 2 3 ;8 0 2 :5s 0 2 ,s o z 5o t h e r s p h v s i o 畦 ( n e t b e u i :t h en e t b i o se x t e n d e du s e ri n t e r f a c e ,n e t b i o s 扩展用户接口) 图1 0s m b 网络的协议栈结构 2 4 1n e t b l o s 概述 r f c1 0 0 1 “t c p u d p 上n e t b l o s 服务的协议标准:概念与方法”描述了在t c p 和u d p 基础上提供n e t b l o s 服务的思想和方法。与之相伴的r f c l 0 0 2 ,“t c p u d p 上n e t b i o s 服务的协议标准:具体规范”则包含了对包格式、协议、定义常量 和变量的详细描述。 n e 忸i o s 定义了一种软件接口。而非协议。我们所熟悉的t c p i p 网络用数字 来标志节点,而n e t b i o s 用1 5 字节长的名字外加一字节的“资源类型”字段标志 节点。n e t b i o s 是s m b 协议的名字基础。简言之,n e t b i o s 主要提供以下服务: 1 名字服务:提供获取、解析和取消网络名字的功能 2 两种通信服务:数据报和会话 网络童旦苎堡里箜墨塑堡生兰塞翌 一一 2 4 2 名字获取和解析 有两种管理n e t b i o s 名字的方法,一种是集中式管理,即通过n b n s ( n e t b i o s n a r n es e r v e r ) 来管理;一种是分散式管理,即每台机器d e f e n d 和提供自己的名 字。 2 4 3 节点类型 根据s m b 网络上机器获取和解析n e t b i o s 名字的方式,可把它们分为四类 节点: 1 b 一节点:只通过广播来获取和解析名字 2 d 一节点:只通过和n b n s 的点到点连接来获取和解析名字。 3 m 一节点:通过广播来获取名字,若成功再通过n b n s 通过广播解析名字,若失败再通过n b n s 4 h 一节点:通过n b n s 来获取和解析名字,若n b n s 无应答或不起作 用,再通过广播。 ( 在w i n d o w s 下。可通过i p c o n f i g a l l 命令查看节点类型) 2 4 4 命名规范 n e t b i o s 的名字可分为两类:唯一名( u n i q u en a m e ) 和组名( g r o u p n a m e ) 。 唯一名为某一节点所独有,而组名为多个节点所共享。 n e t b i o s 的名字规范不但表明了节点的名字,也表明了它能提供的服务类型, 这是通过名字中最后一个字节,即“资源类型”字段来实现的: 资源类型名1 6 进制字 节值 标准工作站0 0 w i n p o p u p 信息传送服务 0 3 网络专用文件服务器的设计与实现 资源类型名 1 6 进制字 节值 远程访问服务器服务 0 6 域主浏览器( 和域主控制器一体) l g 主浏览器名 1 d n e t d d e 服务 1 f 文件和打印服务器 2 0 远程访问客户端 2 1 网络监控代理 b e 网络监控工具 b f 图1 1n e t b i o s 唯一名资源类型表 资源类型名1 6 进制字节值 标准
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 甘肃应急预案管理办法
- 2025全国两会应知应会测试题及答案
- 出租车计费程序课件
- 出租车安全培训课件
- 学生安全行为守则汇编
- 北海辅警考试题库(含答案)
- 注册会计师考试经济法科目试题及答案指导
- 2025年无房产证买卖合同
- 2025共有产权房租赁合同
- 冲床安全生产培训课件
- 采购进口生蚝合同协议书
- 鼓号队培训课件内容
- 液体外渗的预防与处理 2
- 2025山西吕梁文水县公办幼儿园幼儿业务辅助人员招聘120人笔试参考题库附答案解析
- 2024年云南航空产业投资集团招聘考试真题
- 柚子树栽培技术
- 蓝莓种植加工一体化发展项目可行性研究报告写作模板-申批备案
- 2025年秋季新学期教学工作会议校长讲话:一心一意抓质量一点一滴见成效一步一脚印做教学
- 上腔静脉综合征护理查房
- 安徽省2025年公需科目培训测验答案(科目一)
- 2025年新退休返聘人员协议书
评论
0/150
提交评论