发送缓冲区sk_wmem_queued

sk_wmem_queued是目前发送缓冲区的量

tcp_trim_head 把这快内存给去掉,

什么时候会加入到内存里呢?__tcp_add_write_queue_tail,

skb里的内存是啥?

是如何确认发送缓冲区的,发送缓冲区 sk_wmem_free_skb 当接收到了ack之后,整个skb就可以被释放掉了,所以在整个内存被发送出去之前,这些都是有可能的。所以为了

 [<ffffffff816f21d2>] tcp_ack+0x1742/0x18b0
 [<ffffffff816f3d04>] tcp_rcv_established+0x224/0x6d0
 [<ffffffff816fd089>] tcp_v4_do_rcv+0x129/0x210
 [<ffffffff8166fb9a>] __release_sock+0x5a/0x100
 [<ffffffff8166fc70>] release_sock+0x30/0x90
 [<ffffffff816e9f1f>] tcp_sendmsg+0x11f/0xea0
 [<ffffffff8187a6de>] ? _raw_spin_unlock_irqrestore+0xe/0x10
 [<ffffffff81713cd5>] inet_sendmsg+0x65/0xa0
 [<ffffffff8166bde5>] sock_sendmsg+0x35/0x40
 [<ffffffff8166be6b>] sock_write_iter+0x7b/0xd0
 [<ffffffff8118af94>] __vfs_write+0xc4/0x120
 [<ffffffff8118bb18>] vfs_write+0xb8/0x1b0
 [<ffffffff8118ca66>] SyS_write+0x46/0xb0
 [<ffffffff8187a760>] entry_SYSCALL_64_fastpath+0x13/0x94
End write 

 所以基本可以确认,所谓的发送缓冲区,其实就是一系列的skb!!!!udp协议应该发送出去就结束了。

所以,说白了,发送缓冲区就说明了,我这个sock能用到内存的最大的数量。

不对啊,收到了ack还是不能说明我这个缓冲。。。oh, my gosh,这里是发送缓存,是可以放弃的,刚才误以为是接收缓存了,ok,所以一个sock的内存都是有一个最大值的。那么下面就是一个很严肃的话题了,就是发送缓冲区,滑动窗口都是什么关系

转载于:https://www.cnblogs.com/honpey/p/9563574.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值