关于telnet协议还原

   最近3个月比较闲,主要就做了下telnet协议的还原,但效果还是不理想。
   目前的telnet协议还原程序的主要问题如下:
   1、协议合法性检查不够,将很多不属于telnet协议的东西也当telnet处理了(如占用了23端口的某些bt协议)
   2、用户名和密码的获取效果不理想(虽然用户名密码确实难以完美的提取到,但我的提取过程还是需要改进)

   由于先前的架构,将网络状况考虑得过于理想,导致最近几个星期程序都在打补丁,而这个架构貌似不太适应现在的需求。也想过要推翻重来,但有时候想,编程序不是非常注重可重用性吗?我这么一个程序的改版都要那么跳跃式发展。。
   但昨晚稍微想了下,觉得整个构架还是动下大手笔比较好~~希望时间还来得及~~
   新版telnet还原大概遵循如下原则:
   i)与其他程序接口不变
   ii)首先做到利用状态机处理telnet流(不以包为记录边界)
   iii)利用选项协商能确定当前的23端口会话是否是传统的telnet会话。
   iv)避免产生垃圾文件(未插入数据库的文件)
   PS:对于应用层协议还原我一直存在一个误区,认为如果客户端的请求和服务器端的响应包要结合起来处理的话,必须先把客户端的请求包和服务器端的响应包统一排序(根据seq)。事实上,这是一种极为错误的观点,要将请求和响应结合起来,只需交替在客户端或服务器端寻找想要的数据即可,如对于这样一个交互过程"C: USER bripengandre S:+250 OK  C: PASS XXX S:+250 OK",我们只需先在客户端请求包中寻找USER,然后再到服务器端响应包中寻找“+250 OK”,接着再到客户端请求包中寻找PASS,如此循环。如果处理的会话不符合协议流程,则可丢掉这个会话,因为以我们掌握的信息是难以再准确还原出这个会话了(即算网络中的这个会话是正常的,只是我们抓包出问题了,如处理没跟上)。另外,TCP的发送缓冲区和接收缓冲区显然是分开的,我们写应用层协议程序时,遵循的流程也和上述提到的第二种方法类似。。
   但愿我能把那个可恶的telnet还原程序改好^_^
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值