小编lit*_*ude的帖子

ifconfig 和 iproute2 虚拟接口之间的区别

我想知道以下之间有什么区别:

# ifconfig eth0:0 1.1.1.1/24
Run Code Online (Sandbox Code Playgroud)

并且只是

# ip addr add 1.1.1.1/24 dev eth0
Run Code Online (Sandbox Code Playgroud)

顺便说一句我做不到

# ip addr add 1.1.1.1/24 dev eth0:0
RTNETLINK answers: File exists
Run Code Online (Sandbox Code Playgroud)

它的ip addr show表现有所不同:

eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 
link/ether 8c:ae:4c:fe:1f:75 brd ff:ff:ff:ff:ff:ff
inet 1.1.1.1/24 brd 1.1.1.255 scope global eth0:0 ---> with ifconfig
inet 2.2.2.2/24 scope global eth0 ----> with ip
Run Code Online (Sandbox Code Playgroud)

我什么时候应该选择第一种方式,什么时候应该选择第二种方式?看起来更酷

networking interface

5
推荐指数
1
解决办法
5000
查看次数

sock-&gt;sk_wmem_alloc 和 sock-&gt;sk_wmem_queued 有什么区别

sock中定义的结构体有sock.h两个看起来非常相似的属性:

  • sk_wmem_alloc,定义为“已提交的传输队列字节”
  • sk_wmem_queued,定义为“持久队列大小”

对我来说,这sk_wmem_alloc是当前分配给发送队列的内存量。但那么,什么是sk_wmem_queued

参考

  • 根据StackOverflow 的回答

    wmem_queued:在传输队列中排队且尚未发送或尚未确认的套接字发送缓冲区使用的内存量。

  • ss男子还给出了定义,但并没有真正启发我(我不明白IP层与此有什么关系):

    wmem_alloc:用于发送数据包(已发送到第 3 层)的内存 wmem_queued:用于发送数据包(尚未发送到第 3 层)分配的内存

  • 已经有人在 LKML 上问过类似的问题,但没有得到答案
  • 手册sock_diag(7)页也对这些属性有自己的定义:

    SK_MEMINFO_WMEM_ALLOC:发送队列中的数据量。 SK_MEMINFO_WMEM_QUEUED:TCP 排队但尚未发送的数据量。

所有这些定义都是不同的,并且没有一个清楚地解释_alloc_queued变体如何不同。

linux networking kernel linux-kernel

4
推荐指数
1
解决办法
1698
查看次数

标签 统计

networking ×2

interface ×1

kernel ×1

linux ×1

linux-kernel ×1