欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

配置局域网中的通讯协议

程序员文章站 2022-03-11 13:55:22
配置局域网中的通讯协议...

无论是几台机器组成的windows 95/98对等网,还是规模较大的windows nt、novell或unix/xenix局域网,凡是亲自组建或管理过网络的人,都遇到过如何选择和配置网络通信协议的问题。由于许多用户对网络中的协议及其功能特点不是很清楚,所以在组网中经常选用了不符合自身网络特点的通信协议。 

  其结果就造成了网络无法接通,或者是速度太慢,工作不稳定等现象而影响了网络的可靠性。事实上,不同的网络协议都有其存在的必要,每一种协议都有它所主要依赖的操作系统和工作环境。在一个网络上运行得很好的通信协议,在另一个看起来很相似的网络上可能完全不适合。因此,组建网络时通信协议的选择尤为重要。本文基于局域网环境,以windows nt为主,同时兼顾netware、windows 95/98等操作系统,介绍和分析了常用通信协议的特点、性能和必要的配置方法,供组网者和网络管理人员参考。    

  a、通信协议    

  组建网络时,必须选择一种网络通信协议,使得用户之间能够相互进行“交流”。协议(protocol)是网络设备用来通信的一套规则,这套规则可以理解为一种彼此都能听得懂的公用语言。关于网络中的协议可以概括为两类:“内部协议”和“外部协议”(笔者这样区分,在专业分类上不是很严密,但确实能够解决一些在概念和应用中的混淆),下面分别予以介绍。    

  1.内部协议    

  1978年,国际标准化组织(iso)为网络通信制定了一个标准模式,称为osi/rm(open system interconnect/reference model,开放系统互联参考模型)体系结构。该结构共分七层,从低到高分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。其中,任何一个网络设备的上下层之间都有其特定的协议形式,同时两个设备(如工作站与服务器)的同层之间也有其使用的协议约定。在这里,我们将这种上下层之间和同层之间的协议全部定义为“内部协议”。内部协议在组网中一般很少涉及到,它主要提供给网络开发人员使用。如果你只是为了组建一个网络,可不去理会内部协议。 

  2.外部协议    

  外部协议即我们组网时所必须选择的协议。由于它直接负责计算机之间的相互通信,所以通常称为网络通信协议。自从网络问世以来,有许多公司投入到了通信协议的开发中,如ibm、banyan、novell、microsoft等。每家公司开发的协议,最初一般是为了满足自己的网络通信,但随着网络应用的普及,不同网络之间进行互联的要求越来越迫切,因此通信协议就成为解决网络之间互联的关键技术。就像使用不同母语的人与人之间需要一种通用语言才能交谈一样,网络之间的通信也需要一种通用语言,这种通用语言就是通信协议。目前,局域网中常用的通信协议(外部协议)主要有netbeui、ipx/spx及其兼容协议和tcp/ip三类。    

  3.选择网络通信协议的原则    

  我们在选择通信协议时一般应遵循以下的原则:    

  第一、所选协议要与网络结构和功能相一致。如你的网络存在多个网段或要通过路由器相连时,就不能使用不具备路由和跨网段操作功能的netbeui协议,而必须选择ipx/spx或tcp/ip等协议。另外,如果你的网络规模较小,同时只是为了简单的文件和设备的共享,这时你最关心的就是网络速度,所以在选择协议时应选择占用内存小和带宽利用率高的协议,如netbeui。当你的网络规模较大,且网络结构复杂时,应选择可管理性和可扩充性较好的协议,如tcp/ip。    

  第二、除特殊情况外,一个网络尽量只选择一种通信协议。现实中许多人的做法是一次选择多个协议,或选择系统所提供的所有协议,其实这样做是很不可取的。因为每个协议都要占用计算机的内存,选择的协议越多,占用计算机的内存资源就越多。一方面影响了计算机的运行速度,另一方面不利于网络的管理。事实上一个网络中一般一种通信协议就可以满足需要。 

  第三、注意协议的版本。每个协议都有它的发展和完善过程,因而出现了不同的版本,每个版本的协议都有它最为合适的网络环境。从整体来看,高版本协议的功能和性能要比低版本好。所以在选择时,在满足网络功能要求的前提下,应尽量选择高版本的通信协议。    

  第四、协议的一致性。如果要让两台实现互联的计算机间进行对话,它们两者使用的通信协议必须相同。否则中间还需要一个“翻译”进行不同协议的转换,这样不仅影响通信速度,同时也不利于网络的安全和稳定运行。    

  b、局域网中常用的三种通信协议    

  1.netbeui协议 

  netbeui通信协议的特点。netbeui(netbios extended user interface,用户扩展接口)由ibm于1985年开发完成,它是一种体积小、效率高、速度快的通信协议。netbeui也是微软最钟爱的一种通信协议,所以它被称为微软所有产品中通信协议的“母语”。微软在其早期产品,如dos、lan manager、windows 3.x和windows for workgroup中主要选择netbeui作为自己的通信协议。在微软如今的主流产品,如windows 95/98和windows nt中,netbeui已成为其固有的缺省协议。有人将winnt定位为低端网络服务器操作系统,这与微软的产品过于依赖netbeui有直接的关系。netbeui是专门为几台到百余台pc所组成的单网段部门级小型局域网而设计的,它不具有跨网段工作的功能,即netbeui不具备路由功能。如果你在一个服务器上安装了多块网卡,或要采用路由器等设备进行两个局域网的互联时,将不能使用netbeui通信协议。否则,与不同网卡(每一块网卡连接一个网段)相连的设备之间,以及不同的局域网之间将无法进行通信。    

  虽然netbeui存在许多不尽人意的地方,但它也具有其他协议所不具备的优点。在三种通信协议中,netbeui占用内存最少,在网络中基本不需要任何配置。尤其在微软产品几乎独占pc操作系统的今天,它很适合于广大的网络初学者使用。    

  netbeui与netbios之间的关系。细心的读者可能已经发现,netbeui中包含一个网络接口标准netbios。netbios(network basic input/output system,网络基本输入/输出系统)是ibm在1983年开发的一套用于实现pc间相互通信的标准,其目的是开发一种仅仅在小型局域网上使用的通信规范。该网络由pc组成,最大用户数不超过30个,其特点是突出一个“小”字。后来,ibm发现netbios存在的许多缺陷,所以于1985年对其进行了改进,推出了netbeui通信协议。随即,微软将netbeui作为其客户机/服务器网络系统的基本通信协议,并进一步进行了扩充和完善。最有代表性的是在netbeui中增加了叫做smb(server message blocks,服务器消息块)的组成部分,以降低网络的通信堵塞。为此,有时将netbeui协议也称为“smb协议”。    

  人们常将netbios和netbeui混淆起来,其实netbios只能算是一个网络应用程序的接口规范,是netbeui的基础,它不具有严格的通信协议功能。而netbeui是建立在netbios基础之上的一个网络传输协议。    

  2.ipx/spx及其兼容协议 

  ipx/spx通信协议的特点。ipx/spx(internetwork packet exchange/sequences packet exchange,网际包交换/顺序包交换)是novell公司的通信协议集。与netbeui的明显区别是,ipx/spx显得比较庞大,在复杂环境下具有很强的适应性。因为,ipx/spx在设计一开始就考虑了多网段的问题,具有强大的路由功能,适合于大型网络使用。当用户端接入netware服务器时,ipx/spx及其兼容协议是最好的选择。但在非novell网络环境中,一般不使用ipx/spx。尤其在windows nt网络和由windows 95/98组成的对等网中,无法直接使用ipx/spx通信协议。   

  ipx/spx协议的工作方式。ipx/spx及其兼容协议不需要任何配置,它可通过“网络地址”来识别自己的身份。novell网络中的网络地址由两部分组成:标明物理网段的“网络id”和标明特殊设备的“节点id”。其中网络id集中在netware服务器或路由器中,节点id即为每个网卡的id号(网卡卡号)。所有的网络id和节点id都是一个独一无二的“内部ipx地址”。正是由于网络地址的唯一性,才使ipx/spx具有较强的路由功能。    

  在ipx/spx协议中,ipx是netware最底层的协议,它只负责数据在网络中的移动,并不保证数据是否传输成功,也不提供纠错服务。ipx在负责数据传送时,如果接收节点在同一网段内,就直接按该节点的id将数据传给它;如果接收节点是远程的(不在同一网段内,或位于不同的局域网中),数据将交给netware服务器或路由器中的网络id,继续数据的下一步传输。spx在整个协议中负责对所传输的数据进行无差错处理,所以我们将ipx/spx也叫做“novell的协议集”。    

  nwlink通信协议。windows nt中提供了两个ipx/spx的兼容协议:“nwlink spx/spx兼容协议”和“nwlink netbios”,两者统称为“nwlink通信协议”。nwlink协议是novell公司ipx/spx协议在微软网络中的实现,它在继承ipx/spx协议优点的同时,更适应了微软的操作系统和网络环境。windows nt网络和windows 95/98的用户,可以利用nwlink协议获得netware服务器的服务。如果你的网络从novell环境转向微软平台,或两种平台共存时,nwlink通信协议是最好的选择。不过在使用nwlink协议时,其中“nwlink ipx/spx兼容协议”类似于windows 95/98中的“ipx/spx兼容协议”,它只能作为客户端的协议实现对netware服务器的访问,离开了netware服务器,此兼容协议将失去作用;而“nwlink netbios”协议不但可在netware服务器与windows nt之间传递信息,而且能够用于windows nt、windows 95/98相互之间任意通信。 
 3.tcp/ip协议    

  tcp/ip(transmission control protocol/internet protocol,传输控制协议/网际协议)是目前最常用到的一种通信协议,它是计算机世界里的一个通用协议。在局域网中,tcp/ip最早出现在unix系统中,现在几乎所有的厂商和操作系统都开始支持它。同时,tcp/ip也是internet的基础协议。    

  tcp/ip通信协议的特点。tcp/ip具有很高的灵活性,支持任意规模的网络,几乎可连接所有的服务器和工作站。但其灵活性也为它的使用带来了许多不便,在使用netbeui和ipx/spx及其兼容协议时都不需要进行配置,而tcp/ip协议在使用时首先要进行复杂的设置。每个节点至少需要一个“ip地址”、一个“子网掩码”、一个“默认网关”和一个“主机名”。如此复杂的设置,对于一些初识网络的用户来说的确带来了不便。不过,在windows nt中提供了一个称为动态主机配置协议(dhcp)的工具,它可自动为客户机分配连入网络时所需的信息,减轻了联网工作上的负担,并避免了出错。当然,dhcp所拥有的功能必须要有dhcp服务器才能实现。    

  同ipx/spx及其兼容协议一样,tcp/ip也是一种可路由的协议。但是,两者存在着一些差别。tcp/ip的地址是分级的,这使得它很容易确定并找到网上的用户,同时也提高了网络带宽的利用率。当需要时,运行tcp/ip协议的服务器(如windows nt服务器)还可以被配置成tcp/ip路由器。与tcp/ip不同的是,ipx/spx协议中的ipx使用的是一种广播协议,它经常出现广播包堵塞,所以无法获得最佳的网络带宽。   

  windows 95/98中的tcp/ip协议。windows 95/98的用户不但可以使用tcp/ip组建对等网,而且可以方便地接入其它的服务器。值得注意的是,如果windows 95/98工作站只安装了tcp/ip协议,它是不能直接加入windows nt域的。虽然该工作站可通过运行在windows nt服务器上的代理服务器(如proxy server)来访问internet,但却不能通过它登录windows nt服务器的域。如果要让只安装tcp/ip协议的windows 95/98用户加入到windows nt域,还必须在windows 95/98上安装netbeui协议。    

  tcp/ip协议在局域网中的配置。在提到tcp/ip协议时,有许多用户便被其复杂的描述和配置所困扰,而不敢放心地去使用。其实就局域网用户来说,只要你掌握了一些有关tcp/ip方面的知识,使用起来也非常方便。 

  ip地址基础知识。前面在谈到ipx/spx协议时就已知道,ipx的地址由“网络id”(network id)和“节点id”(node id)两部分组成,ipx/spx协议是靠ipx地址来进行网上用户的识别的。同样,tcp/ip协议也是靠自己的ip地址来识别在网上的位置和身份的,ip地址同样由“网络id”和“节点id”(或称host id,主机地址)两部分组成。一个完整的ip地址用32位(bit)二进制数组成,每8位(1个字节)为一个段(segment),共4段(segment1~segment4),段与段之间用“.”号隔开。为了便于应用,ip地址在实际使用时并不直接用二进制,而是用大家熟悉的十进制数表示,如192.168.0.1等。ip地址的完整组成:“网络id”和“节点id”都包含在32位二进制数中。目前,ip地址主要分为a、b、c三类(除此之外,还存在d和e两类地址,现在局域网中这两类地址基本不用,故本文暂且不涉及),a类用于大型网络,b类用于中型网络,c类一般用于局域网等小型网络中。其中,a类地址中的最前面一段segment1用来表示“网络id”,且segment1的8位二进制数中的第一位必须是“0”。其余3段表示“节点id”;b类地址中,前两段用来表示“网络id”,且segment1的8位二进制数中的前二位必须是“10”。后两段用来表示“节点id”;在c类地址中,前三段表示“网络id”,且segment1的8位二进制数中的前三位必须是“110”。最后一段segment4用来表示“节点id”。 

  值得一提的是,ip地址中的所有“网络id”都要向一个名为internic(internet network information center,互联网络信息中心)申请,而“节点id”可以*分配。目前可供使用的ip地址只有c类,a类和b类的资源均已用尽。不过在选用ip地址时,总的原则是:网络中每个设备的ip地址必须唯一,在不同的设备上不允许出现相同的ip地址。列出了ip地址中的“网络id”的有关属性,“节点id”在互不重复的情况下由用户*分配。其实,将ip地址进行分类,主要是为了满足网络的互联。如果你的网络是一个封闭式的网络,只要在保证每个设备的ip地址唯一的前提下,三类地址中的任意一个都可以直接使用(为以防万一,你还是老老实实地使用c类ip地址为好)。 

  子网掩码。对ip地址的解释称之为子网掩码。从名称可以看出,子网掩码是用于对子网的管理,主要是在多网段环境中对ip地址中的“网络id”进行扩展。举个例子来说明:例如某个节点的ip地址为192.168.0.1,它是一个c类网。其中前面三段共24位用来表示“网络id”,是非常珍贵的资源;而最后一段共8位可以作为“节点id”*分配。但是,如果公司的局域网是分段管理的,或者该网络是由多个局域网互联而成,是否要给每个网段或每个局域网都申请分配一个“网络id”呢?这显然是不合理的。此时,我们可以使用子网掩码的功能,将其中一个或几个节点的ip地址全部充当成“网络id”来使用,用来扩展“网络id”不足的困难。    

  当我们将某一节点的ip地址如192.168.0.1已设置成一个“网络id”时,网络上的其它设备又怎样知道它是一个“网络id”,而不是一个节点ip地址呢?这就要靠子网掩码来告知。子网掩码是这样做的:如果某一位的二进制数是“1”,它就知道是“网络id”的一部分;如果是“0”便认作是“节点id”的一部分。如将192.168.0.1当做“网络id”时,其子网掩码就是11111111.11111111.11111111.00000001,对应的十进制数表示为255.255.255.1。否则它的子网掩码就是11111111.11111111.11111111.00000000,对应的十进制数表示应为255.255.255.0 。有了子网掩码,便可方便地实现用户跨网段或跨网络操作。不过,为了让子网掩码能够正常工作,同一子网中的所有设备都必须支持子网掩码,且子网掩码相同。列出了a、b、c三类网络的缺省子网掩码。 

  网关。网关(gateway)是用来连接异种网络的设置。它充当了一个翻译的身份,负责对不同的通信协议进行翻译,使运行不同协议的两种网络之间可以实现相互通信。如运行tcp/ip协议的windows nt用户要访问运行ipx/spx协议的novell网络资源时,则必须由网关作为中介。如果两个运行tcp/ip协议的网络之间进行互联,则可以使用windows nt所提供的“默认网关”(default gateway)来完成。网关的地址该如何分配呢?可举一个例子来回答:假如a网络的用户要访问b网络上的资源,必须在a网络中设置一个网关,该网关的地址应为b网络的“网络id”(一般可理解为b网络服务器的ip地址)。当a网络的用户同时还要访问c网络的资源时又该怎么呢?你只需将c网络的“网络id”添加到a网络的网关中即可。依次类推……网关连多少个网络,就拥有多少个ip地址。    

  主机名。网络中唯一能够代表用户或设备身份的只有ip地址。但一般情况下,众多的ip地址不容易记忆,操作起来也不方便。为了改善这种状况,我们可给予每个用户或设备一个有意义的名称,如“wangqun”。至于在网络中用到“wangqun”时,怎样知道其对应的ip地址呢?这完全由操作系统自己完成,我们大可不必考虑。 

  c、通信协议的安装、设置和测试    

  局域网中的一些协议,在安装操作系统时会自动安装。如在安装windows nt或windows 95/98时,系统会自动安装netbeui通信协议。在安装netware时,系统会自动安装ipx/spx通信协议。其中三种协议中,netbeui和ipx/spx在安装后不需要进行设置就可以直接使用,但tcp/ip要经过必要的设置。所以下文主要以windows nt环境下的tcp/ip协议为主,介绍其安装、设置和测试方法,其他操作系统中协议的有关操作与windows nt基本相同,甚至更为简单。    

  tcp/ip通信协议的安装。在windows nt中,如果未安装有tcp/ip通信协议,可选择“开始/设置/控制面板/网络”,将出现“网络”对话框,选择对话框中的“协议/添加”,选取其中的tcp/ip协议,然后单击“确定”按钮。系统会询问你是否要进行“dhcp服务器”的设置?如果你的ip地址是固定的(一般是这样),可选择“否”。随后,系统开始从安装盘中复制所需的文件。    

  tcp/ip通信协议的设置。在“网络”对话框中选择已安装的tcp/ip协议,打开其“属性”。在指定的位置输入已分配好的“ip地址”和“子网掩码”。如果该用户还要访问其它widnows nt网络的资源,还可以在“默认网关”处输入网关的地址。 

  tcp/ip通信协议的测试。当tcp/ip协议安装并设置结束后,为了保证其能够正常工作,在使用前一定要进行测试。笔者建议大家使用系统自带的工具程序:ping.exe,该工具可以检查任何一个用户是否与同一网段的其他用户连通,是否与其他网段的用户连接正常,同时还能检查出自己的ip地址是否与其他用户的ip地址发生冲突。假如服务器的ip地址为192.168.0.1,如要测试你的机器是否与服务器接通时,只需切换到dos提示符下,并键入命令“ping 192.168.0.1”即可。如果出现类似于“reply from 192.168.0.1……”的回应,说明tcp/ip协议工作正常;如果显示类似于“request timed out”的信息,说明双方的tcp/ip协议的设置可能有错,或网络的其它连接(如网卡、hub或连线等)有问题,还需进一步检查。    

  d、小结    

  在组建局域网时,具体选择哪一种网络通信协议主要取决于网络规模、网络间的兼容性和网络管理几个方面。如果正在组建一个小型的单网段的网络,并且对外没有连接的需要,这时最好选择netbeui通信协议。如果你正从netware迁移到windows nt,或两种平台共存时,ipx/spx及其兼容协议可提供一个很好的传输环境。如果你正在规划一个高效率、可互联性和可扩展性的网络,tcp/ip则将是理想的选择。