System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种网络设备启动后快速扫描VLAN ID的方法及系统技术方案_技高网

一种网络设备启动后快速扫描VLAN ID的方法及系统技术方案

技术编号:41215522 阅读:3 留言:0更新日期:2024-05-09 23:37
本发明专利技术公开了一种网络设备启动后快速扫描VLAN ID的方法及系统,该方法包括当网络设备启动后,通过DHCP快速扫描VLAN ID,获取该网络设备正确的VLAN ID,以使该网络设备与上层网络设备建立网络连接;所述通过DHCP快速扫描VLAN ID的主线程包括:启动单独一个后台线程运行嗅探任务,绑定到物理网卡;在主线程中,分批创建每个VLAN ID对应的虚拟网卡后,构造一批待尝试的VLAND ID对应的DHCP请求包的发送任务并将其加入线程池,其中,每个发送任务对应一个待尝试的VLAN ID;遍历所有已发送的DHCP请求包的任务,若已发送的时间超过预设值,则最终将该任务对应的VLAN ID虚拟网卡集中删除,直到完成所有DHCP请求包的发送任务。本发明专利技术能极大地提升网络设备启动时扫描VLAN ID的速度。

【技术实现步骤摘要】

本专利技术涉及网络通信,特别是一种网络设备启动后快速扫描vlan id的方法及系统。


技术介绍

1、vlan(virtual local area network,虚拟局域网),是一种通过将局域网内的设备逻辑地而不是物理地划分成一个个网段,从而实现虚拟工作组的技术。vlan技术解除了物理lan网段要求各网络设备必须位于同一个物理空间,以方便灵活网络规划和部署。同时vlan内部的广播和单播流量不会被转发到其它vlan中,从而有助于控制网络流量、减少设备投资、简化网络管理、提高网络安全性。

2、ieee提出的方案是,给包增加一个附加信息,称为vlan标识(也即vlan id),以便交换机能够分清这个包应该发给哪个vlan。同时在交换机上,定义从vlan id到交换机端口的映射关系。该映射关系可以是从vlan id到交换机的真实物理端口,也可以是从vlan id到mac地址、ip前缀、网络协议。这意味着带有错误vlan id的网络包将无法通过交换机。同时,为了安全起见,采用vlan配置的交换机通常会被配置为限制不带vlan id包的转发。

3、在vlan配置的网络下,新加入网络的主机都面临一个两难的问题,新加入的主机需要获知其自身被分配的vlan id,才能在网络上发送正确的网络包,而因为它并不知道自身所在vlan的id,其发送的任何网络包会因为没有正确的vlan id而被交换机丢弃。dhcp(dynamic host configuration protocol,动态主机配置协议)这类自配置协议也无法直接完成

4、解决这个问题的实现方案是,新加入网络的主机需要尝试所有可能的vlan id范围(1-4094),逐一发送每一个vlan id的dhcp请求包,直到其中一个正确的vlan id会被交换机允许通过而收到dhcp请求的响应。传统的实现是发送一个带有vlan id的dhcp请求包,然后接收回复,接收不到发生超时,再发送下一个vlan id的dhcp请求包。这种实现方式,加上创建、删除vlan虚拟网卡、建立链接、重试等开销,全范围扫描的时间开销往往会超过一整天。现实中,因为无法容忍这种漫长的等待,只能采取一些折中手段,比如约定一个更窄的有效范围,但这样又对网络规划做了限制,同时网络设备商针对不同网络运营商,还无法统一设定有效范围等。

5、如果能极大地提升全范围vlan id扫描的速度,就能解除网络运营商的网络规划限制,方便网络设备商的出厂配置,提高网络设备自动接入网络的效率,有利于整个网络的建设和运维。


技术实现思路

1、鉴于此,本专利技术提供一种网络设备启动后快速扫描vlan id的方法及系统。

2、本专利技术公开了一种网络设备启动后快速扫描vlan id的方法,其包括:当网络设备启动后,通过dhcp快速扫描vlan id,获取该网络设备正确的vlan id,以使该网络设备与上层网络设备建立网络连接;

3、所述通过dhcp快速扫描vlan id的主线程包括:

4、启动单独一个后台线程运行嗅探任务,绑定到物理网卡;

5、在主线程中,分批创建每个vlan id对应的虚拟网卡后,构造一批待尝试的vlandid对应的dhcp请求包的发送任务并将其加入线程池,其中,每个发送任务对应一个待尝试的vlan id;

6、遍历所有已发送的dhcp请求包的任务,若已发送的时间超过预设值,则最终将该任务对应的vlan id虚拟网卡集中删除,直到完成所有dhcp请求包的发送任务

7、进一步地,所述绑定到物理网卡之后,还包括:

8、判断是否嗅探到带有vlan id的dhcp响应包,若是,则撤销发送队列中的剩余任务,若否,则集中批量创建一批待嗅探的vlan id所对应的虚拟网卡。

9、进一步地,构造一批待尝试的vland id对应的dhcp请求包的发送任务并将其加入线程池,同时添加记录到发送队列中。

10、进一步地,所述遍历所有已发送的dhcp请求包的任务,若已发送的时间超过预设值,则最终将该任务对应的vlan id虚拟网卡集中删除,包括:

11、遍历发送队列,已完成发送的任务会自动移出线程池,把已完成发送的任务移动到等待队列中;

