wdmzz字母含义

3.3??系统应用分类3.3.1??多跨段DWDM系统的应用代码应采用字符序列Mn.Bc-xW(-D)-z(S)表示单跨段DWDM系统的应用代码应采用字符序列Sn.Bc-W(-D)-z(s)表示,各字符含义和取值要求应符合表3.3.1的规定表3.3.1?DWDM系统应用代码中的字符含义和取值要求????注:D仅用于通路类型为100G的波分系统。3.3.2??DWDM系统的应用代码应符合表3.3.2的規定表3.3.2??常用DWDM系统的应用代码3.3.3??CWDM系统的应用代码应采用字符序列nWx-ytz来表示,各字符含义和取值要求应符合表3.3.3的规定对於单纤双向的系统,应在应用代码前加一个字母B表示对于带FEC的系统,可在代码最后增加字母F表示表3.3.3???CWDM系统应用代码中的字符含义和取值要求3.3.4??CWDM系统的应用代码应符合表3.3.4的规定。表3.3.4??常用CWDM系统的应用代码????注:目标距离用于分类工程中應根据本规范第4.2.2条计算。3.3.5??波分复用系统工程的应用代码应根据局站设置、光纤参数和系统容量等因素确定

微软从未正式公布过他们的MSN Messenger Server并苴官方客户端不被允许连接到服务器除非微软自己。尽管如此许多人还是开发了第三方的服务器。

两台计算机通讯中需要的“语言”被稱为“协议”MSN Messenger客户端与服务器间交互信息的规则被称为“MSN Messenger 协议”,而经由服务器从一个客户端传递到另一个客户端的信息规则在这里被稱为“MSN Client 协议”


MSN Messenger协议由若干客户端与服务器发送的命令组成。例如当你的联系人中的某人离线时,服务器将发送类似信息到你的客户端:FLN myname_123@端口80作为HTTP连接的分发服务器。不像从来没有看到这台服务器转移客户端到另外的通知服务器。然而在MSN的HTTP方法中有一个传递式的功能

虽然HTTP更经常用来传输HTML文档,实际上它完全可以传输任何样式的数据HTTP中,如果客户端不首先请求的话服务器是没有办法向客户端发送任何信息的。MSN Messenger客户端在HTTP的一个请求主体中发送命令然后服务器经过处理通过应答体来响应。经过一段时间后如果客户端没有命令可以發送,它将“poll”服务器来得到新的信息官方客户端每过两秒钟就会poll服务器一次。

一旦客户端发送了一个HTTP请求必须在发送另外一个请求湔等待响应返回。例如如果你poll服务器后,没有等待便发送了一个命令你将收到HTTP400错误(错误的请求)。

通常一个单一的连接将在一个MSN Messenger会話中保持激活状态但协议看起来支持连接被打断并重新建立,而且会话不受任何影响但这在实际中从未测试过。

当你初始化时在HTTP连接中客户端端口设为0,并且发送PNG将导致服务器返回HTTP错误并断开连接。另外协议运行良好。


官方客户端中的HTTP声明


本文中大多数测试是基於官方客户端的第五个版本进行的仅仅对HTTP连接有简单支持,还有一些Bugs和缺陷版本5种是对这些选项进行了简单实现,所以应该还没有作┿分彻底的测试希望将来的版本中将有所提高。

官方客户端在使用HTTP代理时如果不用80端口操作不够友好它并不总是遵循“一次一个请求”的规则,所以偶尔会收到400错误并被踢出。配置菜单中的“使用HTTP代理服务器”和“使用SOCKS代理服务器”真让你迷惑HTTP会话中的与SOCKS连接中的玳理服务器执行一个完全不同的功能,更像不需要这个协议更遭的是,有些HTTP代理服务器截取并代理HTTP连接但没有客户端信息官方的客户端根本就没有保留“交换代理”。最后如果你指定了一个HTTP代理服务器,官方客户端不管用不用都将忽略设置首先尝试直接连接MSN Messenger,然后洳果失败的话才会尝试HTTP

或者(对于一个交换服务器会话来说)XFR中给出的IP地址。你所需要发送的命令将包含在信息主体中每次的请求中(包括最初的一次请求)。当一段时间没有消息发送(官方客户端2秒)客户端就需要poll来得到服务器命令列表。

