第4章TCP/IP参考模型4.1TCP/IP协议栈概述TCP/IP(TransmissionControlProtocol/InternetProtocol),传输控制协议/互联网络协议。它是美国国防部高级研究计划局的研究结果,早在20世纪70年代就已诞生,后来被集成在UNIX中使用,进而得到推广。它在20世纪80年代脱颖而出,成为互联网的通信协议。随着互联网的不断壮大,TCP/IP协议也随之不断发展,不仅在广域网上被普遍使用,在局域网上TCP/IP协议也已经取代其他协议而成为被普遍采用的协议。如今,TCP/IP协议已经成为了一种普遍且通用的网络互联标准。TCP/IP协议是以OSI参考模型为框架开发出来的,是一种分层协议。图4-1显示了TCP/IP协议的层次结构域OSI参考模型的对应关系。应用层应用层表示层会话层传输层传输层网络层网络层数据链路层数据链路层物理层物理层图4-1TCP/IP层次结构与OSI参考模型的比较图4-1可以看出,TCP/IP协议的层次结构基本上是按照OSI参考模型设计的。只有在上三层的分层上,TCP/IP协议将OSI参考模型的应用层、表示层和会话层统一整合成为一个单一的应用层,从而使数据格式的表示、会话的建立等功能和应用软件更紧密地结合起来,与OSI参考模型相比更为实用和简单。我们虽然在习惯上把TCP/IP称为协议,实际上它并不是一个单一的协议,而是一组协议的集合,称为TCP/IP协议族。在TCP/IP协议族里,每一种协议负责网络数据传输中的一部分工作,为网络中数据的传输提供某一方面的服务。正是由于有了这些工作在各个层次的协议,使整个TCP/IP协议族能够有效地协同工作。图4-2展示了TCP/IP协议族的基本组成结构。Telnet(虚拟终端协议)FTP(文件传输协议)SMTP(电子邮件传输协议)DNS(域名服务)其他协议(如HTTP等)TCP(传输控制协议)UDP(用户数据报协议)IP(网际协议).ICMP(网际控制报文协议).ARP(地址解析协议).RARP(反向地址解析协议)图4-2TCP/IP协议族的基本组成结构下面我们对TCP/IP协议族的协议进行逐层地简要介绍。4.2TCP/IP---应用层应用层位于TCP/IP协议族的最上层,相当于OSI参考模型的应用层、表示层和会话层的综合。应用层首先要解决的问题是,协调网络中使用的设备和软件多种多样性的问题,让基于不同系统的用户能够使用相同的资源。应用层通过定义一个抽象的网络虚拟终端来解决这个问题。每一种终端类型,通过将网络虚拟终端和实际终端进行映射,在网络虚拟终端的功能中统一定义如何对资源进行调用和访问。这样用户就可以通过网络虚拟终端调用基于不同系统上的资源。应用层的另一个功能是解决了不同系统中文件传输的问题。不同系统的文件命名方式、文件行表示方法是不一样的,应用层的工作就是让不同系统之间的文件传输不会出现兼容的问题。应用层为用户的各种网络应用开发了许多网络应用程序。例如文件传输、网络管理等,甚至包括路由选择。这里我们重点介绍常用的几种应用层协议。图4-3TCP/IP协议族的应用层协议·文件传输协议(FTP,FileTransferProtocol)是一种文件传输的Internet标准。FTP支持一些文本文件(例如ASCII)和面向二进制流的文件结构。在支持FTP的终端系统间进行相互的文件传输。FTP使用传输层的TCP协议。因此,FTP被认为提供了可靠的面向连接的服务,它适合于远距离、可靠性较差线路上的文件传输。·简单文件传输协议(TFTP,TrivialFileTransferProtocol)也是用于文件传输,但TFTP使用UDP提供服务,被认为是不可靠的、无连接的。通常TFTP用于比较稳定、可靠的局域网内部,进行文件传输。·简单邮件传输协议(SMTP,SimpleMailTransferProtocol)支持文本邮件的Internet传输。·邮局协议(POP,PostOfficeProtocol)是一个流行的Internet邮件标准。·简单网络管理协议(SNMP,SimpleNetworkManagementProtocol)负责网络设备监控和维护,支持安全管理、性能管理等。·Telnet协议。Telnet是客户机使用的与远端服务器建立连接的标准终端仿真协议。·Http协议(HypertextTransferProtocol),是服务程序所用的协议,支持和内部网信息交互,支持包括视频在内的多种文件类型。Http是当今流行的Internet标准。·域名系统(DNS,DomainNameSystem)把网络节点的易于记忆的名字转化为网络地址。·引导协议(BOOTP,BootstrapProtocol)是使用传输层UDP协议动态获得IP地址的协议。·下面我们将以Windows2000为网络操作系统平台,对它们一一进行介绍。4.2.1DHCP(DynamicHostConfigurationProtocol):动态主机配置协议在TCP/IP网络上,每台工作站在访问网络及其资源之前,都必须进行基本的网络配置,一些主要参数诸如IP地址,子网掩码,缺省网关,DNS等必不可少,还可能需要一些附加的信息如IP管理策略之类。在大型网络中,确保所有主机都拥有正确的配置是一件相当困难的管理任务,尤其对于含有漫游用户和笔记本电脑的动态网络更是如此。经常有计算机从一个子网移到另一个子网以及从网络中移出。手动配置或重新配置数量巨大的计算可能要花很长时间,而IP主机配置过程中的错误可能导致该主机无法与网络中的其他主机通信。因此,需要有一种机制来简化IP地址的配置,实现IP的集中式管理。而IETF(Inetenet网络工程师任务小组)设计的动态主机配置协议(DHCP,DynamicHostConfigurationProtocol)正是这样一种机制。DHCP是一种客户机/服务器协议,该协议简化了客户机IP地址的配置和管理工作以及其它TCP/IP参数的分配。基本上不需要网络管理人员的人为干预。网络中的DHCP服务器给运行DHCP的客户机自动分配IP地址和相关的TCP/IP的配置信息。DHCP服务器拥有一个IP地址池,当任何启用DHCP的客户机登录到网络时,可从它那里租借一个IP地址。因为IP地址是动态的(租借)而不是静态的(永久分配),不使用的IP地址就自动返回地址池,供再分配,从而大大节省了IP地址空间。图4-4示意了DHCP的工作模型。而且,DHCP本身被设计成BOOTP(自举协议)的扩展,支持需要网络配置信息的无盘工作站,对需要固定IP的系统也提供了相应支持。图-44基本DHCP模型在用户的企业中应用DHCP有以下优点:·减少错误通过配置DHCP,把手工配置IP地址所导致的错误减少到最低程度,例如已分配的IP地址再次分配给另一设备所造成的地址冲突等将大大减少。·减少网络管理TCP/IP配置是集中化和自动完成的,不需要网络管理人员手工配置。网络管理员能集中定义全局和特定子网的TCP/IP配置信息。使用DHCP选项可以自动给客户机分配全部范围的附加TCP/IP配置值。客户机配置的地址变化必须经常更新,比如远程访问客户机经常到处移动,这样便于它在新的地点重新启动时,高效而又自动地进行配置。同时大部分路由器能转发DHCP配置请求,这就减少了在每个子网设置DHCP服务器的必要,除非有其它原因要这样做。DHCP的工作原理我们在介绍DHCP工作原理以前,先解释几个名词的含义:·DHCP客户:DHCP客户是一通过DHCP来获得网络配置参数的Internet主机,通常就是普通用户的工作站。·DHCP服务器:DHCP服务器是负责提供网络设置参数给DHCP客户的本地局域网DHCP客户机DHCP服务器IP地址数据库Internet主机。·DHCP中继代理:在DHCP客户和服务器之间转发DHCP信息的主机或路由器。DHCP是基于客户机/服务器模型设计的,DHCP客户和DHCP服务器之间通过收发DHCP消息进行通讯。1.DHCP消息类型DHCP主要有以下信消息类型:·DHCPDISCOVER:在一台DHCP客户计算机第一次试图登录到网络中时,它通过广播DHCPDISCOVER包请求DHCP服务器的IP地址信息。该包的源IP地址是0.0.0.0,因为此时客户机还没有IP地址。·DHCPOFFER:每个收到客户机DHCPDISCOVER包的DHCP服务器以一个DHCPOFFER包作为应答,其中包括一个未租借的IP地址和其它DHCP配置信息,比如子网掩码和缺省网关。不止一个DHCP服务器能应答DHCPOFFER包。客户机将接受所收到的第一个DHCPOFFER包,该消息为342字节长。·DHCPREQUEST:当一台DHCP客户机接收到一个DHCPOFFER包,它就广播一个DHCPREQUEST包,该包中包含提供的IP地址,表示已经接受的所提供的IP地址。该消息为342或576字节长,取决于相应的DHCPDISCOVER消息的长度。·DHCPDECLINE:如果DHCP客户机判定提供的配置参数是无效的,它就向服务器发送一个DHCPDECLINE包,而客户机自己必须重新开始租借过程。·DHCPACK:在选中的DHCP服务器发送一个DHCPACK包应答客户机对该IP地址的DHCPREQUEST。此时服务器也转发任何选项配置参数。接收到DHCPACK后,客户机就能加入TCP/IP网络并完成系统启动。该消息为342字节长。·DHCPNAK:如果因为该IP地址不再有效或已被其它计算机占用而使客户机不能使用它,DHCP服务器就应答一个DHCPNAK包,客户机必须重新开始租借过程。任何时候,只要DHCP服务器接收到一个对无效地址的请求,它就向客户机发送一个DHCPNAK消息,此处无效是根据服务器所配置的作用域判定的。·DHCPRELEASE:DHCP客户机向服务器发送DHCPRELEASE包以释放IP地址,并取消任何剩下的租约。·DHCPLNFORM:在DHCPLNFORM是一个新的DHCP消息类型,用于网络上的计算机从DHCP服务器请求并获得信息供本地配置使用。当使用这种类型的消息时,发送者已经从外部获得了本网络的IP地址配置,该地址的获得可能使用DHCP,也可能不用。目前。早版本的WindowsNTServer提供的DHCP服务并不支持该消息类型,其它第三方实现的DHCP软件业可能不能识别该消息类型。不论是DHCP客户还是DHCP服务器,都按照DHCP消息格式要求来填写各个段以形成具体的DHCP消息,DHCP用的传输协议是无连接的UDP(用户数据报协议),从DHCP客户发出的DHCP消息发往DHCP服务器的端口67,DHCP服务器发给客户的DHCP消息发往DHCP客户的端口68,由于在取得服务器赋予的IP之前,DHCP客户并没有自己的IP,所以包含DHCP消息的UDP数据报的IP头的源地址段式0.0.0.0,目的地址则是255.255.255.255。2.DHCP租借IP地址的过程当DHCP的客户机第一次启动并试图加入网络时,它执行以下初始化步骤,以便从DHCP服务器获得IP地址。图4-5显示了租借过程。图4-5DHCP租借过程(1)DHCP客户机初始化TCP/IP,在本地物理子网上广播一个DHCPDISCOVER消息,以确定DHCP服务器位置及其IP地址。如果DHCP服务器和客户不再同一个物理子网上,BOOTP中继代理将转发这个消息给DHCP服务器。(2)由于网络上可能不止一个DHCP服务器,所有具有有效IP地址信息的DHCP服务器会用广播方式发送DHCPOFFER报文响应。在这些报文中DHCP服务器将提供给客户端IP地址。它们还可提供一个租用时间,默认值是1小时。发送DHCPOFFER的DHCP服务器就将已提供的IP地址上锁,使它对任何用户都是不可用的。若客户未收DHCP客户机DHCP服务器IP租借请求IP租借提供IP租借选择IP租借应答到DHCPOFFER报文,它将继续发送DHCPDIS