12、遍历等待队列,用当前时间减去其完成发送的时间以判断超时,将当前时间与其完成发送的时间的差值超过设定的任务移动到清除队列中;

13、集中批量删除清除队列中所有任务对应的vlan id虚拟网卡。

14、进一步地,使用等待队列记录所有发送完毕的时间戳,然后定时从等待队列的头部开始检查,挑选出所有超时的记录以便结束等待;相当于所有发送任务都是在主线程这一个线程中同时等待超时。

15、进一步地,所述直到完成所有dhcp请求包的发送任务,包括:

16、判断所有集合是否为空;所有集合包括发送队列、等待队列和清除队列;若是,则结束;若否,则主线程睡眠一段时间,重新转入判断是否嗅探到带有vlan id的dhcp响应包,直到完成所有dhcp请求包的发送任务。

17、进一步地,还包括dhcp快速扫描vlan id的子线程,即:

18、监听物理网卡是否收到反馈的网络包,线程池中的线程任务是发送网络包;

19、每个dhcp请求包的头部均有一个vlan id的号码,仅有正确的vlan id所对应的dhcp请求包才能抵达上层网络设备,对方才会回复dhcp响应包。

20、进一步地,发送dhcp请求包是io操作,可以通过多线程技术进行并发。

21、本专利技术还公开了一种网络设备启动后快速扫描vlan id的系统,用于实现上述任一项所述的网络设备启动后快速扫描vlan id的方法,其包括:

22、运行模块,启动单独一个后台线程运行嗅探任务,绑定到物理网卡;

23、创建模块,用于在主线程中,分批创建每个vlan id对应的虚拟网卡后,构造一批待尝试的vland id对应的dhcp请求包的发送任务并将其加入线程池,其中,每个发送任务对应一个待尝试的vlan id;

24、判断模块,用于遍历所有已发送的dhcp请求包的任务,若已发送的时间超过预设值,则最终将该任务对应的vlan id虚拟网卡集中删除,直到完成所有dhcp请求包的发送任务。

25、由于采用了上述技术方案,本专利技术具有如下的优点:

26、1.采用了一系列针对性的并发优化方法,能极大地提升网络设备启动时扫描vlanid的速度。实测得出,在典型的嵌入式网络设备(5g rru)上,全范围扫描的时间开销从传统的1天以上下降到2分钟左右,可以改善网络建设和运维的方便性。

27、2.使用网络嗅探技术,节省创建大量接收任务的开销。

28、3.结合线程池和时间戳轮询技术,并发进行io操作并且节省排队等待超时的时间。

29、4.使用批量提交本文档来自技高网...

【技术保护点】

1.一种网络设备启动后快速扫描VLAN ID的方法,其特征在于,包括:

2.根据权利要求1所述的网络设备启动后快速扫描VLAN ID的方法,其特征在于,所述绑定到物理网卡之后,还包括:

3.根据权利要求2所述的网络设备启动后快速扫描VLAN ID的方法,其特征在于,构造一批待尝试的VLAND ID对应的DHCP请求包的发送任务并将其加入线程池,同时添加记录到发送队列中。

4.根据权利要求3所述的网络设备启动后快速扫描VLAN ID的方法,其特征在于,所述遍历所有已发送的DHCP请求包的任务,若已发送的时间超过预设值,则最终将该任务对应的VLAN ID虚拟网卡集中删除,包括:

5.根据权利要求4所述的网络设备启动后快速扫描VLAN ID的方法,其特征在于,使用等待队列记录所有发送完毕的时间戳,然后定时从等待队列的头部开始检查,挑选出所有超时的记录以便结束等待;相当于所有发送任务都是在主线程这一个线程中同时等待超时。

6.根据权利要求1所述的网络设备启动后快速扫描VLAN ID的方法,其特征在于,所述直到完成所有DHCP请求包的发送任务,包括:

7.根据权利要求1所述的网络设备启动后快速扫描VLAN ID的方法,其特征在于,还包括DHCP快速扫描VLAN ID的子线程,即:

8.根据权利要求1所述的网络设备启动后快速扫描VLAN ID的方法,其特征在于,发送DHCP请求包是IO操作,可以通过多线程技术进行并发。

9.一种网络设备启动后快速扫描VLAN ID的系统,用于实现权利要求1-8任一项所述的网络设备启动后快速扫描VLAN ID的方法,其特征在于,包括:

...

【技术特征摘要】

1.一种网络设备启动后快速扫描vlan id的方法,其特征在于,包括:

2.根据权利要求1所述的网络设备启动后快速扫描vlan id的方法,其特征在于,所述绑定到物理网卡之后,还包括:

3.根据权利要求2所述的网络设备启动后快速扫描vlan id的方法,其特征在于,构造一批待尝试的vland id对应的dhcp请求包的发送任务并将其加入线程池,同时添加记录到发送队列中。

4.根据权利要求3所述的网络设备启动后快速扫描vlan id的方法,其特征在于,所述遍历所有已发送的dhcp请求包的任务,若已发送的时间超过预设值,则最终将该任务对应的vlan id虚拟网卡集中删除,包括:

5.根据权利要求4所述的网络设备启动后快速扫描vlan id的方法,其特征在于,使用等待队列记录所有发送完...

【专利技术属性】
技术研发人员:程鹏刘垠毕延军
申请(专利权)人:四川恒湾科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1