TCP/UDP over HTTP/WebSocket https://github.com/rkonfj/toh
TCP/UDP over HTTP/WebSocket 的程序主要用于在只允许HTTP或WebSocket协议的网络环境中传输TCP或UDP流量。这种技术通常用于以下场景:
穿越防火墙和NAT: 有些网络环境(如公司、学校网络)可能会阻止除HTTP/HTTPS之外的其他端口或协议。通过将TCP/UDP流量封装在HTTP/WebSocket协议中,可以绕过这些限制。
Web应用程序: 现代Web应用程序可能需要与TCP/UDP服务进行通信。由于浏览器限制,直接使用TCP/UDP是不可能的,但可以通过WebSocket与服务器建立连接,服务器再将流量转发到TCP/UDP服务。
兼容性: 在某些环境中,如某些企业或学校网络,可能只允许Web流量。在这些环境中,即使是需要使用TCP/UDP的应用程序,也可能需要通过HTTP/WebSocket来通信。
远程桌面和游戏: 远程桌面应用程序和某些类型的网络游戏需要低延迟的TCP/UDP连接。如果直接连接受限,它们可以通过WebSocket来传输数据。
物联网(IoT): 在IoT场景中,设备可能需要通过互联网发送数据到中心服务器。如果设备位于受限网络中,使用HTTP/WebSocket作为传输层可以更容易地将数据传输出去。
VPN服务: 一些VPN服务提供商支持通过WebSocket或HTTP传输VPN流量,以便在仅允许Web流量的网络环境中使用。
流媒体: 在某些情况下,流媒体服务可能需要通过HTTP/WebSocket协议来传输内容,以确保内容能够穿越严格的网络防火墙。
这种封装方法通常会引入额外的延迟和开销,因为HTTP/WebSocket协议相对于原生的TCP/UDP来说更加复杂。因此,它一般只在没有其他选项的情况下使用。