Multiplex Transport Virtual Sockets Port Restrictions
Solution Overview
Problem
Current remoting method invocations, such as RMI and web services, face limitations in efficiently managing socket resources due to firewall restrictions on port availability, necessitating a solution to support multiple streams of communication over a single pair of sockets.
Innovation Solution
The implementation of a multiplex transport mechanism in remoting clients and servers that forms virtual sockets, allowing multiple streams of communication to share a single pair of sockets, thereby conserving resources and overcoming port restrictions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a socket invoker utilizes available socket connections from a pool of sockets, then communication efficiency is improved, but socket resources are depleted due to firewall restrictions on port availability
Solution Approach 1:
The patent implements a multiplex transport mechanism that allows a single socket connection to handle multiple communication streams simultaneously. The socket invoker creates virtual sockets that multiplex over the underlying physical socket, enabling method calls, asynchronous callbacks, and multiple logical communication channels to share the same physical socket resource. This resolves the contradiction by making the socket serve multiple functions beyond traditional one-to-one mapping.
Solution Approach 2:
The patent segments the communication protocol into multiple virtual streams that operate over a single physical socket. Each virtual socket represents a segmented logical channel with its own identifier, allowing the system to maintain multiple independent communication contexts while physically sharing one socket connection. This segmentation enables efficient resource utilization without depleting socket resources.
2Adaptability or versatility
If multiple socket connections are established to support different communication streams, then communication versatility is improved, but port availability is restricted due to firewall limitations
Solution Approach 1:
The patent merges multiple communication streams into a single socket connection by implementing a multiplex transport layer. The socket invoker and server invoker establish one physical socket connection that carries multiple virtual communication channels, each identified by unique stream identifiers. This combining approach bypasses firewall restrictions on port availability while maintaining full communication versatility through logical channel differentiation.
Solution Approach 2:
The multiplex transport mechanism acts as an intermediary between the application layer communication requirements and the transport layer socket connection. It mediates by translating multiple logical communication streams into a single physical socket protocol, adding multiplexing headers and stream identification to enable versatile communication over restricted network paths.
3Quantity of substance
If a single socket is shared by multiple communication streams, then socket resource conservation is improved, but stream differentiation becomes more complex
Solution Approach 1:
The patent adds a new dimension of stream identification to the traditional socket communication model. Instead of differentiating streams through separate physical sockets, it introduces virtual socket identifiers and stream tags as an additional dimension. This allows the system to conserve socket resources while managing multiple streams by organizing them in a multi-dimensional address space rather than requiring separate physical resources.
Data Source
AI summary
A remoting client and a remoting server are described. In one embodiment, the remoting client has a client remote access application comprising an application programming interface (API), and a client invoker coupled to the client remote access application, the socket invoker comprising a multiplex invoker. The multiplex invoker is to form a socket on the remoting client, to bind the socket to a port of the remoting client, to couple the socket to a socket of a remoting server, to form a plurality of virtual sockets on the remoting client, and to associate the plurality of virtual sockets with the socket of the remoting client. The plurality of virtual sockets share the socket and the port of the remoting client.


