基于MSN软件的通信原理编程

时间:2024-02-08 点赞:46498 浏览:90924 作者原创标记本站原创

本文是一篇用户论文范文,用户类有关硕士毕业论文,关于基于MSN软件的通信原理编程相关学士学位论文范文。适合用户及服务器及通信原理方面的的大学硕士和本科毕业论文以及用户相关开题报告范文和职称论文写作参考文献资料下载。

摘 要:随着计算机网络的普及,由微软公司推出的即时消息软件MSN已经走进我们的生活中.现在MSN在国内通讯工具市场上稳稳占据第二的位置,仅次于腾讯.利用它可以与亲人、朋友、工作伙伴进行文字聊天、语音对话、视频会议等即时交流.本文从MSN聊天程序的视角,分析了它的网络通信原理、客户端和服务器端之间消息发送的规则,即“MSN Messenger协议”的工作原理.

关 键 词:MSN;协议分析;编程;TCP

中图分类号:TP311.52文献标识码:A文章编号:1007-9599 (2012) 19-0000-03

随着时代的进步,网络的发展,计算机通讯已经渗透到人们的各个生活工作领域.网上冲浪已成为人们生活中性价比高的通信方式.比如,UC、、MSN等.笔者讨论了MSN Messenger的基本通信原理及文字通信协议的格式.首先向大家介绍了MSN Messenger的服务器类别及主要命令语法的格式,然后通过图文结合的形式具体分析了它的登录、通信及拆线过程.

1MSN工作原理

1.1通信模式

MSN Messenger在通信方式上采用的是C/S通信模式,即客户/服务模式.它具体的共组原理是将一个应用编制为功能不同的两个部分,并使其在两台或多台计算机应用.一部分为服务器端口提供服务,用于对点击的回复;另一部分是为客户端口提供服务,用于提出请求.表现形式上,一般是一对一,一个服务端口与一个客户端口对接服务.但是,更多的情况是,一对多的形式,这是因为使用MSN的客户数量远远大于服务端.也存在多对多的形式.总的说来,应用MSN Messenger,一般可以分为两个程序或环节,其中一个就是安装在微软公司专用服务器上的,被称为MSN服务端,而另外一个则是安装在客户计算机上的,被称为MSN客户端.网络聊天具体操作流程是:假如客户A与客户B之间进行聊天的话,一般而言,客户A必须先把聊天数据发送到专用服务器,再由专用服务器把聊天数据转发到客户B的服务器端口.反之,也是同样的道理.在此,专用服务器就如同一个中转站,所有的聊天数据都要经过服务器转送.通俗的说我们可以把MSN更多的理解为即使可视的E-Mail.

1.2聊天途径的实现

因为MSN可以理解为可视的E-Mail,所以其聊天途径的实现就需要服务器的支持,MSN有多台服务器,服务器端的TCP端口固定为1863,IP范围在:207.46.0.0~207.46.255.255之间.用户首先登录分发服务器(Dispatch Server,简称DS),由分发服务器将用户分发给通知服务器(Notification

Server,简称Ns).用户问所有通信均通过交换服务器(Switchboard Server,简称SS)转发.下面来具体介绍一下这两个服务器:

(1)分发服务器(DS).DS是用户与服务器建立连接的初始服务器,其IP地址固定为:207.46.104.20,域名为:messenger.hot-mail..其主要功能是协商协议版本和向用户发送可用的通知服务器IP及端口.在用户收到通知服务器IP及端口并发回确认后,DS拆除与客户的连接.

(2)通知服务器(NS).它是服务器端主要的服务器.由DS提交用广的进程完成后,用户与NS建立连接,且在进行MSN会话期问,连接的NS是一直保持不变的(除非服务器故障,此时DS服务器会给用户指派其它的NS服务器).用户与NS之间互相传输的数据有:状态改变信息(在线、离线、空闲等)、交换服务器发出聊天邀请的请求信息、用户间协议协商信息和特殊通知.

