Please let me know where the gaps in my understanding are. There are many gaps, so please do not hesitate to fill them in or correct them.
To my knowledge, what happens on the hardware level when receiving a packet and triggering ARP, IP, or another process is the following:
- A signal is sent to the the router and is detected by the a UART or DUART.
- The DUART sends an interrupt to the CPU so that it can change the bit stream into read-able bytes.
- The bytes that the UART has converted from the signal (in the form of a 11 bits: 1 start bit, 8 bits for data, and 2 stop bits) are then sent to the Serial Interface adapter driver.
- The device driver for the serial interface adapter is then triggered from the HD and brought into the RAM memory.
- The device driver makes "virtualization" of the serial interface. This virtualization of the serial interface adapter takes the bytes that were received and puts them in a "frame" format that will be able to be understood by a process like ARP. For instance, it might put it in an ethernet frame.
- The virtualizations of the serial inferface are in a buffer (queue). When the virtualization is at the front of the queue, the device driver calls the correct process (again ARP, IP, etc) depending on the "protocol type" of the packet.
- The CPU then calls that program into RAM from the HD and writes to the "heap" that the process was assigned so that it can make sense of the packet and do what it needs to with the packet.
Places I know are very fuzzy are the role of the Serial Interfaces Adapter's device driver and the role of the queue. Also, I know that all operations are being driven by the CPU, I just thought it would be a little redundant to repeat it in each step.
Please let me now what is wrong with my understanding or any steps I am missing when describing what happens at the hardware level of a router when receiving a packet.