科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道TELNET二进制传输(2)

TELNET二进制传输(2)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

如果双方能够理解它们同处于二进制传输模式或者例如它们同处于Echo模式,如果他们对此进行了协商,则不会出现什么问题。

作者:论坛整理 来源:ZDNet网络安全 2007年12月20日

关键字: telnet命令 opentelnet linux telnet telnet入侵 telnet telnet端口

  • 评论
  • 分享微博
  • 分享邮件

  6.实现问题

  实现二进制传输则不能进行其它模式的传输,这是可以预见的。然而,如果双方能够理解它们同处于二进制传输模式或者例如它们同处于Echo模式,如果他们对此进行了协商,则不会出现什么问题。

  我们看到上面的命令意义解释可以注意到WON'T和DON'T的意义要看现在是不是处于二进制传输模式下,假设现在处于EBCDIC模式下,而且一方也不知道任何二进制传输的命令,如果它接收到DOTRANSMIT-BINARY,它根本不知道这是什么,因此返回WON'TTRANSMIT-BINARY,如果对于WON'TTRANSMIT-BINARY的默认值是NVTASCII,发送DOTRANSMIT-BINARY可能希望接收方转到NVTASCII,但接收DOTRANSMIT-BINARY的一方有可能不这么做。

  因此,我们有这样一条规则:当连接不处于二进制状态时,默认值(也就是说,对WON'T和DON'T的解释)是维持现状,无论是在在NVTASCII,EBCDIC或者是其他状态。然而,当连接处于二进制状态时,这规则就不顶用了。这就要求连接双方维持一个保存所有可用的连接状态的栈,这样才能正确解释WON'T和DON'T。在二进制状态下,WON'T和DON'T会使状态返回NVTASCII。

  因为telnet是一个双向的通道,因此必须保证双向的数据流都是二进制的。在实现时遵守防止循环的规则,这一规则在telnet协议中有描述。下面我们看看从一个进程和终端开始或接收二进制传输的情况:

  a.从终端开始二进制传输

  实现者应该考虑在二进制状态下如何产生8位有效数据,其中不带什么校验位之类的东西。

  b.二进制传输到进程

  实现者应该考虑在二进制状态下进行如何接收所有的二进制数据。例如TOPS-20会在终端级解释一些特定字符(例如,ETX,中断control-C),而不把它们传送到进程。

  c.从进程开始的二进制传输

  实现者应该考虑传输的字符如何不对对方的终端解释为其它的字符。例如TOPS-20会将非打印字符转为一个箭头和一个可打印字符。

  d.二进制传输到终端

  实现者应该考虑接收到的数据如何传送到本地终端。包括本地应该加入的一些字符,校验运算或字符转换。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章