即时通讯工具QQ.docx
- 文档编号:4725237
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:12
- 大小:247.03KB
即时通讯工具QQ.docx
《即时通讯工具QQ.docx》由会员分享,可在线阅读,更多相关《即时通讯工具QQ.docx(12页珍藏版)》请在冰豆网上搜索。
即时通讯工具QQ
课程名称:
计算机网络
实习题目:
即时通讯工具QQ
姓名:
系:
专业:
年级:
学号:
指导教师:
职称:
2011年12月22日
目录
1.实习的目的和任务.................................................4
2.实习要求........................................................4
3.实习地点........................................................4
4.主要仪器设备(实验用的软硬件环境)................................4
5.实习内容........................................................4
5.1即时通讯工具的工作方式........................................4
5.2QQ使用的协议.................................................7
5.3结论验证.....................................................9
6.问题讨论与分析..................................................15
7.结束语..........................................................16
8.参考文献........................................................17
即时通讯工具QQ
1.实习的目的和任务
分析即时通讯工具的工作方式,理解QQ使用的协议,并进行验证。
2.实习要求
(1).了解什么是即时通讯工具
(2).分析即时通讯工具的工作方式
(3).分析QQ使用的协议
(4).结论验证
3.实习地点
4.主要仪器设备(实验用的软硬件环境)
1.硬件平台
处理器:
Pentium(R)Dual-CoreCPUT4200@2.00GHz
内存(RAM):
2.00GB
系统类型:
32位操作系统
2.软件平台
QQ版本:
QQ2010
QQ号码:
操作系统:
WindowsXP
工具:
科来网络分析系统2010
5.实习内容
5.1即时通讯工具的工作方式
(1)即时通讯简介
IM技术全称InstantMessaging,中文翻译“即时通讯”,它是一种使人们能在网上识别在线用户并与他们实时交换消息的技术,是电子邮件发明以来迅速崛起的在线通讯方式。
IM的出现和互联网有着密不可分的关系,IM完全基于TCP/IP网络协议族实现,而TCP/IP协议族则是整个互联网得以实现的技术基础。
最早出现即时通讯协议是IRC(InternetRelayChat),但是可惜的是它仅能单纯的使用文字、符号的方式通过互联网进行交谈和沟通。
随着互连网变得高度发达,即时通讯也变得远不止聊天这么简单,自1996年第一个IM产品ICQ发明后,IM的技术和功能也开始基本成型,语音、视频、文件共享、短信发送等高级信息交换功能都可以在IM工具上实现,于是功能强大的IM软件便足以搭建一个完整的通信交流平台。
目前最具代表性的几款的IM通讯软件有MSN、GoogleTalk、Yahoo、Messenger、腾讯QQ等。
(2)即时通讯技术原理
典型的IM工作方式如下:
登陆IM通讯中心(IM通讯服务器),获取一个自建立的历史的交流对象列表(好友列表),然后自身标志为在线状态,当好友列表中的某人在任何时候登录上线并试图通过你的计算机联系你时,IM系统会发一个消息提醒你,然后你能与他建立一个聊天会话通道进行各种消息如键入文字、通过语音等的交流。
从技术上来说,IM的基本技术原理如下:
IM服务器
↓
登陆或注销登陆或注销
↓
用户A通过列表找到B,用户B获得的消息并与之交谈
↓
通过IM服务器指引建立与B单独的通讯通道
第一步,用户A输入自己的用户名和密码登录IM服务器,服务器通过读取用户数据库来验证用户身份,如果验证通过,登记用户A的IP地址、IM客户端软件的版本号及使用的TCP/UDP端口号,然后返回用户A登录成功的标志,此时用户A在IM系统中的状态为在线(OnlinePresence)。
第二步,根据用户A存储在IM服务器上的好友列表(BuddyList),服务器将用户A在线的相关信息发送给也同时在线的IM好友的PC机,这些信息包括在线状态、IP地址、IM客户端使用的TCP端口(Port)号等,IM好友的客户端收到此信息后将在予以提示。
第三步是IM服务器把用户A存储在服务器上的好友列表及相关信息回送到他的客户端机,这些信息包括也在线状态、IP地址、IM客户端使用的TCP端口(Port)号等信息,用户A的IM客户端收到后将显示这些好友列表及其在线状态。
(3)即时通讯工具的通讯方式
A.在线直接通讯
如果用户A想与他的在线好友用户B聊天,他将直接通过服务器发送过来的用户B的IP地址、TCP端口号等信息,直接向用户B的PC机发出聊天信息,用户B的IM客户端软件收到后显示在屏幕上,然后用户B再直接回复到用户A的PC机,这样双方的即时文字消息就不再IM服务器中转,而是直接通过网络进行点对点的通讯,即对等通讯方式(PeerToPeer)。
B.在线代理通讯
用户A与用户B的点对点通讯由于防火墙、网络速度等原因难以建立或者速度很慢,IM服务器将会主动提供消息中转服务,即用户A和用户B的即时消息全部先发送到IM服务器,再由服务器转发给对方。
C.离线代理通讯
用户A与用户B由于各种原因不能同时在线的时候,如此时A向B发送消息,IM服务器可以主动寄存A用户的消息,到B用户下一次登陆的时候,自动将消息转发给B。
D.扩展方式通讯
用户A可以通过IM服务器将信息以扩展的方式传递给B,如短信发送方式发送到B的手机,传真发送方式传递给B的电话机,以email的方式传递给B的电子邮箱等。
早期的IM系统,在IM客户端和IM服务器之间通讯采用UDP协议,UDP协议是不可靠的传输协议,而在IM客户端之间的直接通讯中,采用具备可靠传输能力的TCP协议。
随着用户需求和技术环境的发展,目前主流的IM系统倾向于在IM客户端之间、IM客户端和IM服务器之间都采用TCP协议。
即时通讯相对于其他通讯方式如电话、传真、email等的最大优势就是消息传达的即时性和精确性,只要消息传递双方均在网络上可以互通,使用即时通讯软件传递消息,传递延时仅为1秒种
5.2QQ使用的协议
目前QQ软件采用2种协议,UDP和TCP协议,可以在登陆设置中选择协议登录。
在协议使用方面默认为UDP协议。
UDP协议是无连接方式的协议,它的效率高,速率快,占资源少,可是其传输机制为不可靠传送,必需依靠辅助的算法来完成传输控制。
QQ采用的通信协议以UDP为主,辅以TCP协议。
由于QQ的服务器设计容量是海量级的应用,一台服务器要同时容纳十几万的并发连接,因此服务器端只有采用UDP协议与客户端举行通讯才能保证这种超大规模的服务。
QQ客户端之间的消息传送也采用了UDP标准样式,这不同于国外的ICQ在客户端之间采用TCP举行通讯的标准样式。
因为国内的网络环境非常复杂,而且许多用户采用的方式是通过代理服务器共享一条线路上网的方式,在这些复杂的情况下,客户端之间能彼此建立起来TCP连接的概率较小,严重影响传送信息的效率。
而UDP包能够穿透大部分的代理服务器,因此咱们在开发QQ的时候选择了UDP作为客户之间的首要通信协议,因此网友会觉得用QQ传送信息要比ICQ及其它采用TCP协议的ICQ类软体快。
当然,UDP协议优点突出,缺点也很较着:
UDP包的传送是不可靠的传输,它不象TCP同样有包重传等机制,因此采用UDP协议的信息在传送过程中很容易丢失,这样就需要辅助的算法实现包重传机制以保证信息不会丢失,而QQ服务器的负荷非常重,因此在QQ以前咱们只是在客户端到客户端之间传送消息时采用了这个辅助的机制,当消息在客户间直接传送无法到达时就需要通过服务器来中转,由于服务器端在老版本的时候迫于负荷过重的压力没有对主动发往客户端的信息举行传输控制,因此在老版本的时候容易造成通过服务器中转的信息丢失的现象。
在QQ之后咱们单独设立出了几台专用的服务器采用包重传机制来中转消息(仅限于QQ之间通报的消息),确保通过服务器转发的消息也能够发送到对方的QQ。
一般内网传输首选QQ,速度最快,QQ的文件传输是直接个人对个人,采用P2P的传输方式,具有不需中转的优势,而且服务器都在国内,传输性能要高于外国IM软件。
(1)登陆
不管UDP还是TCP,最终登陆成功之后,QQ都会有一个TCP连接来保持在线状态。
这个TCP连接的远程端口一般是80,采用UDP方式登陆的时候,端口是8000。
因此,假如先所在的网络开放了80端口(80端口是最常用端口就是通常访问Web的端口,禁掉它的话,网络的价值已经不大了),但没有屏蔽腾讯的服务器IP,那么还是可以登陆成功QQ的。
(2)聊天消息通信
采用UDP协议,通过服务器中转方式。
UDP协议是不可靠协议,它只管发送,不管对方是否收到的,但它的传输很高效。
但是,作为聊天软件,怎么可以采用这样的不可靠方式来传输消息呢?
于是,腾讯采用了上层协议来保证可靠传输:
如果客户端使用UDP协议发出消息后,服务器收到该包,需要使用UDP协议发回一个应答包。
如此来保证消息可以无遗漏传输。
之所以会发生在客户端明明看到“消息发送失败”但对方又收到了这个消息的情况,就是因为客户端发出的消息服务器已经收到并转发成功,但客户端由于网络原因没有收到服务器的应答包引起的。
(3)文件/自定义表情传送
QQ可以传送文件,可以发送自定义表情。
先说官方表情。
官方表情实际发送的是命令字,而没有发送表情。
客户端收到命令字后,会自动解释为对应的表情。
自定义表情的传送是以文件传输方式进行的。
下面说文件传输方式:
A要向B发送一个文件,于是发出一个文件传送请求。
服务器收到这个文件传送请求后,转发给B,同时或者在B应答后,将A的IP地址同时发送给B。
B这个时候就得到了A的真实IP。
这里的IP是你的本机IP。
也就是说,如果A处在内网,B得到的地址就是一个内网地址。
B得到了A的地址之后,就会尝试去连接A。
如果B也处于内网,那么,显然A跟B之间的连接是无法建立的。
这个时候,客户端就会请求服务器进行文件中转。
因为服务器具有公网IP,处在内网的A跟B都是可以连接到服务器的,于是,A跟B的文件传送就通过服务器中转的方式,顺利进行。
*注:
什么是内网、公网
内网、公网是两种Internet的接入方式。
内网接入方式:
上网的计算机得到的IP地址是Inetnet上的保留地址,保留地址有如下3种形式:
10.x.x.x或172.16.x.x至172.31.x.x或192.168.x.x。
内网的计算机以NAT(网络地址转换)协议,通过一个公共的网关访问Internet。
内网的计算机可向Internet上的其他计算机发送连接请求,但Internet上其他的计算机无法向内网的计算机发送连接请求。
公网接入方式:
上网的计算机得到的IP地址是Inetnet上的非保留地址。
公网的计算机和Internet上的其他计算机可随意互相访问。
5.3结论验证
(1)QQ登陆
目前QQ软件采用2种协议,UDP和TCP协议,可以在登陆设置中选择协议登录。
在协议使用方面默认为UDP协议。
首先QQ客户端向服务器发送一个请求登录令牌的数据包.服务器返回登录令牌.这个令牌是在服务器端生成的.和客户端的IP地址,版本信息等数据相关.以后会用到这个令牌去进行其他操作.
在QQ客户端得到登录令牌之后.就会向服务器发送一个包含登录信息的登录请求.要求登录.服务器会首先看看客户端的号码.IP地址和版本是否可以在本服务器上进行登录.如果可以的话,就验证客户端的登录信息是否与服务器上保存的登录信息进行比较.匹配的就向客户端返回一个登录成功的数据包.不匹配返回登录失败.
因为QQ的服务器有很多台.可能要分管不同的QQ版本.IP等.所以如果客户端的号码.IP地址和版本无法在本服务器进行登录.其实整个QQ登录过程就是这么简单的两个步骤.
(2)QQ聊天消息通信
QQ文字信息发送图
聊天消息仅采用UDP协议,通过服务器中转方式传递。
QQ发送的文字信息数据包
QQ接收的文字信息数据包
(3)文件/自定义表情传送
文件传输与聊天消息不同,使用了UDP、TCP、HTTP协议
6.问题讨论与分析
6.1QQ是不是TCP和UDP一起用?
如果用UDP,如何做到信息的可靠发送?
答:
QQ即可以使用TCP也可以使用UDP,但QQ默认是使用UDP协议,因为UDP协议消耗资源小,发送速度快,但当UDP协议不能正常转发的时候,就会采用TCP协议进行发送.而信息的可靠发送是通过各种验证机制来完成的。
所以说,QQ通信以UDP为主,以TCP为辅。
6.2传送数据时需要经过中转么?
答:
QQ一直也是采用UDP通讯协议,聊天的双方在通信的时候信息数据包是直接在双方之间传输的,而不是像微软的MSN那样通过服务器中转,所以对方很容易就能获得你的IP地址,从而对你进行攻击。
不过QQ也有部分的通信数据包是通过服务器中转的,那就是当你隐身或者你发送的对象不在线的时候,所发送的数据包就是经过腾讯的服务器中转。
6.3服务器的端口号范围是多少?
答:
端口号范围
(1)公认端口(WellKnownPorts):
从0到1023,它们紧密绑定于一些服务。
通常这些端口的通讯明确表明了某种服务的协议。
例如:
80端口实际上总是HTTP通讯。
(2)注册端口(RegisteredPorts):
从1024到49151。
它们松散地绑定于一些服务。
也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。
例如:
许多系统处理动态端口从1024左右开始。
(3)动态和/或私有端口(Dynamicand/orPrivatePorts):
从49152到65535。
理论上,不应为服务分配这些端口。
实际上,机器通常从1024起分配动态端口。
但也有例外:
SUN的RPC端口从32768开始。
每一个TCP连接都必须由一端(通常为客户端)发起请求这个端口通常是随机选择大于1024以上(因为0-1023有特殊作用,被预定,如FTP、HTTP、SMTP等)的端口号来进行。
6.4QQ协议传送的数据是否有加密?
答:
QQ的包一般都是加密的(包头包尾除外),但是有个别包是不加密的,以后如果不做特别说明,则默认这个包是需要加密的。
此外,用什么密钥加密也有不同,不过基本上都是用会话密钥加密,以后如果不做特殊说明,表示是用会话密钥加密。
我们可以通过抓包分析,一般都有加密,加密的数据部分不会显示出来是空白的。
7.结束语
本次实验,我们是由两人共同完成的。
实验前,我们制定的计划是一个人分析即时通讯的工作方式及QQ的使用协议,一个人来进行验证。
然而,当我们开始完成报告时,才发现对我们来说验证是一个大问题。
所以接下来的过程,都是由我们边讨论边完成的。
去图书馆找些相关资料的书,是必不可少的。
可是图书馆里正面描述即时通讯的书籍较少,期刊较多。
通过查阅,我们了解到了QQ协议的内容,分析了即时通讯工具的一些介绍以及QQ所使用的协议。
之后的验证,我们从一个论坛上了解到,可以使用科来网络分析系统来分析QQ的数据包。
这是一个很好用的分析软件。
可刚开始使用时,由于不熟悉软件也浪费了很多时间。
通过一篇有关的使用说明书,我们才能完成接下来的验证。
我们通过抓取QQ的登录,发送文字、文件以及表情的数据包分析了QQ所使用的协议。
通过这次的实验,我觉得自己的查阅资料的能力提高了,使用新软件的能力也提高了,同时提高了与人的合作能力。
参考文献
[1]新思维工作室.QQ全攻略.北京.北京希望电子出版社.2003
[2]谢希仁.计算机网络(第5版).北京.电子工业出版社.2007
[3]腾讯QQ——在线人数最多的即时通讯软件.数字生活.2007年.卷12期.起止页码:
-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 即时通讯 工具 QQ