I'm confused about what parts of a linux system do what when it comes to networking. I'm looking for a good reference about more than just the network layers. Starting with network layers though, using the OSI 7 Layer model:

2-Data Link

At what point does networking go from hardware to kernel to application software? I suspect at (1) it's all hardware and just signals on wires or over wifi At (2) it reaches some network interface, but do they make frames, or do the interface drivers? (3) network, IP, I'm guessing handled by the OS? (4) still kernel or at least sockets provided by low-level libraries in C/C++? (5) Not entirely sure, but thinking this is still low level, where SYN, SYN/ACK, ACK take place. And then finally (6) user-space, or application space of actual data, but in raw form. And then (7) all application, and the application can determine the intents and behavior of network communication.

closed as too broad by Rui F Ribeiro, Michael Homer, jimmij, Mr Shunz, X Tian Mar 7 at 12:35

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 2
    I VTCed as "too broad". "TCP/IP Illustrated vol I, II, III" and "The Design and Implementation of the FreeBSD Operating System (2nd Edition)" are books to get you started. I would advise far more specific questions. – Rui F Ribeiro Mar 6 at 22:19