Written on 2008年10月8日 @ 20:41 | by houlihu237 | Tags: 网络互连(第2版)网桥·路由器·交换机和互连协议  

OSI参考模型是网络概念的基础

网络分层模型
网络分层的思想是:每一层都将利用它的下每一层的服务来向它的上一层提供服务。每一层都通过协议和其他节点的同一层进行通行通信,这种通信通过与下一层之间的直接通信来完成。第n层与n-1层之间的通信称为接口。

OSI定义的层模型
1)物理层:物理层通过链路来传递比特信息。它主要处理以下问题:接插件大小和形状的选择,每一针的作用,数据比特的电信号变换和比特级的同步,通常一个网络内可以有好几种不同的物理层类型,甚至一个节点也可能有多种不同的物理层类型,这是因为不同的技术要求各自的物理层。
2)数据链路层:数据链路层(有时候也称为链路层)通过物理链路来传输成块的信息,它主要负责处理以下任务:数据出错效验、协调共享媒体的使用(如在一个LAN中)以及编制(当多个系统都可以访问时,如在某个LAN中)。另外,不同的链路通常也有不同的数据链路层来实现,而且,同一个节点可以支持几种不同的数据链路层协议,节点所连的每一类链路都有自己的协议。
3)网络层:网络层使得网络中的任何一对系统间都可以相互通信。一个全互连的网络是指其中的每一个节点都和其他节点直接相连,但是这种拓扑结构不可能用于有很多节点的情况。比较典型的情况是,网络层必须找到一条通过一系列相连节点的路径,且路径上的每一个节点必须向适当的方向转发数据包。网络层处理的主要任务是:路由计算、数据包的分段和重组(当网络中的不同链路有不同的最大包大小限制时)和拥塞控制。
4)运输层:运输层在两个系统之间建立一条可靠的通信链路。它主要处理一些由网络层引起的错误,比如包丢失和重复包等,以及对包进行重新排序、分段(这样运输层用户就可以处理大的报文)和重装(这样可以避免网络层进行低效的分段和重装)。另外,这也有助于运输层在网络发生拥堵时可以相应降低发送数据的数率。
5) 会话层:ISO认为会话层对于因特网体系来说并没有太大的作用,ISO会话层提供的服务超过了运输层提供的简单全双工可靠通信流,比如对话控制(实现系统间的特殊通信模式)和连接(捆绑一组数据包,使得它们幺么都发送,要么都不发送)。不管这一层是什么,它都跟下层的网络设备和网桥以及路由器等无关。
6)表示层:这一层设计的目的是为了对数据的表示取得一致,这样人们就可以定义自己的数据结构,而不必担心比特/字节顺序或者浮点数该如何表示之类的问题。ISO在ASN.1(Abstratact Syntax Notation 1)中制定了标准。
7)应用层:桥接和路由之所以吸引人,实际是因为人们需要利用这些功能的相应应用,应用包括文件按传输、虚拟终端及WEB浏览。在这一层中,通常有多个应用程序同时运行。

通常,第n层从第n+1层得到一大块包含有一些必要的附加信息(如目的地址等)的数据后,第n层把这些数据传输给目的节点的第n层处理,目的节点的第n层再把这些数据送给该节点的第n+1层。第n层经常需要在数据包上附加一些信息,比如说,目的节点地址(它将被其他的第n层实体解释)。为了得到目的节点的信息,第n层将传递一个数据块给n-1层,里面包括从第n+1层上来的数据以及第n层上的附加的一些控制信息。另外,第n层还可能在这个数据块中加入一些其他信息,比如说第n层与第n-1层之间的接口信息。

当n+1层发送消息给第n层时,这个消息称为SDU(服务数据单元)。和PDU一样,在SDU前面,我们也用一个字母来表示它属于哪一层,当一个运输层想传递一个TPDU给另一个运输层时,它需要先给网络层一个NSDU。网络层接收了这个NSDU后,给它加上一个“信封”,然后再通过数据链路层把这个NPDU发送出去。

服务模型
一般说来,第n-1层提供给第n层的服务是通过数据传送来实现的,第n层提供数据(SDU)以及一些附加信息(如目的地址)给第n-1层。第n层也能通过n-1层给它的一个通告信息,从对等的第n层接收数据。
第n-1层即可提供无连接的服务,也可以提供面向连接的服务。在无连接的服务的情况下,它可以接收第n层发给它的数据包,也可以发送数据包给第n层。
在面向连接的情况下,数据传输之前首先要建立连接,通信包括以下三个步骤:
1)建立连接
2)数据传输(发送或接收数据)。
3)连接释放。
建立可靠的面向连接的网络(比如X.25)和数据报(比如ATM)是可能的。无连接的网络层只提供数据报的服务,因为根据定义它无法知道发送的是什么。IP、IPX、DECnet、CLNP和Apple talk都是无连接网络层的例子。
直观地讲,提供可靠服务应是需要的,但这种可靠服务是要付出代价的,它通常使得第n-1层花费增多、效率降低。虽然有的时候,在多层上都提供可靠服务是有理由的,但绝对不需要在所有的层上都提供可靠服务。

