IP Library Granted Patent US 11,750,516
Granted Patent B2
US 11,750,516 · App. 17/521,688 · Granted Sep 5, 2023

Programmatically determining next-hop mac address

Inventor: Gabriel Black (Colorado Springs, CO)
Assignee: KRATOS INTEGRAL HOLDINGS, LLC
H04L45/74H04L61/50H04L69/16H04L2101/622
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 11,750,516
App. No.
17/521,688
Granted
Sep 5, 2023
Kind
B2
Abstract

Systems, media, and methods are capable of determining a layer 2 destination address that can then be used by a network acceleration application to populate data packets to be transmitted using accelerated networking techniques. The systems and methods provide for a software application executed on a computing device that controls a NIC interface to provide for an accelerated network. The software application resides in the application layer of a networking stack and is interfaced via a virtual NIC or TUN/TAP device with the kernel and the networking stack and operating system (OS) facilities to determine a layer 2 destination address for use in accelerated network applications. Embodiments herein, through the combination above, are able to account for firewall rules, static ARP entries, or any other system-administrator rules put in place for network operations.

Claims (55)

1. A method to accelerate the transmission of packets by programmatically determining at least one next-hop mac address for packets to be transmitted in a network by an application residing at the application layer in a system having a kernel having a protocol stack, the method comprising:

create a phantom datagram (UDP) having protocol headers;

populate one or more of the protocol headers of the phantom UDP while leaving the next-hop MAC address header unpopulated;

submit the phantom UDP to the kernel for traversing the protocol stack;

receive the phantom UDP from the kernel with the next-hop MAC address header having been populated by the kernel;

recognize the phantom UDP based upon one or more predetermined characteristics;

store the next-hop MAC address header from the phantom UDP; and

do not transmit the phantom UDP.

2. The method of claim 1 further comprising create a next UDP; retrieve the stored next-hop MAC address; and populate the header of the next UDP with the retrieved next-hop MAC address.

3. The method of claim 2 wherein the protocol stack of the kernel determines the next-hop MAC address header based on a predetermined set of rules that accounts for routing rules.

4. The method of claim 3 wherein the predetermined set of rules accounts for one or more of network-rules, security measures, firewall measures.

5. The method of claim 2 wherein the application has control over a NIC and further comprising instruct the NIC to drop the phantom UDP.

6. The method of claim 5 further comprising bypass the kernel and provide a next UDP to the NIC with the stored next-hop MAC address header populated in the next UDP.

7. The method of claim 2 further comprising

use a bind call and a connect call with the kernel to create a socket;

retrieve and store a source IP and source port from the phantom UDP which were populated by the kernel; and

populate the header of the next UDP with the stored source IP and source port.

8. A method to programmatically determining at least one layer 2 destination address for packets to be transmitted in a network by an application residing at the application layer in a system having a kernel, the method comprising:

creating a phantom packet;

populating one or more of protocol headers of the phantom packet while leaving the layer 2 destination address unpopulated;

submitting the phantom packet to the kernel;

receiving the phantom packet from the kernel with the layer 2 destination address header having been populated by the kernel;

recognizing the phantom packet;

storing the layer 2 destination address from the phantom packet;

creating a next packet; and

populating header of the next packet with the stored layer 2 destination address.

9. The method of claim 8 wherein the kernel includes a protocol stack and the method further comprises the protocol stack of the kernel determines the layer 2 destination address based on a predetermined set of rules that accounts for routing rules.

10. The method of claim 9 wherein the predetermined set of rules accounts for one or more of network-rules, security measures, and firewall measures.

11. The method of claim 8 wherein the application has control over a network interface controller (NIC) and further comprising the NIC dropping the phantom packet.

12. The method of claim 11 further comprises bypassing the kernel and providing the next packet to the NIC.

13. The method of claim 8 further comprising

use a bind call and a connect call with the kernel to create a socket;

retrieve and store the source IP and source port from the phantom packet which were populated by the kernel; and

populate the header of the next packet with the stored source IP and source port.

14. A system for accelerated transmission of packets over a network by programmatically determining a layer 2 destination address, the system comprising:

at least one processor; and

a memory in communication with the at least one processor and storing instructions that when executed by the at least one processor cause the at least on one processor to:

execute an application residing at the application layer with an operating system having a kernel, the application operable to

create a phantom packet,

populate one or more of protocol headers of the phantom packet while leaving the layer 2 destination address unpopulated,

submit the phantom packet to the kernel, receive the phantom packet from the kernel with the layer 2 destination address header having been populated by the kernel,

recognize the phantom packet,

store the layer 2 destination address from the phantom packet,

create a next packet, and

populate header of the next packet with the stored layer 2 destination address.

15. The system of claim 14 wherein the kernel includes a protocol stack and wherein the protocol stack of the kernel is configured to determine the layer 2 destination address based on a predetermined set of rules that accounts for routing rules.

16. The system of claim 15 wherein the predetermined set of rules accounts for one or more of network-rules, security measures, and firewall measures.

17. The system of claim 14 wherein the application is further operable to control a network interface controller and the network interface controller drops the phantom packet.

18. The system of claim 14 wherein the application is further operable to bypass the kernel and provide the next packet to the network interface controller.

19. The system of claim 14 wherein the application is further operable to

use a bind call and a connect call with the kernel to create a socket;

retrieve and store the source IP and source port from the phantom packet which were populated by the kernel; and

populate the header of the next packet with the stored source IP and source port.

20. The system of claim 14 wherein the application is further operable to

populate the payload of the phantom UDP with an identifier and recognize the packet further includes recognizing the identifier.

Assignments (4)
SECURITY INTEREST Recorded Mar 17, 2026
From: FLORIDA TURBINE TECHNOLOGIES INC.; KRATOS ANTENNA SOLUTIONS CORPORATION; KRATOS INTEGRAL HOLDINGS, LLC; KRATOS SRE, INC.; KRATOS TECHNOLOGY & TRAINING SOLUTIONS, INC.; KRATOS UNMANNED AERIAL SYSTEMS, INC.; MICRO SYSTEMS, INC.
To: PNC BANK, NATIONAL ASSOCIATION
Reel/Frame 075103/0203 →
RELEASE OF PATENT SECURITY INTEREST RECORDED AT R/F 59664/0917 Recorded Mar 4, 2026
From: TRUIST BANK
To: FLORIDA TURBINE TECHNOLOGIES, INC.; GICHNER SYSTEMS GROUP, INC.; KRATOS ANTENNA SOLUTIONS CORPORATION; KRATOS INTEGRAL HOLDINGS, LLC; KRATOS TECHNOLOGY & TRAINING SOLUTIONS, INC.; KRATOS UNMANNED AERIAL SYSTEMS, INC.; MICRO SYSTEMS, INC.
Reel/Frame 075029/0769 →
SECURITY INTEREST Recorded Apr 6, 2022
From: FLORIDA TURBINE TECHNOLOGIES, INC.; GICHNER SYSTEMS GROUP, INC.; KRATOS ANTENNA SOLUTIONS CORPORATON; KRATOS INTEGRAL HOLDINGS, LLC; KRATOS TECHNOLOGY & TRAINING SOLUTIONS, INC.; KRATOS UNMANNED AERIAL SYSTEMS, INC.; MICRO SYSTEMS, INC.
To: TRUIST BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 059664/0917 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 8, 2021
From: BLACK, GABRIEL
To: KRATOS INTEGRAL HOLDINGS, LLC
Reel/Frame 058051/0732 →
Continuity (2)
Provisional Application 63111487 · Nov 9, 2020
Related Publication 20220150215A1 · May 12, 2022