b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

linux系统调用Author:阿冬哥Created:201(2)

电脑杂谈  发布时间:2018-01-14 21:03:59  来源:网络整理

疑惑2:为什么要有2倍这样的一个内核设置呢?我的理解是,用户在设置这个的时候,可能只考虑到数据的大小,没有考虑数据封包的字节开销。所以将这个设置成两倍。

注:overhead,在计算机网络的帧结构中,除了有用数据以外,还有很多控制信息,这些控制信息用来保证通信的完成。这些控制信息被称作系统开销。

可知,接收缓冲区的默认是:1048576,1M。发送缓冲区的默认是:512488,512K。linux系统调用为什么建立一个socket时得到的默认是87380、16384???

由此可见,新建socket,选取的默认都是从这两个文件中读取的。可以通过更改这两个文件中的进行调优,但是最可靠的方法还是在程序中调用setsockopt进行设置。通过setsockopt的设置,能设置的接收缓冲区的最大是8M,发送缓冲区的最大是16M(Linux 2.6.6中)。

1. tcp 收发缓冲区默认

[root@ ]# cat /proc/sys/net/ipv4/tcp_rmem

4096 87380 4161536

linux系统调用教程_linux系统调用open_linux系统调用

87380 :tcp接收缓冲区的默认

[root@ ]# cat /proc/sys/net/ipv4/tcp_wmem

4096 16384 4161536

16384 : tcp 发送缓冲区的默认

2. tcp 或udp收发缓冲区最大

[root@ ]# cat /proc/sys/net/core/rmem_max

131071

131071:tcp 或 udp 接收缓冲区最大可设置的一半。linux系统调用

也就是说调用 setsockopt(s, SOL_SOCKET, SO_RCVBUF, &rcv_size, &optlen); 时rcv_size 如果超过 131071,那么

getsockopt(s, SOL_SOCKET, SO_RCVBUF, &rcv_size, &optlen); 去到的就等于 131071 * 2 = 262142

[root@ ]# cat /proc/sys/net/core/wmem_max

linux系统调用open_linux系统调用_linux系统调用教程

131071

131071:tcp 或 udp 发送缓冲区最大可设置得一半。

跟上面同一个道理

3. udp收发缓冲区默认

[root@ ]# cat /proc/sys/net/core/rmem_default

111616:udp接收缓冲区的默认

[root@ ]# cat /proc/sys/net/core/wmem_default

111616

111616:udp发送缓冲区的默认

4. tcp 或udp收发缓冲区最小

tcp 或udp接收缓冲区的最小为 256 bytes,由内核的宏决定;

tcp 或udp发送缓冲区的最小为 2048 bytes,由内核的宏决定


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-60264-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...