sk_wmem_queued是目前傳送緩衝區的量
tcp_trim_head 把這快記憶體給去掉,
什麼時候會加入到記憶體裡呢?__tcp_add_write_queue_tail,
skb裡的記憶體是啥?
是如何確認傳送緩衝區的,傳送緩衝區 sk_wmem_free_skb 當接收到了ack之後,整個skb就可以被釋放掉了,所以在整個記憶體被傳送出去之前,這些都是有可能的。所以為了
tcp_ack+0x1742/0x18b0tcp_rcv_established+0x224/0x6d0
tcp_v4_do_rcv+0x129/0x210
__release_sock+0x5a/0x100
release_sock+0x30/0x90
tcp_sendmsg+0x11f/0xea0
? _raw_spin_unlock_irqrestore+0xe/0x10
inet_sendmsg+0x65/0xa0
sock_sendmsg+0x35/0x40
sock_write_iter+0x7b/0xd0
__vfs_write+0xc4/0x120
vfs_write+0xb8/0x1b0
sys_write+0x46/0xb0
entry_syscall_64_fastpath+0x13/0x94
end write
所以基本可以確認,所謂的傳送緩衝區,其實就是一系列的skb!!!!udp協議應該傳送出去就結束了。
所以,說白了,傳送緩衝區就說明了,我這個sock能用到記憶體的最大的數量。
不對啊,收到了ack還是不能說明我這個緩衝。。。oh, my gosh,這裡是傳送快取,是可以放棄的,剛才誤以為是接收快取了,ok,所以乙個sock的記憶體都是有乙個最大值的。那麼下面就是乙個很嚴肅的話題了,就是傳送緩衝區,滑動視窗都是什麼關係
套接字的接受緩衝區及傳送緩衝區
1.套接字的接受緩衝區及傳送緩衝區 net.ipv4.tcp rmem 這個引數定義了tcp接收緩衝 用於tcp接收滑動視窗 的最小值 預設值 最大值 net.ipv4.tcp wmem 這個引數定義了tcp傳送緩衝 用於tcp傳送滑動視窗 的最小值 預設值 最大值 netdev max backl...
UDP寫緩衝區(傳送緩衝區)分析
最近,碰到udp是否有寫緩衝區的疑問,對於應用,如下圖linux手冊中有設定udp傳送緩衝區相關屬性,也明確提到了send buffer的概念 那這是否意味著udp是有傳送緩衝區的嗎?我們再看一下 unix network programming 書中所述,這本書的作者權威性我就不多說了吧,在國內高...
socket 接收和傳送緩衝區
問題產生 在進行客戶端向服務端傳送資料時,每次傳送一定數量資料後傳送端就等不到send函式的返回,導致程式一直卡死在send函式。通過抓包發現 傳送端傳送過快而接收端處理速度過慢,導致快速傳送一定量資料後wireshark顯示傳送端傳送資料有window full提醒,幾次之後接收端會傳送zero ...