⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cip transport protocols.htm

📁 internet协议集
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0052)http://www.longen.org/A-D/detaila~d/CIPTransfer.html -->
<HTML><HEAD><TITLE>CIP Transport Protocols</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb_2312-80">
<META content="MSHTML 6.00.2800.1400" name=GENERATOR></HEAD>
<BODY>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
  <TBODY>
  <TR>
    <TD width="100%"><FONT lang=ZH-CN face=宋体 size=3>
      <P align=justify>CIP 传输协议</P>
      <P align=justify>摘要</P>
      <P 
      align=justify>本文主要说明用于传输CIP请求/响应,索引对象,实现它们在TCP,邮件和HTTP上传输的三个协议。相关的资料请在其它资料中查询。</P>
      <P align=justify>1. 协议</P>
      <P 
      align=justify>本节说明用于传输CIP索引对象和维护网结构。本文主要定义定义消息格式,传输机制。CIP协议的设计思想是一种块设计思想。它不依赖于许多于协议定义工具,或文本编码方式,而是利用现有的协议技术进行设计。这样可以使设计和实现简化。这也是利用现有的Internet技术实现应用层服务的方法。</P>
      <P align=justify>2 MIME消息交换机制</P>
      <P 
      align=justify>CIP的消息交互是通过交换MIME消息进行的。消息在双向可靠传输的基础上进行。本文利用TCP,HTTP和邮件传输进行消息传输。CIP服务器开始连接,它称为发送CIP,而响应发送CIP的服务器称为接收CIP。</P>
      <P align=justify>2.1 流传输</P>
      <P 
      align=justify>CIP在双向TCP连接上通过简单文本协议传输,它的操作可以在任何TCP端口上进行,因此配置信息也包括了主机名和端口号。发送CIP的动作由接收CIP的响应码加以确定。这些码的格式见下文。为了进行向后兼容Whois++服务器, 
      CIPv3发送CIP必须首先确定支持新协议。通过发送下面非法的Whois++系统命令完成上述功能:"# CIP-Version: 
      3&lt;cr&gt;&lt;lf&gt;"。在现在的Whois++服务器上,如果实现了CIP版本1或2,就会导致500系列的响应,服务器中断连接,如果服务器实现了CIPv3,它会响应300。这个300中的3代表版本3,以后的版本也可以利用这种方法。下面是一个交换的例子:</P>
      <P align=justify>注意:如果发送CIP能够确定服务器实现了CIPv3,它可以发送"# CIP-Version: 
      3"串,然后跟一个CIPv3请求,这个优化在已知的同构CIP网结构中是有用的,这样可以避免等待。</P>
      <P 
      align=justify>一旦发送CIP确定服务器支持CIPv3请求,它可以以MIME格式发送请求,每个请求以"&lt;cr&gt;&lt;lf&gt;"结束。</P>
      <P align=justify>Cip-Req = Req-Hdrs CRLF Req-Body</P>
      <P align=justify>Req-Hdrs = *( Version-Hdr | Req-Cntnt-Hdr )</P>
      <P align=justify>Req-Body = Body ; format of request body as in 
      [CIP-MIME]</P>
      <P align=justify>Body = Data CRLF "." CRLF</P>
      <P align=justify>Data = ; data with CRLF "." CRLF replaced by CRLF ".." 
      CRLF</P>
      <P align=justify>Version-Hdr = "Mime-Version:" "1.0" CRLF</P>
      <P align=justify>Req-Cntnt-Hdr = "Content-Type:" Req-Content CRLF</P>
      <P align=justify>Req-Content = ; format is specified in [CIP-MIME]</P>
      <P align=justify>Cip-Rsp = Rsp-Code CRLF [ Rsp-Hdrs CRLF Rsp-Body ] [ 
      Indx-Cntnt-Hdr CRLF Index-Body ]</P>
      <P align=justify>Rsp-Code = DIGIT DIGIT DIGIT Comment</P>
      <P align=justify>Comment = ; any chars except CR and LF</P>
      <P align=justify>Rsp-Hdrs = *( Version-Hdr | Rsp-Cntnt-Hdr )</P>
      <P align=justify>Rsp-Cntnt-Hdr = "Content-Type:" Rsp-Content CRLF</P>
      <P align=justify>Rsp-Content = ; format is specified in [CIP-MIME]</P>
      <P align=justify>Rsp-Body = Body ; format of response body as in 
      [CIP-MIME]</P>
      <P align=justify>Indx-Cntnt-Hdr = "Content-Type:" Indx-Obj-Type CRLF</P>
      <P align=justify>Indx-Obj-Type = ; any registered index object's MIME-type 
      the format is specified in [RFC2045]</P>
      <P align=justify>Index-Body = Body ; format defined in each index 
      specifications</P>
      <P align=justify>CRLF = CR LF ; Internet standard newline</P>
      <P align=justify>CR = %x0D ; carriage return</P>
      <P align=justify>LF = %x0A ; linefeed</P>
      <P align=justify>DIGIT = %x30-39</P>
      <P 
      align=justify>消息以SMTP形式结束,数据以字节传输,除了看到&lt;cr&gt;&lt;lf&gt;1*["."]&lt;cr&gt;&lt;lf&gt;,这种情况下要加一个句号。在数据传输结束时以"&lt;cr&gt;&lt;lf&gt;.&lt;cr&gt;&lt;lf&gt;"表示。接收方要将结束标记略过。接收方的响应分为200,400和500系列。响应也以SMTP形式的消息界定。在返回响应后,接收CIP必须准备接收下一个请求,将状态返回到发送CIP刚刚确定版本时的状态。如果发送CIP不再发请求,则可以关闭连接。作为响应,接收CIP必须广放弃读入消息,并准备新的发送CIP连接。下面是一个例子,这里的行结束显式给出。中间的空间只为可读性而设置,注释在大括号内。</P>
      <P align=justify>{ 发送CIP连接到接收CIP }</P>
      <P align=justify>&lt;&lt;&lt; % 220 Example CIP server 
      ready&lt;cr&gt;&lt;lf&gt;</P>
      <P align=justify>&gt;&gt;&gt; # CIP-Version: 3&lt;cr&gt;&lt;lf&gt;</P>
      <P align=justify>&lt;&lt;&lt; % 300 CIPv3 OK!&lt;cr&gt;&lt;lf&gt;</P>
      <P align=justify>&gt;&gt;&gt; Mime-Version: 1.0&lt;cr&gt;&lt;lf&gt;</P>
      <P align=justify>&gt;&gt;&gt; Content-type: 
      application/index.cmd.datachanged; type=</P>
      <P align=justify>&gt;&gt;&gt; x-tagged-index-1; 
      dsi=1.2.752.17.5.10&lt;cr&gt;&lt;lf&gt;</P>
      <P align=justify>&gt;&gt;&gt; &lt;cr&gt;&lt;lf&gt;</P>
      <P align=justify>&gt;&gt;&gt; updatetype: incremental 
      tagbased&lt;cr&gt;&lt;lf&gt;</P>
      <P align=justify>&gt;&gt;&gt; thisupdate: 
