• We had to restore from a backup today after a failed software update. Backup was from 0000 EDT and restored it at 0800 EDT so we lost about 8hrs. Today is 07/20/2024. More info here.

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.

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!

Members online