I am wokring on a project which requires the process to send a TCP/IP data frame via NIC periodically with high time auccuracy --> 1ms cycle time, with a tolerance of 50us(actually, the lower, the better). The application runs on a Linux machine (Ubuntu 20.04 is the distribution we now use). The programming language of our application is C++. So how could I develop an application with such feature?
Some concerning quesiton I can think of right now:
Should I choose a Real-time system? If so, what system would a good choice considering all factors, like cost, stablitity and community activity.
Should I choose some specific hardware to ensure the time accuracy? If so, how should I choose a proper machine. (I am not a hardware engineer, so I do expect adivices on hardware, thanks)
What features of Linux/C++ can I take advantage of to develop such an application? Any relevent/similar projects to recommend?