一种快速主机开放TCP端口识别的方法技术

技术编号:34181613 阅读:12 留言:0更新日期:2022-07-17 13:14
本发明专利技术公开了一种快速主机开放TCP端口识别的方法,包括以下步骤:步骤一:进行数据预处理,处理输入参数,动态申请内存存储数据结构,并且预置随机源端口数据,然后创建接收线程通道,开始接收数据;步骤二:通过发送线程进行报文发送,通过接收线程进行数据的接收和解析;步骤三:发送线程通过将有效的端口服务列表中的端口号,依次封装出对应的TCP

【技术实现步骤摘要】
一种快速主机开放TCP端口识别的方法


[0001]本专利技术涉及端口识别领域,具体涉及一种快速主机开放TCP端口识别的方法。

技术介绍

[0002]TCP端口就是为TCP协议通信提供服务的端口。TCP(Transmission Control Protocol),TCP是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议,由IETF的RFC 793说明(specified)。在计算机网络OSI模型中,它完成第四层传输层所指定的功能。我们的电脑与网络连接的许多应用都是通过TCP端口所实现的;
[0003]在进行TCP端口识别的过程中,即需要使用到TCP端口识别的方法。
[0004]现有的TCP端口识别方法,通过socket的connect方式,等待三次握手完全完成,才能够判断端口是否开放,等待时间长,效率低下,给TCP端口识别方法的使用带来了一定的影响,因此,提出一种快速主机开放TCP端口识别的方法。

技术实现思路

[0005]本专利技术所要解决的技术问题在于:如何解决现有的TCP端口识别方法,通过socket的connect方式,等待三次握手完全完成,才能够判断端口是否开放,等待时间长,效率低下,给TCP端口识别方法的使用带来了一定的影响问题,提供了一种快速主机开放TCP端口识别的方法。
[0006]本专利技术是通过以下技术方案解决上述技术问题的,本专利技术一种快速主机开放TCP端口识别的方法,其特征在于,包括以下步骤:
[0007]步骤一:进行数据预处理,处理输入参数,动态申请内存存储数据结构,并且预置随机源端口数据,然后创建接收线程通道,开始接收数据;
[0008]步骤二:获取有效端口服务列表对有效端口服务列表进行处理得到报文,
[0009]步骤三:通过发送线程将步骤二中获取到的报文发送出;
[0010]步骤四:通过接收线程进行报文数据的接收和解析,接解析后的数据发送给网卡,然后通过网络到达目标主机,然后获取到应答结果确定开放端口。
[0011]进一步在于,所述发送线程进行报文发送的具体过程如下:先封装出IP报文头部,其中源IP地址和目的IP地址需手动填充,然后封装TCP报文头部,填充事先预置好的源端口随机数据,并且设置目的端口数据,然后将SYN数据位置,表示其为TCP

SYN握手请求报文,其他数据部分按照常规填充,最后生成完整为TCP

SYN握手数据报文,并通过套接字发送至本机网卡。
[0012]进一步在于,所述IP报文头部中的IP地址与发送的请求报文IP头部相反,即表示由被测主机发送回,所述步源目的端口与发送的TCP头部数据相反,即表示返回的应答。
[0013]进一步在于,所述接收线程的接收模式采用select模式,数据经过内核之后,触发socket的select响应,再进行解析判断,并且通过超时时间配置,灵活掌握等待时间。
[0014]进一步在于,所述步骤二中的报文获取方式如下:发送线程通过将有效的端口服
务列表中的端口号,依次封装出对应的TCP