855938804&lt;cr&gt;&lt;lf&gt;</P>
      <P align=justify>&gt;&gt;&gt; lastupdate: 
855940000&lt;cr&gt;&lt;lf&gt;</P>
      <P align=justify>&gt;&gt;&gt; .&lt;cr&gt;&lt;lf&gt;</P>
      <P align=justify>&lt;&lt;&lt; % 200 Good MIME message received</P>
      <P align=justify>&gt;&gt;&gt; MIME-Version: 1.0&lt;cr&gt;&lt;lf&gt;</P>
      <P align=justify>&gt;&gt;&gt; Content-Type: 
      application/index.obj.tagged;</P>
      <P align=justify>&gt;&gt;&gt; dsi=1.2.752.17.5.10;</P>
      <P align=justify>&gt;&gt;&gt; 
      base-uri="ldap://ldap.umu.se/dc=umu,dc=se"&lt;cr&gt;&lt;lf&gt;</P>
      <P align=justify>&gt;&gt;&gt; &lt;cr&gt;&lt;lf&gt;</P>
      <P align=justify>&gt;&gt;&gt; version: 
      x-tagged-index-1&lt;cr&gt;&lt;lf&gt;</P>
      <P align=justify>&gt;&gt;&gt; updatetype: 
      incremental&lt;cr&gt;&lt;lf&gt;</P>
      <P align=justify>&gt;&gt;&gt; lastupdate: 
855940000&lt;cr&gt;&lt;lf&gt;</P>
      <P align=justify>&gt;&gt;&gt; thisupdate: 
