分享
 
 
 

RFC2217 TelnetCom端口控制选项

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

本备忘录的状态

本备忘录讲述了一种为internet社区定义的试验性协议。本备忘录不指定任何种类的

internet标准。希望大家多给与批评和建议。本备忘录的发布不受任何限制。

摘要

本备忘录提出一项协议,它容许本地网在往外地的拨号过程中能够更多地使用调制解调

器。

目录

1.com端口控制选项协议 4

2.com端口配置命令 4

4.com端口和调制解调器线性变化的通知 8

5.流量控制 9

6.安全性考虑 9

7.作者联系地址 9

8.参考文献 10

讨论

远程登录协议定义了一个面向字符、交互式的通讯对话。它原来设计在一个客户和一运

行远程服务的主机之间建立一对话[5]。

许多新的商业功能要求一个人连接到远程的服务器检索或存放信息。最多的一种方式是

这些远程服务经由异步拨号连接以实现。这一新的服务功能类别包括:

- 通过拨号上互联网

- 连接到电子公告板

- 连接到内部和外部数据库

- 收发传真。

这些新类别的服务功能的一般特性要求通过异步调制解调器而建立的交互式的、面向字

符的连接。这就是众所周知的向外modem拨号。

为了有助于减少在安装和维护附加电话线路的费用,许多设备制造商在访问量较大的服

务器和路由器上补充了端口直接远程登录的功能,我们将其归类为存取服务器。

然而,当前远程登录定义无法充分满足越来越多的用途。这项协议需要将三方面的功能

补充到Telnet协议以有效支持modem外拨。这些是:

- 客户将com端口配置信息发送给连接到外拨modem的存取服务器的能力。这需要在字

节级别上确保传送和接收的正确格式。

- 存取服务器将诸如信号变化之类的信息通知任一modem线上的客户端的能力例如

RLSD信号变化(载波检测)。这信息是重要的,因为许多客户的软件包用这项信息来判定

是否与远程服务建立了连接。RLSD变化也使用在类I传真做为信号发送[6]。

- 客户端和存取服务器之间流量控制的治理能力,它并不涉及到在客户端与远程服务之间

所建立的会话中流量控制机理的。不幸的是,RFC1372"远程登录远程的流控制选项"[2]

不能满足这种目的,因为它依靠于发送xon/xoff字符,字符也许会被传送或接收作为标

准过程的客户/远程的服务对话。

尽管这讨论主要是面向于通往外地的拨号作为这项协议的主要用途,但这项协议也能用

于做为存取服务器附件的任何串行设备使用。这样的设备可以是:

- 串行的打印机

- 绘图仪

- 显示设备例如管道监视器或医用监视器

- 例如一般图片复印机和收款机的办公室设备

定义以下术语:

存取服务器――任何网络设备,它接受telnet对话、通过com口接受传送数据以及利

用Telnet会话通过com口将接受到的数据送给客户端。

波特比率――为这文档的目的,波特率表示每秒传送通信数据的字节数。

客户端――任何网络设备,向存取服务器发送一个Telnet请求。

出境――从连接存取服务器的modem到远程服务之间的数据传输。

入境――从远程服务到连接存取服务器的modem之间的数据传输。

远程服务――接受拨号连接的任何服务(包括传真)。

插图

=============

客户端\<―――本地的区域/企业网络

===============================

远程登录接口

存取服务器

com端口接口

==================

==========

modem

==========

远程服务访问

最通用公共交换------>

网络

================

可以是internet服务

供给商,告示板远程服务

或传真机器

================

命令名和代码:

com-port-option44

客户端到存取服务器存取服务器到客户端

signaturetexttext

set-baudrate1101

set-datasize2102

set-parity3103

set-stopsize4104

set-control5105

notify-linestate6106

notify-modemstate7107

flowcontrol-suspend8108

flowcontrol-resume9109

set-linestate-mask10110

set-modemstate-mask11111

purge-data12112

讨论:

正如前面的建议,com端口配置命令仅从客户发送到存取服务器。存取服务器没有com

端口初始化配置命令,仅有通知命令。然而,为了答应服务器初始化com端口配置,已经建

立了不同的命令值。

1.com端口控制选项协议

com的控制选项协议使用标准的远程登录机制:

iacwillcom-port-option

发送者愿意发送com端口控制选项命令