SYN,即得到报文。
[0015]进一步在于,所述发送线程发送报文的过程如下:将获取到的报文通过套接字的方法,依次直接发送给网卡,然后通过网络到达目标主机
[0016]进一步在于,所述接收线程进行数据的接收和解析的具体过程如下:一旦被测主机某个端口做出响应,接收线程会接收到应答报文,其中的IP头部中的IP地址与发送的请求报文IP头部相反,然后源目的端口也与发送的TCP头部数据相反,再根据三次握手规则,其中的ACK与SYN标志位均为1,即过滤出了准确的应答,确定了开放的端口。
[0017]本专利技术相比现有技术具有以下优点:该快速主机开放TCP端口识别的方法,通过快速构建TCP握手请求探测报文,双通道收发分离的方式,进行报文的快速发送与处理分析,从而能够在极短的时间内,探测出主机的TCP端口开放情况,并记录下来,从而保证端口识别准确率和端口识别速度,让该方法更加值得推广使用。
附图说明
[0018]图1是本专利技术的流程图;
[0019]图2是本专利技术的发送线程流程图。
具体实施方式
[0020]下面对本专利技术的实施例作详细说明,本实施例在以本专利技术技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本专利技术的保护范围不限于下述的实施例。
[0021]如图1和2所示,本实施例提供一种技术方案:一种快速主机开放TCP端口识别的方法,包括以下步骤:
[0022]步骤一:进行数据预处理,处理输入参数,动态申请内存存储数据结构,并且预置随机源端口数据,然后创建接收线程通道,开始接收数据;
[0023]通过缓存可以加快后续数据读取速度,并且先开启接收线程,不会造成数据丢失;
[0024]步骤二:通过发送线程进行报文发送,通过接收线程进行数据的接收和解析;
[0025]步骤三:发送线程通过将有效的端口服务列表中的端口号,依次封装出对应的TCP

SYN,手动构造出数据包,通过套接字的方法,再依次直接发送给网卡,然后通过网络到达目标主机;
[0026]所述发送线程进行报文发送的具体过程如下:首先需要封装出IP报文头部,其中源IP地址和目的IP地址,我们需要手动填充;然后封装TCP报文头部,TCP报文头部如下,这里需要填充事先预置好的源端口随机数据,并且设置目的端口数据(范围为0~65535),然后将SYN数据位置,表示其为TCP

SYN握手请求报文,其他数据部分按照常规填充;最后计算各部分校验和,生成完整的握手数据报文,并通过套接字发送至本机网卡;最终通过循环操作,实现向被探测IP地址的全部端口,以最大速度发送TCP

SYN握手探测报文;
[0027]发送线程采用套接字配合封装TCP

SYN包技术,发送速度快,通过将有效的端口服务列表中的端口号,依次封装出对应的TCP

SYN,手动构造出数据包,通过套接字的方法,再依次直接发送给网卡,然后通过网络到达目标主机,能够在0.04秒内发送6400余个探测报文,向被探测IP地址的全部端口,以最大速度发送TCP

SYN握手探测报文;
[0028]发送线程向被探测IP地址的全部端口,以最大速度发送TCP

SYN握手探测报文;
[0029]步骤四:接收线程进行数据的接收和解析的具体过程如下:一旦被测主机某个端口做出响应,接收线程会接收到应答报文,应答报文中的IP头部中的IP地址与发送的请求报文IP头部相反,表示由被测主机发送回来的,然后源目的端口也与发送的TCP头部数据相反,表示返回的应答,再根据三次握手规则,其中的ACK与SYN标志位均为1,即过滤出了准确的应答,确定了开放的端口。
[0030]所述接本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种快速主机开放TCP端口识别的方法,其特征在于,包括以下步骤:步骤一:进行数据预处理,处理输入参数,动态申请内存存储数据结构,并且预置随机源端口数据,然后创建接收线程通道,开始接收数据;步骤二:获取有效端口服务列表对有效端口服务列表进行处理得到报文,步骤三:通过发送线程将步骤二中获取到的报文发送出;步骤四:通过接收线程进行报文数据的接收和解析,接解析后的数据发送给网卡,然后通过网络到达目标主机,然后获取到应答结果确定开放端口。2.根据权利要求1所述的一种快速主机开放TCP端口识别的方法,其特征在于:所述发送线程进行报文发送的具体过程如下:先封装出IP报文头部,其中源IP地址和目的IP地址需手动填充,然后封装TCP报文头部,填充事先预置好的源端口随机数据,并且设置目的端口数据,然后将SYN数据位置,表示其为TCP

SYN握手请求报文,其他数据部分按照常规填充,最后生成完整为TCP

SYN握手数据报文,并通过套接字发送至本机网卡。3.根据权利要求2所述的一种快速主机开放TCP端口识别的方法,其特征在于:所述IP报文头部中的IP地址与发送的请求报文IP头部相反,即表示由被测主机发送回,所述步源目的...

【专利技术属性】
技术研发人员:王艺霖胡茂霖王安平李浩
申请(专利权)人:和中通信科技有限公司
类型:发明
国别省市:

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

1