多进程单线程多端口TCPUDP三层协议转发

端口转发

1、需要端口转发的场合不胜枚举。既要适应windows server,也要适应linux server,场景如下所示
a)目标网络不好
b)目标机器在内网
c)不能直接连接目标端口
d)目标机器不能直接出网等场景

2、程序使用多进程方式,每个进程一个线程,在一定时间间隔之内使用启动一个临时temp线程检查并释放端口。

软件方面有多种程序需要转发:
1 外网程序需要和内网进行通信
2 内网直接转发到外网,并且进行进程端口均衡负载。

对于UDP来说,没有session,涉及的技术较为底层,对于tcp来说,如果我们需要对象原始地址的信息,则需要修改地址,如果在nat里面,也是没有必要的,出去的地址一般都是IP层地址。所以大部分软件层面的转发在tcp传输协议这一层,则没有必要改IP,实际上是四层传输层的转发。

传递参数

使用传递参数端口的方式让UDP侦听数据。多端口则启动多进程模式。
好处不言而喻,清晰透明,进程隔离。
多进程单线程多端口TCPUDP三层协议转发_第1张图片

端口方式

1 对于进来的每个IP,使用不同的IP和不同的端口进行发送,对于数据IP包,需要修改二层协议IP地址,端口,这样,需要修改IP包校验,这个需要耐心做好底层。
2 对于进来的每个IP,使用相同的本地IP和不同的端口进行发送,
3 七层应用层数据转发,不涉及IP协议。

产品模式

1 使用软件模式提供
2 使用树莓派进行特定端口转发,必要可以使用多个。

优点

1、相比于p2p的方式来说,端口转发目标清晰,成功概率比p2p要稳定
2、比起自己写程序进行通信来说,端口转发更为简单,实用,更适应各个程序,透明化,无需内外网程序担心逻辑性问题

你可能感兴趣的:(网络,c++,网络,tcp/ip,udp)