iacwontcom-port-option

发送者不愿意发送com端口控制选项命令

iacdocom-port-option

发送者愿意接受com端口控制选项命令

iacdontcom-port-option

发送者不愿意接受com端口控制选项命令

典型地,客户使用will和wont,存取服务器使用do和dont。

2.com端口配置命令

一旦协议达成,客户可以不受时间和次数限制地发送命令。一旦命令被存取服务器处理

了,从客户传送到存取服务器的每条命令必须被承认。这种确认在命令的处理以后将把在存

取服务器设定的值通知客户端。这种确认在命令的处理以后将把在存取服务器设定的值通知

客户端。这与在tcp协议层处理的收到命令的确认是不同的。它的目的是通知客户正在使用

的值与客户请求的值的不同。例如,客户可能要求存取服务器提供超过它所能提供的波特率。

假如客户在一合理的时间内收不到这一回复(比如两倍延时),客户可能希望重新发送命令,

或终止对话。

虽然可从存取服务器发送任何序列的命令到客户端,然而不同的序列命令可能会产生无

效的com端口配置。(例如:数据大小在8位以下时偶数校验有效,推荐按下列顺序发送命令:

1. set-baudrate

2. set-datasize

3. set-parity

4. set-stopsize

iacsbcom-port-optionsignature<text>iacse

客户与存取服务器之间互相交换识别标志的命令假如没有<text>选项,它是发送者要

求接收端提供识别标志的命令。<text>可以包含任何字符。<text>选项没有固定的格式。它

可以包含制造商信息,版本号信息,或任何另外的信息。假如有iac字符在<text>出现,必须转

换成iac-iac以避免命令终止。

iacsbcom-port-optionset-baud<value(4)>iacse

是由客户端发送给存取服务器请求设置com口波特率的命令。<value>是4个八位二进

制数(4字节)。value是用网络标准格式来表示的。value是请求的波特率,一种非凡情形value

为0。假如value是零,则客户请求存取服务器com端口当前的波特率。

讨论:

由于当今波特率的使用形成了一个非常广泛的空间,并且在提议的初始版本中使用了基

于波特率表的索引。经过多次讨论之后,决定采用实际中使用的波特率。有两个主要的原因:

1)它限制了最新的波特率的使用,直到value选项更新,2)它在波特比率的选择方面的灵活性

是最大的。

iacsbcom-port-optionset-datasize<value>iacse

这是由客户发送到存取服务器设置数据位数的命令。它也可以用来查询当前的数据位大

小。<value>值是1个八位二进制数(字节)。以下是value值的一个表格:

值数据比特大小

0 请求当前的数据位大小

1 可用为未来使用

2 可用为未来使用

3 可用为未来使用

4 可用为未来使用

5 5

6 6

7 7

8 8

9-127可用为未来使用

讨论:数据位大小仅有8个可能的值,曾经有4个被使用过,只有2个现在常用。命令参数

的格式推荐保持一致。它也减少了命令在协议中定义的次数,答应将来扩展。

iacsbcom-port-optionset-parity<value>iacse

客户到服务端,设置奇偶校验,也可用于查询。是1位八位二进制数的(字节)。以下是

value值的一个表格:

值奇偶性[1]

0 请求当前的数据大小

1 没有

2 奇数

3 偶数

4 标记

5 空格校验

6-127可用为未来使用

讨论:

现在常用的仅有5个值。命令参数的格式推荐同其他命令保持一致。

iacsbcom-port-optionset-stopsize<value>iacse

客户到服务端,设置stopbits,也可用于查询,为1个字节。客户到服务端,设置停止位,

也可用于查询,为1个字节。以下是value值的一个表格:

值停止位大小

0 请求当前的数据大小

1 1

2 2

3 1.5

4-127可用为未来使用

讨论:

仅当数据大小设置成5位时,停止位1.5被大多数com端口支持。现在已经不常用了。

3.非凡的com口控制命令

客户可以通过远程登录会话在任何时候、任何次数地往存取服务器发送这一命令。存取

服务器会对每个命令回复一个确认信息,这个信息包含了命令和实际值集合。客户希望在一

合理的时间以内得到一响应(比如两倍延时)。否则,客户可能希望重新发送没被确认的命

令或终止对话。

iacsbcom-port-optionset-control<value>iacse

