公众号旧文

为什么网卡上写的是 TX / RX,而不是 SEND / RECEIVE?

作者:胖子阅读 —

在很多网络设备上,比如网卡、交换机、路由器、光模块,你经常会看到两个标识:

图片

比如 Tailscale 的流量统计:

图片

我很好奇,为什么不用更直观的 SEND / RECEIVE(发送 / 接收),

而是使用 TX / RX 这种不明所以的缩写?

经过一番探索,胖子发现这背后是一个跨越几十年的通信工程传统。

一、TX / RX 的真正含义

先理解这两个缩写:

缩写 英文 含义
TX Transmit 发送 / 发射
RX Receive 接收

在网络设备或操作系统中,它们的含义非常简单:

  • TX(Transmit):本机发送出去的数据
  • RX(Receive):本机接收到的数据

这里有一个非常重要的原则:

一切都是以当前设备为视角。

例如:

服务器  ─────────►  用户电脑
   TX                 RX

在服务器看来,它正在 发送数据(TX)。 而在用户电脑看来,它正在 接收数据(RX)。

二、为什么不用 SEND / RECEIVE

很多人会觉得:

SEND / RECEIVE

看起来更直观。

但在通信工程领域,几乎所有设备都统一使用 TX / RX,原因主要有三个。

三、历史原因:来自无线电通信

TX / RX 其实不是计算机网络发明的。

它最早来自 无线电通信领域。

在无线电设备上,工程师需要区分两个状态:

  • Transmit(发射信号)
  • Receive(接收信号)

因此设备上通常会标注:

TX
RX

例如:

TX ON
RX SIGNAL

因为无线电系统关注的是 信号的发射和接收,而不是发送文件和消息。

四、电信设备继承了这个传统

后来电话网络、电信设备也沿用了这一套术语。

例如在通信线路中:

TX line
RX line

表示:

  • 发送线路
  • 接收线路

这时 TX / RX 已经成为通信工程的标准术语。

五、计算机串口时代(RS-232)

到了计算机早期,设备之间主要通过 串口通信。

例如经典的 RS-232 接口。

串口针脚通常标为:

TXD  (Transmit Data)
RXD  (Receive Data)

例如 DB9 串口:

Pin 2   RXD
Pin 3   TXD

在 1980 年代,这已经成为行业标准。

六、以太网网卡继续沿用

当以太网网卡出现时,工程师并没有重新发明术语,而是直接沿用了通信工程的传统。

于是网卡内部也出现了:

TX queue
RX queue
TX buffer
RX buffer

在 Linux 系统里,你也会看到类似统计:

tx_packets
rx_packets
tx_bytes
rx_bytes

这套命名一直沿用至今。

七、TX / RX 还有一个实际优势

除了历史原因,TX / RX 还有一个非常现实的优势:

更短、更适合硬件标识。

在电路板或芯片上,空间非常有限。

例如在网卡 PHY 芯片上,经常会看到:

TX+
TX-
RX+
RX-

如果写成:

SEND+
RECEIVE-

不仅更长,也更不清晰。

因此 TX / RX 在硬件设计中更加实用。

八、在很多设备上都能看到

这种命名方式不仅存在于网卡,还广泛出现在各种通信设备中,例如:

  • 交换机
  • 路由器
  • 光模块
  • 串口设备
  • 无线电设备

例如光模块上通常标注:

TX
RX

含义分别是:

  • TX:发射光信号
  • RX:接收光信号

也就是说:

  • TX 端是 激光发射器
  • RX 端是 光电接收器

九、一句话总结

为什么网络设备上写的是 TX / RX,而不是 SEND / RECEIVE?

因为计算机网络继承了通信工程几十年的传统术语。

在通信领域里:

TX = Transmit(发送信号)
RX = Receive(接收信号)

这套缩写从无线电时代沿用到今天,已经成为全球通信设备的统一语言。


你可能感兴趣的其他文章:

内存,两根16G好,还是一根32G好?

如果你也想有一台自己的服务器,请看过来。

你还在用cd一层一层的进入目标文件夹吗?

洛杉矶 的 Los Angeles 里的 Los 是什么?