从udp到tcp的Iptables

从udp到tcp的Iptables,tcp,udp,port,iptables,Tcp,Udp,Port,Iptables,是否可以使用iptables将网关路由器的所有传出udp流量转换为同一端口上的tcp。已经看过mangle,但不确定如何使用它。这在一般情况下是不可能的,至少有以下原因: UDP是一种数据报协议,其中每个数据包相互独立。TCP是一种流协议。虽然可以将UDP数据包连接到TCP流,但不清楚TCP流应在哪个边界处拆分以生成数据包 使用UDP副本时,可能会发生数据包丢失和数据包重新排序。如果您不能确定正确的顺序以及您是否获得了所有消息,并且只有一次,您就无法从中构造可靠的TCP流 TCP在收到数据包时

是否可以使用iptables将网关路由器的所有传出udp流量转换为同一端口上的tcp。已经看过mangle,但不确定如何使用它。

这在一般情况下是不可能的,至少有以下原因:

  • UDP是一种数据报协议,其中每个数据包相互独立。TCP是一种流协议。虽然可以将UDP数据包连接到TCP流,但不清楚TCP流应在哪个边界处拆分以生成数据包
  • 使用UDP副本时,可能会发生数据包丢失和数据包重新排序。如果您不能确定正确的顺序以及您是否获得了所有消息,并且只有一次,您就无法从中构造可靠的TCP流
  • TCP在收到数据包时进行确认,如果ACK丢失,则重新传输数据包。一旦您将TCP转发到UDP,这些ACK就无法完成,因为UDP没有这种机制

可能仍然可以进行特定于应用程序的转换,如UDP DNS到TCP DNS或类似的转换。但是这种转换取决于应用程序协议,因此您需要有一个特定于应用程序的网关。iptables作为数据包过滤器在较低的层上工作,不提供这种功能。

这在一般情况下是不可能的,至少有以下原因:

  • UDP是一种数据报协议,其中每个数据包相互独立。TCP是一种流协议。虽然可以将UDP数据包连接到TCP流,但不清楚TCP流应在哪个边界处拆分以生成数据包
  • 使用UDP副本时,可能会发生数据包丢失和数据包重新排序。如果您不能确定正确的顺序以及您是否获得了所有消息,并且只有一次,您就无法从中构造可靠的TCP流
  • TCP在收到数据包时进行确认,如果ACK丢失,则重新传输数据包。一旦您将TCP转发到UDP,这些ACK就无法完成,因为UDP没有这种机制

可能仍然可以进行特定于应用程序的转换,如UDP DNS到TCP DNS或类似的转换。但是这种转换取决于应用程序协议,因此您需要有一个特定于应用程序的网关。iptables作为数据包过滤器在较低的层上工作,不提供这种功能。

这在一般情况下是不可能的,至少有以下原因:

  • UDP是一种数据报协议,其中每个数据包相互独立。TCP是一种流协议。虽然可以将UDP数据包连接到TCP流,但不清楚TCP流应在哪个边界处拆分以生成数据包
  • 使用UDP副本时,可能会发生数据包丢失和数据包重新排序。如果您不能确定正确的顺序以及您是否获得了所有消息,并且只有一次,您就无法从中构造可靠的TCP流
  • TCP在收到数据包时进行确认,如果ACK丢失,则重新传输数据包。一旦您将TCP转发到UDP,这些ACK就无法完成,因为UDP没有这种机制

可能仍然可以进行特定于应用程序的转换,如UDP DNS到TCP DNS或类似的转换。但是这种转换取决于应用程序协议,因此您需要有一个特定于应用程序的网关。iptables作为数据包过滤器在较低的层上工作,不提供这种功能。

这在一般情况下是不可能的,至少有以下原因:

  • UDP是一种数据报协议,其中每个数据包相互独立。TCP是一种流协议。虽然可以将UDP数据包连接到TCP流,但不清楚TCP流应在哪个边界处拆分以生成数据包
  • 使用UDP副本时,可能会发生数据包丢失和数据包重新排序。如果您不能确定正确的顺序以及您是否获得了所有消息,并且只有一次,您就无法从中构造可靠的TCP流
  • TCP在收到数据包时进行确认,如果ACK丢失,则重新传输数据包。一旦您将TCP转发到UDP,这些ACK就无法完成,因为UDP没有这种机制
可能仍然可以进行特定于应用程序的转换,如UDP DNS到TCP DNS或类似的转换。但是这种转换取决于应用程序协议,因此您需要有一个特定于应用程序的网关。iptables作为包过滤器在较低的层上工作,不提供这种功能