修改帧大小和socket缓冲区大小(转)

修改帧大小和socket缓冲区大小

MTU (最大传输单元)的缺省值为1500.

通过下面命令将其改为9000(jumbo frame)

% ifconfig eth0 mtu 9000

socket buffer size缺省为64 kB.

理论上,最优的buffer大小为<bandwidth>*<round-trip delay>

可以通过下列命令改变其大小(如256KB)

% sysctl -w net.core.rmem_max=262144 ;最大的接收缓冲区大小(tcp连接)

% sysctl -w net.core.wmem_max=262144 ;最大的发送缓冲区大小(tcp连接)

% sysctl -w net.core.rmem_default=262144;缺省的接收缓冲区大小(tcp连接)

% sysctl -w net.core.wmem_default=262144;缺省的发送缓冲区大小(tcp连接)

这些参数在proc/sys下面可以看到;

sysctl -p | grep mem:显示当前缓冲区设置

round-trip delay 可由ping命令得到。

时间: 2024-10-29 19:07:56

修改帧大小和socket缓冲区大小(转)的相关文章

socket tcp缓冲区大小的默认值、最大值

Author:阿冬哥 Created:2013-4-17 Blog:http://blog.csdn.net/c359719435/ Copyright 2013 阿冬哥 http://blog.csdn.net/c359719435/ 使用以及转载请注明出处 1 设置socket tcp缓冲区大小的疑惑 疑惑1:通过setsockopt设置SO_SNDBUF.SO_RCVBUF这连个默认缓冲区的值,再用getsockopt获取设置的值,发现返回值是设置值的两倍.为什么? 通过网上查找,看到li

Socket编程注意接收缓冲区大小

最近在做一个udp升级程序,因文件有点大,需要将程序分成多个包发送,每次发送一个包,收到回复后发送下一个包,直到完成,这样就控制为顺序发送,保证了完整性,简单定义一个协议,每个包,包含包编号,当前数据长度等信息 包头 命令 子命令 总包数 包编号 总长度 当前包长度 校验信息 数据 6byte 1 1 1 1 4 4 2 0-1024 命令:290 子命令:发送开始为 1   发送数据为2  发送成功为3(接收端发送给发送端)  发送失败为4 总包数: 文件分成多少个包 包编号:当前发送的是第几

修改Arduino串口缓冲区大小(转)

本帖节选自<Arduino程序设计基础>第二版 5.1.6串口缓冲区 在之前的示例程序中,我们都是采用人工输入测试数据的方式检验程序效果,Arduino每接收到一次数据,就会将数据放入到串口缓冲区中.       但是,当我们使用其他串口设备或者传输的数据量逐步增加后,你可能会发现写入的数据会有一些丢失,这是因为Arduino默认设定了串口缓冲区为64字节,当其中数据超过64字节后,Arduino会将之后接收到的数据丢弃.              我们可以通过宏定义的方式来增大串口读写缓冲区

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

很多情况下,默认的套接字缓冲区大小可能不够用.此时,可以将默认的套接字缓冲区大小改成一个更合适的值. 1. 代码 1 # ! /usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 import socket 5 6 # 设置发送缓冲域大小 7 SEND_BUF_SIZE = 4096 8 # 设置接收缓冲域大小 9 RECV_BUF_SIZE = 4096 10 11 12 def modify_buff_size(): 13 # 创建TCP soc

修改缓冲区大小

TCP的接收缓冲区是用来缓存从对端接收到的数据,这些数据后续会被应用程序读取.一般情况下,TCP报文的窗口值反映接收缓冲区的空闲空间的大小.对于带宽比较大.有大批量数据的连接,增大接收缓冲区的大小可以显著提供TCP传输性能.TCP的发送缓冲区是用来缓存应  用程序的数据,发送缓冲区的每个字节都有序列号,被应答确认的序列号对应的数据会从发送缓冲区删除掉.增大发送缓冲区可以提高TCP跟应用程序的交互能力,也因此会提高性能.但是增大接收和发送缓冲区会导致TCP占用比较多的内存. 命令 作用 R (co

TCP缓冲区大小及限制

TCP输出 下图展示了应用进程写数据到TCP套接口的过程. 每一个TCP套接口有一个发送缓冲区,我们可以用SO_SNDBUF套接口选项来改变这个缓冲区的大小.当应用程序调用write时,内核从应用程序进程的缓冲区中拷贝所有数据到套接口的发送缓冲区.如果套接口的发送缓冲区容不下应用程序的所有数据(或是应用程序的缓冲区大于套接口发送缓冲区,或是套接口发送缓冲区还有其他数据),应用进程将被挂起(睡眠).这里假设套接口是阻塞的,它是通常的缺省设置(还有非阻塞的套接口).内核将不从write系统调用返回,

java 缓冲区大小与下载速度的关系

1.对于缓冲区空间的设定,要根据具体情况来定,如果存在大量的长信息(比如文件传输),将缓冲区定义的大些,可能更好的利用网络资源,如果更多的是短信息(比如聊天消息),使用小的缓冲区可能更好些,这样刷新的速度会更快.一般系统默认的缓冲大小是8*1024.除非对自己处理的情况很清晰,否则请不要随意更改这个设置. 2 Apache Commons的FTPClient局域网上传文件速度本应该很快的,但却在实际开发中发现上传一个文件蜗牛速度,都是因为调用了如下API: ftpClient.storeFile

[cmd]如何设置 Windows 默认命令行窗口大小和缓冲区大小

Windows 命令行 cmd 窗口系统默认的大小(80*40)对于现在的屏幕配置已经跟不上时代了,我们总是要把它改大些,而且缓冲区大小也想改得大大的.单纯的为当前的 Windows 命令行窗口修改显示大小和缓冲区大小就简单了,右键命令行窗口标题,属性里改屏幕缓冲区和窗口大小就是,系统会为与当前标题相同的命令行窗口记住你的设置,比如 C:\Windows\system32\cmd.exe.但是经常你又会打开不同标题的命令行窗口,如  Tomat,这时候它又是默认的 80*40 的窗口大小,又得改

用命令行设置 Windows 命令行窗口大小和缓冲区大小

背景:使用命令行来修改windows 命令行窗口了的大小和屏幕缓冲区的大小(宽度和高度) 方法:方法是改注册表. 先来看下你可以在命令行下直接指定命令行窗口的大小了,进到命令行执行 mode,可以看到关于控制台的信息如下: 设备状态 CON:---------    行:        300    列:      80    键盘速度:   31    键盘延迟: 1    代码页:     936 这是我的默认的控制台的大小是 300 * 80,查看 mode 命令的使用,用 mode /?