适用于Windows XP的透明代理

时间:2009-12-10 20:27:16

标签: windows networking drivers ndis

我有一个在Windows XP下运行的实验性TCP / IP堆栈。此堆栈使用LSP和NDIS IM绕过Windows TCP / IP堆栈。我现在需要为此提供代理服务以支持其他想要使用实验堆栈的平台。代理必须对客户端透明(无客户端配置)。我想在用户模式下运行此代理服务,其中我使用普通的Windows TCP / IP与TCP连接通过实验堆栈的其他方式与客户端建立TCP连接。一旦以这种方式连接,代理就会在两者之间进行读/写。我正在努力解决的问题是如何从发往某个地址/端口的客户端获取传入数据包并将其重定向到我的代理,同时仍然保持对原始目标地址/端口的了解,因此代理可以转发数据包到正确的目的地。我会很感激任何想法。谢谢......

1 个答案:

答案 0 :(得分:0)

发送一系列目的地,按时间顺序读取[我希望这个词在这个上下文中有效]顺序。每次从节点读取消息时,该节点将该元素删除为零并将所有其他元素向前移动。 。 。 。我认为这是一个相当简单的问题。 。

详细说明:我在第一份工作中使用过类似的系统。发送机器只知道目的地,它与目的端口和IP一起发送。然后我们称之为“邮递员”服务器检查哪些服务器可用,即。伪代码: 我喜欢在python中编码所以我讨厌声明变量[抱歉]我希望你能理解

nodes = postman.checkAvailableNodes()\\this will return a matrix with each element containing an ipaddress and available port on whichever available node on the network
\\loop through all available destinations and map a route to the destination server for n in nodes:
nodeArray2 = n[0].checkavailablenodes()
if length(nodeArray2) > 0:
for x in nodeArray2: . . . .

无论如何。 。 .once获得目标节点和端口,将IP和端口号添加到名为destinations的数组中,每次通过服务器时最多只会减少一个元素,最终将到达服务器