﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-灵魂-放水-随笔分类-标准</title><link>http://www.blogjava.net/zqli/category/16757.html</link><description>为学日益，为道日损。</description><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 05:19:56 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 05:19:56 GMT</pubDate><ttl>60</ttl><item><title>什么是SSH？</title><link>http://www.blogjava.net/zqli/archive/2006/11/09/80167.html</link><dc:creator>放水老倌</dc:creator><author>放水老倌</author><pubDate>Thu, 09 Nov 2006 07:33:00 GMT</pubDate><guid>http://www.blogjava.net/zqli/archive/2006/11/09/80167.html</guid><wfw:comment>http://www.blogjava.net/zqli/comments/80167.html</wfw:comment><comments>http://www.blogjava.net/zqli/archive/2006/11/09/80167.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/zqli/comments/commentRss/80167.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zqli/services/trackbacks/80167.html</trackback:ping><description><![CDATA[　SSH是英文Secure Shell的简写形式。通过使用SSH，你可以把所有传输的数据进行加密，这样"中间人"这种攻击方式就不可能实现了，而且也能够防止DNS欺骗和IP欺骗。使用SSH，还有一个额外的好处就是传输的数据是经过压缩的，所以可以加快传输的速度。SSH有很多功能，它既可以代替Telnet，又可以为FTP、Pop、甚至为PPP提供一个安全的"通道"。<br /><br />更详细资料见：<a href="http://www.chinaitlab.com/www/special/ssh.asp">http://www.chinaitlab.com/www/special/ssh.asp</a><img src ="http://www.blogjava.net/zqli/aggbug/80167.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zqli/" target="_blank">放水老倌</a> 2006-11-09 15:33 <a href="http://www.blogjava.net/zqli/archive/2006/11/09/80167.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>RPC：远程过程调用协议</title><link>http://www.blogjava.net/zqli/archive/2006/11/03/78973.html</link><dc:creator>放水老倌</dc:creator><author>放水老倌</author><pubDate>Fri, 03 Nov 2006 11:25:00 GMT</pubDate><guid>http://www.blogjava.net/zqli/archive/2006/11/03/78973.html</guid><wfw:comment>http://www.blogjava.net/zqli/comments/78973.html</wfw:comment><comments>http://www.blogjava.net/zqli/archive/2006/11/03/78973.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zqli/comments/commentRss/78973.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zqli/services/trackbacks/78973.html</trackback:ping><description><![CDATA[
		<table cellspacing="0" cellpadding="5" width="550" align="center" border="0">
				<tbody>
						<tr>
								<td class="title2">（RPC：Remote Procedure Call protocol）</td>
						</tr>
				</tbody>
		</table>
		<br />
		<table cellspacing="0" cellpadding="5" width="550" border="0">
				<tbody>
						<tr>
								<td>
										<p>　　远程过程调用（RPC）是一种通过网络从远程计算机程序上请求服务，而不需要了解底层网络技术的协议。RPC 协议假定某些传输协议的存在，如 TCP 或 UDP，为通信程序之间携带信息数据。在 OSI 网络通信模型中，RPC 跨越了传输层和应用层。RPC 使得开发包括网络分布式多程序在内的应用程序更加容易。</p>
										<p>　　RPC 采用客户机/服务器模式。请求程序就是一个客户机，而服务提供程序就是一个服务器。首先，调用进程发送一个有进程参数的调用信息到服务进程，然后等待应答信息。在服务器端，进程保持睡眠状态直到调用信息的到达为止。当一个调用信息到达，服务器获得进程参数，计算结果，发送答复信息，然后等待下一个调用信息，最后，客户端调用过程接收答复信息，获得进程结果，然后调用执行继续进行。</p>
										<p>　　目前，有多种 RPC 模式和执行。最初由 Sun 公司提出。IETF ONC 宪章重新修订了 Sun 版本，使得 ONC PRC 协议成为 IETF 标准协议。现在使用最普遍的模式和执行是开放式软件基础的分布式计算环境（DCE）。 </p>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<table cellspacing="0" cellpadding="5" width="550" align="center" border="0">
				<tbody>
						<tr>
								<td width="20">
										<img height="20" src="http://www.networkdictionary.com/chinese/images/arrow.gif" width="20" />
								</td>
								<td class="title" width="560">协议结构</td>
						</tr>
				</tbody>
		</table>
		<br />
		<table cellspacing="0" cellpadding="5" width="550" border="0">
				<tbody>
						<tr>
								<td>　　远程过程调用（RPC）信息协议由两个不同结构组成：调用信息和答复信息。信息流程如下所示： </td>
						</tr>
						<tr>
								<td align="middle">
										<p>
												<img height="319" alt="远程过程调用流程" src="http://www.networkdictionary.com/chinese/images/rpc.jpg" width="326" />
										</p>
										<p class="pic">RPC：远程过程调用流程</p>
								</td>
						</tr>
						<tr>
								<td>　　RPC 调用信息：每条远程过程调用信息包括以下无符号整数字段，以独立识别远程过程： 
