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的内存都是有一个最大值的。那么下面就是一个很严肃的话题了,就是发送缓冲区,滑动窗口都是什么关系

发送缓冲区sk_wmem_queued的更多相关文章

  1. TCP的发送缓冲区和接收缓冲区

    TCP协议是作用是用来进行端对端数据传送的,那么就会有发送端和接收端,在操作系统有两个空间即user space和kernal space. 每个Tcp socket连接在内核中都有一个发送缓冲区和接 ...

  2. tcp发送缓冲区中的数据都是由产生数据的进程给推送到ip层还是有定时任务触发?

    和几个变量有非常大的关系 发送缓冲区的大小,如何单独设置一个socket的发送缓冲区 socketopt 发送缓冲区中的数据,如果被拥塞窗口限制住了,那么这些数据可能就放在tcpbuffer里的,此时 ...

  3. socket 接收和发送缓冲区

    问题产生: 在进行客户端向服务端发送数据时,每次发送一定数量数据后发送端就等不到send函数的返回,导致程序一直卡死在send函数. 通过抓包发现:发送端发送过快而接收端处理速度过慢,导致快速发送一定 ...

  4. tcp发送缓冲区学习

    https://blog.csdn.net/ysu108/article/details/7764461 Nginx 模块开发书上有内容   陶辉博客也可以

  5. Python网络编程——修改套接字发送和接收的缓冲区大小

    很多情况下,默认的套接字缓冲区大小可能不够用.此时,可以将默认的套接字缓冲区大小改成一个更合适的值. 1. 代码 # ! /usr/bin/env python # -*- coding: utf-8 ...

  6. (转)关于tcp和udp的缓冲区

    (一)基础知识 IPv4 数据报最大大小是65535(16位),包括IPv4头部. IPv6 数据报最大大小是65575,包括40个字节的IPv4头部 MTU,这是由硬件规定的,如以太网的MTU是15 ...

  7. TCP的发送系列 — 发送缓存的管理(二)

    主要内容:从TCP层面判断发送缓存的申请是否合法,进程因缺少发送缓存而进行睡眠等待. 因为有发送缓存可写事件而被唤醒. 内核版本:3.15.2 我的博客:http://blog.csdn.net/zh ...

  8. TCP的发送系列 — 发送缓存的管理(一)

    主要内容:TCP发送缓存的初始化.动态调整.申请和释放. 内核版本:3.15.2 我的博客:http://blog.csdn.net/zhangskd 数据结构 TCP对发送缓存的管理是在两个层面上进 ...

  9. TCP的发送系列 — tcp_sendmsg()的实现(一)

    主要内容:Socket发送函数在TCP层的实现 内核版本:3.15.2 我的博客:http://blog.csdn.net/zhangskd 上一篇blog讲的是send().sendto().sen ...

随机推荐

  1. win10安装kali组双系统

    一.镜像下载: 根据需求下载自己需要的版本 从官网下载kali 2018.2 的安装包:https://www.kali.org/downloads/ 二.烧录: 这里推荐用 win32 disk i ...

  2. openwrt从0开始-目录

    终于下定决心把近期的笔记整理一下.涉及到方方面面,记录自己的成长和沉淀自己所学. 预备知识:linux, 网络通信,待补充... 目录: 前言:openwrt简介 1. openwrt源码下载及编译环 ...

  3. vue核心概念

    # 1. vuex是什么 github站点: https://github.com/vuejs/vuex 在线文档: https://vuex.vuejs.org/zh-cn/ 简单来说: 对应用中组 ...

  4. Java集合——ArrayList源码详解

    ) ArrayList 实现了RandomAccess, Cloneable, java.io.Serializable三个标记接口,表示它自身支持快速随机访问,克隆,序列化. public clas ...

  5. 重庆Uber优步司机奖励政策

    获得任何奖励的前提条件:当周接单率80%以上,当周乘客评分4.5分以上,且无刷单等欺诈行为. 滴滴快车单单2.5倍,注册地址:http://www.udache.com/如何注册Uber司机(全国版最 ...

  6. 青岛Uber优步司机奖励政策(1月4日~1月10日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  7. 用Scanner读文本文件内容

    import java.io.File; import java.util.Scanner; class Demo { public static void main(String[] args) t ...

  8. 一个只有十行的精简MVVM框架

    本文来自网易云社区. 前言 MVVM模式相信做前端的人都不陌生,去网上搜MVVM,会出现一大堆关于MVVM模式的博文,但是这些博文大多都只是用图片和文字来进行抽象的概念讲解,对于刚接触MVVM模式的新 ...

  9. PS 拉伸大长腿

    1.打开一个图片工具栏--图像--画布大小 2.选择矩形选框工具--框住要拉升退的位置--然后在按Ctrl+T,进行拉伸即可

  10. 初学Direct X(5)

    初学Direct X(5) 前面学习了使用表面绘制屏幕,但这种方法与另一种比较起来,有着绘图速度颇慢以及缺乏对任何透明类型的支持,这就是前面的篮框以及炸弹会有黑色背景的原因,这种方法就是纹理.他可以绘 ...