Question related to TCP/IP buffering in linux


New Member
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
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!
$100 Digital Ocean Credit
Get a free VM to test out Linux!