董师傅茶坊(2)

董师傅茶坊

仲治国:技术支持工程师;系统分析员;程序员;计算机图书作者;MCSE+MCDBA;任多家企业和学校技术支持工程师,技术培训讲师。

QQ与MSN之龟兔赛跑

QQ和MSN的本质一样?

QQ与MSN Messenger这类即时通讯程序,从本质上来说都是一个客户端/服务器应用程序,客户端利用QQ或MSN Messenger登录到消息服务器,然后发送聊天会话请求。消息服务器会暂存并处理发送两个客户端之间的通讯。那么,QQ与MSN Messenger的文件发送又是怎样的过程呢?通常,发送文件的计算机首先要通过消息服务器将其IP地址发送给接收计算机,当接收计算机同意接收的确认消息反馈到消息服务器后,消息服务器将据此设置好文件传输对话。随即,发送计算机与接收计算机就会在确定好的端口范围内,建立起TCP或UDP连接开始文件的检索与传输。

QQ比MSN在传输上为什么快?

那么,QQ为什么比MSN Messenger的文件传送速度要快一些呢?首先,MSN Messenger希望在传输文件时,用户的系统与网络操作能够最大程度地不受它的影响,它在MSN Messenger传送文件时采取了“节流传输服务”。此服务可以自动对文件的传输速度与网络带宽进行协调,并自动对传送的文件进行控制,以确保文件传送不会影响到其它的网络操作——当网络比较空闲时,可以发现MSN Messenger传送文件似乎快了一点。而QQ则不是采取这种设计理念,它在文件传输时会抢占带宽,它尽量争取最大优先权,以确保文件传输的速度不受影响。大家可以看到即便是系统高度繁忙,它的传输速度也不会受到影响。那么,为什么会出现这种情况呢?这就要从QQ与MSN Messenger的默认选用协议说起了。

在默认状态下,QQ优先采用了UDP(User Data Protocol,用户数据报协议)协议传送数据,MSN Messenger则默认采用了TCP(Transmission Control Protocol,传输控制协议)协议传送数据。UDP和TCP协议的主要区别在于两者的传递方式可靠程度不同。

TCP协议中包含了专门的数据传递验证机制,当数据接收方收到发送方传来的信息时,会自动向发送方发出确认消息;发送方只有在接收到该确认消息之后才会继续传送其它信息,否则将一直等待并直至收到确认信息为止。在MSN Messenger的整个文件传送过程中,以A机向B机传送文件为例,B机要不断地向A机发送验证数据。这个交互数据的过程在实际执行的过程中会占用系统资源,进而在一定程度上会对数据的收发速度产生影响。但其却可以保证已经接收的数据与源数据并无差异。

故而,对可靠性要求高的数据通讯系统往往使用TCP协议传输数据。与TCP协议不同,UDP协议并不提供数据传送的验证机制——在整个文件传输过程中如果出现数据报的丢失,协议本身并不能作出任何的检测或提示。因此,通常人们把UDP协议称为不可靠的传输协议。

UDP协议适用于无须应答、要求时效的软件使用,这样的设计正好与QQ追求的目标相符,所以QQ优先使用了此协议进行一切功能应用。但是,由于UDP协议具有不可靠性,常会因种种原因导致消息或数据的发送失败(很多时候会发现发送文件给对方接收时,对方根本收不到要求接收文件的消息。或是发送聊天消息时,对方根本没有收到过消息)。显然,UDP协议由于排除了信息可靠传递机制,将安全和排序等功能移交给上层应用来完成,极大降低了执行时间,使速度得到了保证。

相对于MSN Messenger在传输数据过程中,宁可中断传输也要保证数据可靠性这一点,QQ在数据传输上更注重实际性能,为了获得更好的使用效果,往往可以牺牲一定的可靠性。因此,使用QQ来传输数据,在很多时候就成了一个“不错”的选择。显然,我们已经可以看出来MSN Messenger成为这场赛跑的亚军的原因了。

这种TCP与UDP协议在文件传输上的差距,在网络状态良好的情况下越发明显,而网络状态不良时则差距明显缩小,甚至是出现相反的情况。如,有的人会发现有时QQ传送速度比MSN Messenger传送速度要慢。这是一个QQ一直在努力改善的问题。但是,即便是在已经得到优化的最新的QQ版本中,由于受到默认采用UDP协议的限制,仍然经常会遇到因双方网络的原因造成文件传输缓慢或不成功的现象。腾讯推荐的解决方法是使用会员专用服务器来解决问题,也就是说要求发送方将文件通过会员VIP服务器来代传,这就较好地改善了非会员遇到的诸多传送文件不稳定的不足。但这样的要求,代价却是非常昂贵的,众所周知:一个Q币等于一元人民币,做一个月会员就需要10元人民币。

MSN也会比QQ传输文件快?

虽然一向追求可靠性的MSN Messenger在网络不稳定时,可以呈现出胜于QQ传输速度的优势,但实际上,“发现有时QQ传送速度比MSN Messenger传送速度要慢”这一现象,相信绝大多数的人都没有发现过。这就说明这种优势是受到网络条件限制的。显然,网络稳定才是保障文件传输的基本要素,而软件的优化只不过是在不稳定的网络路径中,试图找出一条稳定捷径的设计罢了。但毋庸置疑的是,MSN Messenger的设计重心实际上并没有放在文件传输上,毕竟MSN Messenger的设计宗旨是即时通讯,而不是文件传输。

