1.一种路由发现中的黑洞攻击防御方法,其特征在于,包括:
(1)获取可疑节点步骤:
(1a)网络中的每个节点建立两张表,分别为接收路由请求表Tq、接收路由响应表Tp;
(1b)在路由建立阶段每隔一个时间间隔Δti比较一次接收路由请求表Tq和接收路由响应表Tp:若Tp中的IP地址均在Tq中,则路由建立阶段没有黑洞攻击发生,并将Tp和Tq中的IP地址进行排列,形成信任表Tt;否则存在黑洞攻击发生的可能性,记录下可疑节点,执行步骤(2);
(2)确认网络状态步骤:
(2a)建立一个训练集TR={tr|tr=Ai},其中Ai为路由响应包的目的序列号的阈值,tr为训练集TR的元素;
(2b)设训练集中的最后一个元素A'=A|TR|,每当节点收到一个路由响应包后,提取包中的目的序列号D,并与训练集中的最后一个元素A'进行比较,若D>A',则认为路由发现阶段发生黑洞攻击,节点记录发送该路由响应包的节点的IP地址,执行步骤(3),否则认为没有发生黑洞攻击,使用训练集TR中的全部元素和目的序列号D计算当前时刻路由请求包的目的序列号阈值其中λs=e-(s-i-1)表示记忆曲线函数,As为前i个时刻所有路由请求包的目的序列号阈值,得到Ai+1后将其放到训练集TR的末尾;
(3)发现、删除黑洞节点步骤:
(3a)在所有节点的接收路由响应表Tp中查找(2b)中记录下的IP地址,若某个节点node在接收路由响应表Tp中能找到(2b)中记录下的IP地址,则该IP地址对应的节点为黑洞节点;
(3b)节点node将黑洞节点从网络中剔除,即把黑洞节点的IP地址进行排列,形成黑名单Tb,将接收路由响应表Tp和接收路由请求表Tq中除了黑洞节点IP地址的其他IP地址进行排列,形成信任表Tt,并在之后的路由发现过程中不再向黑名单中的节点转发路由请求包,也不接收黑名单中节点发送的路由响应包。
2.根据权利要求1所述的方法,其中步骤(1a)中每个节点建立两张表,按如下步骤进行:
(1a1)每一个节点每次接收到路由请求包后,按照路由请求包到达的顺序,把转发该包节点的IP地址进行排列,形成接收路由请求表Tq;
(1a2)每一个节点每次接收到路由响应包后,按照路由响应包到达的顺序,把转发该包节点的IP地址进行排列,形成接收路由响应表Tp。
3.根据权利要求1所述的方法,其中步骤(2a)中建立一个训练集TR,是使用PCA算法计算训练集TR的初始元素,即路由响应包目的序列号的初始阈值A1,并将初始阈值A1放入训练集TR中,即A1∈TR。