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. 单片机,struct ,union定义标志,节约RAM

    单片机的RAM是非常少的,像新唐,STC,合泰等一些国产的51单片机,RAM 512 byte,1k,2k,非常常见, 有时候我们的串口接收一串数据,或AD连续采集,这些数据是不能放到 flash 里 ...

  2. python--模块之random随机数模块

    作用是产生随机数 import random random.random:用于生成一个0--1的随机浮点数. print(random.random())>>0.3355102133472 ...

  3. 聊天功能插件Socket.io

    一.Socket.io是什么 是基于时间的实时双向通讯库 基于websocket协议的 前后端通过时间进行双向通讯 配合express快速开发实时应用 二.Socket.io和ajax区别 基于不同的 ...

  4. 讯飞SDK的使用

    在配置好Android Studio 2.3.3后,依照结合网上例子,动手创建讯飞语言听写app,最终手机上运行成功. 主要参考两篇博文(zqHero/XunFeiVoiceDEmo ,Android ...

  5. 记录:C#监视某个文件的打开记录

    首先,先说下为什么要搞这个: 1.首先,我的电脑里有5万左右的目录或文件,用于存放歌曲,数量众多.2.我不一定会用哪种软件听歌(不过也就是几种而已).3.我想在听歌的时候,检测哪首首歌被打开,能获取到 ...

  6. 初识Tarjan

    Tarjan,一个十分有用的东西,可以求有向图的强连通分量,复杂度达到O(V+E). Tarjan算法是基于对图深度优先搜索的算法,每个强连通分量为搜索树中的一棵子树.搜索时,把当前搜索树中未处理的节 ...

  7. 如何在线测试Exchange的速度

    最新碰到了客户需要比较国内版和国际版的Office365的速度问题,微软提供在线工具测试 这里以Exchange 测试为例子,请参考. PS Onenote贴过来只能至图片,各位看官只能将就了 这里有

  8. 线性代数之——对角化和 A 的幂

    利用特征向量的属性,矩阵 \(A\) 可以变成一个对角化矩阵 \(\Lambda\). 1. 对角化 假设一个 \(n×n\) 的矩阵 \(A\) 有 \(n\) 个线性不相关的特征向量 \(x_1, ...

  9. Caching Data in the Architecture (C#)

    http://www.asp.net/web-forms/tutorials/data-access/caching-data/caching-data-in-the-architecture-cs ...

  10. .Net并行编程 - 并行任务基础知识

    在微软的.NET Framework中,任务是通过System.Threading.Tasks命令空间中的Task类来实现的.它的静态属性Task.Factory是TaskFactory类的一个实例, ...