(3)交换服务器(SS).交换服务器的主要功能是转发用户之间的即时信息.用户之间的即时信息全部通过交换服务器转发.当主叫方希望与在线用户聊天时,将向自己的NS发送一条请求信息,NS将该用户提交给一个SS,主叫方与该SS建立连接后,被叫方将从自己的NS接到通知,要求连接到同一个SS.

2协议分析

MSN即时消息协议规定命令语句的语法使用单行ASCⅡ码,以三个大写字母的命令标志开始(称为类型简字),其后可以跟任意个参数,并以CRLF(即回车换行符,对应的十六进制编码为OXOD OXOA)结束.不同参数之间以一个或多个空格分隔.参数不能直接包含空格,如果要包含空格或扩展字符(非7bitASCⅡ字符),需要采用URL编码方式进行编码.此外一些命令可以接受不编码的二进制数据流,在这种情况下,数据的长度将作为命令的一部分进行传输,同样由CRLF结束.用户发给服务器的命令称为请求,该请求是完全异步的,用户按照程序提交请求,请求包含事务ID,不需要等待服务器作出回应.服务器对收到的所有请求必须发送响应或报错,且响应里包含相应的事务ID.不需要按照收到请求的顺序发送响应,用户通过检查事务ID来确定响应与请求的对应关系,下面来具体谈一下关于MSN工作原理及协议.

2.1用户句柄的获得

MSN即时信息协议使用用户句柄(User Handle)识别用户,用户句柄也称账号或登录名,是用户身份唯一和永久的文本表示.用户句柄在语法上等同地址,命名方法可参看RFC822规定的字符集.用户可以通过三种方法获得用户句柄:


(1)使用.NET Passport向导注册,在注册的同时也就申请到了一个@hotmail.的电子,此名同时也是MSN的用户句柄;

(2)通过MSN Explorer申请到电了后,无需任何设置及注册即可用该名做为MSN的用户句柄;

(3)将自己原有的电子注册为Passport,注册后名也就成为MSN的用户句柄.用户原有的必须来自NET Passport的参与站点.用户名(User Name,也称昵称)是允许用户在注册或使用过程中自己定义的用来表示用户句柄的名称.用户名既不是唯一的也不是永久的.可以包含任何有效的Unicode字符.可以根据RFC2044采用的UTF-8编码方式或根据RFC1738采用的URL编码方式来表示用户名,当用户没有定义用户名时,用户名与用户句柄相同.

2.2常用命令语法分析

MSN中的命令是以类型简字为标志的,不同的类型筒字代表着不同的功能和实现方法.常用的类型简字有15个:USR、VER、CVR、XFR、CAL、JOI、RNG、ANS、IRO、CHG、NLN、1LN、BYE、OUT、CVR、MSG.下面具体分析它们的功能及命令格式.

(1)VER--Version协商协议版本.在最初与DS建立连接时,用户与DS协商双方的协议版本.MSNP8代表5.0版,MSNP9代表6.0版同时兼容5.0版.命令格式:

CTS:VER TRID MSNP9MSNP8CVR0(CTS表示用户端发往服务器,下同)

STC:VER TRID MSNP9MSNP8CVR0(STC表示服务器发往用户端,下同)

(2)USR--User用户信息.在登录服务器的过程中,USR用作传送用户句柄及用户认汪信息等.命令格式:

CTS:USR TRID SP S用户旬柄

STC:USR TRID SP S认证质询信息

CTS:USR TRID SP S认证响应信息

STC:USR TRID 0K用户旬柄

(3)XFR--Traner转移、转换、提交.XFR命令将用户提交给服务器.有3种情况用户需要从一个服务器提交给另一个服务器,在提交过程中尚未发现服务器端口有变化.这3种情况是:登录时DS把用户提交给指定的NS;服务器超载或需要维护时,NS将用户提交给其它的NS;在交换服务建立会话时,指定的NS把用户提交给特定的SS.

其SP为安全认证,通常为CKI:认证质询信息(也称Cookies,通常为三组数字,以.分隔),用户提交给指定的SS后,USR命令认证相应信息也采用此Cookies.提交至SS服务器后用户主动与SS服务器建立连接,并通过SS服务器中转进行即时信息传送.