网络的重要特性
不同的网络设计有可能看起来提供了相似的功能,但是,它们在细节上却可能不同,在评估一个网络体系的时候,必须考虑的特性有:
1)范围:一个网络体系要尽可能地解决一切常见问题,它要设计成可以全面支持应用程序和全面支持下层的各项技术,如果网络是为特定的一个应用程序而而设计或是建立在一种特殊的技术之上,它也许会在那种条件下表现得更加得出色。但是,想这样针对每一个特定的要求设计一种单一的网络是不太可能的,除非一个全面解决方案并不能满足需要,否则最好还是设计一个可以对付大范围的应用程序和下层技术的网络。
2)可扩展性:一个理想的网络设计不仅要能够在非常大的网络上运行得好,而且要在小网络上也很高效,在过去,一个拥有上千个节点的网络就可以被认为是很“大”了。而在现在的标准设计中,我们应考虑体系结构是否适合上百网乃至上亿个节点。在理想的情况下,这个设计运行在一个非常小的网络里(譬如只有20个节点),效率不会降低,但不可能只要求实现这样的目标。在这样的情况下,一个针对少量节点设计的网络可能会非常高效,譬如它可以使用更少的地址空间,但是,我们更希望一个折中的完整解决方案,只要它能够在专门的网络上取得足够的效率。
3) 健壮性:健壮性的某些方面是显而易见的,绝大多数的网络设计也都考虑到这一点。例如,即使节点或链路失效,网络也应该可以继续运行;大多数网络采用的路由算法都能适应改变了的拓扑结构。但是,健壮性还有其他更多的、比较微妙的方面。大多数的网络在一个理想的理论环境下都能正常工作,前提是:不出现未检测到的数据错误;所有节点都正常运行所有算法;参数设置对所有节点都是兼容的;以及所有节点都有足够的处理器能力及时完成必需的算法运算等。
但是,我们面对的实际环境不是乌托邦,难以察觉的数据错误伴随着未被检测到的传输错误、节点内存中的错误及内部数据总线传送中的数据错误而时时发生。有缺陷的实现会连到网络上。硬件故障有可能导致不可预料的后果。实现耗尽了内存或C P U,并引起不可预料的行为,而不是立即停止操作或是执行与网络的持续有效的功能相兼容的操作。人为因素(一个系统中最不可靠的部分)导致的错误配置等。因此,仅仅有计算可选路由的健壮性是不够的。一个网络还必须有下面几种类型的健壮性:
a. 安全壁垒:对于绝大多数网络来说,恶劣的性能可能导致大范围的瘫痪。但是有一些经过精心设计的网络,能够保证错误不会扩散到一个安全的范围(安全壁垒)之外,因而瘫痪只会限制在网络的一部分,而不会影响整个网络。举例来说, L A N上的“广播风暴”对于T C P / I P网络层协议来说,始终是让人头痛的事。“广播风暴”是指触发严重网络拥塞的事件,它通常是由于应用中的小错误( b u g)、有歧义的协议规范以及不正确的配置而引起的,严重的“广播风暴”可以使L A N失效。当两个L A N通过桥连接到一起时,桥就合并了两个L A N,任意一个L A N中的“广播风暴”会使两个L A N一起失效。如果L A N间是用路由器连接的,那么“广播风暴”只限制在它发生的那个L A N中。因此,路由器就起到了使“广播风暴”不能扩散的安全壁垒的作用。另一种安全壁垒可以通过设计一种层次路由算法,将网络划分成区域( a r e a)或域(d o m a i n)。这种路由算法可以被设计成即使一个分区中发生瘫痪,也不会扩散到其他部分。
b. 自稳定性:这个概念是指,即使发生了因为硬件故障或者未察觉的数据错误而引起的任何数据库崩溃,经过一定的时间后,只要发生故障的硬件被从网络上断开或被修复,或一段时间内没有更多的数据错误出现,网络就可以在无人干预的情况下恢复正常运作。如果缺少这种健壮性,一个错误就可能使整个网络一直不能运作,直至所有的节点都被同时关掉然后重新启动。
  这种健壮性不能保证网络在连接有故障设备的情况下能够正常运作,但是它使得在诊断出问题后,能相对容易地修复网络,只需要拆除出错的设备。许多设备陷入了“粘着状态”,通常重新上电自检就可以立即修复。但是网络并没有开/关按钮,也就不容易重新上电自检了。网络的健壮性(从它是分布式的,即使其中一部分瘫痪了仍可以保持可运行的意义上说。就是指如果系统不是自稳定的,则它必须被关闭以消除错误的任何残余。
  如果一个网络不是自稳定的,那么蓄意破坏的人可以发一些错误的包,网络就会永远瘫痪或者直至由复杂而昂贵的人工干预来修复它。而如果一个网络是自稳定的,那么蓄意破坏的人,只能一直不断地发送错误的包,以使网络一直瘫痪。这比前面的趁无人监管时偷偷连上网,发一些坏的包,然后悄悄溜走要冒更多的风险。此外,如果网络是自稳定的,修复是相当容易的。当找到罪魁祸首后,只要将这个设备从网络上断开,就可以使网络重新回复到可运行状态了。
c. 错误自检:虽然现今的任何一个网络都不能在有活跃的错误节点( B y z a n t i n e错误,下面会讨论到)的情况下正常运行,但如果网络能够自我诊断并标志出出错的设备也是很有帮助的。所有的网络都有一些发现错误的能力,但都不能完美地做到这一点,而且不同网络能发现的错误的层次也不尽相同。
d. B y z a n t i n e健壮性:术语“ B y z a n t i n e错误”是从计算机科学中的一个著名问题“B y z a n t i n e一般问题”中得来的。B y z a n t i n e错误是指一个出错节点不是不能运行,而是错误运行。这样的错误通常是因为有缺陷的实现、硬件错误或者主动破坏而产生的。具有B y z a n t i n e健壮性的网络能够在即使部分节点存在B y z a n t i n e错误的情况下仍然正确运行。虽然现今的网络没有这个特性,但是这样的网络是可能的。
4) 自动配置:有些网络设计方案需要一些非常聪明的管理员进行很多复杂的管理工作和经常性地修改参数才能正常工作。这样的网络方案使那些懂得管理它们的人勿需担心他们手中的饭碗,但是这种网络远不能满足未来的需要。网络将会变得非常大,它们被分成由不同组织管理的各个部分,人们将更加依赖那些要靠少数专家来保证运行的网络。未来的网络必须能够最大可能地实现自我运作。理想情况下,普通用户可以从当地的零售商店购买相应设备,把它们插入网络,就得到想要的运行网络。他们不需理会复杂的参数配置,不需要向负责地址分配的“头头”申请得到一个地址(否则,如果“头头”渡假去了,或者压根就辞职不干了,或者写有分配到的地址的信封丢了,可就麻烦了)。用户们不用为了把他们的节点信息加入到数据库中而去找另外一些节点的管理人员。
5) 绞合性:网络应该有自己合理的默认值,在理想情况下,应该能够自动配置。但同时它们应该有一些定时器和其他的参数,使得那些喜欢研究的网络管理员能有机会为某些特定情况优化网络性能(理想情况下,参数的任何设定都可以产生合理的(如果不是最优的)性能,这样即使十分喜欢冒险的网络管理员也不会引起太大的损害)。
6) 决定性:根据决定性的特点,相同的条件将产生相同的结果。例如,在一个决定性网络的设计中,相同的物理拓扑结构就会有相同的路由。相反,在一个非决定性网络的设计中,网络中节点的启用顺序不同,路由就可能会有差别。并不是所有的人都认为决定性是有价值的,因为在某些情形下如果最高优先权的元素一直在失败和重新启动,就相当于崩溃。但决定性的支持者们认为,通过保证可再现的条件,决定性使网络的分析更加容易。
7) 迁移:一个网络的设计不会永远地保持下去。设计网络协议,使新的特性能逐个加入到节点中而不干扰当前的操作,就显得很重要。能够修改的设计也同样重要,例如地址的改变,可以按逐个节点修改的方式进行而不会破坏网络操作。

可靠的数据传输协议
协议必须按与源相同的顺序发送一系列的包,如果任一包丢失、损坏、错序或重复,协议便失败了。基本的思想是一个包被传送,接收方对它的到达发出确认。包有一个校验和,使接收方能(以很大的可能性)检测出包是否在传送过程中受到了破坏。

相关文章:

  1. 0 Response to “网络的基本概念”

Post a Comment

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

About Me

成功的定义就是:每天在各方面持续不断地进步一点点.
欢迎有共同爱好的朋友相互交流。 邮箱:houlihu237@126.com
QQ:383153740 手机:13750888314

Find entries :
实用电子书籍 小学教育光盘
图像处理教程 淘宝相关服务
淘宝店铺装修 网络营销推广
图像图像设计 其他相关服务