Когда я передаю данные с одного компьютера на другой, я вижу увеличение байтов RX и байтов TX в соответствии с ifconfig и ip -s link:
перед передачей, на отправляющем узле:
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, ведь это не должно быть больше 20 МБ? что мне не хватает? Это между экземплярами Amazon EC2, и я также вижу такое поведение между двумя физическими лезвиями, объединенными в сеть.