实现计算机之间的通信是搭建网络的最终目的。网络协议则用于具体规定通信设备之间如何进行充分地表达与沟通,从而协同工作,使彼此之间的通信成为可能。网络操作系统(NOS),则是网络的心脏和灵魂,是向网络计算机提供网络通信和网络资源共享功能的操作系统。
本章主要内容
& 网络中常用的操作系统的特点
& IP地址概念及特点
& IP地址的分类以及寻址规则
& 子网掩码的基本概念、划分方法
& IP地址的分配原则
网络通信协议用来协调不同的网络设备间的信息交换,建立起一套非常有效的机制,每个设备均可据此识别来自其他设备的有意义的信息。其实,通信协议就好像是语言规则,只有交谈双方同时使用一种语言,并遵守相应的语言规则时,彼此之间才能够听得懂。同样,在不同的网络操作系统中也大都使用不同的通信协议,如TCP/IP、NetBEUI、IPX/SPX、AppleTalk等。
TCP/IP协议是目前最成熟并广为接受的通信协议之一,它不仅广泛应用于各种类型的局域网,而且也是Internet的协议标准,用于实现不同类型的网络,以及不同类型操作系统主机之间的通信。TCP/IP协议事实上是一个协议栈,由许多种网络协议组合而成,包括ARP、ICMP、IGMP、IP、TCP和UDP等多种协议,而TCP协议和IP协议是其中最重要的两个协议。
网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议。IP层接收由更低层(网络接口层,例如,以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层——TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,它并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。
高层的TCP和UDP服务在接收数据包时,通常假设包中的源地址是有效的。也可以这样说,IP地址形成了许多服务的认证基础,这些服务相信数据包是从一个有效的主机发送来的。IP确认包含一个选项,称为IP Source Routing,可以用来指定一条源地址和目的地址之间的直接路径。对于一些TCP和UDP的服务来说,使用了该选项的IP包好像是从路径上的最后一个系统传递过来的,而不是来自于它的真实地点。这个选项是为了测试而存在的,说明它可以用来欺骗系统从而进行平常是被禁止的连接。那么,许多依靠IP源地址做确认的服务将产生问题并且会被非法入侵。
如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向“上”传送到TCP层。TCP将包排序并进行错误检查,同时实现虚电路间的连接。TCP数据包中包括序号和确认,未按照顺序收到的包可以被排序,而损坏的包可以被重传。
TCP将它的信息送到更高层的应用程序,例如,Telnet的服务程序和客户程序。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层、设备驱动程序和物理介质,最后到接收方。
由于面向连接的服务(例如,Telnet、FTP、Windows和SMTP)需要高度的可靠性,所以它们使用了TCP。DNS在某些情况下使用TCP(发送和接收域名数据库),但使用UDP传送有关单个主机的信息。
UDP与TCP位于同一层,但由于会导致数据包的顺序错误或重发。因此,UDP不被应用于那些使用虚电路的面向连接服务,UDP主要用于那些面向查询——应答的服务,如NFS。相对于FTP或Telnet,这些服务需要交换的信息量较小。使用UDP的服务包括NTP(网络时间协议)和DNS(DNS也使用TCP)。
欺骗UDP包之所以比欺骗TCP包更容易,是因为UDP没有建立初始化连接(也可以称为握手,在两个系统间没有虚电路),也就是说,与UDP相关的服务面临着更大的危险。
ICMP与IP位于同一层,它被用来传送IP的控制信息,主要是用来提供有关通向目的地址的路径信息。ICMP的“Redirect”信息通知主机通向其他系统的更准确的路径,而“Unreachable”信息则指出路径有问题。另外,如果路径不可用了,ICMP可以使TCP连接体面地终止。PING是最常用的基于ICMP的服务。
TCP和UDP服务通常有一个客户机/服务器的关系,例如,一个Telnet服务进程开始在系统上处于空闲状态,等待着连接。用户使用Telnet客户程序与服务进程建立一个连接。客户程序向服务进程写入信息,服务进程读出信息并发出响应,客户程序读出响应并向用户报告。这个连接是双工的,可以用来进行读/写。
两个系统间的多重Telnet连接是如何相互确认并协调一致呢?TCP或UDP连接唯一地使用每个信息中的如下4项进行确认。
· 源IP地址:发送包的IP地址。
· 目的IP地址:接收包的IP地址。
· 源端口:源系统上的连接端口。
· 目的端口:目的系统上的连接端口。
端口是一个软件结构,被客户程序或服务进程用来发送和接收信息。一个端口对应一个16bit的数。服务进程通常使用一个固定的端口,例如,SMTP使用25、X Windows使用6000。这些端口号是“广为人知”的,在建立与特定的主机或服务的连接时,需要这些地址和目的地址进行通信。
要想实现网络通信,计算机必须知道其他计算机的硬件地址,即网卡的介质访问控制(Media Access Control,MAC)地址。地址解析是将主机IP地址映射为硬件地址的过程。地址解析协议(Address Resolution Protocol,ARP)是TCP/IP Internet层的一部分,用于获得在同一物理网络中的主机的硬件地址。
ARP使用目标IP地址的本地广播来获得目标主机或网关的硬件地址。收到硬件地址后,IP地址和硬件地址作为一项记录存储在ARP缓存中。在初始化一个ARP广播请求之前,ARP总要检测它的缓存来寻找IP地址和硬件地址的映射。
(1)解析本地IP地址。
网络上的主机要实现通信,必须将主机的IP地址解析为硬件地址。地址解析过程包括ARP请求与ARP应答。
· 当一台主机与其他主机通信时,初始化ARP请求。当断定该IP地址是本地时,源主机在其ARP缓存中查找目标主机的硬件地址。
· 若找不到映射,ARP构造一个请求:“谁有这个IP地址,其硬件地址是什么?”源主机的IP地址和硬件地址也包括在请求中。ARP请求被广播发送,这样,所有本地主机都能接收到并处理。
· 本地网上的每个主机都收到广播并寻找相符的IP地址。若主机不能找到相符的项,则不理睬该请求。
当目标主机断定请求中的IP地址与自己的IP地址相符时,直接发送ARP回复,将其硬件地址传给源主机。然后,以源主机的IP地址/硬件地址更新它的ARP缓存。源主机收到回答后便建立了通信。
(2)解析远程IP地址。
ARP也可使不同网络中的两台主机相互通信,在这种情况下,ARP广播的是源主机的默认网关,而不是目标主机的IP地址。若目标IP地址是远程网络主机的,ARP将广播一个路由器的地址,这个路由器能将数据包信息传到目标主机的网络中。
通信请求初始化时,得知目标IP地址为远程地址。源主机在本地路由表中查找目标主机或网络的路由。若没找到,源主机认为是默认网关的IP地址。然后,在ARP缓存中查找符合该网关记录的IP地址/硬件地址。
若没找到该网关的记录,ARP将广播请求网关地址,而不是目标主机的地址。路由器用自己的硬件地址响应源主机的ARP请求。源主机则将数据包送到路由器,以传送到目标主机的网络,最终到达目标主机。
在路由器上,从IP判断目标IP地址是本地的还是远程的。如果是本地的,路由器用ARP(缓存或广播)获取硬件地址。如果是远程的,路由器在其路由表中查找该网关,然后,运用ARP(缓存或广播)获得此网关的硬件地址。数据包被直接发送到下一个目标主机。
目标主机收到请求后,形成ICMP响应。源主机在远程网络上,将在本地路由表中查找源主机网的网关。找到网关后,ARP即获取它的硬件地址。
如果此网关的硬件地址不在ARP缓存中,则通过ARP广播获得。一旦它获得硬件地址,ICMP响应应送到路由器上,然后传到源主机。
(3)ARP缓存。
为了减少广播量,ARP在缓存中保存地址映射以备用。ARP缓存保存有动态项和静态项。动态项是自动添加和删除的,静态项则保留在缓存(Cache)中直到计算机重新启动。
另外,ARP缓存总是为本地子网保留硬件广播地址(FFFFFFFFFFF)。作为一个永久项,此项使主机能够接收ARP广播。当查看缓存时,该项不显示。
每个ARP缓存记录的生命周期为10min,每一项添加后,便被计时。若在2min之内未被使用则自动删除;否则,在10min后删除。如果ARP项在失效前,缓存已达到最大容量,则删除最老的项并添加新项。
Internet组管理协议(Internet Group Management Protocol,IGMP)用于告诉路由器某一网络上指定组中的可用主机。IGMP信息传给别的路由器以使每个多路广播的路由器获知各主机组所在的网络。IGMP包以IP数据包形式传送,因此不可靠。
网络基本输入/输出系统(NetWork Basic Input/Output System,NetBIOS)是IBM在1983年开发的用于实现PC间相互通信的标准,其目的是制定一种仅仅在小型局域网上使用的通信规范。这种小型网络全部由PC组成,最大用户数不超过30个,其特点是突出一个“小”字。后来,IBM公司发现NetBIOS存在着许多缺陷,在1985年又做了一些重要改进,推出了NetBEUI通信协议。随即,微软公司将NetBEUI作为其客户机/服务器网络系统的基本通信协议,并进一步进行了扩充和完善。最有代表性的是在NetBEUI中增加了称为服务器消息块(Server Message Block,SMB)的组成部分,以降低网络的通信堵塞。为此,有时NetBEUI协议也称为“SMB协议”。
网络接口标准NetBIOS被包含于NetBEUI协议之中。许多人经常将NetBIOS和NetBEUI混为一谈,其实两者还是有着较大的区别。NetBIOS只能算是一个网络应用程序的接口规范,是NetBEUI的基础,并不具有严格的通信协议功能,而NetBEUI则是建立在NetBIOS基础上的一个网络传输协议。
在Windows操作系统中,安装了TCP/IP协议后会自动安装NetBIOS,比如在Windows 2000/XP中,使用“自动获得IP地址”后,会自动在DHCP服务器使用NetBIOS设置。如果使用静态IP地址或DHCP服务器而不提供NetBIOS设置时,则启用TCP/IP上的NetBIOS。从“开始”菜单中打开“网络连接”窗口,打开“本地连接属性”对话框,依次单击“Internet协议(TCP/IP)”→“属性”→“高级”按钮,打开“WINS”选项卡,在“NetBIOS设置”选项组中选择相应的NetBIOS设置,如图3-1所示。
图3-1 选择相应的NetBIOS设置
AppleTalk是由Apple公司推出的一种多层协议,支持网络路由选择、事务服务、数据流服务及域名服务,并且通过Apple硬件中的LocalTalk接口全面实现Apple系统间的文件和打印共享服务。通过以太网网桥使用LocalTalk或者Apple机制提供以太网扩展板(add-in boards)等途径能够实现其他网络媒体(如以太网)与AppleTalk之间的连接。另外AppleTalk协议中包含很多第三方应用程序。
一个AppleTalk网络能够支持多达32台计算机设备,并且在设备之间可以相距300m的距离,数据传输速率可以达到230.4Kbps。在物理层,AppleTalk是一种具有总线拓扑结构的网络,各连接模块之间通过中继电缆相互连接。
对于网络总线上的所有系统,LocalTalk链路访问协议(LocalTalk Link Access Protocol,LLAP)都是通用的,并且该协议负责处理连接单个AppleTalk网络的各设备之间的节点到节点的数据传送服务。另外此协议还为以太网、令牌环及光纤分布式数据接口定义了数据链路层接口。
具有Macintosh客户的网络和运行Windows NT系列的计算机对Macintosh功能的服务作为AppleTalk网络。不过,Windows XP系统已经不支持AppleTalk协议了。
IPX协议全称Internetwork Packet Exchange(网间数据包交换),IPX协议是Novell NetWare自带的最底层网络协议,主要用来控制局域网内或局域网之间数据包的寻址和路由,只负责数据包在局域网中的传送,并不保证消息的完整性,也不提供纠错服务。
在局域网中传输数据包时,如果接收节点在同一网段内,通过IPX协议就直接按该节点的ID将数据传给它;如果接收节点不在同一网段内,那么通过IPX协议可以将数据包交给NetWare服务器,再继续传输。在使用过程中,网络管理员可以通过使用相应的IPX路由命令,比如“routing ipx add/set staticroute”表示在IPX路由表中添加或配置静态IPX路由,“routing ipx set global”表示配置全局IPX路由设置。
SPX协议说明:全称Sequences Packet Exchange(顺序包交换),SPX协议是基于施乐公司的Xerox SPP(Sequences Packet Protocol,顺序包协议)协议,同样是由Novell公司开发的一种用于局域网的网络协议。在局域网中,SPX协议主要负责对整个传输的数据进行无差错处理,即纠错。
SPX协议一般和上面介绍的IPX协议组合成IPX/SPX协议来使用,多用于Netware网络环境及联网游戏。
IPX/SPX协议即IPX与SPX协议的组合,它是Novell公司为了适应网络的发展而开发的通信协议,具有很强的适应性,安装方便,同时还具有路由功能,可以实现多网段间的通信。其中,IPX协议负责数据包的传送;SPX负责数据包传输的完整性。在微软的NT操作系统中,一般使用NWLink IPX/SPX兼容协议和NWLink NetBIOX两种IPX/SPX的兼容协议,即NWLink协议,该兼容协议继承了IPX/SPX协议的优点,更适应Windows的网络环境。
IPX/SPX协议一般可以应用于大型网络(比如Novell)和局域网游戏环境中(比如反恐精英、星际争霸)。不过,如果不是在Novell网络环境中,一般不使用IPX/SPX协议,而是使用IPX/SPX兼容协议,尤其是在Windows 9x/2000组成的对等网中。
在Windows中安装IPX/SPX兼容协议的方法如下(以Windows XP为例)。
(1)打开“网络连接”窗口,单击“本地连接”,在弹出的快捷菜单中选择“属性”命令,打开“本地连接属性”对话框,如图3-2所示。
图3-2 “本地连接属性”对话框
(2)单击“安装”按钮,在弹出的“选择网络组件类型”对话框中选择“协议”组件,然后单击“添加”按钮,如图3-3所示。
图3-3 安装网络组件
(3)在打开的对话框中选择“NWLink IPX/SPX/NetBIOS Compatible Transport Pro-
tocol”,如图3-4所示。最后,单击“确定”按钮即可进行安装。安装完之后,不需要进行什么设置就可以使用。
图3-4 安装IPX/SPX协议
前面分别对各种通信协议的定义、特点、使用范围等方面进行了讲解,局域网中常用的3种通信协议是TCP/IP协议、NetBEUI、IPX/SPX协议。许多读者一定在想:每种协议各有优劣,我要搭建的局域网应该用哪种协议最好呢?在本节中就来讨论一下如何进行局域网通信协议的选择。
在实际的局域网通信协议的选择上,主要需要考虑网络规模、所用操作系统和网络间的兼容性及网络管理几个方面。
在网络规模方面,由于NetBEUI协议具备专门为小型局域网设计开发的、无路由能力、占用内存最少、在网络中基本不需要任何配置等特点,因此搭建小型局域网并且所用连接设备也都一致的话,NetBEUI协议是很好的选择。由于IPX/SPX协议具有强大的路由能力,因此适合大型局域网使用。由于TCP/IP协议具有很强的灵活性,因此能够支持任意规模的网络,几乎可连接所有的服务器和工作站。
所用的操作系统问题和不同的网络间相互连接时的网络兼容性问题是一定要考虑的。常见的情况有:由于微软在当今流行的Windows 9x和Windows NT中把NetBEUI协议视 为固有默认协议,因此用Windows 9x组网进入Windows NT网络时绝不能只用TCP/IP 协议,还必须加上NetBEUI协议才能实现网络连通。如果用户端接入的是NetWare服务器,IPX/SPX协议及其兼容协议是最适合的。前面谈到在Windows NT中提供了两个IPX/SPX的兼容协议:NWLink IPX/SPX兼容协议与NWLink NetBIOS,两者统称为NWLink通 信协议。当需要利用Windows系统进入NetWare服务器时,NWLink通信协议是最好的选择。
另外注意的是,在搭建局域网时要尽量选用同一种协议,这样所占系统资源较少,网络管理效率较高。