lwIP更新记10:IP 冲突检测

news/2024/12/21 22:59:47/

lwip-2.2.0-rc1 版本于 2023 年 6 月 29 日发布,带来了我期盼已久的 IPv4 冲突检测 功能。

lwip-2.2.0-rc1 版本重新回归了 master 分支(主分支),不再使用单独的稳定分支。

master 分支 是一个 Git(版本控制程序)术语,如果你还没有使用过 Git 管理源代码,我这里 强烈建议 你马上用起来。如果你不知道如何入门,可以点击 这里 参考我的一些列文章,从《Keil MDK环境下Git入门指南》这篇文章开始。

我们可以从分支图中看出这这种关系,图中的每个黄色块都是一个 标签 ,主要用来标识一个软件版本。
在这里插入图片描述
我们回到 IPv4 冲突检测 功能。

IPv4 冲突 是指同一链路上的两台主机同时段使用相同的 IPv4 地址时,则一个或两个主机会出现问题。为了防止发生这种错误配置,主机可以在事后被动检测已发生的错误,以便主机或管理员可以响应以纠正问题,这就是 IPv4 冲突检测 功能。

RFC5227 定义了 IPv4 冲突检测的方法。lwIP-2.2.0-rc1 版本新增的 IPv4 冲突检测就是以 RFC5227 为依据编写的,对应代码保存在 acd.c 中,如下图所示:
在这里插入图片描述
用法:

  1. lwipopts.h 中定义宏 LWIP_ACD 为 1 ;
  2. 修改定时器调用间隔宏 ACD_TMR_INTERVAL ,单位为毫秒,推荐值为 100。可用的值为:1000、500,、333、 250、 200、 166、 142、 125、 111、 100… ,也就是用 1000 除以这个值,余数要尽可能的接近或等于 0 。
  3. 对于固定 IP 地址:
    调用函数 acd_start。ACD 模块通过回调函数通知冲突状态。
  4. 对于 AUTOIP:
    autoip 模块自动处理所有,不需要额外的操作。
  5. 对于 DHCP:
    使能宏 LWIP_DHCP_DOES_ACD_CHECK,然后 dhcp 自动处理所有,不需要额外的操作。

可以看出,用法非常简单。


http://www.ppmy.cn/news/1050668.html

相关文章

【C语言】选择排序

基本原理 先找到数组中最大的那个数,将最大的数放到数组最右端(交换a[maxid]和a[len-1]这两个数的位置),然后继续从a[0]到a[len-2]中找到最大的数,然后交换a[maxid]和a[len-2]位置,依次查找交换&#xff0c…

Qt与电脑管家4

折线图&#xff1a; #ifndef LINE_CHART_H #define LINE_CHART_H#include <QWidget> #include <QPainter> #include "circle.h" class line_chart : public QWidget {Q_OBJECT public:explicit line_chart(QWidget *parent nullptr); protected:void pa…

【LUBAN】【功能验证】至简投屏功能之Android有线连接方式测试

1、概述 至简投屏功能之Android有线连接方式支持至简自带应用至加的投屏功能和谷歌官方的Android auto功能。 支持的功能范围列举如下&#xff1a; 1、屏幕投屏&#xff08;支持自动旋转屏&#xff09;2、音视频播放&#xff08;抖音、百度地图等&#xff09;3、车机反控手机…

Reactor 第十篇 定制一个生产的WebClient

1 为什么要用 WebClient 刚开始尝试使用 Spring WebFlux 的时候&#xff0c;很多人都会使用 Mono.fromFuture() 将异步请求转成 Mono 对象&#xff0c;或者 Mono.fromSupplier() 将请求转成 MOno 对象&#xff0c;这两种方式在响应式编程中都是不建议的&#xff0c;都会阻塞当…

使用vscode编写插件-php语言

https://blog.csdn.net/qq_45701130/article/details/125206645 一、环境搭建 1、安装 Visual Studio Code 2、安装 Node.js 3、安装 Git 4、安装生产插件代码的工具&#xff1a;npm install -g yo generator-code 二、创建工程 yo code 选择项解释&#xff1a; 选择编写扩…

linux下c控制光标

最近在写进度条的需求&#xff0c;需要控制光标&#xff0c;用到下面的相关函数 // 清除屏幕#define CLEAR() printf("\033[2J")// 上移光标#define MOVEUP(x) printf("\033[%dA", (x))// 下移光标#define MOVEDOWN(x) printf("\033[%dB", (x))…

分类预测 | MATLAB实现NGO-DBN北方苍鹰优化深度置信网络多特征输入分类预测

分类预测 | MATLAB实现NGO-DBN北方苍鹰优化深度置信网络多特征输入分类预测 目录 分类预测 | MATLAB实现NGO-DBN北方苍鹰优化深度置信网络多特征输入分类预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 MATLAB实现NGO-DBN北方苍鹰优化深度置信网络多特征输入…

【jsthreeJS】入门three,并实现3D汽车展示厅,附带全码

首先放个最终效果图&#xff1a; 三维&#xff08;3D&#xff09;概念&#xff1a; 三维&#xff08;3D&#xff09;是一个描述物体在三个空间坐标轴上的位置和形态的概念。相比于二维&#xff08;2D&#xff09;只有长度和宽度的平面&#xff0c;三维增加了高度或深度这一维度…