TCP IP参考模型.doc_第1页
TCP IP参考模型.doc_第2页
TCP IP参考模型.doc_第3页
TCP IP参考模型.doc_第4页
TCP IP参考模型.doc_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章 TCP/IP参考模型4.1 TCP/IP协议栈概述TCP/IP(Transmission Control Protocol/Internet Protocol),传输控制协议/互联网络协议。它是美国国防部高级研究计划局的研究结果,早在20世纪70年代就已诞生,后来被集成在UNIX中使用,进而得到推广。它在20世纪80年代脱颖而出,成为互联网的通信协议。随着互联网的不断壮大,TCP/IP协议也随之不断发展,不仅在广域网上被普遍使用,在局域网上TCP/IP协议也已经取代其他协议而成为被普遍采用的协议。如今,TCP/IP协议已经成为了一种普遍且通用的网络互联标准。TCP/IP协议是以OSI参考模型为框架开发出来的,是一种分层协议。图4-1显示了TCP/IP协议的层次结构域OSI参考模型的对应关系。应用层应用层表示层会话层传输层传输层网络层网络层数据链路层数据链路层物理层物理层图4-1 TCP/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.2 TCP/IP-应用层应用层位于TCP/IP协议族的最上层,相当于OSI参考模型的应用层、表示层和会话层的综合。应用层首先要解决的问题是,协调网络中使用的设备和软件多种多样性的问题,让基于不同系统的用户能够使用相同的资源。应用层通过定义一个抽象的网络虚拟终端来解决这个问题。每一种终端类型,通过将网络虚拟终端和实际终端进行映射,在网络虚拟终端的功能中统一定义如何对资源进行调用和访问。这样用户就可以通过网络虚拟终端调用基于不同系统上的资源。应用层的另一个功能是解决了不同系统中文件传输的问题。不同系统的文件命名方式、文件行表示方法是不一样的,应用层的工作就是让不同系统之间的文件传输不会出现兼容的问题。应用层为用户的各种网络应用开发了许多网络应用程序。例如文件传输、网络管理等,甚至包括路由选择。这里我们重点介绍常用的几种应用层协议。图4-3 TCP/IP协议族的应用层协议文件传输协议(FTP,File Transfer Protocol)是一种文件传输的Internet标准。FTP支持一些文本文件(例如ASCII)和面向二进制流的文件结构。在支持FTP的终端系统间进行相互的文件传输。FTP使用传输层的TCP协议。因此,FTP被认为提供了可靠的面向连接的服务,它适合于远距离、可靠性较差线路上的文件传输。简单文件传输协议(TFTP,Trivial File Transfer Protocol)也是用于文件传输,但TFTP使用UDP提供服务,被认为是不可靠的、无连接的。通常TFTP用于比较稳定、可靠的局域网内部,进行文件传输。简单邮件传输协议(SMTP,Simple Mail Transfer Protocol)支持文本邮件的Internet传输。邮局协议(POP,Post Office Protocol)是一个流行的Internet邮件标准。简单网络管理协议(SNMP,Simple Network Management Protocol)负责网络设备监控和维护,支持安全管理、性能管理等。Telnet协议。Telnet是客户机使用的与远端服务器建立连接的标准终端仿真协议。Http协议(Hypertext Transfer Protocol),是WWW服务程序所用的协议,支持WWW和内部网信息交互,支持包括视频在内的多种文件类型。Http是当今流行的Internet标准。域名系统(DNS,Domain Name System)把网络节点的易于记忆的名字转化为网络地址。引导协议(BOOTP,Bootstrap Protocol)是使用传输层UDP协议动态获得IP地址的协议。下面我们将以Windows2000为网络操作系统平台,对它们一一进行介绍。4.2.1 DHCP(Dynamic Host Configuration Protocol):动态主机配置协议在TCP/IP网络上,每台工作站在访问网络及其资源之前,都必须进行基本的网络配置,一些主要参数诸如IP地址,子网掩码,缺省网关,DNS等必不可少,还可能需要一些附加的信息如IP管理策略之类。在大型网络中,确保所有主机都拥有正确的配置是一件相当困难的管理任务,尤其对于含有漫游用户和笔记本电脑的动态网络更是如此。经常有计算机从一个子网移到另一个子网以及从网络中移出。手动配置或重新配置数量巨大的计算可能要花很长时间,而IP主机配置过程中的错误可能导致该主机无法与网络中的其他主机通信。因此,需要有一种机制来简化IP地址的配置,实现IP的集中式管理。而IETF(Inetenet网络工程师任务小组)设计的动态主机配置协议(DHCP,Dynamic Host Configuration Protocol)正是这样一种机制。DHCP是一种客户机/服务器协议,该协议简化了客户机IP地址的配置和管理工作以及其它TCP/IP参数的分配。基本上不需要网络管理人员的人为干预。网络中的DHCP服务器给运行DHCP的客户机自动分配IP地址和相关的TCP/IP的配置信息。DHCP服务器拥有一个IP地址池,当任何启用DHCP的客户机登录到网络时,可从它那里租借一个IP地址。因为IP地址是动态的(租借)而不是静态的(永久分配),不使用的IP地址就自动返回地址池,供再分配,从而大大节省了IP地址空间。图4-4示意了DHCP的工作模型。而且,DHCP本身被设计成BOOTP(自举协议)的扩展,支持需要网络配置信息的无盘工作站,对需要固定IP的系统也提供了相应支持。本地局域网DHCP客户机DHCP服务器IP地址数据库图-4 4基本DHCP模型在用户的企业中应用DHCP有以下优点:减少错误通过配置DHCP,把手工配置IP地址所导致的错误减少到最低程度,例如已分配的IP地址再次分配给另一设备所造成的地址冲突等将大大减少。减少网络管理TCP/IP配置是集中化和自动完成的,不需要网络管理人员手工配置。网络管理员能集中定义全局和特定子网的TCP/IP配置信息。使用DHCP选项可以自动给客户机分配全部范围的附加TCP/IP配置值。客户机配置的地址变化必须经常更新,比如远程访问客户机经常到处移动,这样便于它在新的地点重新启动时,高效而又自动地进行配置。同时大部分路由器能转发DHCP配置请求,这就减少了在每个子网设置DHCP服务器的必要,除非有其它原因要这样做。DHCP的工作原理我们在介绍DHCP工作原理以前,先解释几个名词的含义:DHCP客户:DHCP客户是一通过DHCP来获得网络配置参数的Internet主机,通常就是普通用户的工作站。DHCP服务器:DHCP服务器是负责提供网络设置参数给DHCP客户的Internet主机。DHCP中继代理:在DHCP客户和服务器之间转发DHCP信息的主机或路由器。DHCP是基于客户机/服务器模型设计的,DHCP客户和DHCP服务器之间通过收发DHCP消息进行通讯。1.DHCP消息类型DHCP主要有以下信消息类型:DHCPDISCOVER:在一台DHCP客户计算机第一次试图登录到网络中时,它通过广播DHCPDISCOVER包请求DHCP服务器的IP地址信息。该包的源IP地址是,因为此时客户机还没有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,也可能不用。目前。早版本的Windows NT Server提供的DHCP服务并不支持该消息类型,其它第三方实现的DHCP软件业可能不能识别该消息类型。不论是DHCP客户还是DHCP服务器,都按照DHCP消息格式要求来填写各个段以形成具体的DHCP消息,DHCP用的传输协议是无连接的UDP(用户数据报协议),从DHCP客户发出的DHCP消息发往DHCP服务器的端口67,DHCP服务器发给客户的DHCP消息发往DHCP客户的端口68,由于在取得服务器赋予的IP之前,DHCP客户并没有自己的IP,所以包含DHCP消息的UDP数据报的IP头的源地址段式,目的地址则是55。2.DHCP租借IP地址的过程当DHCP的客户机第一次启动并试图加入网络时,它执行以下初始化步骤,以便从DHCP服务器获得IP地址。图4-5显示了租借过程。DHCP客户机DHCP服务器IP租借请求IP租借提供IP租借选择IP租借应答图4-5 DHCP租借过程(1) DHCP客户机初始化TCP/IP,在本地物理子网上广播一个DHCPDISCOVER消息,以确定DHCP服务器位置及其IP地址。如果DHCP服务器和客户不再同一个物理子网上,BOOTP中继代理将转发这个消息给DHCP服务器。(2) 由于网络上可能不止一个DHCP服务器,所有具有有效IP地址信息的DHCP服务器会用广播方式发送DHCPOFFER报文响应。在这些报文中DHCP服务器将提供给客户端IP地址。它们还可提供一个租用时间,默认值是1小时。发送DHCPOFFER的DHCP服务器就将已提供的IP地址上锁,使它对任何用户都是不可用的。若客户未收到DHCPOFFER报文,它将继续发送DHCPDISCOVER消息(4次,5分钟一次),直到它从一台DHCP服务器接收到DHCPOFFER消息。(3) 客户机从所提供的地址中选择一个,如果客户端收到了多个DHCPOFFER报文,它会选择最先到达的DHCP服务器提供的OFFER,并使用广播发送DHCPREQUEST报文给所选的DHCP服务器。表明自己已经接收了提供的地址。(4) DHCP服务器响应该消息,指定IP地址信息给客户机并发送一个DHCPACK报文,而所有其它DHCP服务器撤回各自的提议。客户机完成TCP/IP协议的初始化和绑定。配置完成后,客户机就可以使用普通网络通信和连接至其它IP主机时用到的所有IP服务和应用,直到租期结束。在少数情况下,DHCP服务器可能向客户机返回一个否定应答。当客户机请求无效或地址重复时,就会发生这种情况。如果客户机接收到否定应答(DHCPNAK),它就必须重新开始整个租借过程。3.DHCP续订租约DHCP客户机DHCP服务器DHCPREQUESTDHCPACK图4-6 DHCP续约租约过程图4-6示意了DHCP续订租期的操作过程。(1) 客户端使用申请的IP到达50%的租用期之前,客户会发送另一个DHCPREQUEST,请求更新,请求DHCP服务器刷新租期。(2) 若DHCP服务器响应则回应一个DHCPACK数据报,则客户就会得到新的租用协定,并将其计时器复位。若DHCP服务器不同意续租,则使用DHCPNACK数据报响应客户端的请求,那么客户必须停止使用IP地址,并寻找另一个DHCP服务器,重新开始一个申请租约的过程。(3) 如果客户端没有收到DHCP服务器的任何响应的请求,则客户在到达87.5%的租用期时发送另一个DHCPREQUEST数据报,请求更新租期;如果在租用期结束之前收到服务器的响应,根据DHCP服务器的回应信息,执行相关操作。如果依然没有收到服务器的任何回应信息,则持续等待,直到租用期结束,客户端释放原IP,重新开始一个请求过程。当然,客户也可以提前终止租用期。在这种情况下,它会发送一个DHCPRELEASE报文给服务器。4.跨子网的DHCP服务器的部署正如前文中提到的,DHCP的客户端是通过广播的方式和DHCP服务器取得联系的。当DHCP的客户端和DHCP的服务器之间,不在同一个子网内时,DHCP的服务器上虽然会为不同的子网创建不同的地址数据库,但由于DHCP的客户端无法使用广播找到DHCP服务器,DHCP的客户端依然无法获得相应的IP地址。这是我们可以使用两种广播方法解决:在连接不同子网的路由器上允许DHCP功能数据报通过,这种方法需要路由器的支持,同时也可能造成广播流量的增加。如图4-7所示。DHCP客户机DHCP客户机子网1子网2DHCP服务器路由器图4-7 不同子网的DHCP广播另一种方法是使用DHCP的中继代理服务器。如图4-8所示。DHCP中继代理程序和DHCP的客户端位于同一个子网,它会侦听广播的DHCPDISCOVER和DHCPREQUEST消息。然后DHCP中继代理程序会等待一段时间,若没有检测到DHCP服务器的响应,则通过单播方式发送此消息给指定的DHCP服务器。然后该服务器响应该消息,并选择合适的地址,发送给DHCP中继代理程序。接着中继代理程序在DHCP客户机所在的子网上广播此消息。DHCP客户端收到广播后,就获得了相应的IP地址。DHCP服务器是如何确定应该使用哪个数据库的地址响应客户端的请求呢?若要确定使用哪个地址数据库分配地址,DGCP服务器首先检查收到的DHCPDISCOVER消息中的Giaddr(网关IP地址)字段。如果Giaddr为0,则DHCP服务器将使用接收该消息的接口确定数据库。相反,如果Diaddr字段不为0,则该服务器将使用填写该字段的DHCP中继代理程序所在的网段的地址数据库(Diaddr字段由DHCP中继代理程序设置,并包括DHCP客户机的子网信息,它在通过DHCP中继代理程序启动时使用)。DHCP客户机DHCP客户机子网1子网2DHCP服务器DHCP中继代理服务器图4-8DHCP的中继代理服务器4.2.2 DNS(Domain Name Server):域名服务器在Internet上通讯时,每台运行TCP/IP的主机必须有一个用于和网络中其他计算机进行通信的唯一的IP地址,如“7”。为什么当我们在访问某网站时,只需要在浏览器地址栏中输入如一些名称后(例如“”),就能看到我们所需要的页面呢?这是由于在我们输入名称后,有一个称为“DNS服务器”的计算机自动把我们的输入的名称“翻译”成了相应的IP地址,然后调出那个IP地址所对应的网页,最后再传回我们的浏览器,我们才能得到结果。DNS是域名系统(Domain Name System)的缩写,是一种TCP/IP网络服务命名系统。如Internet,用来通过用户的名称定位计算机和服务。当用户在应用程序中输入DNS名称时(例如),DNS通过一个发布式的数据系统来将用户的名称解析为与此名称相关的IP地址。这种命名系统能适应Internet的增长。它主要有3部分组成:域名空间和相关资源记录(RR):它们构成了DNS的发布式数据库系统;DNS名称服务器:是一台维护DNS的分布式数据库系统的服务器,并查询该系统以答复来自DNS客户机的查询请求;DNS解析器:DNS客户机中的一个进程用来帮助客户端访问DNS系统,发出名称来获得解析的结果。1.DNS的域名空间所谓域名空间是指一个逻辑树状层次化结果的命名空间,各机构可以用自己的域名空间创建Internet上不可见的专用网络。如图4-9,显示了Internet域名空间的一部分,从根域到顶级Internet DNS域,以及虚构的名为的DNS域名。orgeducom根INTERNET授权中心richmarktech顶级域rich域图4-9 Internet域名空间标号:在域名空间树上的每一个节点都有一个标号,它是一个最多为63个字符的字符串。DNS要求一个节点的子节点必须具有不同的标号。域名:一组具有相同后缀的计算机构成了DNS中的一个域,这个相同的后缀名称为这个域的域名。通俗地说,DNS域是节点下的一个分支。例如,在图4-9中,就是一个DNS域。DNS域可以包括主机(计算机或服务)和其它域(称为子域)。每个机构都拥有名称空间的某一部分的授权,负责该部分名字空间的管理和划分,并用它来命名DNS域和计算机。因特网上的域名空间:Internet的域名空间由根域、二级域和二级域的子域构成。Internet域名空间的根(最顶层)由Internet名字注册授权机构管理,该机构把域名空间各部分的管理责任分配给连接到Internet的各个组织。DNS根域下面是顶级域,也由Internet名字授权机构管理。常用的顶级域如表4-1所示。表4-1 常用的顶级域顶级域域名用途COM商业机构EDU教育机构GOV美国联邦政府的机构INT国际组织MIL军事组织NET网络支持中心ORG非盈利组织在顶级域以下,Internet名字授权机构把域授权给连到Internet的各个组织。当一个组织获得了Internet名字授权机构对域名空间某一部分的授权后,该组织就负责命名所分配的域及其子域中的计算机和网络设备。并使用DNS服务器管理分配给他的那部分名字空间中主机设备的名字到IP地址的映射信息。完全合格域名(FQDN):DNS域树上的每个节点可以由一个完全合格域名(FQDN)标识。FQDN是DNS域名,其表述是明确的,能准确表示出它相对于DNS域树根的位置。这区别于相对名字,相对名字是相对于某DNS域的,而不是相对于根。计算机和DNS域是根据它们在域树中的位置命名的,例如图4-10,因为rich是.com域的子域,所以其域名就是。一台位于域中的tech计算机的FQDN就是:.。请注意最后的“.”不可缺少,它是根域的标识。richcom根techmark图4-10 子域2DNS的解析过程DNS的客户端使用运行在客户机上的一个本地进程DNS解析器,来访问DNS分布式的数据库系统。DNS解析器会根据用户提供的目标计算机的FQDN名,从右至左依次查询相关的DNS服务器。DNS查询分成两类:递归查询和迭代查询。进行递归名字查询时,递归查询是DNS客户机发送到DNS服务器的查询,在该查询中查询DNS客户机要求DNS服务器提供完整的查询答案,即使DNS服务器接收到递归查询时没有所请求的信息,它也会联系其它服务器来提供答案或名字查询失败的信息。进行迭代名字查询时,DNS客户机允许DNS服务器根据自己的高速缓存或DNS区域提供最佳答案。如果DNS服务器不能答复,则它一般会返回一个指针,指向有下级域名空间授权的DNS服务器,DNS客户机就查询指针指向的DNS服务器,知道查询到DNS服务器或出错。这种类型的查询通常由试图解析DNS客户机的迭代查询的DNS服务器发出。如果Internet上的某一客户机需要的IP地址,它将如何解析呢?下面我们就分析一下DNS的解析过程。如图4-11所示本地DNS服务器解析器根域DNS服务器com DNS服务器DNS服务器18765432递归查询迭代查询图4-11 DNS的解析过程(1) 客户机利用DNS解析器向本地的DNS服务器发送解析域名的递归查询,DNS服务器必须返回一个正确的答案或错误消息。(2) 本地的DNS服务器检查自己的高速缓存及本地的DNS区域以寻找答案。如果没有找到,它会向Internet授权服务器(即根域的DNS服务器)发送解析的迭代查询。(3) Internet根服务器不知道答案,但它返回一个指针,告诉本地DNS服务器.com域的授权服务器。(4) 本地DNS服务器向该.com域服务器发送解析的迭代查询。(5) Com域的授权服务器不知道答案,但它返回一个指针,指向域的授权服务器。(6) 本地DNS服务器向域的授权服务器发送解析的迭代查询。(7) xiwangedu域的授权服务器知道答案,所以它返回所请求的IP地址。(8) 本地DNS服务器将结果告知DNS的客户端,客户端依据此IP和目标服务器建立连接。4.2.3.E-mail应用生活离不开人与人之间的交流。电子邮件(E-mail)是信息时代进行交流最重要的技术之一;它此刻正在世界各地成百上千的计算机间穿梭。在电子邮件刚开始使用时,用户读取邮件必须首先登陆到邮件服务器。邮件程序通常都是基于文本的,缺乏对用户友好的界面。为了解决这一问题,出现了一些效益,它们使邮件消息可以发送到用户桌面,其中,使用最广泛的协议是邮局协议(Post Office Protocol,POP)和简单邮件传送协议(Simple Mail Transfer Protocol)。下面我们将用一个邮件发送和接收的过程来介绍POP3和SMTP,如图4-12。发送方接收方邮件客户端邮件服务器端邮件客户端邮件服务器端图4-12邮件发送和接收的过程用户与电子邮件客户端程序打交道,用于创建和读取邮件消息。而邮件转发则是由邮件服务器完成的。用户通常不和邮件服务器打交道,由系统管理员负责设置本地的邮件服务器。邮局协议(POP)POP协议于1984年定义,并于1988年提出了POP2协议。目前的标准是POP3协议。POP允许本地邮件客户端连接邮件服务器并将邮件取回到用户本地系统名用户也在本地机上阅读和响应消息。POP3的客户端与服务器连接,客户端输入用户名和口令;经过认证后,客户端可通过POP3命令取回或删除邮件。POP3仅仅是接收协议,POP3客户端使用SMTP向服务器发送邮件。简单邮件传输协议(SMTP)SMTP由互联网工程任务组于1982年定义,通过TCP/IP网络处理消息服务。主要是在两个MTA之间进行通信。Windows9x/NT/2K/XP、Mac OS、UNIX、Linux等程序系统都具有SMTP服务器功能。SMTP被设计成在各种网络环境下进行电子邮件信息的传输。实际上,SMTP真正关心的不算邮件如何被传送,而只关心邮件是否能顺利到达目的地。SMTP具有健壮的邮件处理特性,这种特性允许邮件依据一定标准自动路由。SMTP具有当邮件地址不存在时立即通知用户的能力,并且具有在一定时间内不可传输的邮件返回发送方的特点。4.2.4 Telnet的应用Telnet是一种最老的internet应用,起源于APRANET。它的名字是“电信网络协议(Telecommunication Network Protocol)”的缩写词。Telnet给用户提供了一种通过其连网的终端登录远程服务器的方式。Telnet使用的传输层协议为TCP,使用端口号23。Telnet要求有一个telnet服务器程序,此服务器程序通常驻留在主机上。客户端通过运行Telnet客户端程序远程登录到Telnet服务器来实现资源的共享。当用户通过客户端向Telnet服务器发出上网登录请求后,该Telnet服务器将返回一个信号,要求本地用户输入自己的登录名(Login Name)和口令(Password),只有用户返回的登录名与口令正确,登录才能成功。在Internet上,很多主机同时装载有寻求服务的程序和提供服务的程序,也就是既可以作为客户端,也可以作为Telnet服务器使用。Windows2000操作系统有一个内嵌的CLI Telnet应用,假如用户点击一个Telnet链接或从终端敲入Telnet,它就会出现。因此Windows2000不需要第三方的Telnet服务器。如图4-13,在Windows终端的“运行”命令行下直接输入Telnet命令。图4-13在Windows终端的“运行”Telnet4.2.5 FTP/TFTP应用FTP用于实现文件在远端服务器和本地主机之间的传送。它与Telnet一样采用的是TCP的连接。但FTP采用两个缺省端口号:20与21。20端口用于数据传输,21端口用于控制信号的传输。控制信息和数据能够同时传输,这是FTP的特殊之处。FTP的另一个特点是假如用户处于不活跃状态,服务器会自动打开连接,强迫用户在需要时重新建立连接。普通文件传输协议(TFTP)也是用于文件的传输。但它基于UDP的连接,是不可靠的协议,因此TFTP不具有报文监控能力和有效的错误处理能力。一般的操作系统都具有FTP客户端和服务器,我们下面简单描述Windows XP环境下的FTP应用。只要在浏览器中输入相应的地址,即可实现FTP访问。如图4-14所示。图4-14 FTP应用4.2.6 HTTPWWW(World Wide Web),中文称为环球信息网,是一个基于Internet的、全球连接的、分布的、动态的、多平台的交互式图形平台,综合了信息分布技术和超文本技术的信息系统。WWW为用户提供了一个基于浏览器/服务器模型和多媒体技术的友好的图形化信息程序界面。WWW有时也称Web。WWW采用浏览器/服务器(Browser/Server)模式进行工作。所谓浏览器/服务器模式,即用户使用浏览器,向WEB服务器(即网站)提出请求,服务器对用户的请求做出回答后,通过用户程序告诉用户。服务器采用的默认端口号位80。在WWW工作过程中,用户使用本地计算机的浏览器,通过Internet访问分布在世界各地的WWW服务器。WEB服务器和浏览器的产品都比较多。浏览器有Netscape、Windows系统自带的IE(Internet Explorer),以及许多其它厂家开发的浏览器等;WEB服务器,在Windows平台有IIS WEB服务器,UNIX平台下则有Apach等。通过浏览器访问WWW服务器的方法是,在浏览器URL栏中输入HTTP请求,并输入对方WWW服务器的(名称)地址,URL的一般格式为:HTTP:/:端口/注意WWW服务器的默认端口号为80,可以不写,如果WWW服务器在配置时,修改了默认端口号,则要指明端口号。如果请求成功后,WWW服务器就将浏览器请求的网页传到浏览器端。网页一般采用HTML语言编写。HTML由本地浏览器解释,并将网页在浏览器中显示出来。超文本标记语言(HTML,Hyper Markup Language)是一种专门用于描述、建立存储在WWW服务器上的超文本文件的编程语言,HTML文本是由HTML命令组成的描述型文本,HTML命令可以说明文字、图形、动画、声音、表格、链接等对象。HTML必须使用特定的程序即Web浏览器翻译和执行;同时可以使用任何文本编辑器打开网页,查看它的源代码。4.3. TCP/IP - 传输层传输层是TCP/IP协议栈的第四层,它为上一层提供了端到端(end to end)的可靠的信息传递。物理层使我们可以在各个链路上透明地传送比特流。数据链路层则增强了物理层所提供的服务,它使得相邻节点所构成的链路能够传送无差错的帧。网络层又在数据链路层基础上,提供路由选择、网络互连的功能。而对于用户进程来说,我们希望得到的是端到端连接,并且为数据传输提供可靠或不可靠的连接服务。图4-15 TCP/IP协议族的传输层协议4.3.1传输层简介传输层位于TCP/IP协议栈的网络层与应用层之间,它的作用是建立应用间的端到端连接,并且为数据传输提供可靠或不可靠的连接服务。它一般包含以下基本功能:1. 连接管理(Connection Management):这个功能定义了允许两个用户像直接连接一样开始交谈的规则。我们通常把连接的定义和建立的过程称为握手(handshake)。2. 流量控制(Flow Control):就是以网络能普遍接受的速度发送数据,从而防止网络拥塞造成数据包的丢失。传输层独立于低层而运行。数据链路层的流量控制功能与传输层的流量控制区别在于:传输层定义了端到端用户之间的流量控制,数据链路协议定义了两个中间的相邻节点的流量控制。3. 差错校验(Error Detection):数据链路层的差错校验功能提供了可靠的链路传输,但仍无法保证源点和目的之间的传输完全无错。比如网络中的路由器收到了完整无缺的IP分组,但是在将含有分组的帧重新格式化的过程中出现了影响分组内容的错误。这种错误可能是由于软件或硬件问题导致路由器在进行分组期间引起的,也就是说并不是物理链路在进行数据传输的过程中产生的差错。传输层的差错检测机制会检测到这类型的错误。4. 对用户请求的响应(Response to Users Request)包括对发送和接收数据请求的响应,以及特定请求的响应。如用户可能要求高吞吐率、低延迟或可靠的服务。5. 建立无连接或面向连接的通信:TCP/IP协议的TCP提供面向连接的传输层服务,UDP则提供无连接的传输层服务。在TCP/IP协议的传输层中主要有传输控制协议(TCP)和用户数据报协议(UDP)。虽然它们都使用了相同的不可靠的网络层协议IP,但是TCP与UDP却为应用层提供了完全不同的服务。TCP是面向连接的协议,为用户提供可靠的传输服务,适用于要求可靠的一次传送大批量的数据的传输,目前大多数的应用程序都采用该协议。UDP是无连接的协议,为用户提供的服务也不可靠,它用于多次的每次传送少量数据的传输,传输过程中的问题由应用层负责解决。以下我们详细介绍TCP、UDP协议是如何实现其功能的。传输层TCPUDP网络层IP图4-16 TCP/UDP在层次结构中的位置前面提到传输层协议实现应用进程间端到端的通信。这里我们先对用以建立和识别端到端通信的端口和套接字概念做一介绍。主机上的进程是提供端口号来进行区分的。计算机中的不同进程可能同时进行通信,这时它们会用端口号进行区别,由网络地址和端口号的组合达到唯一标识的目的,即套接字(Socket)。TCP和UDP都使用端口和套接字的概念。在建立或确认两个互连的计算机系统之间的连接情况的时候,端口和套接字是非常重要的概念。源和目的端口用于确认上层源和目的过程访问TCP/IP访问的地方。套接字是IP地址加上一个端口。发送套接字=源IP地址+源端口号接收套接字=目的IP地址+目的源端口号表4-2说明了一些最经常使用的TCP/IP应用程序和它们相关的端口号。通常端口号的应用是有规定的,低于255的端口号保留用于公用,如保留的TCP端口号有HTTP 80、FTP20/21、TELNET 23、SMTP 25、DNS 53等。255到1023应用于各个公司。1023以上的端口号称为临时端口号。在设计IP访问控制功能时,知道一个特定的TCP/IP应用程序层服务使用了哪一个端口是非常重要的。表4-2 保留的TCP/IP服务和传输服务名称协议端口DNS域名服务TCP,UDP53SMTP简单邮件传输协议TCP25FTP-Data文件传输协议-数据TCP20和1023FTP文件传输协议TCP21TelnetTCP23NTP网络时间协议TCP,UDP123NNTP网络新闻传输协议TCP119HTTP超文本传输协议TCP804.3.2 TCP协议TCP协议是面向连接的端到端的可靠的传输层协议。它支持多种网络应用程序,对下层服务没有多少要求,同时假定下层只能提供不可靠的数据报服务,并可以在多种硬件构成的网络上运行。图4-17表明了TCP在层次式结构中的位置,它的下层是IP协议。为了在并不可靠的网络上实现面向连接的可靠的传送数据,TCP 必须解决可靠性、流量控制问题。基于TCP协议的用户不必担心最大传输量,TCP将所要传输的数据划分成较小的尺寸、重传丢失的片段、将乱序的数据重新排列,确保数据传输完全正确。应用程序为了传送数据会调用TCP,将数据和相应的参数传送给TCP,将TCP数据包封装在IP包内,通过网络送给目的TCP。接收方TCP在接收到数据后通知上层应用程序,TCP将保证接收数据的正确性。在实现TCP的主机上,TCP可以被看成是一个模块,和文件系统区别不大,TCP也可以调用一些操作系统的功能,TCP不直接和网络打交道,控制网络的任务由专门的设备驱动模块来完成。TCP只是调用IP接口,IP向TCP提供所有TCP需要的服务。TCP收到应用层提交的数据后,将其分段,并在每个分段前封装一个TCP的报头。图4-17显示TCP首部的数据格式。TCP的报头由一个20字节的固定长度,加一个变长的选项字段组成。16位的源端口号16位的目的端口号32位的顺序号32位的确认号保留urgAckpshrstsynfin16位的窗口大小16位的校验和16位的窗口紧急指针选项数据图4-17 TCP分段的头部格式TCP报头的各字段含义如下所述:源端口和目的端口(Source Poet/Destination Port,16比特):在每一个分段的头部中都包含有源端口号和目的端口号,用于定位源端的应用进程和目的端的应用进程。通过IP地址可以唯一的在网络上确定一台主机;而通常我们的每一台机器上都会有多个进程在同时运行,都可能向网络的服务器提出服务的请求或向网络中的其他客户提供服务。我们通过端口号来区分不同的应用进程。例如当某一台客户机的应用程序要向某一服务器提出WWW服务的请求时,用目的端口号80来向收到请求的服务器表明它所请求的服务为WWW服务;如果同时该机器的另一应用程序向服务器提出FTP服务的请求时,则用目的端口号21来表示它所需要的服务类型为FTP。这样就很好地保证了在多个应用同时需要进行数据传输时传输的数据不至于混淆。序列号和确认号(Sequence Number/Acknowledgement,32比特):TCP发送的流中的每个字节都是编号的。TCP还使用此字段作为初始呼叫连接策略的一部分。使用32比特允许最多40亿个序列号,这是很重要的,这样序列号重复的机会几乎被排除了。而确认号表示发送者希望对方发送的下一个字节的序列号。窗口(16比特):此字段告诉接收这个段的TCP实体,除了那些已被确认的,它还可以发送多少数据字节。它大致对应于滑动窗口协议的窗口尺寸。反过来,接收字节流的TCP实体可以使用此字段来改变发送端的窗口的大小。校验和(16比特):用于传输层差错校验检测。校验和算法将TCP段的内容转换为一系列16比特的整数,并将它们相加。接收方根据校验和判断传输是否正确。数据(可变大小):用户提供的数据。头长度(4比特):以4字节为单位表示TCP头的大小。头长度随可变长度选项字段而改变,通过这个字段同时可以判断该TCP数据段的开始位置和结束位置。标志(6比特):标志字段包含6个标志位,它说明了其他字段含有有意义的数据或说明某种控制功能。例如,ACK和URG,说明了确认和紧急数据指针是否含有有意义的数据。还有另外4种标志如下:FIN(完成):指出是最后的TCP数据段,用于连接中止过程。PSH(推):通常TCP决定一个段何时含有足够的数据可以进行传输。在有些情况下,使用Push命令强迫TCP提早发送段。例如,一个交互应用可以在用户从键盘输入一行后,发布一个推命令。这么做能提供比TCP在发送之前缓冲多行输入的更平滑的响应。当TCP收到一个推命令后,它就在段中设置PSH字段。当输入端中设置了PSH自动,接收TCP实体立即向应用程序提供这个段。如果这个应用是在屏幕上显示输入数据,则此机制提供了快速平滑的显示。RST(复位):发送实体指示接收实体应当中断传输连接。在异常情况出现时使用此标志,使两个实体都终止连接,暂停数据流,释放与连接有关的缓冲空间。SYN(同步):在建立初始连接时使用,它允许两实体同步初始序列号。紧急指针(Urgent Pointer,16比特):只有当URG标志1时才有效。紧急指针是一个正的偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。TCP的紧急方式是发送端向另一端发送紧急数据时采用,通知接收方紧急数据已放置在普通数据流中。选项(可变长度):选项字段用于确定TCP实体可从其他实体收到的段的最大尺寸。通常在建立初始连接时规定此值。这是一个重要选项,因为TCP可能连接了两台数据处理能力相差很大的计算机,为了防止数据拥塞,要求每台计算机都了解另一台的所有限制(如缓冲区大小)。例如,一台服务器不能一次发送太大的数据段导致PC机无法处理,PC会在建立连接时确定它可接受的最大段尺寸。TCP协议是一个面向连接的可靠的传输控制协议,在每次数据传输之前需要首先建立连接,当连接建立成功后才开始传输数据,数据传输结束还有断开连接。这一过程与打电话很相似,先拨号振铃,等待对方摘机说“喂”,然后才说明是谁。由于TCP使用的网络层协议IP是一个不可靠、无连接的数据报传输服务,为确保连接的建立和终止都是可靠的,TCP使用三次握手(3-way handshake)的方式来建立可靠的连接,也就是说其中交换了三个消息;结束TCP连接则采用四次握手来实现。TCP使用报头中的标志同步段(Synchronization Segment,SYN)来描述创建一个连接的三次握手中的消息,用结束段(FIN segment,FIN是finish的简写)来描述关闭一个连接的消息。另外,握手过程确保TCP只有在两端一致的情况下,才会打开或关闭一个连接。创建一个连接的三次握手过程中要求每一端产生一个随机32位序列号。因为每一个新的连接用的是一个新的随机序列号。TCP连接的建立采用三次握手的方式,如图4-18所示。请求端数据包数据包SYN请求端初始序列号SYN接收端初始序列号ACK接收端确认序列号ACK请求端确认序列号数据包接收端图4-18 TCP连接的建立首先,需要建立连接的双方(如客户/服务器)的一方的接收端(服务器)能够被动地等待,另一方的请求端(客户)发送一个初始(SYN)的数据包到接收端,以指明其打算连接到的服务器的IP地址和端口号,以及双方建立连接的初始序列号;并设置其能够接收的TCP段的上限和一些可选项(如口令)。接着,接收端会检查请求端发送来的数据包,看是否包含以上所提到的内容。如果没有上述内容,则会发送一个应答数据包,以指明拒绝该连接的建立。如果把包含必须的内容且某个应用程序正在对所含的端口进行侦听,接收端会发回包含接收端初始序列号的SYN数据包作为应答。同时将确认序列号设置为:请求端发送来的初始序列号+1,从而对请求端的SYN数据包进行确认。最后,请求端必须对接收端的SYN数据包进行确认,即将确认序号设置为接收端的初始序列号+1,以对服务器的SYN数据包进行确认。通过以上步骤,TCP建立过程中的请求端和接收端分别向对方发送了用于同步的SYN数据包,并且分别为对方的SYN数据包进行了确认。双方都确认可以

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论