IP Library Granted Patent US 7,136,935
Granted Patent B2
US 7,136,935 · App. 09/887,810 · Granted Nov 14, 2006

Efficient data transmissions based on a policy

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 7,136,935
App. No.
09/887,810
Granted
Nov 14, 2006
Kind
B2
Abstract

A method and apparatus for reducing performance overhead of a media server sending packetized audio/video data to an end-player or user is provided. The main sources of performance overhead associated with a media server transmitting packetized audio/video data are (1) copying data from the user space buffer to the kernel buffer and (2) context switching from user level to kernel level. There are several techniques that can be used to address overhead. One technique involves creating an aggregate packet, which includes a policy, at the user level and transmitting this aggregate packet from the user level to the OS level with a system call. A second technique involves manipulating packets based on a policy in the OS level rather than in the user level. The manipulation of packets may include redirecting packets or splitting packets.

Claims (52)

1. A computer-implementable method for having computer executable instructions on a computer readable medium for sending packets, comprising the steps of:

communicating, from an application to an operating system, a policy for manipulating packets,

wherein the policy specifies at least one of (a) redirection needs of the application, (b) replication needs of the application, (c) packet aggregating needs of the application, and (d) packet splitting needs of the application; and

in response to receiving packets at the operating system, the operating system modifying the packets based on a policy without intervention of the application.

2. The method of claim 1 , wherein the step of communicating the policy comprises:

at the operating system, in response to receiving the policy from the application, storing the policy in a data structure.

3. The method of claim 1 , wherein the policy indicates destinations to which messages should be redirected.

4. The method of claim 1 , wherein:

the step of modifying the packets includes receiving a packet, replicating the packet based on the policy to create a plurality of replicated packets for a plurality of users interested in receiving the packet; and

the method further comprises the step of transmitting the replicated packets to the interested users based on the policy.

5. The method of claim 1 , wherein the policy is a first policy, wherein the packets are a first set of packets, and the method further comprises the steps of:

communicating, from the application to the operating system, a second policy for manipulating packets; and

at the operating system, modifying a second set of packets based on the second policy while the operating system is still configured to modify the first set of packets based on the first policy.

6. A computer-implementable method for having computer executable instructions on a computer readable medium for sending messages, comprising the steps of:

creating, by an application, an aggregate message from individual messages that are to be sent using an operating system service;

transmitting the aggregate message from the application to an operating system with a system call;

within the operating system, dividing the aggregate message back into individual messages; and

transmitting the individual messages using the operating system service, wherein at least one of the individual messages is sent to a different recipient than another of the individual messages.

7. The method of claim 6 , wherein the individual messages are packets.

8. The method of claim 6 , wherein the aggregate message includes a policy.

9. The method of claim 8 , wherein the policy indicates destinations to which messages should be redirected.

10. The method of claim 8 , wherein the policy includes video-to-message information.

11. The method of claim 8 , wherein the policy includes a time stamp that is a range of time indicating when the individual messages should be transmitted.

12. The method of claim 8 , wherein the policy includes time stamps for transmitting the individual messages according to the time stamps associated with the individual messages.

13. The method of claim 12 , wherein the time stamps are sequence numbers.

14. The method of claim 12 , wherein the time stamps are relative virtual time delays with respect to the first message to be transmitted.

15. A computer-readable medium carrying one or more sequences of computer instructions for sending packets, wherein the execution of one or more sequences of computer instructions by one or more processors causes the one or more processors to perform the steps of:

communicating, from an application to an operating system, a policy for manipulating packets,

wherein the policy specifies at least one of (a) redirection needs of the application, (b) replication needs of the application, (c) packet aggregating needs of the application, and (d) packet splitting needs of the application; and

in response to receiving packets at the operating system, the operating system modifying the packets based on a policy without intervention of the application.

16. The computer-readable medium of claim 15 , wherein the step of communicating the policy comprises:

at the operating system, in response to receiving the policy from the application, storing the policy in a data structure.

17. The computer-readable medium of claim 15 , wherein the policy indicates destinations to which certain messages should be redirected.

18. The computer-readable medium of claim 15 , wherein the policy is a first policy, wherein the packets are a first set of packets, and wherein execution of the one or more sequences of instructions by the one or more processors further causes the one or more processors to perform the steps of:

communicating, from the application to the operating system, a second policy for manipulating packets; and

at the operating system, modifying a second set of packets based on the second policy while the operating system is still configured to modify the first set of packets based on the first policy.

19. The computer-readable medium of claim 15 , wherein:

the step of modifying the packets includes receiving a packet, replicating the packet based on the policy to create a plurality of replicated packets for a plurality of users interested in receiving the packet; and

the method further comprises the step of transmitting the replicated packets to the interested users based on the policy.

20. A computer-readable medium carrying one or more sequences of computer instructions for sending packets, wherein the execution of one or more sequences of computer instructions by one or more processors causes the one or more processors to perform the steps of:

creating, by an application, an aggregate message from individual messages that are to be sent using an operating system service;

transmitting the aggregate message from the application to an operating system with a system call;

within the operating system, dividing the aggregate message back into individual messages; and

transmitting the individual messages using the operating system service, wherein at least one of the individual messages is sent to a different recipient than another of the individual messages.

21. The computer-readable medium of claim 20 , wherein the individual messages are packets.

22. The computer-readable medium of claim 20 , wherein the aggregate message includes a policy.

23. The computer-readable medium of claim 21 , wherein the policy indicates destinations to which messages should be redirected.

24. The computer-readable medium of claim 22 , wherein the policy includes video-to-message information.

25. The computer-readable medium of claim 22 , wherein the policy includes a time stamp that is a range of time indicating when the individual messages should be transmitted.

26. The computer-readable medium of claim 22 , wherein the policy includes time stamps for transmitting the individual messages according to the time stamps associated with the individual messages.

27. The computer-readable medium of claim 26 , wherein the time stamps are sequence numbers.

28. The computer-readable medium of claim 26 , wherein the time stamps are relative virtual time delays with respect to the first message to be transmitted.

Assignments (10)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE ASSIGNOR NAME PREVIOUSLY RECORDED AT REEL: 052853 FRAME: 0153. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 29, 2021
From: R2 SOLUTIONS LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 056832/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED ON REEL 053654 FRAME 0254. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST GRANTED PURSUANT TO THE PATENT SECURITY AGREEMENT PREVIOUSLY RECORDED. Recorded Dec 30, 2020
From: STARBOARD VALUE INTERMEDIATE FUND LP
To: R2 SOLUTIONS LLC
Reel/Frame 054981/0377 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Jul 8, 2020
From: STARBOARD VALUE INTERMEDIATE FUND LP
To: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
Reel/Frame 053654/0254 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2020
From: EXCALIBUR IP, LLC
To: R2 SOLUTIONS LLC
Reel/Frame 053459/0059 →
PATENT SECURITY AGREEMENT Recorded Jun 5, 2020
From: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MERTON ACQUISITION HOLDCO LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 052853/0153 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2016
From: YAHOO! INC.
To: EXCALIBUR IP, LLC
Reel/Frame 038950/0592 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2016
From: EXCALIBUR IP, LLC
To: YAHOO! INC.
Reel/Frame 038951/0295 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2016
From: YAHOO! INC.
To: EXCALIBUR IP, LLC
Reel/Frame 038383/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 6, 2006
From: INKTOMI CORPORATION
To: YAHOO! INC.
Reel/Frame 018361/0511 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 22, 2001
From: RAO, SRIRAM
To: INKTOMI CORPORATION
Reel/Frame 011932/0184 →