NAT Router

总述

由于IPV4外网地址有限,所以不可能每个联网设备配备一个外网IP地址,故需要将多个内网设备映射到一个外网IP使用,这就诞生了NAT Router。

简述原理

在这里插入图片描述

内网与外网可以当作两个网卡端口,每个端口都有输入与输出,内网网卡端口在网络层解析处理数据的源地址与目标地址,如果目标地址同样为内网地址直接转发,否则转到外网网卡端口处理发送(此时需要修改源地址为外网地址,并添加到映射表,待外网数据返回后查表进行转发到内网)。

Lwip实现Nat Router

ip_input

err_t ip_input(struct pbuf *p, struct netif *inp);

该函数是IP层很重要的函数,链路层将数据上传后,最终都会进入到此函数进行数据处理,路由+传输数据到传输层,所以可以在该函数内进行改造。

IP转发

static void ip_forward(struct pbuf *p, struct ip_hdr *iphdr, struct netif *inp);
当有多个网卡时,ip_input接收的当前网卡数据目标地址可能不是当前网卡所能处理的,需要转发到其它网卡进行发送,此处可以用来记录nat列表,供后续查询

总结

对于WiFi模组只要能同时存在AP和STA两种模式,就可以作为WiFi中继器使用,共享4G网络或者连接的路由器网络。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值