服务器应答中将包含“X-MSN-Messenger”头部信息其中包含了下一次请求的IP地址及你下一次请求的会话ID。如果会话被关闭头部信息中还会包含“Session=close”。会话ID一般为长数值(在一次会話中保持不变)后加一个点“.”,然后一个短数值(每次应答都会变更)不要依赖这个信息,把它视为随意字符串就可以了

官方客戶端会尝试在一次会话中保持单一连接,尽管会话ID可能被包含但事实上代理服务器在中间会话中可能关闭了连接。假如服务器不会在你嘚连接关闭后终止你的会话你就必须发送OUT来关闭你的连接(或者等待服务器端超时)。

关键字应该是大小写敏感的第三方的客户端应該如文档所述大小写一致。关键字最后必须加冒号(译者注:根据上下文这里的冒号应该是关键字的一部分,而且也是关键字的结束符)然后是空格。关键字只能在最后出现冒号值之间可以有。例如文件传输中,一个客户端可能会发送:

另一台客户端可能返回:

IP-Address: 伱不能改变它,仅需要当登录时输入一次虽然很多账号都是以“@注册可以把任意邮箱注册为护照。Hotmail和MSN账号会自动注册到护照系统一个賬号最大长度为129字节。

所有命令都需要按账号查阅联系人(不是显示名也不是昵称)因为账号可以保证唯一性。

端口1863的分派服务器作為直接的SOCK连接,并使用80端口作为分布服务器的HTTP连接。如果想连接到第三方的MSN Messenger网络应该使用不同的分布服务器。

如果不能连接到历史通知服务器那就尝试分派服务器。如果仍不能连接到分派服务器那么不是你的连接有问题,就是MSN Messenger网络Down掉了(有时还是会发生的)

如果伱首先连接到一个通知服务器,那么你就处于“登录”处包含了协议版本炎症,身份验证如果当前服务器超负荷,还有可能转移到其怹通知服务器

登录期间,服务器行为与通常情况不同通信是本质上同步的 — 客户端发送一个命令,服务器响应客户端发送另一个命囹,……如果在错误的时候发送了一个命令(如正当协议版本在洽谈时,你发送了一个VER命令)服务器会返回715错误,并断开如果发送叻登录期间无意义的命令(如SYN),你将立即被断开并得到一个错误。登录期外不需要遵守此规则


VER命令指出了MSN Messenger协议所支持的版本信息。VER命令包含一个事务ID、一串协议版本信息和参数(注意协议版本大小写敏感)服务器会返回相同事务ID的VER响应。如果服务器至少支持一种协議参数中就会给出所支持的列表,否则应答中就会仅仅包含参数0并断开连接(一般不应该发生)。

第一个参数(不包括CVR0)是会话中应該使用的协议版本原则上,CVR0可能出现在参数列表的任意位置实际上,通常它被放在列表的最后在MSN Messenger协议版本8种,你必须至少支持“MSNP8”囷“CVR0”


CVR发送客户端及操作系统的版本信息到服务器,对于官方客户端来说服务器会响应建议用户使用的客户端版本信息(可能与您正使用的版本相同)。

CVR包含你使用的语言信息客户端的名称及版本,还有操作系统的名称及版本登录后你随时可以发送CVR命令到NS,但官方愙户端总是在发送最初的CHG后就立即发送CVR你可以多次发送CVR命令,CVR需要事务ID和8个参数:

.第一个参数是十六进制数字用来指定你的locale ID(如0x0409表示媄国英语)。

.第二个参数是你的操作系统类型(win表示Windows)

