Question related to TCP/IP buffering in linux


New Member
Feb 18, 2020
Reaction score
I have been trying very hard to find about buffers used in TCP/IP as part of packet transfer in linux. More i read, more i get confused. Below given are questions i have. Can someone help me figure it out?
1)Is the driver queue which is implemented as a ring buffer with descriptors pointing to skbs, same as receive and send buffers of TCP? If not when does receive/send buffers of TCP comes to picture in the packet travel?
2)Is TCP connection backlog queue totally different queue from accept/receive queue? Where does backlog queue fit in the packet travel? I understand backlog queue is for pending connections.
3)Is there a separate buffer area for each socket to which data is transferred from TCP accept/send buffers?
4)For incoming connections is the correct flow? NIC -> Kernel Ring buffer(skb) -> IP stack -> TCP accept/receive buffers -> Qdisc layer -> socket buffer for connection.


Well-Known Member
Apr 25, 2017
Reaction score
Wow - as one of the more technical people in the regular, active community here - even I'd be really hard pressed to answer those questions definitively.

I'm more of a desktop/application programmer.
I don't have a huge amount of knowledge of the design of the Linux kernel, or it's implementation. And I don't have a lot of experience with kernel level programming either. So this is a little out of my league.

But we have a lot of new members registering here every day. I don't know if any of them are a little more au-fait with this kind of thing.
Would be nice if we could get a couple of kernel hackers into the community here. But I'm sure they're too busy working on the kernel than to be talking to us mere mortals!
MALIBAL Linux Laptops

Linux Laptops Custom Built for You
MALIBAL is an innovative computer manufacturer that produces high-performance, custom laptops for Linux.

For more info, visit: