4

我正在开发一个从 Tap 读取的程序。唯一的问题是,我不知道如何检测到水龙头的一次传输结束和另一次传输的开始。

从水龙头读取是否与 SOCK_STREAM 相同?

4

1 回答 1

1

Tun/tap 试图看起来像一个普通的以太网控制器,但 tap 设备本身就像任何其他文件描述符一样被访问。

由于它伪装成以太网控制器,因此您必须提前知道传输的以太网帧本身有多大 - 这来自分接设备所连接的软件桥或原始以太网中的“长度”字段框架。

这当然只能是 Tap 设备的 MTU 大小的最大值,通常默认为 1500 字节。

因此,在对分接设备的文件描述符执行 read() 之前,您必须弄清楚以太网帧的实际大小。

于 2012-12-14T04:06:40.647 回答