发送缓冲区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的内存都是有一个最大值的。那么下面就是一个很严肃的话题了,就是发送缓冲区,滑动窗口都是什么关系
发送缓冲区sk_wmem_queued的更多相关文章
- TCP的发送缓冲区和接收缓冲区
TCP协议是作用是用来进行端对端数据传送的,那么就会有发送端和接收端,在操作系统有两个空间即user space和kernal space. 每个Tcp socket连接在内核中都有一个发送缓冲区和接 ...
- tcp发送缓冲区中的数据都是由产生数据的进程给推送到ip层还是有定时任务触发?
和几个变量有非常大的关系 发送缓冲区的大小,如何单独设置一个socket的发送缓冲区 socketopt 发送缓冲区中的数据,如果被拥塞窗口限制住了,那么这些数据可能就放在tcpbuffer里的,此时 ...
- socket 接收和发送缓冲区
问题产生: 在进行客户端向服务端发送数据时,每次发送一定数量数据后发送端就等不到send函数的返回,导致程序一直卡死在send函数. 通过抓包发现:发送端发送过快而接收端处理速度过慢,导致快速发送一定 ...
- tcp发送缓冲区学习
https://blog.csdn.net/ysu108/article/details/7764461 Nginx 模块开发书上有内容 陶辉博客也可以
- Python网络编程——修改套接字发送和接收的缓冲区大小
很多情况下,默认的套接字缓冲区大小可能不够用.此时,可以将默认的套接字缓冲区大小改成一个更合适的值. 1. 代码 # ! /usr/bin/env python # -*- coding: utf-8 ...
- (转)关于tcp和udp的缓冲区
(一)基础知识 IPv4 数据报最大大小是65535(16位),包括IPv4头部. IPv6 数据报最大大小是65575,包括40个字节的IPv4头部 MTU,这是由硬件规定的,如以太网的MTU是15 ...
- TCP的发送系列 — 发送缓存的管理(二)
主要内容:从TCP层面判断发送缓存的申请是否合法,进程因缺少发送缓存而进行睡眠等待. 因为有发送缓存可写事件而被唤醒. 内核版本:3.15.2 我的博客:http://blog.csdn.net/zh ...
- TCP的发送系列 — 发送缓存的管理(一)
主要内容:TCP发送缓存的初始化.动态调整.申请和释放. 内核版本:3.15.2 我的博客:http://blog.csdn.net/zhangskd 数据结构 TCP对发送缓存的管理是在两个层面上进 ...
- TCP的发送系列 — tcp_sendmsg()的实现(一)
主要内容:Socket发送函数在TCP层的实现 内核版本:3.15.2 我的博客:http://blog.csdn.net/zhangskd 上一篇blog讲的是send().sendto().sen ...
随机推荐
- Python学习笔记八:文件操作(续),文件编码与解码,函数,递归,函数式编程介绍,高阶函数
文件操作(续) 获得文件句柄位置,f.tell(),从0开始,按字符数计数 f.read(5),读取5个字符 返回文件句柄到某位置,f.seek(0) 文件在编辑过程中改变编码,f.detech() ...
- springBoot整合ecache缓存
EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider. ehcache提供了多种缓存策略,主要分为内存和磁盘两级,所以无需担心 ...
- BZOJ1433_假期的宿舍_KEY
题目传送门 二分图匹配的题目. 但建边有一定难度,关系比较复杂. 首先要统计总共需要几张床. 在校且住校的会需要一张床,不住校的需要一张床. 然后对于在校且住校的与自己的床连边,不住校的与认识的住校的 ...
- day 10 形态学处理 膨胀
#-*- coding:utf-8 -*- #1.导入包 import cv2 import numpy as np #2.导入图片 img = cv2.imread('home.jpg',0) #3 ...
- leetcode笔记11 First Unique Character in a String
题目描述: Given a string, find the first non-repeating character in it and return it's index. If it does ...
- Question | 你所遇到的验证码问题可能都在这里了
本文来自网易云社区 "Question"为网易云易盾的问答栏目,将会解答和呈现安全领域大家常见的问题和困惑.如果你有什么疑惑,也欢迎通过邮件(zhangyong02@corp.ne ...
- OSG-简单模型控制
本文转至http://www.cnblogs.com/shapherd/archive/2010/08/10/osg.html 作者写的比较好,再次收藏,希望更多的人可以看到这个文章 互联网是是一个相 ...
- MySQL☞abs函数
abs( )函数:求出绝对值 格式: select abs(数值) from 表名 如下图:
- 内置方法(item系列)
class Foo: def __init__(self,name): self.name = name def __getitem__(self, item): # 获取时触发 print('get ...
- Unity编辑器 - 资源修改立即写入磁盘AssetDataBase.SaveAssets()
Unity编辑器 - 资源修改立即写入磁盘AssetDataBase.SaveAssets() 在编写编辑器时,如果需要修改Unity序列化资源(如Prefab,美术资源,ScriptableObje ...