(4)CAL—Call呼叫.用户会话期间,可以使用CAL命令邀请其他在线用户加入会话,服务器需要验证主叫用户是有权与被叫用户进行联系.如果主叫用户不允许与被叫用户进行联系,服务器相应给主叫用户一个错误信息;如果允许,SS将发一个RNG命令给被叫用户,并给主叫用户返回CAL响应.

会话ID是1O进制ASCII码数字,是用户与SS会话期间定义的,也是唯一的.

(5)JOI—Join加入.当新用户加入会话时,服务器将该命令发送给所有参加的用户,包括新加入会话的用户,同时也是对CAL的响应,表示呼叫成功,加入会话.

(6)RNG--Ring呼叫.当主叫用户向被叫用户发起聊天邀请时,被叫用户的NS服务器使用RNG命令通知被叫用户.

(7)ANS—Answer应答.当被叫用户收到RNG邀请,并同意加入会话时,被叫用户端向主叫用户的SS服务器使用ANS命令进行响应.主叫用户的SS服务器也会使用ANS命令应答.

(8)IRO—Initial Roster初始用户信息.IRO命令是主叫用户的SS向被叫用户发送加入会话信息.

(9)CHG—Change改变.当用户想改变其状态时使用CHG命令给NS服务器发送用户状态改变信息,用户状态在收到服务器的响应后才能改变.服务器使用CHG命令对用户状态改变的请求作出回应.

(10)NLN—Online在线状态.提示用户在线状态.

(11)ILN—initial Online初始在线.ILN功能基本是从服务器返回的对用户发送CHG或ADD命令的响应,主要用于用户刚登录网络,并且首次给NS发送CHG命令之后.

(12)BYE—Bye—Bye对方先拆线.当通信双方的其中一方准备拆线时,SS服务器使用BYE命令通知另外一个用户结束会话.

(13)OUT—OUT拆线.用户使用OUT命令向NS和SS发出拆线请求,结束用户与服务器会话,NS和SS收到该命令并确认后,使用TCP标志FIN等于I结束连接.

(14)CVR—版本及更新.用户使用CVR命令向服务器发送操作系统及MSN版本信息及用户句柄,服务器使用CVR命令向用户发送MSN版本更新地址.

3图解通信过程

MSN的通讯具体可分为三个过程,分别是:用户登录过程、用户间建立会话过程、用户会话及结束会话过程.下面具体通过图例来分析各阶段实现的过程.

相关论文

Matlab在《通信原理》课程中的应用

本论文是一篇通信原理方面有关论文参考文献哪里找,关于Matlab在《通信原理》课程中的应用相关研究生毕业论文开题报告范文。免费优秀的关于。

《通信原理》课程的教学

关于通信原理及参考文献及电子类方面的免费优秀学术论文范文,关于通信原理教学管理论文发表,关于《通信原理》课程的教学相关论文范文文献。

微信加密通信原理

本论文是一篇关于密钥相关本科毕业论文格式,关于微信加密通信原理相关函授毕业论文范文。免费优秀的关于密钥及信息安全及通信方面论文范文。

通信原理课堂教学

本论文是一篇通信原理类有关中学教学论文,关于通信原理课堂教学相关函授毕业论文范文。免费优秀的关于通信原理及电子信息工程及教学改革方。

《通信原理》课程教学改革的

这篇课程论文范文属于课程论文免费优秀学术论文范文,课程方面有关研究生毕业论文开题报告,与《通信原理》课程教学改革的相关课程论文评语。。

移动通信原理第3版

这是一篇关于无线电通信方面函授毕业论文范文,与移动通信原理第3版相关本科毕业论文范文。是研究生论文专业与无线电通信及移动通信及无线通。

通信原理课程改革探析

本文是一篇通信原理论文范文,关于通信原理相关硕士毕业论文,关于通信原理课程改革探析相关毕业论文模板范文。适合通信原理及通信技术及教学。