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

Posted qianbo_insist

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多进程单线程多端口TCPUDP三层协议转发相关的知识,希望对你有一定的参考价值。

端口转发

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

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

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

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

传递参数

使用传递参数端口的方式让UDP侦听数据。多端口则启动多进程模式。
好处不言而喻,清晰透明,进程隔离。

端口方式

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

产品模式

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

优点

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

以上是关于多进程单线程多端口TCPUDP三层协议转发的主要内容,如果未能解决你的问题,请参考以下文章

Flask 开启多进程或多线程

java核心-多线程-线程类基础知识

进程和线程单线程多线程和多进程

多线程--线程安全

多线程--线程安全

在python中单线程,多线程,多进程对CPU的利用率实测以及GIL原理分析