首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

请问重定向传输的原理

2013-07-08 
请教重定向传输的原理问一下:重定向传输工具(如rinetd)的工作原理是怎么样的?拿rinetd来说吧,一个请求从客

请教重定向传输的原理
    问一下:重定向传输工具(如rinetd)的工作原理是怎么样的?
    拿rinetd来说吧,一个请求从客户端发送到rinetd,再从rinetd发送到真正的服务器,那么应答从真正的服务器发送到rinetd的时候,rinetd又怎么知道它是哪个客户端的请求呢?
[解决办法]
简单来说,这个过程涉及到四个端口

第一,服务器S1开放端口A侦听,接收到从客户端X发过来的连接请求,然后判断符合规则要求,进行端口转发步骤;
第二;服务器S1占用一个端口B,主动向服务器S2的规则制定端口C发起连接。连接失败关闭A和X的连接,成功后进入下一步。
第三,X发向A的所有数据在内部缓存后,立刻通过B转发到C;C发向B的所有数据在内部缓存后,立刻通过A发向X……于是,一条虚拟的链路就连接起来,在使用者看来好像是X直连着C,而这对外是透明的。

综上所述:X-A-B-C四个端口的一个组合,可以在rinetd的内部记录着,作为一次会话的标示符。
[解决办法]
rinetd是简单的proxy,没有什么特殊性,接受请求,建议到backend的连接并转发数据,接受backend发来的数据并发给client。

不要将思维拘泥于细节,先做好一套得心应手的网络事件库,这种程序轻而易举。

热点排行