免费智能真题库 > 历年试卷 > 电子商务设计师 > 2011年下半年 电子商务设计师 上午试卷 综合知识
  第55题      
  知识点:   应用层   SNMP   TCP   TCP/IP   TCP/IP协议   TCP/IP协议簇   
  关键词:   TCP/IP   协议   TCP        章/节:   电子商务系统网络技术       

 
SNMP协议属于TCP/IP协议中的(55)。
 
 
  A.  应用层
 
  B.  传输层
 
  C.  网络层
 
  D.  网络接口层
 
 
 

 
  第27题    2015年下半年  
   42%
OSI模型中,将比特流或字符流转换成帧格式的功能属于(27)。
  第26题    2016年下半年  
   64%
用户上传或下载文件,是OSI模型中(26)提供的服务。
  第56题    2016年下半年  
   49%
在OSI参考模型中,实现路由选择、拥塞控制及网络互联等功能的层是(56)。
   知识点讲解    
   · 应用层    · SNMP    · TCP    · TCP/IP    · TCP/IP协议    · TCP/IP协议簇    · 
 
       应用层
        应用层根据不同用户的各种需求,向用户提供所需的网络应用程序服务。TCP/IP协议的应用层提供了网上计算机之间的各种应用服务。例如,FTP(文件传输协议)、SMTP(简单邮件传输协议)、DNS(域名系统)等。这些实用程序通过Socket接口与各种应用协议相连接。应用层的网络应用程序(协议)也多种多样,这些应用程序包括以下三类:
        第一类与下一层的UDP相配合,如SNMP(简单网络管理协议),用于管理IP网络的节点,后来也能管理互连的集线器和计算机等设备:RPC(远程过程调用),它以简便的方式支持Internet的客户机—服务器分布式计算模式等等。
        第二类与下一层的TCP相配合,如Telnet(远程登录协议),它是提供远程终端连接服务的标准协议,能使某个用户终端犹如直接连通到一台远程计算机上一样;FTP(文件传输协议),它使一台计算机上的用户能在另一台计算机上取得文件,或者把文件传送给另一台计算机;SMTP(简单邮件传输协议),用于不同计算机之间的电子邮件传输,不过只限于服务器到服务器等。
        第三类与下一层的TCP和UDP都有相互配合关系。例如DNS(域名的命名系统协议),它实际上是为网上主机命名的一组规则。
 
       SNMP
        1)SNMP概述
        SNMP的前身是简单网关监控协议(SGMP),用来对通信线路进行管理。随后对其改进并加入了符合Internet定义的SMI和MIB体系结构,改进后的协议就是著名的SNMP。SNMP的目标是管理Internet上众多厂家生产的软硬件平台,因此SNMP受Internet标准网络管理框架的影响很大。SNMP的体系结构如下图所示。
        
        SNMP的体系结构
        SNMP的体系结构围绕以下4个概念和目标进行设计。
        ◆使管理代理的软件成本尽可能低。
        ◆最大限度地保持远程管理的功能,以便充分利用Internet上的网络资源。
        ◆体系结构必须有扩充的余地。
        ◆保持SNMP的独立性,不依赖于具体的计算机、网关和网络传输协议。
        在SNMP的改进版本SNMPv2中,又加入了保证SNMP体系本身安全性的目标。
        另外,SNMP中提供了以下4类管理操作。
        ◆get操作:用来提取特定的网络管理信息。
        ◆get-next操作:通过遍历操作来提供强大的管理信息的提取能力。
        ◆set操作:用来对管理信息进行控制(修改、设置)。
        ◆trap操作:用来报告重要的事件。
        各种操作的执行如下图所示。
        
        SNMP的4种操作
        2)SNMP管理控制框架与实现
        (1)SNMP管理控制框架。
        SNMP定义了管理进程(Manager)和管理代理(Agent)之间的关系,这个关系被称为共同体(Community)。描述共同体的语义是非常复杂的,但其句法却很简单。位于网络管理工作站(运行管理进程)和各网络元素上,利用SNMP相互通信,并对网络进行管理的软件统称为SNMP应用实体。若干个应用实体和SNMP组合起来形成一个共同体,不同的共同体之间用名字来区分。共同体的名字必须符合Internet的层次结构命名规则,由非保留字符串组成。此外,一个SNMP应用实体可以加入多个共同体。
        SNMP的应用实体对Internet管理信息库中的管理对象进行操作。一个SNMP应用实体可操作的管理对象子集称为SNMP MIB授权范围。SNMP应用实体对授权范围内管理对象的访问还有进一步的访问控制限制,比如只读、读/写等;SNMP体系结构中要求每个共同体都规定其授权范围及其对每个对象的访问方式。记录这些定义的文件被称为共同体定义文件。
        SNMP的报文总是源自每个应用实体,报文中包括该应用实体所在的共同体的名字。这种报文在SNMP中称为有身份标识的报文,共同体名字是在管理进程和管理代理之间交换管理信息报文时使用的。管理信息报文中包括以下两部分内容。
        ◆共同体名:加上发送方的一些标识信息(附加信息),用以验证发送方确实是共同体中的成员。共同体实际上就是用来实现管理应用实体之间身份鉴别的机制。
        ◆数据:这是两个管理应用实体之间真正需要交换的信息。
        第三版本前的SNMP只是实现了简单的身份鉴别,接收方仅凭共同体名来判定收发双方是否在同一个共同体中,而前面提到的附加信息尚未应用。接收方在验明发送报文的管理代理或管理进程的身份后要对其访问权限进行检查。访问权限检查涉及以下因素。
        ◆一个共同体内各成员可以对哪些对象进行读、写等管理操作,这些可读写对象称为该共同体的授权对象(在授权范围内)。
        ◆共同体成员对授权范围内每个对象定义了访问模式:只读或可读写。
        ◆规定授权范围内每个管理对象(类)可进行的操作(包括get、get-next、set和trap)。
        ◆管理信息库(MIB)限制对每个对象的访问方式(如MIB中可以规定哪些对象只能读而不能写等)。
        管理代理通过上述预先定义的访问模式和权限,来决定共同体中其他成员要求的管理对象访问(操作)是否允许。共同体概念同样适用于转换代理(Proxy Agent),只不过转换代理中包含的对象主要是其他设备的内容。
        (2)SNMP的实现方式。
        为了提供遍历管理信息库的手段,SNMP在其MIB中采用了树状命名方法对每个管理对象的实例进行命名。每个对象实例的名字都由对象类名字加上一个后缀构成,对象类的名字是不会相互重复的,因而不同对象类的对象实例之间也很少有重名的危险。
        在共同体的定义中一般要规定该共同体授权的管理对象的范围,相应地也就规定了哪些对象实例是该共同体的"管辖范围"。据此,共同体的定义可以想象为一个多叉树,以字典序提供了遍历所有管理对象实例的手段。有了这个手段,SNMP就可以使用get-next操作符,顺序地从一个对象找到下一个对象。get-next(object-instance)操作返回的结果是一个对象实例的标识符及其相关信息,该对象实例在上面的多叉树中紧排在指定标识符object-instance对象的后面。这种手段的优点在于:即使不知道管理对象实例的具体名字,管理系统也能逐个地找到它,并提取到它的有关信息。遍历所有管理对象的过程可以从第一个对象实例开始(这个实例一定要给出),然后逐次使用get-next,直到返回一个差错(表示不存在的管理对象实例)结束(完成遍历)。
        由于信息是以表格形式(一种数据结构)存放的,在SNMP的管理概念中,把所有表格都视为子树,其中一张表格(及其名字)是相应子树的根节点,每个列是根下面的子节点,一列中的每个行则是该列节点下面的子节点,并且是子树的叶节点,如下图所示。
        
        管理信息库中的对象标识
        因此,按照前面的子树遍历思路,对表格的遍历是先访问第一列的所有元素,再访问第二列的所有元素……直到最后一个元素。若试图得到最后一个元素的"下一个"元素,则返回差错标记。
        SNMP中的各种管理信息大多以表格形式存在,一个表格对应一个对象类,每个元素对应于该类的一个对象实例。那么,管理信息表对象中单个元素(对象实例)的操作可以用前面提到的get-next方法,也可以用get/set等操作。下面主要介绍表格内一行信息的整体操作。
        ◆增加一行:通过SNMP只用一次set操作就可在一个表格中增加一行。操作中的每个变量都对应于待增加行中的一个列元素,包括对象实例的标识符。
        ◆删除一行:删除一行也可以通过SNMP调用set操作,将该行中的任意一个元素(对象实例)设置成"非法"即可。
        至于删除一行时,表中的一行元素是否真的在表中消失,则与每个设备(管理代理)的具体实现有关,因此管理进程必须能通过各数据字段的内容来判断数据的合法性。
        3)SNMP协议
        SNMP是一个异步的请求/响应协议,即SNMP的请求和响应之间没有必定的时间顺序关系,换句话说,SNMP是一个面向无连接的协议。这样,SNMP实体不需要在发出请求后立即等待响应的到来,因此SNMP响应也可能丢失或出现错误。SNMP中设计了四种基本协议的交互过程。
        第一种情况是管理进程从管理代理处提取管理信息。管理进程通过SNMP和传输网络发送get-request给管理代理,请求中包括管理对象的标识符等参数;管理代理收到请求后返回相应内容的get-response,响应中包括待提取的管理信息。
        第二种情况是管理进程在管理代理的可见范围内遍历一部分管理对象实例。管理进程通过SNMP和传输网络发送get-next-request给管理代理,管理代理收到后完成遍历的一次操作,用get-response将遍历结果返回给管理进程。
        第三种情况是管理进程在管理代理中存储信息,即对管理代理的管理信息库(MIB)进行写操作(包括设置工作参数)。管理进程发送一个set-request给管理代理,由管理代理完成set操作,然后用set-response返回操作结果。
        第四种情况则是管理代理主动向管理进程报告事件。管理代理通过SNMP和传输网络将trap发送给管理进程,这个操作没有响应。
        注意:上面的各个请求都是管理进程发给管理代理的,响应则都是由管理代理发给管理进程的。只有trap是无响应的,由管理代理单向发给管理进程。另外,请求、响应和trap的传输处理都要受"共同体"定义的限制,包括访问权限。
        SNMP协议是一个对称协议,没有主从关系。SNMP上的管理进程和管理代理都可以得到SNMP完全相同的服务。下面对SNMP协议的部分特点和关键内容进行介绍。
        (1)管理信息报文。
        在大多数SNMP操作中都使用一个相同的报文数据结构。对于前面提到的身份鉴别方法,报文中包含三种数据(信息)传递给专门的"身份鉴别实体":共同体名称、有关数据和发送方SNMP实体的传输层地址。
        身份鉴别实体负责验证发送方是否是合法的对等实体,并返回两种可能的结果:一种结果是返回本次报文中的SNMP协议数据类型和发送方SNMP实体的权限标识符;另一种结果是返回例外。其中第一种结果表明发送方SNMP实体确实是本共同体的成员之一,接收方SNMP实体接下来对它进行处理。第二种结果("例外")表明发送方SNMP实体并非本共同体成员,不能接受此报文,并且接收方SNMP实体还可能根据配置产生一个"身份非法"的trap事件。
        (2)协议数据单元及其管理操作。
        SNMP协议实体之间的协议数据单元(PDU)只有两种不同的结构和格式,一个PDU格式在大部分操作中使用,而另一个则只在trap操作中作为trap的协议数据单元。
        PDU一般包含多个代表特殊意义的字段:request-id是一个整数值,用来区分不同的PDU;error-status反映管理操作是成功还是失败;error-index表明操作中哪个变量错误;variable-bindings是一系列变量的清单,序列中每一项包含一个变量名及其变量值。
        在SNMP中,接收方完成身份鉴别并得到共同体定义信息之后,SNMP实体根据PDU内容执行以下几种操作:get操作,根据变量名取出指定的对象实例;get-next操作,该操作与get操作不同,不是取变量名指定的对象实例,而是取出变量名指定的对象实例的按字典排序的下一个对象实例;set操作,对指定对象实体的值用请求中的新值替换;get-response对get/set报文做出响应并返回操作结果,收到该响应报文的操作请求方首先根据报文中的request-id在记录中查找有无这个序号的请求,如果没有则丢弃该响应,否则接收该响应,管理进程要进行响应处理。
        (3)trap操作。
        trap是一种捕捉事件并报告的操作,实际上几乎所有网络管理系统和管理协议都具有这种机制。trap在OSI网络管理国际标准中称为"事件和通报",一般都简称为事件报告。
        为了减少管理信息的业务流量,管理代理负责对管理对象的trap进行检查,管理检查可以设置检查条件,这样,管理进程就可以在一定程度上控制trap报告过程。引入trap报告的最大好处是许多重要事件的发生得以及时让管理进程知道。因为一般只有比较关键的trap事件才确实需要报告,再加上每个trap事件都很简短,因此由于trap而引入的不确定管理信息业务量是较少的,但却能大大改善网络管理的时效性。
        由于事件多种多样,各种事件的发生环境也不一样,trap操作的复杂性比前面讲的几种操作都大,SNMP的trap操作PDU中的字段类型也较多。这些trap操作PDU中的字段包括:enterprise,记录发送trap事件的管理代理的标识符;agent-addr,管理代理的网络节点地址;generic-trap,描述该trap操作报告是哪一种异常事件;specific-trap,给出各管理代理自行定义的trap事件代码;time-stam,表示trap事件发生的时刻;variable-bindings,给出一组变量,这些变量及其值给出了与trap事件有关的详细信息。
        当管理代理检测到一个例外或异常事件发生时,管理代理首先要判断需要将该事件报告给哪个或哪些管理进程。对每个管理进程,管理代理要选择相应的共同体号,由SNMP协议实体按照前面的字段格式构造trap报告的PDU,再将其发送出去。
        (4)SNMP PDU的传输。
        SNMP的设计是独立于具体的传输网络的,也就是说,它既可以在TCP/IP的支持下操作,也可以在OSI的传输层协议支持下完成操作,甚至可以在以太网的直接支持下实现操作。其中对OSI传输层的服务没有要求,既可以是有连接的服务,也可以是无连接的服务。为了实现上述目标,Internet组织定义了若干映射标准,规定了如何将SNMP协议数据单元PDU映射到下层的无连接传输请求上去。
        在所有各种映射定义中,有一点是相同的,即所有SNMP报文数据是通过一个"顺序化"过程在网络上传输的,这个顺序化过程可以将任意结构的数据编码成一个有序的字符串进行传送。对方收到这些字符串后则按照完全相同的语法将它们解码成原来的数据结构。
        (5)MIB中为SNMP定义的管理对象。
        在Internet的第二版管理信息库(MIB-Ⅱ)中,为SNMP应用实体定义了若干管理对象,其中包括SNMP的各种服务原语、各种收发协议数据单元、各种参数指示或统计变量等,凡SNMP中可操作的数据结构或变量都包括在内,下面将详细介绍。
 
       TCP
        TCP是面向连接的通信协议,通过三次握手建立连接,通信完成时要拆除连接,由于TCP是面向连接的,所以只能用于端到端的通信。
        TCP提供的是一种可靠的数据流服务,采用“带重传的肯定确认”技术实现传输的可靠性。TCP还采用一种称为“滑动窗口”的方式进行流量控制,所谓窗口,实际表示接收能力,用以限制发送方的发送速度。
        如果IP数据包中有已经封装好的TCP数据包,那么IP将把它们向“上”传送到TCP层。TCP将包排序并进行错误检查,同时实现虚电路之间的连接。TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包则可以被重传。
        TCP将它的信息发送到更高层的应用程序,例如Telnet的服务程序和客户程序。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层、设备驱动程序和物理介质,最后传送到接收方。
        面向连接的服务(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它们使用了TCP。DNS在某些情况下使用TCP(发送和接收域名数据库),但使用UDP传送有关单个主机的信息。
 
       TCP/IP
        由于OSI协议的实现较为复杂,运行效率低,很少有厂商推出符合OSI标准的商用产品。目前,互联网上广泛使用的是TCP/IP。TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/互联网络协议)是Internet上不同子网之间的主机进行数据交换所遵守的网络通信协议。TCP/IP一般泛指所有与Internet有关的一系列网络协议的总称,其中TCP和IP是其中最重要的两个协议。TCP/IP体系结构主要由四层构成,分别为网络接口层、网络层、传输层和应用层。
        TCP/IP采用的四层体系结构与OSI参考模型采用的七层体系结构是对应的,它们的结构对比如下图所示。
        
        TCP/IP与OSI体系结构的对比
               网络接口层
               网络接口层也称链路层(Link Layer)或数据链路层,相当于OSI/RM参考模型的第1层和第2层,负责与网络中的传输介质打交道。常用的链路层技术主要有以太网(Ethernet)、令牌环(Token Ring)、光纤数据分布接口(FDDI)、X.25、帧中继(Frame Relay)、ATM等。
               网络层
               网络层的作用是将数据包从源主机发送出去,并且使这些数据包独立地到达目标主机。数据包传送过程中,到达目标主机的顺序可能不同于它们被发送时的顺序。因为网络情况复杂,随时可能有一些路径发生故障或是网络中的某处出现数据包的堵塞。网络层提供的服务是不可靠的,可靠性由传输层实现。
               传输层
               传输层提供应用程序之间的通信。传输层提供了可靠的传输协议TCP和不可靠的传输协议UDP。TCP是一个可靠的、面向连接的协议,允许在因特网上的两台主机之间进行信息的无差错传输。在网络传输过程中,为了保证数据在网络中传输的正确、有序,要使用“连接”的概念,一个TCP连接是指在传输数据前先要传送三次握手信号,以使双方为数据的传送做准备。UDP是用户数据报协议,使用此协议时,源主机一有数据就发送出去,不管发送的数据包是否能到达目标主机、数据包是否会出错,收到数据包的主机都不会通知发送方其是否正确地收到了数据,因此UDP是一种不可靠的传输协议。
               应用层
               应用层直接为用户的应用进程提供服务,如支持万维网应用的HTTP,支持电子邮件的SMTP,支持文件传送的FTP等。
 
       TCP/IP协议
               TCP/IP概述
               在诸多网络互联协议中,传输控制协议/网际协议(Transmission Control Protocol/Internet Protocol, TCP/IP)是一个使用非常普遍的网络互联标准协议。TCP/IP协议是美国国防部高级计划研究局(DARPA)为实现ARPANet(后来发展为Internet)互联网而开发的,也是很多大学及研究所多年的研究及商业化的结果。目前,众多的网络产品厂家都支持TCP/IP协议,TCP/IP事实上已成为一个工业标准。
               TCP/IP协议是计算机网络互联中使用最广泛的协议,它规定了计算机之间互相通信的方法。TCP/IP是为了使接入因特网的异种网络、不同网络设备之间能够进行正常的数据通信,而预先制订的一簇大家共同遵守的格式和约定。
               TCP/IP协议簇包括TCP、IP、UDP、ICMP、RIP、Telnet、FTP、SMTP和ARP等许多协议,对因特网中主机寻址方式、主机的命名机制、信息的传输规则以及各种各样的服务功能均做了详细约定。
               TCP/IP协议的结构
               TCP/IP也是一个分层结构,TCP/IP分为4层,由下到上分别是网络接口层、网络层、传输层和应用层。
               1)网络接口层
               网络接口层是TCP/IP软件的最底层,负责接收IP数据报并通过网络将其发送,或者从网络上接收物理帧,抽出IP数据报交给IP层。
               一般情况下,各物理网络可以使用自己的数据链路层协议和物理层协议,不需要在数据链路层上设置专门的TCP/IP协议。但是,当使用串行线路连接主机与网络,或连接网络与网络时(如用户使用电话线和Modem接入因特网或两个相距较远的网络通过数据专线互联时),则需要在数据链路层运行专门的SLIP(Serial Line IP)协议的PPP(Point to Point Protocol)协议。
               SLIP协议提供在串行通信线路上封装IP分组的简单方法,使远程用户能通过电话线和Modem方便地接入TCP/IP网络。
               SLIP是一种简单的组帧方式,使用时还存在一些问题。首先,SLIP不支持在连接过程中的动态IP地址分配,通信双方必须事先告知对方IP地址,这给没有固定IP地址的个人用户上Internet带来了很大的不便;其次,SLIP帧中无协议类型字段,因此它只能支持IP协议;再有,SLIP帧中无校验字段,因此链路层上无法检测出传输差错,必须由上层实体或具有纠错能力的Modem来解决传输差错问题。
               为了解决SLIP协议存在的问题,在串行通信应用中又开发了PPP协议。PPP协议是一种有效的点一点通信协议,它由串行通信线路上的组帧方式,用于建立、配置、测试和拆除数据链路的链路控制协议(LCP)及一组用以支持不同网络层协议的网络控制协议(Network Control Protocol, NCP)3部分组成。
               由于PPP帧中设置了校验字段,因而PPP在链路层上具有差错检验的功能。PPP中的LCP协议提供了通信双方进行参数协商的手段,并且提供了一组NCPs协议,使得PPP可以支持多种网络层协议,如IP、IPX、OSI等。另外,支持IP的NCP提供了在建立连接时动态分配IP地址的功能,从而解决了个人用户上Internet的问题。
               2)网络层
               网络层中含有4个重要协议,即网际协议(IP)、网际控制报文协议(ICMP)、地址解析协议(Address Resolution Protocol, ARP)和反向地址解析协议(RARP)。
               网络层的功能主要由IP协议提供。除了提供端到端的分组分发功能外,IP协议还提供了很多扩充功能。例如,为了克服数据链路层对帧大小的限制,网络层提供了数据分块和重组功能,这使得很大的IP数据报能以较小的分组在网上传输。
               网络层的另一个重要服务是在互相独立的局域网上建立互联网络,即网际网。网间的报文来往根据其目的IP地址通过路由器传到另一网络。
               (1)网际协议(IP)。
               网络层最重要的协议是网际协议(IP),它将多个网络连成一个互联网,可以把高层的数据以多个数据报的形式通过互联网分发出去。
               IP协议的基本任务是通过互联网传送数据报,各个IP数据报之间是相互独立的。主机上的IP层向运输层提供服务。IP从源运输实体取得数据,通过它的数据链路层服务传给目的主机的IP层。IP协议不保证服务的可靠性,在主机资源不足的情况下,它可能丢弃某些数据报,同时IP协议也不检查被数据链路层丢弃的报文。
               在传送时,高层协议将数据传送给IP协议,IP协议再将数据封装为IP数据报,并交给数据链路层协议通过局域网传送。若目的主机直接连在本网中,IP可直接通过网络将数据报传给目的主机;若目的主机在远程网络中,则IP路由器传送数据报,而路由器则依次通过下一网络将数据报传送到目的主机或再下一个路由器。也即一个IP数据报是通过互联网络,从一个IP模块传到另一个IP模块,直到目的主机为止。
               需要连接独立管理的网络路由器,可以选择它所需的任何协议,这样的协议称为内部网关协议(Interior Gateway Protocol, IGP)。在IP环境中,一个独立管理的系统称为自治系统。
               跨越不同管理域的路由器(如从专用网到PDN)所使用的协议,称为外部网关协议(Exterior Gateway Protocol, EGP),EGP是一组简单的定义完备的正式协议。
               从IP协议的功能可以知道,IP提供的是一种不可靠的无连接的报文分组传送服务。若路由器或交换机故障使网络阻塞,就需要通知发送主机采取相应措施。
               (2)网际控制报文协议(ICMP)。
               为了使互联网能报告差错,或提供有关意外情况的信息,在IP层加入了一类特殊用途的报文机制,即网际控制报文协议(Internet Control Message Protocol, ICMP)。ICMP是IP正式协议的一部分,ICMP数据报通过IP送出,因此它在功能上属于网络第三层。
               分组接收方利用ICMP来通知IP模块,发送某些方面所需的修改。ICMP通常是由发现别的站发来的报文有问题的站产生的。例如,可由目的主机或中继路由器来发现问题并产生有关的ICMP数据报。如果一个分组不能传送,ICMP便可以被用来报告分组源,说明有网络、主机或端口不可达。ICMP也可以用来报告网络阻塞。
               (3)地址解析协议(ARP)。
               在TCP/IP网络环境下,每个主机都分配了一个32位的IP地址,这种互联网地址是在国际范围内标识主机的一种逻辑地址。为了能让报文在物理网上传送,必须要知道彼此的物理地址。这样,就存在把互联网地址变换为物理地址的地址转换问题。以以太网(Ethernet)环境为例,为了正确地向目的站传送报文,必须把目的站的32位IP地址转换成48位以太网目的地址(DA)。这就需要在网络层有一组协议将IP地址转换为相应物理网络地址,这组协议就是ARP。
               在进行报文发送时,如果源网络层给的报文只有IP地址,而没有对应的以太网地址,则网络层广播ARP请求以获取目的站信息,而目的站必须回答该ARP请求。这样源站点可以收到以太网48位地址,并将地址放入相应的高速缓存(Cache)。下一次源站点对同一目的站点的地址转换可直接引用高速缓存中的地址内容。地址转换协议使主机可以找出同一物理网络中任一个物理主机的物理地址,只需给出目的主机的IP地址即可。这样,网络的物理编址可以对网络层服务透明。
               在互联网环境下,为了将报文送到另一个网络的主机,数据报需先确定发送方所在网络的路由器。因此,发送主机首先必须确定路由器的物理地址,然后依次将数据发往接收端。除基本ARP机制外,有时还需在路由器上设置代理ARP,其目的是由IP路由器代替目的站对发送方ARP请求作出响应。
               (4)反向地址解析协议(RARP)。
               反向地址解析协议(Reverse Address Resolution Protocol, RARP)用于一种特殊情况,如果站点初始化以后,只有自己的物理地址而没有IP地址,则它可以通过RARP协议,发出广播请求,征求自己的IP地址,而RARP服务器则负责回答。这样,无IP地址的站点可以通过RARP协议取得自己的IP地址,这个地址在下一次系统重新开始以前都有效,不用连续广播请求。RARP广泛用于获取无盘工作站的IP地址。
               3)传输层
               传输层的功能是提供应用程序间的通信。其功能包括格式化信息流和提供可靠传输。为实现可靠性传输,传输层协议规定接收端必须发回确认信息,并且假如分组丢失,必须重新发送从而保证可靠传输。
               TCP/IP在传输层提供了两个主要的协议,即传输控制协议(Transfer Control Protocol, TCP)和用户数据报协议(User Datagram Protocol, UDP)。另外,还有其他一些协议,如用于传送数字化语音的NVP协议。
               TCP协议提供的是一种可靠的数据流服务。当传送受差错干扰的数据,或基础网络故障,或网络负荷太重而使网际基本传输系统(无连接报文递交系统)不能正常工作时,就需要通过其他协议来保证通信的可靠。TCP就是这样的协议,它对应于OSI模型的运输层,在IP协议的基础上,提供端到端的面向连接的可靠传输。
               TCP采用"带重传的肯定确认"技术来实现传输的可靠性。简单的"带重传的肯定确认"是指与发送方通信的接收者,每接收一次数据,就送回一个确认报文,发送者对每个发出去的报文都留一份记录,等收到确认信息之后再发出下一报文分组。发送者发出一个报文分组时,启动一个计时器,若计时器计数完毕,确认信息还未到达,则发送者重新发送该报文分组。
               简单的确认重传严重浪费带宽,TCP还采用一种叫"滑动窗口"的流量控制机制来提高网络的吞吐量,窗口的范围决定了发送方发送的但未被接收方确认的数据报的数量。每当接收方正确收到一则报文时,窗口便向前滑动,这种机制决定了发送方发送的但未被接收方确认的数据报的数量,从而提高了网络的吞吐量。
               TCP通信建立在面向连接的基础上,实现了一种"虚电路"的概念。双方通信之前,先建立一条连接,然后双方就可以在其上发送数据流。这种数据交换方式能提高效率,但事先建立连接和事后拆除连接需要开销。TCP连接的建立采用三次握手,整个过程由以下3个环节组成。一是初始化主机通过一个同步比特SYN置位(即SYN=1)的数据段发出会话请求。二是接收主机通过发回具有以下项目的数据段表示回复:同步比特SYN置位(即SYN=1)、即将发送的数据段的起始字节的顺序号、应答并带有将收到的下一个数据段的字节顺序号。三是请求主机再回送一个数据段,并带有确认顺序号和确认号。
               用户数据报协议(UDP)是对IP协议簇的扩充,它增加了一种机制,发送方使用这种机制可以区分一台计算机上的多个接收者。每个UDP报文除了包含某用户进程发送的数据外,还包含报文目的端口的编号和报文源端口的编号。UDP的这种扩充使得在两个用户进程之间传送数据报成为可能。
               UDP协议是依靠IP协议来传送报文的,因而它的服务和IP一样,是不可靠的。这种服务不能确认,不对报文排序,也不进行流量控制,UDP报文可能会出现丢失、重复、失序等现象。
               4)应用层
               应用层的功能是向用户提供一组常用的应用程序,如电子邮件、文件传输访问、远程登录等。远程登录使用Telnet协议提供了在其他网络主机上注册的接口,Telnet会话提供了基于字符的虚拟终端。文件传输协议(FTP)可以提供网络内机器间的文件复制功能。
               文件传输协议是互联网提供的用于访问远程机器的一个协议,它使用户可以在本地机与远程机之间进行有关文件的操作。FTP工作时建立两条TCP连接:一条用于传送文件;另一条用于传送控制。
               FTP采用客户机/服务器模式,它包含客户FTP和服务器FTP。客户FTP启动传送过程,而服务器对其作出应答。客户FTP大多有一个交互式界面,具有访问权限的客户可以灵活地向远地传文件或从远地取文件。
               Telnet的连接是一个TCP连接,用于传送具有Telnet控制信息的数据。它提供了与终端设备或终端进程交互的标准方法,支持终端到终端的连接及进程到进程分布式计算的通信。
               DNS是一个域名服务的协议,提供域名到IP地址的转换,允许对域名资源进行分散管理。DNS最初设计的目的是使邮件发送方知道邮件接收主机及邮件发送主机的IP地址,后来发展成为可服务于其他许多目标的协议。
               互联网标准中的电子邮件协议是一个简单的基于文件的协议,用于可靠、有效的数据传输。SMTP作为应用层的服务,并不关心它下面采用的是何种传输服务,它可通过网络在TCP连接上传送邮件,或者简单地在同一机器的进程之间通过进程通信的通道来传送邮件。这样,邮件传输就独立于传输子系统,可在TCP/IP环境、OSI的传输层或X.25协议环境中传输邮件。
               邮件发送之前必须协商好发送者、接收者。在邮件传输过程中,所经过的路由被记录下来。这样,当邮件不能正常传输时可按原路由找到发送者。
               在当前的UNIX版本中,已将TCP/IP协议融入其中,使之成为UNIX操作系统的一部分。DOS上也推出了相应的TCP/IP软件产品。Sun公司则将TCP/IP广泛推向商务系统,它在所在的工作站系统中都预先安装了TCP/IP网络软件及网络硬件,使网络和计算机成为一体,同时也使TCP/IP网络软件及其客户机/服务器的工作方式为广大用户所接受。
               TCP/IP与OSI RM的关系
               TCP/IP的应用层对应着OSI模型的会话层、表示层和应用层,TCP/IP的网络接口层对应着OSI模型的物理层和数据链路层,而TCP/IP的传输层、网络层与OSI的传输层、网络层分别对应。
               IP数据包的格式
               一个IP数据包由首部和数据两部分组成。首部由固定20B的基本首部和0~40B可变长度的任选项组成。其中首部字段主要包括版本号、首部长度、服务类型、数据包长度、标识、标志、数据块偏移值、生存期、协议号、首部校验和以及地址等。
 
       TCP/IP协议簇
        TCP/IP作为Internet的核心协议,通过20多年的发展已日渐成熟,并被广泛应用于局域网和广域网中,目前已成为事实上的国际标准。作为一个最早的,也是迄今为止发展最为成熟的互联网络协议系统,TCP/IP包含许多重要的基本特性,这些特性主要表现在5个方面:逻辑编址、路由选择、域名解析、错误检测和流量控制以及对应用程序的支持等。
        (1)逻辑编址。每一块网卡在出厂时就由厂家分配了一个独一无二的永久性的物理地址。在Internet中,为每台连入因特网的计算机分配一个逻辑地址,这个逻辑地址被称为IP地址。一个IP地址可以包括一个网络ID号,用来标识网络;一个子网络ID号,用来标识网络上的一个子网;另外,还有一个主机ID号,用来标识子网络上的一台计算机。这样,通过这个分配给某台计算机的IP地址,就可以很快地找到相应的计算机。
        (2)路由选择。在TCP/IP中包含了专门用于定义路由器如何选择网络路径的协议,即IP数据包的路由选择。
        (3)域名解析。虽然TCP/IP采用的是32位的IP地址,但考虑用户的记忆方便,专门设计了一种方便的字母式地址结构,称为域名或DNS(域名服务)名字。将域名映射为IP地址的操作,称为域名解析。域名具有较稳定的特点,而IP地址则较易发生变化。
        (4)错误检测与流量控制。TCP/IP具有分组交换确保数据信息在网络上可靠传递的特性,这些特性包括检测数据信息的传输错误(保证到达目的地的数据信息没有发生变化),确认已传递的数据信息已被成功地接收,监测网络系统中的信息流量,防止出现网络拥塞。
               TCP/IP分层模型
               协议是对数据在计算机或设备之间传输时的表示方法进行定义和描述的标准。协议规定了进行传输、检测错误以及传送确认信息等内容。TCP/IP是一个协议簇,它包含了多种协议。ISO/OSI模型、TCP/IP的分层模型及协议的对比如下图所示。
               
               TCP/IP模型与OSI模型的对比
               从上图可知,TCP/IP分层模型由5个层次构成,即应用层、传输层、网际层、网络接口层和硬件层,各层的功能简述如下,其中硬件层的相关描述略。
               (1)应用层。应用层处在分层模型的最高层,用户调用应用程序来访问TCP/IP互联网络,以享受网络上提供的各种服务。应用程序负责发送和接收数据。每个应用程序可以选择所需要的传输服务类型,并把数据按照传输层的要求组织好,再向下层传送,包括独立的报文序列和连续字节流两种类型。
               (2)传输层。传输层的基本任务是提供应用程序之间的通信服务。这种通信又叫端到端的通信。传输层既要系统地管理数据信息的流动,还要提供可靠的传输服务,以确保数据准确而有序地到达目的地。为了这个目的,传输层协议软件需要进行协商,让接收方回送确认信息及让发送方重发丢失的分组。在传输层与网际层之间传递的对象是传输层分组。
               (3)网际层。网际层又称IP层,主要处理机器之间的通信问题。它接收传输层请求,传送某个具有目的地址信息的分组。该层主要完成如下功能:
               ①把分组封装到IP数据报(IP Datagram)中,填入数据报的首部(也称为报头),使用路由算法选择把数据报直接送到目标机或把数据报发送给路由器,然后再把数据报交给下面的网络接口层中对应的网络接口模块。
               ②处理接收到的数据报,检验其正确性。使用路由算法来决定是在本地进行处理,还是继续向前发送。如果数据报的目标机处于本机所在的网络,该层软件就把数据报的报头剥去,再选择适当的传输层协议软件来处理这个分组。
               ③适时发出ICMP的差错和控制报文,并处理收到的ICMP报文。
               (4)网络接口层。网络接口层又称数据链路层,处于TCP/IP协议层之下,负责接收IP数据报,并把数据报通过选定的网络发送出去。该层包含设备驱动程序,也可能是一个复杂的使用自己的数据链路协议的子系统。
               网络接口层协议
               TCP/IP协议不包含具体的物理层和数据链路层,只定义了网络接口层作为物理层与网络层的接口规范。这个物理层可以是广域网,如X.25公用数据网;可以是局域网,如Ethernet、Token-Ring和FDDI等。任何物理网络只要按照这个接口规范开发网络接口驱动程序,都能够与TCP/IP协议集成起来。网络接口层处在TCP/IP协议的最底层,主要负责管理为物理网络准备数据所需的全部服务程序和功能。
               网际层协议IP
               网际层是整个TCP/IP协议簇的重点。在网际层定义的协议除了IP外,还有ICMP、ARP和RARP等几个重要的协议。
               IP所提供的服务通常被认为是无连接的(connectionless)和不可靠的(unreliable)。事实上,在网络性能良好的情况下,IP传送的数据能够完好无损地到达目的地。所谓无连接的传输,是指没有确定目标系统在已做好接收数据准备之前就发送数据。与此相对应的就是面向连接的(connection oriented)传输(如TCP),在该类传输中,源系统与目的系统在应用层数据传送之前需要进行三次握手。至于不可靠的服务,是指目的系统不对成功接收的分组进行确认,IP只是尽可能地使数据传输成功。但是只要需要,上层协议必须实现用于保证分组成功提供的附加服务。
               由于IP只提供无连接、不可靠的服务,所以把差错检测和流量控制之类的服务授权给了其他的各层协议,这正是TCP/IP能够高效率工作的一个重要保证。这样,可以根据传送数据的属性来确定所需的传送服务以及客户应该使用的协议。例如,传送大型文件的FTP会话就需要面向连接的、可靠的服务(因为如果稍有损坏,就可能导致整个文件无法使用)。
               IP的主要功能包括将上层数据(如TCP、UDP数据)或同层的其他数据(如ICMP数据)封装到IP数据报中;将IP数据报传送到最终目的地;为了使数据能够在链路层上进行传输,对数据进行分段;确定数据报到达其他网络中的目的地的路径。
               IP协议软件的工作流程:当发送数据时,源计算机上的IP协议软件必须确定目的地是在同一个网络上,还是在另一个网络上。IP通过执行这两项计算并对结果进行比较,才能确定数据到达的目的地。如果两项计算的结果相同,则数据的目的地确定为本地;否则,目的地应为远程的其他网络。如果目的地在本地,那么IP协议软件就启动直达通信;如果目的地是远程计算机,那么IP必须通过网关(或路由器)进行通信,在大多数情况下,这个网关应当是默认网关。当源IP完成了数据报的准备工作时,它就将数据报传递给网络访问层,网络访问层再将数据报传送给传输介质,最终完成数据帧发往目的计算机的过程。
               当数据抵达目的计算机时,网络访问层首先接收该数据。网络访问层要检查数据帧有无错误,并将数据帧送往正确的物理地址。假如数据帧到达目的地时正确无误,网络访问层便从数据帧的其余部分中提取数据有效负载(Payload),然后将它一直传送到帧层次类型域指定的协议。在这种情况下,可以说数据有效负载已经传递给了IP。
               ARP和RARP
               地址解析协议(Address Resolution Protocol,ARP)及反地址解析协议(RARP)是驻留在网际层中的重要协议。ARP的作用是将IP地址转换为物理地址,RARP的作用是将物理地址转换为IP地址。网络中的任何设备,主机、路由器和交换机等均有唯一的物理地址,该地址通过网卡给出,每个网卡出厂后都有不同的编号,这意味着用户所购买的网卡有着唯一的物理地址。另一方面,为了屏蔽底层协议及物理地址上的差异,IP协议又使用了IP地址,因此,在数据传输过程中,必须对IP地址与物理地址进行相互转换。
               用ARP进行IP地址到物理地址转换的过程为:当计算机需要与任何其他的计算机进行通信时,首先需要查询ARP高速缓存,如果ARP高速缓存中这个IP地址存在,便使用与它对应的物理地址,直接将数据报发送给所需的物理网卡;如果ARP高速缓存中没有该IP地址,那么ARP便在局域网上以广播方式发送一个ARP请求包。如果局域网上IP地址与某台计算机中的IP地址相一致,那么该计算机便生成一个ARP应答信息,信息中包含对应的物理地址。ARP协议软件将IP地址与物理地址的组合添加到它的高速缓存中,这时即可开始数据通信。
               RARP负责物理地址到IP地址的转换。这主要用于无盘工作站上,网络上的无盘工作站在网卡上有自己的物理地址,但无IP地址,因此必须有一个转换过程。为了完成这个转换过程,网络中有一个RARP服务器,网络管理员事先必须把网卡上的IP地址和相应的物理地址存储到IP RARP服务器的数据库中。
               网际层协议ICMP
               Internet控制信息协议(Internet Control Message Protocol,ICMP)是网际层的另一个比较重要的协议。由于IP是一种尽力传送的通信协议,即传送的数据报可能丢失、重复、延迟或乱序,因此IP需要一种避免差错并在发生差错时报告的机制。ICMP就是一个专门用于发送差错报文的协议。ICMP定义了5种差错报文(源抑制、超时、目的不可达、重定向和要求分段)和4种信息报文(回应请求、回应应答、地址屏蔽码请求和地址屏蔽码应答)。IP在需要发送一个差错报文时要使用ICMP,而ICMP也是利用IP来传送报文的。ICMP是让IP更加稳固、有效的一种协议,它使得IP传送机制变得更加可靠。而且利用ICMP还可以用于测试因特网,以得到一些有用的网络维护和排错的信息。例如,著名的ping工具就是利用ICMP报文进行目标是否可达测试。
               传输层协议TCP
               TCP(Transmission Control Protocol,传输控制协议),是整个TCP/IP协议族中最重要的协议之一。它在IP提供的不可靠数据服务的基础上,为应用程序提供了一个可靠的、面向连接的、全双工的数据传输服务。
               TCP是如何实现可靠性的呢?最主要和最重要的是TCP采用了一个叫重发(retransmission)的技术。具体来说,在TCP传输过程中,发送方启动一个定时器,然后将数据包发出,当接收方收到了这个信息就给发送方一个确认(acknowledgement)信息。而如果发送方在定时器到点之前没收到这个确认信息,就重新发送这个数据包。
               利用TCP在源主机和目的主机之间建立和关闭连接操作时,均需要通过三次握手来确认建立和关闭是否成功。三次握手方式如下图所示,它通过“序号/确认号”使得系统正常工作,从而使它们的序号达成同步。
               
               TCP建立连接的“三次握手”过程
               TCP建立连接的三次握手过程如下:
               (1)源主机发送一个SYN(同步)标志位为1的TCP数据包,表示想与目标主机进行通信,并发送一个同步序列号(如SEQ=200)进行同步。
               (2)目标主机愿意进行通信,则响应一个确认(ACK位置1),并以下一个序列号为参考进行确认(如201)。
               (3)源主机以确认来响应目标主机的TCP包。这个确认中包括它想要接收的下一个序列号(该帧可以含有发送的数据)。至此连接建立完成。
               同样,关闭连接也进行三次握手。
               传输层协议UDP
               用户数据报协议(User Datagram Protocol,UDP)是一种不可靠的、无连接的协议,可以保证应用程序进程间的通信。与同样处在传输层的面向连接的TCP相比较,UDP是一种无连接的协议,它的错误检测功能要弱得多。可以这样说,TCP有助于提供可靠性;而UDP则有助于提高传输的高速率性。例如,必须支持交互式会话的应用程序(如FTP等)往往使用TCP;而自己进行错误检测或不需要错误检测的应用程序(如DNS、SNMP等)则往往使用UDP。
               UDP协议软件的主要作用就是将UDP消息展示给应用层,它并不负责重新发送丢失的或出错的数据消息,不对接收到的无序IP数据报重新排序,不消除重复的IP数据报,不对已收到数据报进行确认,也不负责建立或终止连接。而这些问题是由使用UDP进行通信的应用程序负责处理的。
               TCP虽然提供了一个可靠的数据传输服务,但它是以牺牲通信量来实现的。也就是说,为完成同样一个任务,TCP会需要更多的时间和通信量。这在网络不可靠的时候,通过牺牲一些时间换来达到网络的可靠,但在网络十分可靠的情况下,它又通过浪费带宽来保证可靠性,这时UDP则以十分小的通信量浪费占据优势。
               应用层协议
               随着计算机网络的广泛应用,人们也已经有了许多基本的、相同的应用需求。为了让不同平台的计算机能够通过计算机网络获得一些基本的、相同的服务,也就应运而生了一系列应用级的标准,实现这些应用标准的专用协议被称为应用级协议,相对于OSI参考模型来说,它们处于较高的层次结构,所以也称为高层协议。应用层的协议有NFS、Telnet、SMTP、DNS、SNMP和FTP等,详细情况在Internet服务中介绍。
 
       簇
        簇(cluster),有时被称为索引簇,是Oracle数据库中用于存储表的一种方法。在一个簇中,系统将多个相关的表存储在一起,以缩短用户访问相关记录的时间。只有当这些相关表经常被同时访问时,才适合使用簇。对用户和应用程序而言,簇的存在是透明的,簇只影响数据的存储方式。
        在某些情况下使用簇是非常有利的,而在另外一些情况下,使用簇却可能非常不利。应当仔细考虑簇是否有助于提高系统性能。一般而言,如果集中存放的数据主要用于连接表中,那么使用簇是很好的。如果两个表存放了相关数据,并且这两个表经常被同时访问,那么通过使用簇可将相关数据预装入SGA中,从而提高用户访问数据的性能。因为开发人员经常同时使用这两个表,所以在用户访问其中一个表时,将另一个表的数据也放入SGA中,可大大缩短用户访问数据的时间。如果一般情况下开发人员不会同时使用这些信息,那么簇将不能提高系统性能,并且这种情况下,簇实际上会导致系统性能的轻微下降,其原因是额外的表信息将占据更多的SGA空间。簇的另一个不足之处在于,当用户执行insert语句时将降低系统性能。引起性能下降的原因是簇在使用存储空间上采用的方法更加复杂,并且系统需要将多个表存储在同一个数据块中。簇表比单个表占用了更多的存储空间,这将导致系统扫描更多的数据。另外如果系统经常对这些表中的某一个表作全表扫描,那么不应当为这些表创建簇。因为如果创建了簇,那么额外数据将占用SGA的部分空间并导致额外的I/O操作,这两方面的原因都会降低系统性能。
   题号导航      2011年下半年 电子商务设计师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第55题    在手机中做本题