Looking at asynchronous programming
Considering that asynchronous is in RAET's name itself, it should come as no surprise that RAET is a type of asynchronous protocol. TCP is not an asynchronous protocol by nature, but it can be used for asynchronous tasks. UDP isn't exactly asynchronous either; it uses more of a "fire and forget" methodology.
So what is asynchronous programming? First of all, let's examine what synchronous programming is. Classical programming is synchronous by its very nature. A program issues a command and then waits for it to complete before issuing the next command.
In terms of more complex software, a program will start with a series of commands, which will usually end up calling subroutines or functions, which themselves may call more subroutines and functions. Each time a piece of code calls another piece of code, it must wait until that code completes before moving onto its next step.
This kind of code is limited by blocking. This means that if you have a number of...