I have a question about the OSI model from an embedded software developer's perspective.
Suppose we have a laptop connected to a Wi-Fi router and an embedded system (sensor + MCU + Wi-Fi module) connected to another router. Both devices communicate over the Internet.
My main focus is understanding what control logic an embedded developer typically writes for the Data Link, Network, and Transport layers.
I can understand writing drivers for hardware interfaces, but I am not clear about what software responsibilities belong to the Data Link layer, what logic belongs to the Network layer (IP), and what logic belongs to the Transport layer (TCP/UDP) in a real project.
I know that nowadays much of this functionality is already available in libraries, firmware, or existing software, so developers often spend more time working on the application side. However, I would like to understand what functionality actually exists inside the Data Link, Network, and Transport layers and what kind of control logic would need to be written if we were implementing them ourselves.
Also, I often hear the term "TCP/IP stack." In C programming, I know a stack as the memory area used for function calls and local variables. What does the word "stack" mean in the networking context?
Could someone explain this using a simple real-world example, such as a sensor node sending data over Wi-Fi to a laptop through the Internet?
Suppose we have a laptop connected to a Wi-Fi router and an embedded system (sensor + MCU + Wi-Fi module) connected to another router. Both devices communicate over the Internet.
My main focus is understanding what control logic an embedded developer typically writes for the Data Link, Network, and Transport layers.
I can understand writing drivers for hardware interfaces, but I am not clear about what software responsibilities belong to the Data Link layer, what logic belongs to the Network layer (IP), and what logic belongs to the Transport layer (TCP/UDP) in a real project.
I know that nowadays much of this functionality is already available in libraries, firmware, or existing software, so developers often spend more time working on the application side. However, I would like to understand what functionality actually exists inside the Data Link, Network, and Transport layers and what kind of control logic would need to be written if we were implementing them ourselves.
Also, I often hear the term "TCP/IP stack." In C programming, I know a stack as the memory area used for function calls and local variables. What does the word "stack" mean in the networking context?
Could someone explain this using a simple real-world example, such as a sensor node sending data over Wi-Fi to a laptop through the Internet?