传输出时接收字节数增加

传输出时接收字节数增加

当我将数据从一台机器传输到另一台机器时,根据 ifconfig 和 ip -s link,我看到 RX 字节和 TX 字节都在增加:

传输之前,在发送节点:

2: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP qlen 1000
    link/ether 18:a9:05:44:c2:e4 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast   
    **1553791138** 1916309  0       0       0       0      
    TX: bytes  packets  errors  dropped carrier collsns 
    **1035423346** 1330442  0       0       0       0

用于发送数据的命令(另一端使用监听套接字):

dd if=/dev/zero bs=400000 count=50 | netcat 14.4.12.5 20000

传输后,在发送节点:

2: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP qlen 1000
    link/ether 18:a9:05:44:c2:e4 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast   
    **1574414164** 1921752  0       0       0       0      
    TX: bytes  packets  errors  dropped carrier collsns 
    **1055706644** 1334263  0       0       0       0

可以看到,TX 字节和 RX 字节都增加了相同的量。接收节点也是如此。

我的理解是 TX 是发送,RX 是接收。那么为什么它们在单向传输中都会增加呢?如果我指定 UDP,那么它会按预期工作 - TX 在发送节点上增加,RX 在接收节点上增加。但这不可能只是由于 TCP 中的控制消息,因为不应该有 20MB 那么多?我遗漏了什么?这是在亚马逊 EC2 实例之间,而且我还看到这种行为在联网的两个物理刀片之间。

相关内容