作者sitos (麦子)
看板ask-why
标题Re: [请益] msn传档问题
时间Fri Jul 13 12:11:10 2007
※ 引述《z2o (有空再想)》之铭言:
: 标题: [请益] msn传档问题
: 时间: Thu Jul 12 23:32:09 2007
:
: 救我个人的了解
: msn应该是透过登入msn server之後再与其他用户通 话 沟通
:
: 那如果传档呢
: 也是透过server给吗
: 感觉绕了一圈ㄟ??(先给server,在给我想要传送的对象)
先前看到这个问题是有想要回,不过因为我也不知道确切的答案,所以就没有动手。
其实要知道答案也不困难,只要用 ethereal trace 一下封包就知道了。
只不过一来我很少用 MSN ,二来我最近有点忙 (我的程式 bug 好多),
所以就没有动手去做。不过我可以先回概念性的答案来说明两种方法的优缺点。
登入 msn server 的部份主要是要保有一份正确的使用者清单,
这份清单里面应该要有使用者的名称(e-mail)和使用者所在的位址。
不管实际通话或传档是否通过 server 来转送,这两个资讯都是必要的。
如果是透过 server 来转送,那麽 MSN server 与每一个 client 之间,
都必须要保有某种形式的连线,最简单的就是维持一个 TCP connection ,
这样要传东西的时候就直接送,断线也可以很快地知道。
由 client 向 server 发出一个 TCP connection ,
通常不会被防火墙阻挡,因此也较没有设定上的困难。
如果不透过 server 来转送,那麽 MSN server 至少要有 client 的 IP 和 port ,
当 A 试图要与 B 沟通的时候,由 A 向 server 要求 B 的 IP 和 port ,
再对 B 的 IP 和 port 建立一个连线,由 A 直接向 B 连线来沟通。
这样的作法必须要 B 允许该 port 的封包通过,通常需要另外设定防火墙。
另外这样的作法无法穿透 NAT ,如果 B 在 IP 分享器後面则可能收不到封包。
透过 server 转传的好处是稳定,因为只要双方到 server 的 connection 都在,
就一定有办法把封包送到对方的手上。两个 client 都不需要有额外的设定,
只要 server 端的 port 是打开的,连线就能够建立起来。
但是缺点是 server 的频宽和处理能力有限,当很多人同时使用或资料量很大时,
速度就变得很慢,甚至可能会发生因为 buffer 满了讯息就不见或很久才大的状况。
直接连线的好处是快,而且很有效率。也不容易造成在 server 端的效能瓶颈。
但缺点是没有 server 的认证, p2p 的连线时身份较易被伪造,
另一方面这样的连线无法穿透 NAT (尤其是如果两边都在 NAT 後面,根本连不起来),
很多时候需要额外的设定,相当不方便。如果遇到有防火墙或 NAT 的情况,
就必须要另外找一个 peer (不一定要是 server) 来转传封包。
虽然我不知道 MSN 是怎麽运作的,不过 Skype 是透过直接连线,不用 server 转传,
如果双方都在 NAT 或防火墙後面,它会找某一台效能不错又没有防火墙或 NAT 挡的,
透过第三方的电脑来作转传,因此你如果用 Skype 又大门开开,就可能被利用频宽。
详细的情况可能有点离题,如果有人有兴趣再详加讨论吧。 :)
: --
: 感谢回答
:
: --
:
※ 发信站: 批踢踢实业坊(ptt.cc)
: ◆ From: 59.116.182.81
: 推 alpe:nope 07/13 00:57
: → usera:蛮想嘘的 这种问题怎麽跑来这里问 07/13 11:10
这问题的形式虽然不太符合,但如果改成问:
为什麽要透过 server? 或 为什麽不透过 server? 可能就还 ok :)
--
活着的目的是为主活 然後为主死
死亡的目的是为主死 然後为主活
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.248.178.70
1F:推 buganini:msn应该都有,旧版protocol要过server,新版都可 07/13 21:26
2F:→ buganini:新版msn程式是直接传,非官方的msn client只有amsn 07/13 21:27
3F:→ buganini:可以直接连线的样子 07/13 21:27
4F:推 z2o:大感谢 虽然看的有点辛苦 很偏技术阿 还是谢谢喔^^ 07/13 23:27
5F:→ sitos:其实如果看不懂的地方可以再问。我很乐意回答 :) 07/14 00:59
6F:推 zhim:thanks 07/14 09:13
7F:推 MelLynce:推 很久才大 07/31 19:47