大家来讨论一下,MSN到底是怎样给一个通过代理上网的人发消息的?(30分)

  • 主题发起人 主题发起人 8341
  • 开始时间 开始时间
8

8341

Unregistered / Unconfirmed
GUEST, unregistred user!
通过代理上网,他没有IP,只有他代理的IP,且每个代理服务器有自己的规则。MSN服务器
怎么给他发消息?还有他可能是通过两级或3级代理上网的。
当他上网时,代理服务器给他一个ID号,并标记他的内部IP和他要连的IP,然后,把他的请
求转发出去。当有IP包接收过来时,代理服务器根据包的目的IP查找客户的要连IP,找到后
根据他的内部IP把包发给他。应该是这样吧?
在这里,内部IP应该是代理服务器自己用的,他没有必要发给外部INTENERT吧?谁知道是否
有一个“代理服务协议?”


 
MSN是用TCP建立连接的,因为连接是从内部连出去的,
这个连接在没有断开之前,外部消息都可以进入此机子。
 
楼上,我不明白你的意思,或者你没明白我的意思。
举个例子:
假设我是通过代理上网的,我的内部IP是10.70.151.69,我所连接的代理服务器的IP是
10.70.151.10,同时这个代理服务器还有一个网卡,其地址是202.107.10.68,这是真正的
外网地址。
现在MSN给我发消息,不可能和我的IP相连,因为我的IP是内部的,在INTERNET上是查
不到的。它必须和我的代理服务器相连。但是,它怎么告诉我的代理服务器:我要连接你
的内部IP:10.70.151.69呢?就算他可以这样告诉代理服务器,但是,不同的代理服务器
应该是不同的,有的代理服务器可能根本不理会你!是不是存在着一个“代理服务协议”,
所有的代理服务器软件都遵守该协议呢?
 
我想可能会是这样子的:
MSN客户端上线时已经将一些需要的信息发送到服务端去了,所以服务端知道你上线而且知道
你是用什么上线(操作系统、网卡号、IP地址、有没用代理、是拔号还是用ADSL、等等...你
想要什么就加什么吧),如果这样的话你觉的服务端还找不到客户端吗?
 
用TCP建立的连接代理服务器会分一个端口印射到你机子上,这是自动做的。
 
详细请看一下有关TCP/IP连接的资料
 
用NetMon 捕捉一下就可以知道:
你启动MSN的同时,MSN 通过代理与MSN 服务器联系(标记你已经上线),反馈给你1.是否有邮件,2.你的联系人谁在线;同时给与你相关的人(联系人中有你)并且在线的机器发送信息,告诉他们你已经上线.
并不是MSN先与你联系,是你先与MSN 服务器会话.
 
多人接受答案了。
 
后退
顶部