这一命令是从客户端发送给存取服务器以设置非凡的com口选项。这一命令也可用来

查询当前选项值,值为一个字节。以下是value值的一个表格:

值控制命令

0 com口流控制设置请求(outbound/both)

1 不使用流控制(outbound/both)

2 使用xon/xoff流控制(outbound/both)

3 使用硬件流控制(outbound/both)

4 请求中断状态

5 设置中断状态on

6 设置中断状态off

7 请求dtr信号状态

8 设置dtr信号状态on

9 设置dtr信号状态off

10 请求rts信号状态

11设置rts信号状态on

12 设置rts信号状态off

13 com口流控制设置请求(inbound)

14 不使用流控制(inbound)

15 使用xon/xoff流控制(inbound)

16使用硬件流控制(inbound)

13 com口流控制设置请求(inbound)

14 不使用流控制(inbound)

15 使用xon/xoff流控制(inbound)

16使用硬件流控制(inbound)

16 使用dcd流控制(outbound/both)

18使用dtr流控制(inbound)

19 使用dsr流控制(outbound/both)

20-127可用为未来使用

讨论:

流控制选项划分inbound和outbound,outbound充分利用现有的程序设计界面和存取服

务器能力。

讨论:

outbound值应该将流控制设置为出和入。假如入可以分开设置它应该在出的设置后设

置。

讨论:

假如存取服务器无法区分入与出的流控制,它应忽略入的流控制命令,并且应基于出的

流控制命令来设置流控制选项。

iacsbcom-port-optionset-linestate-mask<value>iacse

这一命令是从客户端发送给存取服务器,为了发送notify-linestate选项以设置一比特掩

码(参阅第4部分)。当存取服务器的linestate改变时,存取服务器会将新的linestate和

linestate-mask进行"与"处理,假如结果非零,存取服务器将发送与结果。假如大于一位满足

linestate-mask,只有1个notify-linestate,与所有的满足的位,将被送到客户端。set-linestate-mask

可以是以下组合。这些值和在notify-linestate选项中使用的是一样的。set-linestate-mask值

基于目前最流行的uart(com端口控制芯片)[1]。

比特位值含义

7128超时错误

664传送移位寄存器为空

532传送保持寄存器为空

416中断检测错误

38帧错误

24奇偶校验错误

12超载错误

01数据就绪

讨论:

set-linestate-mask值置0时阻止存取服务器将notify-linestate选项送至客户。

讨论:

set-linestate-mask值为255时,答应存取服务器当每次存取服务器的linestate变化时,

送一notify-linestate选项到客户。

讨论:

存取服务器的linestate-mask初始值是0。

讨论:

在收到一notify-linestate以后,客户不必须发送一新的set-linestate-mask。linestate-mask

在存取服务器的值将保持直到被客户设置或重建对话时重置。linestate-mask在存取服务器的

值将保持直到被客户设置或重建对话时重置。

iacsbcom-port-optionset-modemstate-mask<value>iacse

这一命令是从客户端发送给存取服务器,为了发送notify-modemstate选项设置一比特掩

码。当modemstate在存取服务器上变化时,存取服务器将原有modemstate-mask和新的

modemstate进行与运算。假如结果非零,存取服务器将发送与结果到notify-modemstate选项。

假如多于一个位满足modemstate-mask,仅有1个notify-modemstate,与所有的满足的位,将被送

到客户。set-modemstate-mask可为下列任何组合。值和notify-modemstate选项一样。

set-modemstate-mask值基于目前最流行的uart(com端口控制芯片)[1]。

比特位值含义

7128接收线性信号检测(即载波检测)

664来访指示(敲门)

532data-set-ready信号状态

416clear-to-send信号状态

38delta接收线性信号检测

24trailing-edgering检测器

12deltadata-set-ready

01deltaclear-to-send

讨论:

0的set-modemstate-mask值将阻止存取服务器送notify-modemstate选项到客户。

讨论:

set-modemstate-mask值为255时答应存取服务器当每次存取服务器的modemstate变

化时,送notify-modemstate选项到客户。

讨论:

存取服务器的modemstate-mask初始值是255。

讨论:

在收到一notify-modemstate以后,客户不必须发送一新的set-modemstate-mask

modemstate-mask在存取服务器的值将保持直到被客户设置或重建对话时重置。

iacsbcom-port-optionpurge-data<value>iacse

