Latest LQ Deal: Latest LQ Deals
Go Back > Forums > Linux Forums > Linux - Networking
User Name
Linux - Networking This forum is for any issue related to networks or networking.
Routing, network cards, OSI, etc. Anything is fair game.


  Search this Thread
Old 07-27-2016, 08:26 AM   #1
LQ Newbie
Registered: Jun 2016
Posts: 9

Rep: Reputation: Disabled
In linux kernel, why doesn't tcp_transmit_skb delete the skbuff in the write queue whereas udp_send_skb does

I'm trying to implement a new protocol on top of UDP in the linux kernel. I need to implement flow control for this protocol but when I use the function udp_send_skb(), the transmitted skbuff gets removed from the write queue.
How does TCP manage to send an skbuff without removing it from the queue? I think the relevant tcp function is tcp_transmit_skb().
Once I understand this behaviour in TCP, I can do that in UDP. Or maybe someone can point out what to change in udp_send_skb (or in the functions called by it) to ensure that the skbuff is not deleted.
Old 07-27-2016, 02:36 PM   #2
Senior Member
Registered: Feb 2011
Location: Massachusetts, USA
Distribution: Fedora
Posts: 4,118

Rep: Reputation: 1258Reputation: 1258Reputation: 1258Reputation: 1258Reputation: 1258Reputation: 1258Reputation: 1258Reputation: 1258Reputation: 1258
TCP is lossless so needs to resend a packet if it doesn't get an ack. Once UDP sends, it's gone.
Old 08-02-2016, 04:03 PM   #3
Senior Member
Registered: Apr 2009
Posts: 1,839

Rep: Reputation: 160Reputation: 160
If you implement new staff on top of UDP, it is easy way to use socket API.


kernel, network, tcp, udp

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off

Similar Threads
Thread Thread Starter Forum Replies Last Post
USB Drive went into Read-only mode and doesn't allow me to write or delete anything nyk.mat Linux - Newbie 5 12-07-2013 06:20 AM
tcp_header=(struct tcphdr *)(skbuff->data+(skbuff->nh.iph->ihl*4)); How? iamjayanth Linux - Kernel 4 02-25-2011 05:07 AM
Linux QOS simple queue fifo doesn't work egarim Linux - Networking 1 10-10-2009 09:54 AM
Is it possible for me to write in front of queue in case of message queue? hemanthv414 Linux - Newbie 1 11-17-2008 05:40 PM
Exim can't delete queue Shwick Linux - Server 1 10-05-2008 09:32 AM > Forums > Linux Forums > Linux - Networking

All times are GMT -5. The time now is 07:02 AM.

Main Menu
Write for LQ is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration