IP Library Granted Patent US 6,859,835
Granted Patent B1
US 6,859,835 · App. 09/684,457 · Granted Feb 22, 2005

Virtual port multiplexing

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 6,859,835
App. No.
09/684,457
Granted
Feb 22, 2005
Kind
B1
Abstract

To achieve the foregoing, and in accordance with the purpose of the present invention, a method and apparatus is disclosed which provides communication between at least two applications. The communication is achieved by accepting a connection from a second application on a first port and allocating a second port to receive the communication from the second application. Once the second port has been allocated the second port translation is recorded. The communication is sent to the first port from the second application and received on the second port. The communication is then delivered to a first application from the second port. In one embodiment the first application requests the communication from the first port and the first port is translated to determine the second port such that the communication is delivered to the first application in the step of delivering the communication to the first application.

Claims (68)

1. A method of providing communication between at least two applications, comprising:

accepting a connection from a second application on a first port;

allocating a second port to receive communication from the second application;

recording a translation of the second port to the first port;

the second application sending the communication to the first port;

a first application requesting the communication from the first port;

translating the first port in the request for the communication from the first application to the second port; and

delivering the communication to the first application from the second port.

2. The method as claimed in claim 1 , further comprising listening on the first port for the connection from the second application.

3. The method as claimed in claim 1 further comprising queuing the communication on the second port from the first port.

4. The method as claimed in claim 1 , further comprising the second application requesting to connect with the first port prior to the accepting the connection.

5. The method as claimed in claim 1 , further comprising negotiating the second port following allocating the second port.

6. The method as claimed in claim 5 , wherein:

negotiating the second port comprises negotiating the second port between a first virtual port multiplexer and a second virtual port multiplexer.

7. The method as claimed in claim 1 , further comprising connecting the second application with the second port following allocating the second port.

8. The method as claimed in claim 7 , wherein:

recording the translation comprises:

recording the translation of the second port in association with the first application; and

recording the translation of the second port in association with the second application.

9. The method as claimed in claim 8 , wherein:

recording the translation of the second port in association with the first application comprises recording the translation in a first virtual port multiplexer.

10. The method as claimed in claim 9 , wherein:

recording the translation of the second port in association with the second application comprises recording the translation in a second virtual port multiplexer.

11. The method as claimed in claim 8 , wherein:

the second application sending the communication to the first port comprises directing the communication at a first port number and translating the first port number to a second port number; and

sending the communication to the second port utilizing the second port number prior to receiving the communication on the second port.

12. The method as claimed in claim 7 , further comprising returning to the second application a virtual socket connection to the first port prior to the second application sending the communication to the first port.

13. The method as claimed in claim 1 , wherein:

delivering the communication to the first application from the second port comprises rewriting the communication to appear to the first application as though the communication is delivered from the first port.

14. The method as claimed in claim 13 , wherein:

rewriting comprises rewriting a header of the communication to include a first port number identifying the first port.

15. The method as claimed in claim 14 , wherein:

rewriting comprises rewriting the header of the communication to include a revised checksum.

16. A computer readable medium storing a plurality of instructions which, when executed, implement a method comprising:

accepting a connection from a second application on a first port;

allocating a second port to receive communication from the second application;

recording a translation of the second port to the first port;

receiving the communication on the first port from the second application;

receiving a request for the communication from a first application, the request including an indication of the first port;

translating the first port in the request for the communication from the first application to the second port; and

delivering the communication to the first application from the second port.

17. The computer readable medium as recited in claim 16 wherein the method further comprises queuing the communication on the second port from the first port.

18. The computer readable medium as recited in claim 16 wherein the method further comprises receiving a request from the second application to connect with the first port prior to the accepting the connection.

19. The computer readable medium as recited in claim 16 wherein the method further comprises negotiating the second port following allocating the second port.

20. The computer readable medium as recited in claim 19 wherein negotiating the second port comprises negotiating the second port between a first virtual port multiplexer and a second virtual port multiplexer.

21. The computer readable medium as recited in claim 16 wherein the method further comprises connecting the second application with the second port following allocating the second port.

22. The computer readable medium as recited in claim 21 wherein recording the translation comprises:

recording the translation of the second port in association with the first application; and

recording the translation of the second port in association with the second application.

23. The computer readable medium as recited in claim 22 wherein recording the translation of the second port in association with the first application comprises recording the translation in a first virtual port multiplexer.

24. The computer readable medium as recited in claim 23 wherein recording the translation of the second port in association with the second application comprises recording the translation in a second virtual port multiplexer.

25. The computer readable medium as recited in claim 16 wherein delivering the communication to the first application from the second port comprises rewriting the communication to appear to the first application as though the communication is delivered from the first port.

26. The computer readable medium as recited in claim 25 wherein rewriting comprises rewriting a header of the communication to include a first port number identifying the first port.

27. The computer readable medium as recited in claim 26 wherein rewriting comprises rewriting the header of the communication to include a revised checksum.

28. A system comprising a first computer configured to execute a first application and a second computer configured to execute a second application, wherein the first computer is in communication with the second computer during use, and wherein:

the first computer is coupled to receive a request for connection from the second computer on a first port, the request for connection responsive to the second application;

the first computer is configured to allocate a second port to receive communication from the second application;

the first computer is configured to record a translation of the second port to the first port;

the second application is configured to send the communication to the first port;

the first application is configured to request the communication from the first port;

the first computer is configured to translate the first port in the request for the communication from the first application to the second port; and

the first computer is configured to deliver the communication to the first application from the second port.

29. The system as recited in claim 28 wherein the second application is configured to listen on the first port for the connection from the second application.

30. The system as recited in claim 28 wherein the first computer is configured to queue the communication on the second port from the first port.

31. The system as recited in claim 28 wherein the first computer is configured to negotiate the second port with the second computer following allocating the second port.

32. The system as recited in claim 28 , wherein the first computer recording the translation comprises:

recording the translation of the second port in association with the first application; and

recording the translation of the second port in association with the second application.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2019
From: SYMANTEC CORPORATION
To: CA, INC.
Reel/Frame 051144/0918 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 28, 2015
From: SYMANTEC OPERATING CORPORATION
To: SYMANTEC CORPORATION
Reel/Frame 036199/0642 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED ON REEL 019872 FRAME 979. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNEE IS SYMANTEC OPERATING CORPORATION. Recorded Mar 5, 2012
From: VERITAS OPERATING CORPORATION
To: SYMANTEC OPERATING CORPORATION
Reel/Frame 027819/0462 →
CHANGE OF NAME Recorded Sep 26, 2007
From: VERITAS OPERATING CORPORATION
To: SYMANTEC CORPORATION
Reel/Frame 019872/0979 →
AGREEMENT AND PLAN OF MERGER Recorded Apr 10, 2006
From: EJASENT, INC.
To: VERITAS OPERATING CORPORATION
Reel/Frame 017766/0229 →
SECURITY INTEREST Recorded Jan 22, 2002
From: EJASENT, INC.
To: GATX VENTURES, INC.; SILICON VALLEY BANK
Reel/Frame 012493/0729 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2000
From: HIPP, BURTON A.
To: EJASENT INC.
Reel/Frame 011216/0939 →