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

点赞:20391 浏览:92917 近期更新时间:2024-02-02 作者:网友分享原创网站原创

摘 要:随着计算机网络的普及,由微软公司推出的即时消息软件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.

基于MSN软件的通信原理编程参考属性评定
有关论文范文主题研究: 关于用户的论文范本 大学生适用: 自考论文、大学毕业论文
相关参考文献下载数量: 49 写作解决问题: 如何怎么撰写
毕业论文开题报告: 文献综述、论文选题 职称论文适用: 期刊发表、初级职称
所属大学生专业类别: 如何怎么撰写 论文题目推荐度: 最新题目

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