Let's say you have a modern computer with a 1 Gpbs Ethernet port running a standard Linux OS. The system receives a network packet on the Ethernet port. What happens next? How does the packet get processed? How does it gets transferred to the upper layer of the OSI model? Ultimately leading to the packet leaving the Ethernet port.

I am not looking for a deep down technical explanation but just a high overview of "Life of a network packet inside a computer". What components are involved? Processor, DMA, Buffer, Interrupts, Kernel, User-space, etc. If you want to make some assumptions for your response, feel free to do so.

Here is a starting point...When a packet arrives at the receive queue of the Ethernet port, an interrupt is generated by the Ethernet chip to signal the processor about the packet...

  • You might get a better answer for this at unix.stackexchange.com – YLearn May 14 '13 at 22:06
  • The networking stack in Linux (and any modern operating system) is very complex. You'd need to look at some standard networking texts on TCP/IP to get an idea on how it all fits together. Then you'd need to dig in, perhaps via kernelnewbies. – vonbrand May 14 '13 at 22:09
  • @YLearn - Thanks for the input. Can I somehow move my post to the Unix SE site? – modest May 14 '13 at 22:35
  • @modest, I believe mods can do so, but I don't believe you have the ability to move your own posts. Someone please correct me if I am wrong? – YLearn May 14 '13 at 23:10
  • @modest This question refers to the interaction of drivers and hardware and the operating system it plays a less important role. Let it be here). – STTR May 14 '13 at 23:26

Good question tomorrow I will try to answer). Will be a lot of pictures). + 20h.

An Efficient Programmable 10 Gigabit Ethernet Network Interface Card

enter image description here

enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.