855938804&lt;cr&gt;&lt;lf&gt;</P>
      <P align=justify>&gt;&gt;&gt; BEGIN IO-schema&lt;cr&gt;&lt;lf&gt;</P>
      <P align=justify>&gt;&gt;&gt; cn: TOKEN&lt;cr&gt;&lt;lf&gt;</P>
      <P align=justify>&gt;&gt;&gt; sn: FULL&lt;cr&gt;&lt;lf&gt;</P>
      <P align=justify>&gt;&gt;&gt; title: FULL&lt;cr&gt;&lt;lf&gt;</P>
      <P align=justify>&gt;&gt;&gt; END IO-Schema&lt;cr&gt;&lt;lf&gt;</P>
      <P align=justify>&gt;&gt;&gt; BEGIN Update Block&lt;cr&gt;&lt;lf&gt;</P>
      <P align=justify>&gt;&gt;&gt; BEGIN Old&lt;cr&gt;&lt;lf&gt;</P>
      <P align=justify>&gt;&gt;&gt; title: 3/testpilot&lt;cr&gt;&lt;lf&gt;</P>
      <P align=justify>&gt;&gt;&gt; END Old&lt;cr&gt;&lt;lf&gt;</P>
      <P align=justify>&gt;&gt;&gt; BEGIN New&lt;cr&gt;&lt;lf&gt;</P>
      <P align=justify>&gt;&gt;&gt; title: 3/chiefpilot&lt;cr&gt;&lt;lf&gt;</P>
      <P align=justify>&gt;&gt;&gt; END New&lt;cr&gt;&lt;lf&gt;</P>
      <P align=justify>&gt;&gt;&gt; END Update Block&lt;cr&gt;&lt;lf&gt;</P>
      <P align=justify>&gt;&gt;&gt; .&lt;cr&gt;&lt;lf&gt;</P>
      <P align=justify>&lt;&lt;&lt; % 200 Good MIME message received</P>
      <P align=justify>{ 发送CIP关闭写套接字 }</P>
      <P align=justify>&lt;&lt;&lt; % 222 Connection closing in response to 
      sender-CIP shutdown</P>
      <P align=justify>{ 接收CIP关闭,重新设置状态并等待新的发送CIP连接 }</P>
      <P align=justify>如果版本不对,则会出现下面的情况:</P>
      <P align=justify>{ 发送CIP连接到接收CIP }</P>
      <P align=justify>&lt;&lt;&lt; % 220 Whois++ server 
      ready&lt;cr&gt;&lt;lf&gt;</P>
      <P align=justify>&gt;&gt;&gt; # CIP-Version: 3&lt;cr&gt;&lt;lf&gt;</P>
      <P align=justify>&lt;&lt;&lt; % 500 Syntax error&lt;cr&gt;&lt;lf&gt;</P>
      <P align=justify>{ 服务器关闭连接 }</P>
      <P align=justify>发送CIP可以会尝试以版本1或2进行连接,而失败的结果会被缓冲以避免以后的失败。</P>
      <P align=justify>2.1.1 传输特定的响应码</P>
      <P align=justify>下面的响应码用于流传输:</P></FONT>
      <DIV align=center>
      <CENTER>
      <TABLE cellSpacing=1 cellPadding=2 width="80%" border=1>
        <TBODY>
        <TR>
          <TD vAlign=top width="13%" height=12><FONT lang=ZH-CN face=宋体 
size=3>
            <P align=justify>Code</FONT></P></TD>
          <TD vAlign=top width="37%" height=12><FONT lang=ZH-CN face=宋体 
size=3>
            <P align=justify>描述文本</FONT></P></TD>
          <TD vAlign=top width="51%" height=12>
            <DIR><FONT lang=ZH-CN face=宋体 size=3>
            <P align=justify>发送CIP动作</FONT></P></DIR></TD></TR>
        <TR>
          <TD vAlign=top width="13%" height=13><FONT lang=ZH-CN face=宋体 
size=3>
            <P align=justify>200</FONT></P></TD>
          <TD vAlign=top width="37%" height=13><FONT lang=ZH-CN face=宋体 
size=3>
            <P align=justify>MIME请求的接收和处理</FONT></P></TD>
          <TD vAlign=top width="51%" height=13><FONT lang=ZH-CN face=宋体 
size=3>
            <P align=justify>无输出,继续会话</FONT></P></TD></TR>
        <TR>
          <TD vAlign=top width="13%" height=18><FONT lang=ZH-CN face=宋体 
size=3>
            <P align=justify>201</FONT></P></TD>
          <TD vAlign=top width="37%" height=18><FONT lang=ZH-CN face=宋体 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -