第3章网络的体系结构和协议本章详细介绍了两种了两种网络体系结构模型:OSI参考模型和TCP/IP参考模型。TCP/IP参考模型目前是业界的标准,在此基础上介绍了IP地址以及子网掩码概念与组成。3.1网络的体系结构3.2ISO/OSI参考模型3.3TCP/IP参考模型3.4两种分层结构的比较3.5网络协议3.6IP地址与子网掩码[Return]3.1网络的体系结构1.网络分层结构基本的网络体系结构模型就是层次结构模型,如图3-1所示。所谓层次结构就是指把一个复杂系统的设计问题分解成多个层次分明的局部问题,并规定每一层次所必须完成的问题。n-1层n服务层n-1层图3-1【层次模型】2.网络协议协议是用来描述两个进程间信息交换规则的术语。我们称在计算机网络中通信双方都遵守的规则为网络协议。3.网络体系结构网络体系结构(NetworkArchitecture)是计算机网络的分层、各层协议、功能和层间接口的集合。网络体系结构是一个抽象的概念,因为它不涉及具体的实现细节,只是说明网络体系结构必须包括的信息,以便网络设计者能为每一层编写符合相应协议的程序,它解决的是“做什么”的问题。[Return]3.2ISO/OSI参考模型20世纪80年代初期,国际标准化组织(ISO)认识到,需要一个网络模式来帮助厂商实现网络间的相互操作,于是ISO研究了各类计算机网络体系结构,并于1984年正式公布了一个网络体系结构模型作为国际标准,称为开放系统互连参考模型(OSI/RM)。这里的“开放”是指任何两个遵守OSI/RM的系统都可以进行互连,当一个系统能按OSI/RM与另一个系统进行通信时,就称该系统为开放系统。1.分层通信图3-2【OSI参考模型】(1)物理层(PhysicalLayer)物理层是OSI的最低层,它建立在物理通信介质的基础上,作为通信系统和通信介质的接口,用来实现数据链路实体间透明的比特(bit)流传输。为建立、维持和拆除物理连接,物理层规定了传输介质的机械特性、电气特性、功能特性和规程特性。(2)数据链路层(DataLinkLayer)数据链路层从网络层接收数据,并加上有意义的比特位形成报文头部和尾部(用来携带地址和其他控制信息)。这些附加了信息的数据单元称为帧。数据链路层负责将数据帧无差错地从一个站点送达下一个相邻的站点,即通过一些数据链路层协议完成在不太可靠的物理链路上实现可靠的数据传输。(3)网络层(NetworkLayer)网络层关心的是通信子网的运行控制,主要解决如何使数据分组跨越通信子网从源传送到目的地的问题,这就需要在通信子网中进行路由选择。另外,为避免通信子网中出现过多的分组而造成网络阻塞,需要对流入的分组数量进行控制。当分组要跨越多个通信子网才能到达目的地时,还要解决网际互连的问题。(4)传输层(TransportLayer)传输层的主要任务是向会话层提供服务,服务内容包括传输连接服务和数据传输服务。前者是指在两个传输层用户之间负责建立、维持和在传输结束后拆除传输连接;后者则是要求在一对用户之间提供互相交换数据的方法。传输层的服务,使高层的用户可以完全不考虑信息在物理层、数据链路层和网络层通信的详细情况,方便了用户使用。(5)会话层(SessionLayer)会话层是网络对话控制器,它建立、维护和同步通信设备之间的交互操作,保证每次会话都正常关闭而不会突然中断,使用户被挂在一旁。会话层建立和验证用户之间的连接,包括口令和登录确认;它也控制数据交换,决定以何种顺序将对话单元传送到传输层,以及在传输过程的哪一点需要接收端的确认。(6)表示层(PresentationLayer)表示层保证了通信设备之间的互操作性。该层的功能使得两台内部数据表示结构不同的计算机能实现通信。它提供了一种对不同控制码、字符集和图形字符等的解释,而这种解释是使两台设备都能以相同方式理解相同的传输内容所必须的。表示层还负责为安全性引入的数据加密和解密,以及为提高传输效率提供必需的数据压缩及解压等功能。(7)应用层(ApplicationLayer)应用层是OSI参考模型的最高层,它是应用进程访问访问网络服务的窗口。这一层直接为网络用户或应用程序提供各种各样的网络服务,它是计算机网络与最终用户之间的界面。应用层提供的网络服务包括文件服务、打印服务、报文服务、目录服务、网络管理以及数据库服务等。在上述的七层中上五层一般由软件实现,而下面的两层由硬件和软件实现。2.信息格式图3-3【信息在各层之间的传递】[Return]3.3TCP/IP参考模型TCP/IP是一组通信协议的代名词,它是因特网的核心,利用TCP/IP协议可以很方便地实现多个网络的无缝连接,通常所谓的”某台机器在因特网上”,就是指该主机具有一个因特网地址,运行TCP/IP协议,并可向因特网上所有其他主机发送IP数据报。TCP/IP有如下特点:开放的协议标准,可以免费使用,独立于特定的硬件与操作系统。独立于特定的网络硬件,可以运行在局域网、广域网,互联网中。统一的地址分配方案,整个TCP/IP设备在网中都具有唯一的地址。标准化的高层协议,可以提供多种可靠的用户服务。1.TCP/IP的层次结构TCP/IP分为四个层次,分别是网络接口层、网际层、传输层和应用层。TCP/IP的层次结构与OSI层次结构的对照关系如图3-5所示。图3-5【信息在个层之间的传递】(1)网络接口层协议网络接口层上的TCP/IP协议用于使用串行线路连接主机与网络或连接网络与网络的场合,这就是SLIP协议和PPP协议。使用串行线路进行连接的例子,如家庭用户使用电话线和调制解调器接入网络,或两个相距较远的网络利用数据专线进行互联等。(2)网际层协议网际层上包含五个协议:IP、ARP、RARP、ICMP和IGMP。IP是用于传输IP数据报的协议,ARP实现IP地址到物理地址的映射,RARP实现物理地址到IP地址的映射,ICMP用于网际层上控制信息的产生和接收分析,IGMP是实现组选功能的协议。(3)传输层协议传输层有两个主要的协议:TCP协议和UDP协议。UDP协议是一种简单的面向数据报的传输协议,它提供的是无连接的、不可靠的数据报服务,通常用于不要求可靠传输的场合;TCP协议被用来在一个不可靠的网络中为应用程序提供可靠的端点间的字节流服务。(4)应用层应用层包含了许多使用广泛的协议,传统的协议有提供远程登录的TELNET、提供文件传输的FTP、提供域名服务的DNS、提供邮件传输的SMTP等,近年来,又出现了诸如网络新闻NTTP、超文本传输协议HTTP协议等许多新的协议。3.4两种分层结构的比较OSI参考模型与TCP/IP参考模型的相同点有:它们都是层次结构的模型;其最低层都是面向通信子网的;它们都有运输层,且都是第一个提供端到端数据传输服务的层次,都能提供面向连接或无连接运输服务;其最高层都是向各种用户应用进程提供服务的应用层等。OSI参考模型与TCP/IP参考模型的不同点有:两者所划分的层次数不同;TCP/IP中没有表示层和会话层;TCP/IP没有明确规定通信子网的协议,也不再区分通信子网中的物理层、数据链路层和网络层;TCP/IP中特别强调了互联网层,其中运行的IP协议是Internet的核心协议,且互联网层向上只提供无连接的服务,而不提供面向连接的服务等。FTPSMTPTELNET...TCPUDPIPEthernetSATNET...分组无线电Internet层次OSI层次应用(表示、会话)层运输层网络层数据链路层物理层应用层运输层互联网层子网层图3-6【Internet使用的协议与OSI的关系】[Return]3.5网络协议1.NETBEUI协议用户扩展接口NetBEUI(NetBIOSExtendedUserInterface)由IBM于1985年开发完成,它是一种体积小、效率高、速度快的通信协议,在Windows9X/Me/NT/Windows2000Server中,也是内置的网络通信协议。NetBEUI是专门为几台到百余台PC所组成的部门级小型局域网而设计的,它不具有跨网段工作的功能,即NetBEUI不具备路由功能。如果你在一个服务器上安装了多块网卡,或要采用路由器等设备进行两个局域网的互联时,将不能使用NetBEUI通信协议。2.IPX/SPX协议IPX/SPX是Novell公司为了适应网络的发展而开发的通信协议,具有很强的适应性,安装方便,同时还具有路由功能,可以实现多网段间的通信。其中,IPX协议负责数据包的传送;SPX负责数据包传输的完整性。在微软的NT操作系统中,一般使用NWLinkIPX/SPX兼容协议和NWLinkNetBIOX两种IPX/SPX的兼容协议,即NWLink协议,该兼容协议继承了IPX/SPX协议的优点,更适应Windows的网络环境。IPX/SPX协议一般可以应用于大型网络(比如Novell)和局域网游戏环境中(比如反恐精英、星际争霸)。不过,如果不是在Novell网络环境中,一般不使用IPX/SPX协议,而是使用IPX/SPX兼容协议,尤其是在Windows9x/2000组成的对等网中。3.TCP/IP协议族TCP/IP协议其实是一组协议,它包括许多协议,组成了TCP/IP协议簇。但传输控制协议(TCP)和网际协议(IP)是其中最重要的,确保数据完整传输的两个协议。TCP/IP协议的基本传输单位是数据包,TCP/IP协议负责把数据分成若干数据包,并给每个数据包加上包头,每个数据包的包头再加上接收端的地址。如果传输过程中出现数据丢失、数据失真等情况,TCP/IP协议会自动要求数据重新传输,并重新组包。IP协议保证数据的传输,TCP协议确保数据传输的质量。(1)TCP/IP的数据链路层数据链路层不是TCP/IP协议的一部分,但它是TCP/IP赖以存在的各种通信网和TCP/IP之间的接口,这些通信网包括多种广域网如ARPANFT、MILNET和X.25公用数据网,以及各种局域网,如Ethernet、IEEE的各种标准局域网等。IP层提供了专门的功能,解决与各种网络物理地址的转换。一般情况下、各物理网络可以使用自己的数据链路层协议和物理层协议,不需要在数据链路层上设置专门的TCP/IP协议。但是,当使用串行线路连接主机与网络,或连接网络与网络时,例如用户使用电话线和MODEM接入或两个相距较远的网络通过数据专线互连时,则需要在数据链路层运行专门的SLIP(serialLineIP)协议的PPP(PointtoPointProtocal)协议。SLIP协议SLIP提供在串行通信线路上封装IP分组的简单方法,用以使用远程用户通过电话线和MODEM能方便地接入TCP/IP网络。SLIP是一种简单的组帧方式,使用时还存在一些问题。首先,SLIP不支持在连接过程中的动态IP地址分配,通信双方必须事先告知对方IP地址,这给没有固定IP地址的个人用户上Internet网带来了很大的不便:其次,SLIP帧中无协议类型字段,因此它只能支持IP协议;再有,SLIP帧中列校验字段,因此链路层上无法检测出传输差错,必须由上层实体或具有纠错能力的MODEM来解决传输差错问题。PPP协议为了解决SLIP存在的问题,在串行通信应用中又开发了PPP协议。PPP协议是一种有效的点一点通信协议,它由串行通信线路上的组帧方式,用于建立、配制、测试和拆除数据链路的链路控制协议LCP及一组用以支持不同网络层协议的网络控制协议NCPs三部分组成。由于PPP帧中设置了校验字段,因而PPP在链路层上具有差错检验的功能。PPP中的LCP协议提供了通信双方进行参数协商的手段,并且提供了一组NCPs协议,使得PPP可以支持多种网络层协议,如IP、IPX、OSI等。另外,支持IP的NCP提供了在建立连接时动态分配IP地址的功能,解决了个人用户上Internet的问题。(2)TCP/IP网络层网络层中含中有四个重要的协议:互联网协议IP、互联网控制报文协议ICMP、地址转换协议ARP和反向地址转换协议RARP。互联网协议IP(In