MMS和RTSP都是用于通过网络进行流媒体服务的协议(mms是微软的私有协议,和那个手机的MMS没有关系的)。
前两天在内容重定向上碰到了问题:http://blog.joycode.com/peon/posts/14725.aspx
今天看了这篇文章:http://msdn.microsoft.com/library/en-us/dnwmt/html/mmsfirewall.asp
提到微软的mms协议关于NAT的问题,终于对这个问题有了初步的头绪:mms协议和rtsp协议都把流分为控制流和数据流,当使用udp作为数据流时候一般这样:
client连接到server的一个固定端口比如1755,一切就绪后,然后发送自己的ip地址和端口号给server,server就向这个IP和端口发送数据流。
但是经过NAT时,NAT修改IP包的端口和IP地址,但是NAT并不了解MMS协议,当然不知道修改client发送给server的信息了,于是server发出的数据就无法到达client,类似的还有FTP采用主动模式的情况。
原来一直没有意识到这个问题,因为我是采用的mms的方式,当使用这两种协议描述字的时候,其实client和server私下里会协商采用mmst(走tcp通道)或者mmsu(通过udp发送数据),这个过程称为协议翻转,通过NAT以后,一般都采用了tcp的方法(就是mmst),这种方法似乎数据流和控制流使用了同一个连接,对于NAT是友好的。
今天才意识到mmsu协议其实不是NAT友好的。
然后Client在重定向以后再协议翻转的时候(mms->mmst),出了问题,为什么会出问题,原因仍然不是很清楚,MediaPlayer可没有源代码看 :D
打印 | 张贴于 2004-03-05 16:55:00 | Tag:MediaTechnology

添加到百度搜藏
留言反馈
如果可以麻烦你给解答一下喽,呵
mms://61.178.85.8/hotcache/34730
(在我这里可以正常播放)