如果有朝一日,MSN Messenger的设计师发现文件传输对于用户也是非常重要的功能时,强大的设计实力必将使MSN Messenger与QQ在传输速度上的差距会有明显的缩小。

在我们拭目以待的同时,更希望国产的QQ能加快优化的步伐,努力找到稳定与速度之间的最佳契合点,使QQ这一影响上亿人的软件能更加光芒四射。

常用软件

无法用TT打开网页

Q:为什么QQ使用时,如登录、聊天、发送文件等操作均正常。但是QQ自带的TT浏览器却无法打开任何网页呢?

A:这种情况是“本地连接”的DNS服务器地址没有正确设置造成的。因为QQ程序已经内置了QQ服务器的IP地址,不需要域名解析功能,所以能够正常连接至QQ服务器;由于QQ自带浏览器实际上是使用IE的内核,所以它也要听命于系统的网络配置是否正确,由于浏览网页需要用到域名解析功能,所以当负责域名解析的DNS服务器没有设置好时,QQ的浏览器自然就不能打开网页了。

WMP没有DVD选项卡

Q:为什么刚买的IBM T43安装的Windows Media Player,在依次单击“工具”→“选项”菜单后,在弹出的“选项”窗口中可以看到有“DVD”选项卡的存在,而台式机中安装的同版本Windows Media Player中却没有DVD选项卡呢?

A:Windows Media Player是否支持DVD播放,取决于是否有受支持的解码器(硬件或软件)和受支持的DVD驱动器。如果具备了这些条件,Windows Media Player便会在用户界面中提供DVD功能和配置选项。因为T43中已经标配了DVD驱动器,所以WMP中自然会有DVD选项卡的存在。而台式机中,如果既没有DVD驱动器,又没有正确安装兼容解码器,则看不到DVD选项卡。

网络与病毒

共享Foxmail失败

Q:为了加强对电子邮件的安全管理,我单位准备将业务上使用的Foxmail安装在服务器上,员工们在使用“网上邻居”登录服务器后,谁都可以运行Foxmail程序来登录自己的邮箱。但是,在配置的过程中,发现员工们登录服务器并运行Foxmail程序后,只能出现英文版的Foxmail程序,并且其中配置的员工邮箱一个也看不见了。请问,如何解决这个问题?

A:这是服务器上权限设置不当导致的问题。首先,要在服务器上选中Foxmail目录并单击鼠标右键,在弹出的快捷菜单中选择“共享和安全”项,在接着进入的属性窗口中单击“权限”按钮,设置Everyone账户或员工们登录到服务器的账户,具有对此目录的完全操作权限。稍后,员工们再次登录服务器时,即可正常使用Foxmail的邮箱了。

为何会间歇性断开连接

Q:我学校新购的二十六台某品牌笔记本电脑中,有一台因故需要重装Windows XP系统。在重装完毕后,发现内置的Intel PRO 2200BG无线网卡在使用时,会发生间歇性与无线路由器断开连接的问题。我可以确认这台笔记本电脑在安装系统前,是可以正常并稳定使用无线路由的。请问,这可能是什么问题造成的?

A:如果网卡是最新的,却使用较老版本的Windows XP内置的兼容驱动程序的话,则有可能出现这种情况。因此,解决的方法是登录Intel网站,下载此网卡驱动程序的最新版本并完成安装即可。

操作系统

安装SP2后系统不断重启

Q:在为Windows XP安装了SP2补丁包后,系统出现不断重启及收到“Stop:c0000135”和“winsrv was not found”的错误信息。请问,如何解决这个问题?

A:安装SP2补丁的操作,推荐在刚安装完Windows XP的纯净状态下进行。否则,很容易被系统中一些现有的程序或插件产生很大干扰。例如,在安装了Adware T.V. Media广告插件的Windows XP中再安装SP2,就会出现你所遇到的类似故障。

此时,建议删除Windows XP SP2并彻底卸载所有插件程序,接着尽可能地减少应用软件的数量并重装SP2。

检查打印机工作日志

Q:请问打印机打印过文件后,在Windows XP系统中是否有记录?如果有的话,在什么地方可以查到?

A:有的。依次单击“开始→设置→控制面板→管理工具→事件查看器”菜单,在弹出的窗口中单击打开“系统”日志,拖动右侧的滚动条看到类型列中有“Print”项时,就可以看到当前计算机中打印文件的记录了。

找回英文输入法

Q:我调试电脑时,忽然发现英文输入法不见了。在采取一系列的方法后,仍未能找回此输入法。请问,还有没有可能找回英文输入法呢?

A:首先运行注册表编辑器,并展开到HKEY_CURRENT_USER\Keyboard Layout\preload,这里面分别有输入法位置对应的1、2、3几个主键。在将1、2、3修改成2、3、4后,选中Preload分支并单击右键新建一个名为1的主键。稍后,再双击右边的默认并将其值改为“00000409”。最后,在重新启动电脑并登录Windows XP后,就可以看到英文输入法已经回来了。