发信人: ciert()
整理人: ciert(1999-11-29 09:42:37), 站内信件
|
我对Oicq目前协议的初步看法
在粗略看了oicq采用的实现方式以后,我感觉非常失望。
理由如下,
OICQ协议完全采用UDP封装,众所周知,UDP是不可靠
传输协议,但是效率比较高,同时协议封装和实现都很
简单。TCP协议比UDP协议消耗更多的CPU时间,相比而言
产生一个TCP连接和发送一个UDP包而言,TCP的开销很大,
这在服务器端更加明显。
但是,采用UDP包带来的首先是安全性问题。
采用UDP能够轻易进行伪消息传递,产生一个任意源地址
的UDP包都是非常简单的,这将为UDP包冒充带来福音(这是
IP-Spoofing的一个小部分),TCP协议由于采用可靠传递
和序列号认证,给仿冒带来巨大困难。
其次UDP封装反而带来通讯量上升,由于UDP协议对数据包不
保证对方接收到,OICQ采用每一秒钟左右反复发送的方法,
在判断超时之前,将反复发送十次以上。 在谈话时候,
如果对方不能被你直接访问,由OICQ产生的数据量将是你
谈话内容的十倍以上。实际例子,由于无法直接发送到对方用户
为了产生一次成功的"hi",OICQ向那个IP发送了30个UDP包
每个包长度为65 bytes,换言之,为了证明超时,OICQ用了
用户1950个字节,略小于2K。 超时之后,OICQ改向服务器
发送包,由服务器转发。一个"hi"产生了2K的通讯量。所以
我提醒DDN以流量计费的用户,要注意一下。(但是这对于
OICQ服务器端的减小流量非常有利,嘿嘿)
OICQ对安全性不重视其实是很明显的,因为其所有的数据通讯都
有赖于UDP和明文传送,包括注册用户资料,谈话内容,校验密码,
一切对网络路由过的主机敞开。从这一点而言,是很不负责任的。
OICQ的协议被完全解析之前,我还不能对OICQ协议的其他部分
有任何发言权,但是至少目前被我看到的,是非常不好的一面。
目前我对OICQ协议的实现方式的评价是:很差。
我并不是为了打击OICQ提供者或者有其他商业企图,我相信OICQ提供
商会加强这方面的改进,同时为用户多作考虑。OICQ有个很好的开端
也希望会有很好的发展。
* * * * * * * * * * * * * * * * * * * * * * * * * * *
OICQ--Open ICQ http://www.oicq.com
OICQ似乎还不是注册商标,希望oicq提供商能够注意
* * * * * * * * * * * * * * * * * * * * * * * * * * *
Vader Yang
[email protected]
-- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.109.32.68]
|
|