<ul><li>程序号（Program number） 
</li><li>程序版本号（Program version number） 
</li><li>过程号（Procedure number） </li></ul><p>　　RPC 调用信息主体形式如下：</p><p>　　struct call_body {</p><p>　　　unsigned int rpcvers;</p><p>　　　unsigned int prog;</p><p>　　　unsigned int vers;</p><p>　　　unsigned int proc;</p><p>　　　opaque_auth cred;</p><p>　　　opaque_auth verf;</p><p>　　　1 parameter</p><p>　　　2 parameter . . . </p><p>　　}；</p>　　RPC 答复信息：RPC 协议的答复信息的改变取决于网络服务器对调用信息是接收还是拒绝。答复信息请求包括区别以下情形的各种信息： 
<ul><li>RPC 成功执行调用信息。. 
</li><li>RPC 的远程实现不是协议第二版，返回 RPC 支持的最低和最高版本号。 
</li><li>在远程系统中，远程程序不可用。 
</li><li>远程程序不支持被请求的版本号。返回远程程序所支持的最低和最高版本号。 
</li><li>请求的过程号不存在。通常是呼叫方协议或程序差错。 </li></ul><p>　　RPC答复信息形式如下：</p>　　enum reply_stat stat {  
<p>　　MSG_ACCEPTED = 0,</p><p>　　MSG_DENIED   = 1 </p><p>　　}；<br />-----------------------------------------------------------------------------------------<br />进程间通信（IPC）是在多任务操作系统或联网的计算机之间运行的程序和进程所用的通<br />信技术。有两种类型的进程间通信（IPC）。 <br /><br />□本地过程调用（LPC）LPC用在多任务操作系统中，使得同时运行的任务能互相会话。<br />这些任务共享内存空间使任务同步和互相发送信息。 <br /><br />□远程过程调用（RPC）RPC类似于LPC，只是在网上工作。RPC开始是出现在Sun微系统公<br />司和HP公司的运行UNIX操作系统的计算机中。 <br /><br />通过IPC和RPC，程序能利用其它程序或计算机处理的进程。客户机／服务器模式计算把<br />远程过程调用与其它技术如消息传递一道，作为系统间通信的一种机制。客户机执行自<br />己的任务，但靠服务器提供后端文件服务。RPC为客户机提供向后端服务器申请服务的通<br />信机制，如图R－4所示。如果你把客户机／服务器应用程序想作是一个分离的程序，服<br />务器能运行数据访问部分，因为它离数据最近，客户机能运行数据表示和与用户交互的<br />前端部分。这样，远程过程调用可看作是把分割的程序通过网络重组的部件。LPC有时也<br />称耦合（Coupling）机制。 <br /><br />用这种方式分割程序，当用户要访问数据时就无需每次拷贝整个数据库或它的大部分程<br />序到用户系统。其实，服务器只处理请求，甚至只执行一些数据计算，把得出的结果再<br />发送给用户。因为当数据存放在一个地方时，数据库同步很容易实现，所以多个用户可<br />同时访问相同的数据。 <br /><br />分布式计算环境是由一个通信系统——网络连接的计算机集群。很容易把这个网络看成<br />一个计算平台，若是对等方式，其中任何一台计算机都能成为客户机或服务器。一些处<br />理任务可被分成独立运行程序在不同的网络计算机上并行处理，而独立的程序被交给最<br />适合这个任务的计算机处理。这种策略可利用计算机空闲资源，提高网络的效益。一个<br />典型的企业网包括许多运行着不同操作系统的异构计算机系统。 <br /><br />随着企业网的产生，开发商必须编制可在各种计算机和网络通信协议中都能运行的程序<br />。现在人们正努力使得远程过程调用独立，这意味着开发商就不用考虑底层的网络和网<br />络上数据传输所用的协议，下面介绍RPC在开放式软件基金（OSF）的分布式计算环境（<br />DCC）中实现的相关方法。RPC工作于多种分布式计算环境。 <br /><br />SunSoft的开放网络计算（ONC）的远过程调用／外部数据表示（RPC／XDR）协议被广泛<br />采用。在三百一十万个运行网络文件系统（NFS）的系统中，有二百八十万个使用ONCRP<br />C库，并在分布式应用中作为客户机或服务器。ONCRPC被IBM的所有操作系统所支持（除<br />了OS／400）。UNIX系统实验室把RPC／XDR当作是UNIX System V Release 4的一个标准<br />部分。Novell支持下一代ONC+传输自立远程过程调用（TI－RPC）技术．TI－RPC 使用运<br />输层接口（TLI）实现传输自立。TLI提供了一种访问面向连接或非连接传输服务的通用<br />方法（这在“STERAMS环境”中有所叙述）。 <br /><br />Open Software Foundation（OSF）RPC 开放软件基金会（OSF）的RPC <br /><br />RPC工具提供了一种编程语言和编译器，它们使用可看作是本地过程的可运行于客户机和<br />服务器上的模块开发分布式应用程序。运行时设施（run－timefacility）使得分布式应<br />用程序能在多机种异构系统上运行，这样使得底层体系结构和运输协议对于应用程序是<br />透明的。 <br /><br />程序员用接口定义语言（IDL）建立接口定义（interface definition）。IDL是程序员<br />用来设计远程运行的过程的工具。IDL编译器把IDL接口定义转换成与客户机和服务器相<br />连的占位程序（stub）。客户机上的占位程序可加入到服务器的过程，而服务器上的占<br />位程序也可加入到客户机过程。位于客户机服务器的RPC运行时设施与占位程序合作，来<br />提供RPC操作。 <br /><br />异构环境中使用RPC的一个问题在于，不同的机器有不同的数据表示，OSFRPC通过具有调<br />用机器的基本数据表示的特征调用来解决这个问题。当收到调用时，若根据特征知道两<br />台机器数据表示不同的话，接收器就进行数据转换。 <br /><br />RPC运行时设施提供把客户机请求传送给服务器和在网上发送和接收响应的功能。DCERP<br />C运行时设施也和网络上其它DCE服务相互作用，这些DCE服务有命名、安全和定时服务。<br />运行时设施有下列特征： <br /><br />□可在多种网络上运行。开发者无需为每个网络编写特定的应用程序。 <br /><br />□提供客户机或服务器或网络上的故障恢复。它支持文件系统、数据库和其它传输可变<br />长数据的服务。 <br /><br />□提供独立于任何一个目录服务的基于名字定位服务器的方法。 <br /><br />□提供安全工具的接口，以防RPC通信遭受破坏。安全服务保证机密信息的保密性和提供<br />鉴别来保护通信完备性。 <br /><br />□支持网上并发或并行处理的多线程调度，于是一个应用程序就能同时执行多个操作 <br /><br />□提供多供应商提供的系统环境的可移植性和相互操作性</p></td>
						</tr>
				</tbody>
		</table>
