家电维修班,手机维修班,电脑维修班,电工班,焊工班,液晶电视维修班,电动工具维修班、电动车摩托车维修班、网络营销培训、网站设计培训、淘宝培训---全国招生 家电维修班,手机维修班,电脑维修班,电工班,焊工班,液晶电视维修班,电动工具维修班、电动车摩托车维修班、网络营销培训、网站设计培训、淘宝培训---全国招生
当前位置: 电脑硬件维修培训网网络技术CIP 传输协议
文章内容

CIP 传输协议

作者:佚名  来源:本站整理  发布时间:2012-04-08 22:45:38
CIP 传输协议

摘要

本文重要阐明用于传输CIP恳求/响应,索引对象,实现它们在TCP,邮件和HTTP上传输的三个协议。相干的材料请在其它材料中查询。

1. 协议

本节阐明用于传输CIP索引对象和掩护网结构。本文重要定义定义消息格式,传输机制。CIP协议的设计思想是一种块设计思想。它不依附于许多于协议定义工具,或文本编码方法,而是利用现有的协议技术进行设计。这样可以使设计和实现简化。这也是利用现有的Internet技术实现利用层服务的方法。

2 MIME消息交换机制

CIP的消息交互是通过交换MIME消息进行的。消息在双向可靠传输的基础上进行。本文利用TCP,HTTP和邮件传输进行消息传输。CIP服务器开始连接,它称为发送CIP,而响应发送CIP的服务器称为吸收CIP。

2.1 流传输

CIP在双向TCP连接上通过简略文本协议传输,它的操作可以在任何TCP端口上进行,因此配置信息也包含了主机名和端口号。发送CIP的动作由吸收CIP的响应码加以断定。这些码的格式见下文。为了进行向后兼容Whois++服务器, CIPv3发送CIP必须首先断定支撑新协议。通过发送下面非法的Whois++系统命令完成上述功效:"# CIP-Version: 3"。在现在的Whois++服务器上,如果实现了CIP版本1或2,就会导致500系列的响应,服务器中断连接,如果服务器实现了CIPv3,它会响应300。这个300中的3代表版本3,以后的版本也可以利用这种方法。下面是一个交换的例子:

注意:如果发送CIP能够断定服务器实现了CIPv3,它可以发送"# CIP-Version: 3"串,然后跟一个CIPv3恳求,这个优化在已知的同构CIP网结构中是有用的,这样可以避免等候。

一旦发送CIP断定服务器支撑CIPv3恳求,它可以以MIME格式发送恳求,每个恳求以""结束。

Cip-Req = Req-Hdrs CRLF Req-Body

Req-Hdrs = *( Version-Hdr | Req-Cntnt-Hdr )

Req-Body = Body ; format of request body as in [CIP-MIME]

Body = Data CRLF "." CRLF

Data = ; data with CRLF "." CRLF replaced by CRLF ".." CRLF

Version-Hdr = "Mime-Version:" "1.0" CRLF

Req-Cntnt-Hdr = "Content-Type:" Req-Content CRLF

Req-Content = ; format is specified in [CIP-MIME]

Cip-Rsp = Rsp-Code CRLF [ Rsp-Hdrs CRLF Rsp-Body ] [ Indx-Cntnt-Hdr CRLF Index-Body ]

Rsp-Code = DIGIT DIGIT DIGIT Comment

Comment = ; any chars except CR and LF

Rsp-Hdrs = *( Version-Hdr | Rsp-Cntnt-Hdr )

Rsp-Cntnt-Hdr = "Content-Type:" Rsp-Content CRLF

Rsp-Content = ; format is specified in [CIP-MIME]

Rsp-Body = Body ; format of response body as in [CIP-MIME]

Indx-Cntnt-Hdr = "Content-Type:" Indx-Obj-Type CRLF

Indx-Obj-Type = ; any registered index object's MIME-type the format is specified in [RFC2045]

Index-Body = Body ; format defined in each index specifications

CRLF = CR LF ; Internet standard newline

CR = %x0D ; carriage return

LF = %x0A ; linefeed

DIGIT = %x30-39

消息以SMTP情势结束,数据以字节传输,除了看到1*["."],这种情况下要加一个句号。在数据传输结束时以"."表现。吸收方要将结束标记略过。吸收方的响应分为200,400和500系列。响应也以SMTP情势的消息界定。在返回响应后,吸收CIP必须筹备吸收下一个恳求,将状态返回到发送CIP刚刚断定版本时的状态。如果发送CIP不再发恳求,则可以关闭连接。作为响应,吸收CIP必须广放弃读入消息,并筹备新的发送CIP连接。下面是一个例子,这里的行结束显式给出。中间的空间只为可读性而设置,注释在大括号内。

{ 发送CIP连接到吸收CIP }

<<< % 220 Example CIP server ready

>>> # CIP-Version: 3

<<< % 300 CIPv3 OK!

>>> Mime-Version: 1.0

>>> Content-type: application/index.cmd.datachanged; type=

>>> x-tagged-index-1; dsi=1.2.752.17.5.10

>>>

>>> updatetype: incremental tagbased

>>> thisupdate: 855938804

>>> lastupdate: 855940000

>>> .

<<< % 200 Good MIME message received

>>> MIME-Version: 1.0

>>> Content-Type: application/index.obj.tagged;

>>> dsi=1.2.752.17.5.10;

>>> base-uri="ldap://ldap.umu.se/dc=umu,dc=se"

>>>

>>> version: x-tagged-index-1

>>> updatetype: incremental

>>> lastupdate: 855940000

>>> thisupdate: 855938804

>>> BEGIN IO-schema

>>> cn: TOKEN

>>> sn: FULL

>>> title: FULL

>>> END IO-Schema

>>> BEGIN Update Block

>>> BEGIN Old

>>> title: 3/testpilot

>>> END Old

>>> BEGIN New

>>> title: 3/chiefpilot

>>> END New

>>> END Update Block

>>> .

<<< % 200 Good MIME message received

{ 发送CIP关闭写套接字 }

<<< % 222 Connection closing in response to sender-CIP shutdown

{ 吸收CIP关闭,重新设置状态并等候新的发送CIP连接 }

如果版本不对,则会涌现下面的情况:

{ 发送CIP连接到吸收CIP }

<<< % 220 Whois++ server ready

>>> # CIP-Version: 3

<<< % 500 Syntax error

{ 服务器关闭连接 }

发送CIP可以会尝试以版本1或2进行连接,而失败的成果会被缓冲以避免以后的失败。

本消息共2页,当前在第1页  1  2  

在线报名
友情链接