小编wei*_*rea的帖子

原始套接字与TUN设备

发送IP数据包(从用户空间)到tun设备和使用原始套接字有什么区别?

用于通过用户空间隧道传输IP数据包.为什么我会使用一种方法而不是另一种?

原始套接字:

s = socket(AF_INET, SOCK_RAW, IPPROTO_RAW);
send(s, ip_pkt, len, 0);
Run Code Online (Sandbox Code Playgroud)

tun设备:

struct ifreq ifr;
fd = open("/dev/net/tun", O_RDWR);
ifr.ifr_flags = IFF_TUN;
ioctl(fd, TUNSETIFF, (void *) &ifr)
send(s, ip_pkt, len, 0);
Run Code Online (Sandbox Code Playgroud)

sockets linux kernel network-programming tun

5
推荐指数
1
解决办法
927
查看次数

标签 统计

kernel ×1

linux ×1

network-programming ×1

sockets ×1

tun ×1