C:检测向抽头写入的数据量

时间:2012-12-12 06:27:10

标签: c sockets tun

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

从tap中读取的操作与SOCK_STREAM的操作方式相同吗?

1 个答案:

答案 0 :(得分:1)

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

由于它假装是一个以太网控制器,你必须事先知道以太网帧本身传输的大小 - 这来自于分接设备所连接的软件桥或“长度”字段。原始以太网帧。

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

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