理解linux网络设备

linux网络设备的抽象类型:Bridge、802.1q VLAN device、VETH、TAP


Bridge是linux进行二层网络交换的设备,bridge的功能主要在内核里实现。

bridge设备实例可以和其他网络设备实例连接,即attach一个从设备。

当bridge收到从设备的请求接收数据后,bridge会根据mac信息进行广播、转发或丢弃操作。bridge只能接受从设备发送的请求接受数据!

请求发送数据可以直接发送到bridge上,引申出bridge亦可以拥有ip地址,当此ip的数据到达bridge时,内核会认为是目的为本机的数据,用户空间可以使用socket接受此数据。

802.1q VLAN device是带vlan tag的二层网络交换设备。分为母设备和子设备两部分,母设备只能接受数据,子设备只能发送数据。但其实只是实现了隔离的功能,没有交换的功能,将vlan子设备attach到briade设备上来实现交换功能,因此bridge+vlan device 才能真正实现vlan的隔离和数据的转发,才能在功能层面完整模拟现实中802.1q交换机。

VETH:作用是用来反转通信数据的方向,需要发送的数据会被转换成需要收到的数据重新送到内核网络层进行处理,从而间接完成数据的注入。

TAP:tap设备被创建的时候会生成对应的char设备,可以使用read()/write() 进行操作。

你可能感兴趣的:(理解linux网络设备)