msn的会话监控

前几天研究了一下msn的协议,应该说比QQ的那个协议好看得多。现在来看看如何对msn的一个会话进行监控。 我们假设的场景为用户Bob想建立两个对话,对话Session1中Bob与Dave和George说hello,对话Session2中Bob与Frank说test。OK, here we go。msn用户在新建一个会话之前,首先需要向服务器连接到一个SB服务器(Switchboard),每一个会话对应一个SB ,SB是用于控制整个会话的服务器端,它会存储一些必要的信息,例如参加会话的人员、地址等,并且转发数据。在这一步,用户向NS服务器(Notification Server)发送一个询问,NS服务器返回一个SB的地址。之后,用户就可以连接SB服务器新建一个会话了。 具体如下所示:>>> XFR 15 SBrn<<< XFR 15 SB 207.46.108.37:1863 CKI 17262740.1050826919.32308rn 以上就说明NS服务器返回了SB地址为207.46.108.37:1863。如果我们在监视客户端和NS服务器的时候发现有服务器向客户端发送XFR的信息的时候,我们就能知道SB的信息。 接下来,用户获知SB1服务器地址后,会连结SB1,它会发送cal Dave请求和cal George请求,于是SB1返回两个cal session号,session号就是整个Session1的标记。我们可以通过这个session号来判断是否是同一个会话。最后通过joi邀请Dave和George进入会话。 例如: >>> CAL 8 dave@passport.comrn<<< CAL 8 RINGING 17342299rn<<< JOI dave@passport.com Davern>>> CAL … Continue reading