这一命令是从客户端发送给存取服务器,要求存取服务器立即清除所有涉及缓冲的数

据。值大小位一个字节。

值清除数据缓冲区

0 可用为未来使用

1清除存取服务器接收数据缓冲区

2 清除存取服务器传送数据缓冲区

3 清除存取服务器接收数据缓冲区和传送数据缓冲区

4-127可用为未来使用

4.com端口和调制解调器线性变化的通知

存取服务器的发送不受时间和次数限制。一旦com端口或调制解调器线性变化,存取服

务器应该立即发送适当的命令到客户。客户不必对命令发出响应。

iacsbcom-port-optionnotify-linestate<value>iacse

值的大小是一个字节。值是从以下值表中的多个比特层构成的。多比特值可以在一次传

送中设置。值是基于最流行的uart(com端口控制芯片)[1]。

比特位值含义

7128超时错误

664传送移位寄存器为空

532传送保持寄存器为空

416中断检测错误

38帧错误

24奇偶校验错误

12超载错误

01数据就绪

讨论:

linestate是在存取服务器上的uart的线性状态。

iacsbcom-port-optionnotify-modemstate<value>iacse

值的大小是一个字节。值是从以下值表中的多个比特层构成的。多比特值可以在一次传

送中设置。值是基于最流行的uart(com端口控制芯片)[1]。

比特位值含义

7128接收线性信号检测(即载波检测)

664来访指示(敲门)

532data-set-ready信号状态

416clear-to-send信号状态

38delta接收线性信号检测

24trailing-edgering检测器

12deltadata-set-ready

01deltaclear-to-send

5.流量控制

客户端和(或)存取服务器可以通过远程登录会话在任何时候、任何次数地往存取服务

器发送这一命令。

iacsbcom-port-optionflowcontrol-suspendiacse

这命令的发送端请求接收器推迟数据及命令的传输直到发送端发flowcontrol-resume命

令。

iacsbcom-port-optionflowcontrol-resumeiacse

这命令的发送端请求接收器恢复发送数据和命令

讨论:

远程登录在客户和存取服务器之间最初被初始化为重用状态。没有需要在初始化期间发

送resume命令。

讨论:

可以同时发送多个并行的暂停命令。第二个暂停命令可以被忽略。当碰到第一个单一个

的resume命令时传送恢复。

讨论:

流控制选项是为了处理客户到存取服务器Telnet对话的流控制而设计的。这选项加在

RFC1372中:远程登录的流控制选项[2]。RFC1372使用一单字符xon/xoff技术来实现流

控制。这导致2个问题。首先,流控制字符可能是有效的数据。其次,流控制字符可能被用

来终端之间的流控制在结束使用(客户应用程序到远程服务器的拨号)。

6.安全性考虑

有2项安全问题需要讨论:验证和资源的重置。

认证可以遵循kerberos身份验证协议(见RFC1411)[3]或SPX身份验证协议(见RFC

1412)[4]。

对话终止时,存取服务器必须确保断开连接,同时com口设置(波特率,数据大小,

停止位,奇偶校验和流量控制)恢复到定义值。这确保com端口在一已知状态,预备建立下

一客户对话。这将使操作更具有可猜测性,同时避免可能从与随机的com端口配置开始一

新建的的拨号对话发生的问题。

7.作者联系地址

GlenClark,SoftwareArchitect

CiscoSystems,Inc.

170WestTasmanDrive

SanJose,CA96134

USA

EMail:glenc@cisco.com

WEB:www.cisco.com

8.参考文献

[1]JoeCampbell.CProgrammer'sGuidetoSerialCommunications,SecondEdition.

Indianapolis:SAMSPublishing,1993.213-224.

[2]Hedrick,C.,andD.Borman,"TelnetRemoteFlowControlOption",RFC1372,Cray

Research,Inc.,October1992.

[3]Borman,D.,"TelnetAuthentication:KerberosVersion4",RFC1411,CrayResearch,

Inc.,January1993.

[4]Alagappan,K.,"TelnetAuthentication:SPX",RFC1412,DigitalEquipment

Corporation,January1993.

[5]D.E.ComerandDavidStevens.InternetworkingwithTCP/IP,VolumeIII.Prentice

Hall,1993.

[6]AndrewMargolis.TheFAXModemSourcebook.JohnWiley&Sons.1995.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有