<img src ="http://www.blogjava.net/zqli/aggbug/78973.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zqli/" target="_blank">放水老倌</a> 2006-11-03 19:25 <a href="http://www.blogjava.net/zqli/archive/2006/11/03/78973.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>什么是RFC(Request for Comments)</title><link>http://www.blogjava.net/zqli/archive/2006/10/31/78324.html</link><dc:creator>放水老倌</dc:creator><author>放水老倌</author><pubDate>Tue, 31 Oct 2006 09:05:00 GMT</pubDate><guid>http://www.blogjava.net/zqli/archive/2006/10/31/78324.html</guid><wfw:comment>http://www.blogjava.net/zqli/comments/78324.html</wfw:comment><comments>http://www.blogjava.net/zqli/archive/2006/10/31/78324.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zqli/comments/commentRss/78324.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zqli/services/trackbacks/78324.html</trackback:ping><description><![CDATA[
		<font color="#890b00">RFC及RFC编辑者： <br />　　RFC(Request For Comments)-意即“请求注解”，包含了关于Internet的几乎所有重要的文字资料。如果你想成为网络方面的专家，那么RFC无疑是最重要也是最经常需要用到的资料之一，所以RFC享有网络知识圣经之美誉。通常，当某家机构或团体开发出了一套标准或提出对某种标准的设想，想要征询外界的意见时，就会在Internet上发放一份RFC，对这一问题感兴趣的人可以阅读该RFC并提出自己的意见；绝大部分网络标准的指定都是以RFC的形式开始，经过大量的论证和修改过程，由主要的标准化组织所指定的，但在RFC中所收录的文件并不都是正在使用或为大家所公认的，也有很大一部分只在某个局部领域被使用或并没有被采用，一份RFC具体处于什么状态都在文件中作了明确的标识 <br />　　RFC由一系列草案组成，起始于1969年（第一个RFC文档发布于1969年4月7日，参见“RFC30年”，RFC2555”），RFC文档是一系列关于Internet（早期为ARPANET）的技术资料汇编。这些文档详细讨论了计算机网络的方方面面，重点在网络协议，进程，程序，概念以及一些会议纪要，意见，各种观点等。 <br />　　“RFC编辑者”是RFC文档的出版者，它负责RFC最终文档的编辑审订。“RFC编辑者”也保留有RFC的主文件，称为RFC索引，用户可以在线检索。在RFC近30年的历史中，“RFC编辑者”一直由约翰•普斯特尔（Jon Postel）来担任，而现在“RFC编辑者”则由一个工作小组来担任，这个小组受到“因特网社团”（Internet Society）的支助。 <br />　　RFC编辑者负责RFC以及RFC的整体结构文档，并维护RFC的索引。Internet协议族的文档部分（由Internet工程委员会“因特网工程师任务组”IETF以及IETF 下属的“因特网工程师指导组”IESG 定义），也做为RFC文档出版。因此，RFC在Internet相关标准中有着重要的地位。 <br />　　RFC编辑者的职责是由Internet 中的大家提议形成的，所出版的语言也就和Internet一样。IETF和ISOC是代表了世界各地的国际性组织，英语是IETF的第一工作语言，也是IETF的正式出版语言。RFC 2026 "The Internet Standards Process -- Revision 3" 允许RFC翻译成其他不同的语言。但是不能保证其翻译版本是否正确。因此，RFC编辑不对非英语的版本负责，而只是指明了哪里有非英语的版本，将这些信息列在WEB页上。 <br />RFC处理过程： <br />　　一个RFC文件在成为官方标准前一般至少要经历三个阶段：建议标准、草案标准、因特网标准。 <br />第一步RFC的出版是作为一个Internet 草案发布，可以阅读并对其进行注释。准备一个RFC草案，我们要求作者先阅读IETF的一个文档"Considerations for Internet Drafts". 它包括了许多关于RFC以及Internet草案格式的有用信息。作者还应阅读另外一个相关的文档RFC 2223 "Instructions to Authors"。 <br />　　一旦文档有了一个ID号后，你就可以向rfc-editor@rfc-editor.org发送e-mail ，说你觉得这个文档还可以，能够作为一个有价值或有经验的RFC文档 。RFC编辑将会向IESG请求查阅该文档并给其加上评论和注释。你可以通过RFC队列来了解你的文档的进度。一旦你的文档获得通过，RFC编辑就会将其编辑并出版。如果该文档不能出版，则会有email通知作者是什么原因。作者有48个小时来校对RFC编辑的意见。我们强烈建议作者要检测拼写错误和丢字的错误，应该确保有引用，联系和更新相关的信息。如你的文档是一个MIB，我们则要你对你的代码作最后一次检测。一旦RFC文档出版，我们就不会对其进行更改，因此你应该对你的文档仔细的检查。 <br />　　有时个别的文档会被正从事同一个项目的IETF工作组收回，如是这种情况，则该作者会被要求和IETF进行该文档的开发。在IETF中, Area Directors (ADs) 负责相关的几个工作组。这些工作者所开发的文档将由ADs 进行校阅，然后才作为RFC的出版物。 <br />如要获得关于如何写RFC文档和关于RFC的Internet标准制定过程的更多详细信息，请各位参见： <br />RFC 2223 "Instructions to RFC Authors"。 <br />RFC 2026 "The Internet Standards Process -- Revision 3"。 <br />　　实际上，在Internet上，任何一个用户都可以对Internet某一领域的问题提出自己的解决方案或规范，作为Internet草案（Internet Draffs，ID）提交给Internet工程任务组（IETF）。草案存放在美国、欧洲和亚太地区的工作文件站点上，供世界多国自愿参加的IETF成员进行讨论、测试和审查。最后，由Internet工程指导组（IESG）确定该草案是否能成为Internet的标准。 <br />　　如果一个Internet草案在IETF的相关站点上存在6个月后仍未被IESG建议作为标准发布，则它将被从上述站点中删除。事实上，在任何时候，一个Internet 草案都有可能被新的草案版本所替换掉，并重新开始6个月的存放期。 <br />如果一个Internet草案被IESG确定为Internet的正式工作文件，则被提交给Internet体系结构委员会（IAB），并形成具有顺序编号的RFC文档，由Internet协会（ISOC）通过Internet向全世界颁布。每个Internet标准文件在被批准后都会分配一个独立于RFC的永久编号，这就是STD编号。有一个不断被更新的文件RFC-INDEX.TXT按照RFC的编号来索引所有的文件，对于因特网标准文件还列出了其相应的STD编号。 <br />RFC文档必须被分配RFC编号后才能在网络上发布。例如，RFC2026的内容是“Internet标准进程-修订版3”、RFC1543的内容为“RFC作者指导”等等。需要时，可以复制或打印这些联机文档。用户也可以通过遍布全世界的数个联机资料数据库中获得RFC文档。例如，可以使用路径名RFC/RFCnnnn.TXT通过FTP的方式从ds.internic.net站点获得RFC，其中“nnnn”指的是RFC的编号。在这里，使用FTP登录时，所用的用户名和口令分别为“anonymous”和你的电子邮件地址。此外，用户还可以通过Internet网络信息中心（InterNIC）的目录服务功能、电子邮件、WWW等方式获得RFC文档. <br />　　作为标准的RFC又分为几种，第一种是提议性的，就是说建议采用这个作为一个方案摆出来，Draft是已经有一部分在用了，希望被采用为正式的标准，还有一种就是完全被认可的标准，这种是大家都在用，而且是不应该改变的。还有一种就是现在的最佳实践法，它相当于一种介绍。这些文件产生的过程是一种从下往上的过程，而不是从上往下，也就是说不是一个由主席，或者由工作组负责人的给一个指令，说是要做什么，要做什么，而是有下边自发的提出，然后在工作组里边讨论，讨论了以后再交给刚才说的工程指导委员会进行审查。但是工程指导委员会只做审查不做修改，修改还是要打回到工作组来做。IETF工作组文件的产生就是任何人都可以来参加会议，任何人都可以提议，然后他和别人进行讨论，大家形成了一个共识就可以产出这样的文件。 <br /><br /></font>
		<span style="COLOR: #666666">参考资料：<a href="http://www.im54.com/protocol/qu/protocol/200508/190635.html"><u><font color="#800080">http://www.im54.com/protocol/qu/protocol/200508/190635.html</font></u></a></span>
<img src ="http://www.blogjava.net/zqli/aggbug/78324.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zqli/" target="_blank">放水老倌</a> 2006-10-31 17:05 <a href="http://www.blogjava.net/zqli/archive/2006/10/31/78324.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>