我正在制作一个我正在阅读Tap的程序。唯一的问题是,我不知道如何检测到一个传输到龙头的结束和另一个传输的开始。
从tap中读取的操作与SOCK_STREAM的操作方式相同吗?
答案 0 :(得分:1)
Tun / tap尝试看起来像一个普通的以太网控制器,但点击设备本身就像访问任何其他文件描述符一样。
由于它假装是一个以太网控制器,你必须事先知道以太网帧本身传输的大小 - 这来自于分接设备所连接的软件桥或“长度”字段。原始以太网帧。
这当然只能是分接设备的MTU大小的最大值,通常默认为1500字节。
因此,在对tap设备的文件描述符执行read()之前,您必须弄清楚以太网帧实际有多大。