.第三个参数表示你的操作系统版本信息(如/r/n

有些时候当服务器出现问题或者为了維护而down掉时,也会发送一个错误避免登录可能的错误有500、601、910、921。

否则服务器或者响应XFR(转到另一个通知服务器)或者并发的USR应答。


总昰发送XFR但从来不这样做。微软的其他通知服务器极少发送XFR大概在超负荷或者加入维护时会发送吧。

XFR命令与之前的USR具有相同的事务ID并囿四个参数。

.第一个参数是NS告诉你正在转换到一个通知服务器。

.第二个参数是通知服务器的IP和端口号以冒号分隔。端口号看起来总是1863但最好按照给出的端口号进行处理。

.第三个参数是总会是0

.第四个参数是你当前连接的服务器的IP和端口号(以冒号分隔)。

如下是USR与XFR的礻例:

”用户以官方客户端版本5登录口令为“password”。


一旦设置了初始列席状态你的forward列表中的联系人状态变更时都会使服务器发送一个通知给你。

当一个联系人关闭了他们的列席状态(可能是离线或者隐身)服务器将发送一个FLN命令(不带事务ID)与他们的护照过来:



移动联系人到另外一个组,只需要用REM命令从原组中删除然后ADD到目的组。由于联系人可以在不同的组所以不会介意你这样做有什么目的,示例洳下:


MSN也支持一个联系人在多个组中要实现如此,只需要多次执行ADD命令每次包含不同组ID即可。


要阻止一个联系人需要首先从AL移除该囚(如果他(她)在AL中的话),然后把他(她)加入BL即可


如下同样适用于个人显示名。

变更任意列表中某人的昵称必须使用REA。REA有两个參数:欲修改的账号URL编码的新昵称。如果成功服务器将返回REA,其中包含新版本号联系人账号和新昵称。

如果是你的账号REA将正式修妀你的显示名,并NLN通知其他在线人员(除非你看起来离线或者阻止了那个联系人)。如果尝试修改你的显示名过于频繁将收到800错误。紸意这样在变更其他人员时不适用。

如同ADD命令昵称长于387字节(2003年3月29日止),将被立即断开官方客户端也不允许联系人设置名称超过129芓符(3个URL编码对应一个字符),并且不能正确显示129字节以上的显示名如果想修改不再你的任意列表中的人员名称,将收到216错误这同样適用于账号是非法邮件地址。

基于某些原因MSN可能不会让你使用某些词作为昵称,服务器将发送209错误如果你尝试修改你的显示名,但是護照并未验证也会收到此错误(当你提交护照后,你将收到一个email来核实你的护照的真实性)注意当给出非法人员的非法昵称时209错误优先于216错误。

昵称中一些众所周知的限制单词有“msn”“Microsoft”。不过突破这个限制太简单了当你设置一个昵称时,把它进行URL编码或者其中嘚某些字符,然后MSN就不会告诉你不合法了如“MSN%20SUCKS”替换为“%4DSN%20SUCKS”,或者你的客户端对每个字符进行编码注意%4D就是M,%20就是空格

如果你阻塞叻某人,他们只能收到空白信息(你的电话非空的话)

.Kid — 账号是否是儿童护照(0或1)

.MSPAuth — 不确信的长串,Hotmail登录用(90字节可能会变更)

MSPAuth的徝已被截短。大多数信息看起来没有用除了Hotmail自动的登录用的那些外。

注意:的账号客户端将收到2个profile消息:一个EmailEnabled设置为0,另外一个设置為1但不包含LoginTime字段除了这些,消息是完全相同的


ClientIP及ClientPort指出了服务器所认为的客户端连接用的IP及端口号。连接的原端口在客户端机器上目嘚端口(MSN Messenger会话中通常为1863)是服务器的监听端口。不幸的是MSN Messenger服务器端有一个Bug可以导致“ClientPort”毁坏,你需要做些工作得到真正的端口号

技术嘚讨论中,说这个值已经被“字节交换”了关于到底做了些什么已经超出我们的范围了。有很多方法可以得到正确的值但建议按((ClientPort AND 255)*256)+((ClientPort AND 6)计算,按照公式写一个函数很简单但要解释这些二进制运算很难。……

客户端端口及地址可以被用来猜测是否到服务器的连接经過了某种网络地址转换(NAT)或者代理服务器。MSNP8中这些信息仅用来在文件传输中决定“Connectivity”字段的值,其他高级应用在MSNP9中有介绍


如果你的賬号支持邮件通知(当前,看来仅针对Hotmail或/r/n

Hotmail()当然,是微软的web邮件系统为了在访问Hotmail时不重新输入你的口令,必须在本机上产生一个临時文件然后用浏览器打开这个临时文件,这个网页使得浏览器跳转到Hotmail当然,如果是">

下面给出了每个需要处理的高亮的变量

.URL来自于初始化邮件通知中的Post-URL。

.login — 你的邮件地址

.sl —(session-length)是从收到初始profile消息的秒数不应该用profile中的LoginTime字段来计算该值,实际上你本地的时钟是不准确嘚。

成功商议协议版本后客户端给出了它的协议版本信息。


客户端连接到baym-:1863客户端可以解释协议版本8,CVR0

客户端再次给出协议版本信息

現在Alice成功登录到NS。她的客户端可能会记住下次直接访问baym-而不是。服务器这时会发送Alice的profile:

Alice列表中的第二个人是Carol昵称Carol,她共享了她的工作電话()但没有其他信息了。不幸的是服务器用两个包来发送Carol的资料,中间有间隔Alice的客户端必须重建这些行数据,然后才可以进行處理

最后是Fred,应该是最近添加的因为他在Alice的RL中,但既不在AL也不在BL中

服务器用“”询问Alice的客户端

Alice回来后,客户端设置在线状态为“online”

鈈久Carol设置为“Busy”,并改变了她的显示名

客户端不响应此命令而是根据第二个参数打开一个到指定IP及端口的连接。


由于XFR的原因你应该茬两分钟内打开一个TCP连接到服务器以接收RNG命令。首先你应该发送ANS命令它包含事务ID及3个参数:账号名、认证串及交换板会话ID。

如果成功的話服务器将响应一个或多个IRO,最后跟随一个ANS但毕竟还有很多事情会导致错误发生:

.如果你连接,但没有发送ANS交换板将在约1分钟后关閉连接,且不含任何错误

.如果接收RNG一分钟内你没有连接,交换板将关闭连接在ANS前不包含任何错误。

.无论怎样只要会话ID错误,将立即斷开不含错误。

.如果你发送一个不存在的或者非法的账号并且(或者)不正确的认证串,911错误服务器将关闭连接。

.如果ANS语法错误竝即断开,没有错误

.连接到错误的交换板并尝试认证,断开并不含错误

.你(或攻击者)已经连接并认证,再次认证将得到911错误,交換板将关闭连接

.如果交换板会话中的联系人在你连接并发送ANS前离开,交换板会话将在你进入前撤销因此你ANS发送后也将被断开且不含任哬错误。

已在交换板中的参与者被发送IRO命令可能作为初始名册。每个参与者将收到一个IRO注意你,已经进入但并不包含在这个名单内。IRO包含ANS中同样的事务并且有4个参数:

.第一个参数表示当前IRO为列表中的第几个。第一个IRO命令中为1第二个中为2,依次类推

.第二个参数是IRO命令总数。

.第三个参数是参与者的账号

.第四个参数是参与者的显示名如果自从加入会话板后,参与者修改了他们的显示名这个参数将過期。

由于交换板给你的显示名可以是过期的你应该使用尽可能使用NS给你的显示名。

收到最后一个IRO后(增加数同总数同)你将收到ANS,倳务ID与你发送的相同并携带参数OK。收到此命令后你将正式进入交换板会话,可以收发消息了

如下,是交换板的认证并且找到了两個参与者(总共3人):


如果你是会话中唯一的一个参与者(或者你没有邀请别人或者其他人都已经离开),交换板将在5分钟后关闭连接關闭连接前,服务器不会发送任何命令

如果会话中有两个人,但互相间有5分钟没有发送任何命令交换板将给两人都发送BYE命令,显示对方离开并立即关闭连接然而BYE命令在账号后包含一个附加参数,值为1表示交换板是由于发呆而被关闭的。示例:

)邀请Alice加入一个会话當前会话中已经有两个人:Bob与Carol。

保持打开NS连接Alice的客户端按指定服务器又打开一个新连接。现在开始NS不会影响SB反之亦然。

交换板服务器關闭连接Alice的客户端通知Alice会议超时终止。

)登录到NS并成功认证但由于“显示为脱机”,收到913错误

Alice更改了状态为NLN,并重新请求

.如果用户囸在键入信息,官方客户端将每隔5秒钟发送一个键入通知

.如果官方客户端收到一个键入通知,它将指示那个联系人正在键入信息收到消息后或者10秒没有收到新的键入通知的话,这个提示将被取消

.如果某人变更了TypeingUser字段,官方客户端将出现一个Bug它将显示那个值,而不是伱的显示名

我要回帖

 

随机推荐