端口扫描技术和算法

合集下载

端口扫描原理

端口扫描原理

端口扫描原理端口扫描是网络安全领域中常见的一种技术手段,它可以帮助管理员发现网络中存在的安全隐患,及时采取措施加以修复。

端口扫描的原理是通过向目标主机发送特定的网络数据包,然后根据目标主机的响应来判断其端口的开放情况,从而实现对目标主机的端口状态进行探测。

本文将介绍端口扫描的原理及常见的扫描技术。

首先,端口扫描的原理是基于TCP/IP协议的。

在TCP/IP协议中,每个应用程序都会使用特定的端口与其他应用程序通信。

端口号的范围是0~65535,其中0~1023为系统端口,1024~49151为注册端口,49152~65535为动态/私有端口。

通过向目标主机发送TCP或UDP数据包,可以探测目标主机上的端口是否开放。

如果目标主机对特定端口的数据包做出响应,就说明该端口是开放的;如果没有响应,就说明该端口是关闭的。

其次,端口扫描技术主要包括全连接扫描、半开放扫描、SYN扫描、FIN扫描、XMAS扫描等。

全连接扫描是最常见的一种扫描技术,它通过向目标主机的每个端口发送TCP连接请求来探测端口的开放情况。

半开放扫描则是通过向目标主机发送SYN数据包,然后根据目标主机的响应来判断端口的状态。

SYN扫描是一种较为隐蔽的扫描技术,它通过发送SYN数据包来判断端口是否开放。

FIN扫描和XMAS扫描则是通过发送特殊的TCP数据包来探测端口状态,它们通常用于规避防火墙和入侵检测系统的检测。

此外,端口扫描还可以根据扫描的目的分为黑盒扫描和白盒扫描。

黑盒扫描是指在未经授权的情况下对目标主机进行扫描,通常用于渗透测试和攻击行为;而白盒扫描是在经过授权的情况下对目标主机进行扫描,通常用于安全审计和漏洞扫描。

综上所述,端口扫描是一种常见的网络安全技术,它通过向目标主机发送特定的网络数据包来探测端口的开放情况,从而帮助管理员发现网络中存在的安全隐患。

了解端口扫描的原理及常见的扫描技术对于提高网络安全水平具有重要意义。

在进行端口扫描时,需要遵守相关法律法规,尊重他人的网络安全和隐私,切勿进行未经授权的扫描行为。

简述端口扫描的原理

简述端口扫描的原理

简述端口扫描的原理
端口扫描是一种常用的安全测试方式,它通过扫描目标主机的开放端口,来判断目标主机的安全性。

其原理是利用网络通信协议中的TCP、UDP等方式,向目标主机的端口发送请求,并根据返回结果来确定目标主机是否响应该端口。

在端口扫描过程中,扫描器会按照预设的端口顺序(如从0到65535)依次向目标主机的每个端口发送请求,并根据返回结果来判断该端口是否开放。

如果收到了响应数据,则意味着该端口是开放的,否则则表示该端口是关闭的或被防火墙拦截了。

端口扫描的原理基于TCP协议的“三次握手”过程,当扫描器向目标主机的某个端口发送请求时,如果目标主机接受请求,就会回应一个“SYN-ACK”数据包,表示该端口是开放的。

如果目标主机拒绝请求,则会回应一个“RST”数据包,表示该端口是关闭的或被防火墙拦截了。

端口扫描的原理也涉及到UDP协议的“无连接”特性,因为UDP 协议不需要建立连接,所以扫描器只需向目标主机发送UDP数据包,如果收到了响应,则表示该端口是开放的,否则则表示该端口是关闭的或被防火墙拦截了。

总的来说,端口扫描的原理是通过向目标主机发送请求,来判断目标主机是否响应该端口,并根据返回结果来确定该端口是否开放。

这种方式可以帮助安全测试人员发现系统中的漏洞和安全问题,从而提高系统的安全性。

实验五 端口扫描器实验报告(付代码)

实验五 端口扫描器实验报告(付代码)

实验5:端口扫描器的设计与实现姓名:学号:专业年级:(一)实验目的和内容:目的:加深对TCP的理解,学习端口扫描技术和原理,熟悉socket编程。

内容:实现一个扫描器,使用TCP connect进行端口扫描,并对扫描结果进行记录。

(二)课程设计要求:Windows或Linux环境下,程序在单机上运行;使用端口扫描器对一台主机进行扫描,并显示出结果;编程语言不限;提供友好的用户界面。

(三)端口扫描技术:“端口”是专门为计算机通信而设计的,它不是硬件,不同于计算机中的“插槽”,可以说是个“软插槽”。

“端口”是由计算机的通信协议TCP/IP协议定义的。

其中规定,用IP地址和端口作为套接字,它代表TCP连接的一个连接端,一般称为Socket。

具体来说,就是用[IP:端口]来定位一台主机中的进程。

计算机就像一座大楼,这个大楼有好多入口(端口),进到不同的入口中就可以找到不同的公司(进程)。

端口与进程是一一对应的,入侵者通过扫描端口,便可以判断出目标计算机有哪些通信进程正在等待连接。

(四)扫描端口的目的:端口扫描是入侵者搜集信息的几种常用手法之一,也正是这一过程最容易使入侵者暴露自己的身份和意图。

•判断目标主机上开放了哪些服务;•判断目标主机的操作系统。

如果入侵者掌握了目标主机开放了哪些服务,运行何种操作系统,他们就能够使用相应的手段实现入侵。

(五)端口的分类:端口是一个16 bit的地址,用端口号进行标识不同的作用。

端口一般分为两类。

•熟知端口号(公认端口号):由因特网指派名字和号码公司ICANN负责分配给一些常用的应用层程序固定使用的熟知端口,其数值一般为0~1023。

•一般端口号:用来随时分配给请求通信的客户进程。

(六)扫描原理的基础知识:TCP/IP模型四层结构TCP与UDP协议TCP报文结构TCP连接和释放过程(七)TCP/IP模型四层结构:(八)TCP与UDP协议:Internet的网络通信大多是建立在这两个协议之上的,各个主机遵循着TCP/IP协议封装数据包进行通信。

常见的端口扫描类型及原理

常见的端口扫描类型及原理

常见的端口扫描类型及原理常见的扫描类型有以下几种:秘密扫描秘密扫描是一种不被审计工具所检测的扫描技术。

它通常用于在通过普通的防火墙或路由器的筛选(filtering)时隐藏自己。

秘密扫描能躲避IDS、防火墙、包过滤器和日志审计,从而获取目标端口的开放或关闭的信息。

由于没有包含TCP 3次握手协议的任何部分,所以无法被记录下来,比半连接扫描更为隐蔽。

但是这种扫描的缺点是扫描结果的不可靠性会增加,而且扫描主机也需要自己构造IP包。

现有的秘密扫描有TCP FIN扫描、TCP ACK扫描、NULL扫描、XMAS扫描和SYN/ACK 扫描等。

1、Connect()扫描:此扫描试图与每一个TCP端口进行“三次握手”通信。

如果能够成功建立接连,则证明端口开发,否则为关闭。

准确度很高,但是最容易被防火墙和IDS检测到,并且在目标主机的日志中会记录大量的连接请求以及错误信息。

TCP connect端口扫描服务端与客户端建立连接成功(目标端口开放)的过程:①Client端发送SYN;②Server端返回SYN/ACK,表明端口开放;③Client端返回ACK,表明连接已建立;④Client端主动断开连接。

建立连接成功(目标端口开放)如图所示TCP connect端口扫描服务端与客户端未建立连接成功(目标端口关闭)过程:①Client端发送SYN;②Server端返回RST/ACK,表明端口未开放。

未建立连接成功(目标端口关闭)如图所示。

优点:实现简单,对操作者的权限没有严格要求(有些类型的端口扫描需要操作者具有root 权限),系统中的任何用户都有权力使用这个调用,而且如果想要得到从目标端口返回banners信息,也只能采用这一方法。

另一优点是扫描速度快。

如果对每个目标端口以线性的方式,使用单独的connect()调用,可以通过同时打开多个套接字,从而加速扫描。

缺点:是会在目标主机的日志记录中留下痕迹,易被发现,并且数据包会被过滤掉。

端口扫描必读

端口扫描必读

端口扫描必读端口扫描是网络安全中一项常见的技术手段,用于检测目标主机上开放的端口和网络服务。

它可以帮助网络管理员识别系统中的漏洞和脆弱点,从而采取相应的安全措施。

然而,端口扫描也可能被不法分子用来进行恶意攻击。

为了更好地理解和应对端口扫描活动,以下是关于端口扫描的一些必读内容。

1. 端口扫描的原理和目的端口扫描是通过发送特殊的网络数据包来探测目标主机上开放的端口。

每个开放的端口代表着一个网络服务或者应用程序在运行。

黑客或者安全研究人员可以通过扫描目标主机上的端口,来获取关于系统的信息。

这些信息可以用于评估目标系统的安全性,也可以为后续的攻击行动做准备。

2. 合法的端口扫描用途在合法的情况下,端口扫描是网络管理员用来评估系统安全性的一种工具。

例如,网络管理员可以定期扫描本机或者内部网络的端口,以确保系统的安全配置和漏洞修复工作。

此外,合法的安全研究人员和渗透测试人员也会使用端口扫描来发现系统的薄弱点,并提供相应的建议和修复措施。

3. 恶意的端口扫描行为然而,不法分子也会利用端口扫描来进行恶意活动。

他们可以扫描大量主机,寻找易受攻击的系统和服务,然后发起攻击。

这可能导致个人信息泄露、系统瘫痪以及其他严重后果。

因此,及时了解并应对恶意端口扫描行为对于网络安全至关重要。

4. 如何应对端口扫描首先,网络管理员应该加强对系统的安全配置和漏洞修复工作。

定期更新操作系统和应用程序的补丁,关闭不必要的端口和服务,并使用强密码来保护敏感信息。

其次,部署防火墙和入侵检测系统来监控和阻止恶意端口扫描行为。

同时,还可以限制对系统关键端口的访问权限,以防止未经授权的扫描。

5. 合法的扫描工具在进行端口扫描时,网络管理员应该使用合法的扫描工具,如Nmap、Masscan等。

这些工具可以提供准确的端口扫描结果,并帮助管理员评估系统的安全性。

同时,需要遵守法律和道德规范,确保扫描活动不会侵犯他人的合法权益。

总结:端口扫描在网络安全中扮演着重要的角色,它可以帮助网络管理员评估系统安全性,预防潜在的攻击。

2020年计算机软考备考要点解析:端口扫描

2020年计算机软考备考要点解析:端口扫描

2020年计算机软考备考要点解析:端口扫描
【导语】今年要备考计算机软考的考生们,为大家精心整理了2020年计算机软考备考要点解析:端口扫描,欢迎大家前来参考学习。

更多计算机软考相关信息,敬请关注计算机软件水平考试频道为您更新的资讯。

2020年计算机软考备考要点解析:端口扫描端口扫描是指某些别有用心的人发送一组端口扫描消息,试图以此侵入某台计算机,并了解其提供的计算机网络服务类型(这些网络服务均与端口号相关)。

端口扫描是计算机解密高手喜欢的一种方式。

攻击者可以通过它了解到从哪里可探寻到攻击弱点。

实质上,端口扫描包括向每个端口发送消息,一次只发送一个消息。

接收到的回应类型表示是否在使用该端口并且可由此探寻弱点。

扫描器是一种自动检测远程或本地主机安全性弱点的程序,通过使用扫描器你可以不留痕迹的发现远程服务器的各种TCP端口的分配及提供的服务和它们的软件版本!这就能让我们间接的或直观的了解到远程主机所存在的安全问题。

1。

目前主要端口扫描技术

目前主要端口扫描技术

目前主要端口扫描技术目前主要的端口扫描技术有以下几种。

1.TCP connect Scan(TCP连接扫描)这种方法也称之为“TCP全连接扫描”。

它是最简单的一种扫描技术,所利用的是TCP协议的3次握手过程。

它直接连到目标端口并完成一个完整的3次握手过程(SYN、SYN/ACK和ACK)。

操作系统提供的“connect()”函数完成系统调用,用来与目标计算机的端口进行连接。

如果端口处于侦听状态,那么“connect()”函数就能成功。

否则,这个端口是不能用的,即没有提供服务。

TCP连接扫描技术的一个最大的优点是不需要任何权限,系统中的任何用户都有权利使用这个调用。

另一个好处是速度快。

如果对每个目标端口以线性的方式,使用单独的“connect()”函数调用,那么将会花费相当长的时间,用户可以同时打开多个套接字,从而加速扫描。

使用非阻塞I/O允许用户设置一个低的时间以用尽周期,并同时观察多个套接字。

但这种方法的缺点是很容易被发觉,并且很容易被过滤掉。

目标计算机的日志文件会显示一连串的连接和连接出错的服务消息,目标计算机用户发现后就能很快使它关闭。

2.TCP SYN Scan(TCP同步序列号扫描)若端口扫描没有完成一个完整的TCP连接,即在扫描主机和目标主机的一指定端口建立连接的时候,只完成前两次握手,在第三步时,扫描主机中断了本次连接,使连接没有完全建立起来,所以这种端口扫描又称为“半连接扫描”,也称为“间接扫描”或“半开式扫描”(Half Open Scan)。

SYN扫描,通过本机的一个端口向对方指定的端口,发送一个TCP的SYN 连接建立请求数据报,然后开始等待对方的应答。

如果应答数据报中设置了SYN 位和ACK位,那么这个端口是开放的;如果应答数据报是一个RST连接复位数据报,则对方的端口是关闭的。

使用这种方法不需要完成Connect系统调用所封装的建立连接的整个过程,而只是完成了其中有效的部分就可以达到端口扫描的目的。

学会使用网络工具进行端口扫描

学会使用网络工具进行端口扫描

学会使用网络工具进行端口扫描现如今,互联网已经成为人们重要的交流和信息获取平台。

然而,随之而来的风险和威胁也日益增加,网络安全问题备受关注。

为了保护自己和企业的网络安全,学会使用网络工具进行端口扫描变得至关重要。

本文将介绍什么是端口扫描、为什么要进行端口扫描以及如何使用网络工具进行端口扫描。

一、端口扫描的概念端口扫描是指通过网络工具对目标主机进行扫描,以判断目标主机上的哪些端口是开放的、关闭的或者监听的。

端口扫描可以帮助我们了解主机的服务情况,发现潜在的漏洞,以便及时采取措施加强网络安全。

二、为什么要进行端口扫描1. 发现潜在的漏洞:通过端口扫描,我们可以发现目标主机上开放的端口,如果有不必要的服务开放或者开放的端口与已知的漏洞相关,就可能存在潜在的安全风险。

2. 检查网络配置和防火墙:端口扫描可以帮助我们检查网络配置是否安全,是否存在配置错误或者不必要开放的端口。

同时,也可以帮助我们检查防火墙规则是否正确地过滤了不安全的端口。

3. 监控网络安全:通过定期进行端口扫描,我们可以及时发现未经授权的端口开放情况,防止未知的恶意入侵。

三、网络工具以下列举了几个常用的网络工具,用于进行端口扫描:1. Nmap(Network Mapper):Nmap是一个强大的网络探测和安全扫描工具。

它可以扫描目标主机的开放端口、操作系统信息以及其他服务信息。

2. OpenVAS(Open Vulnerability Assessment System):OpenVAS 是一个开源的漏洞评估系统。

它可以通过进行端口扫描来识别目标主机上的漏洞,并提供相应的修复建议。

3. Nessus:Nessus是一个网络漏洞扫描工具,可以通过对目标主机进行端口扫描来找出存在的漏洞,并提供修补建议。

四、使用网络工具进行端口扫描的步骤1. 目标选择:确定需要扫描的目标主机,可以是单个IP地址或者一个IP地址范围。

2. 工具选择:根据需求选择合适的网络工具,例如Nmap、OpenVAS或者Nessus。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

对于ICMP关心的destination unreachable hearder layout 中的0-3,9,10位的标记。

其中TCP SYN Scan (-sS)结果状态三种:open,closed,filtered在扫描过程中当确定一个端口开放后,为了不建立完整链接需要发送一个RST包,告知服务器放弃连接。

Nmap自身将根据情况发送一个RST包。

关闭的端口,直接收到一个RST包。

过滤的端口,发送SYN包后没有回复,Nmap自行决定时间,发送第二次,如果没有回复则TCP扫描(-sT)建立TCP连接(3次握手),目标发送SSH banner,接收后,终端连接。

Nmap发送RST包,让目标终止。

对于大量扫描端口为关闭或过滤,此时扫描发包同SYN扫描一致。

UDP扫描(-sU)主要针对服务DNS、SNMP和DHCP(53,161/162,67/68)UDP扫描除了open/filtered问题外,速度相对较慢。

扫描1000个端口带盖需要17min。

区分出open端口(-sV)nmap有nmap-service-probes格式,可以找到对应相应服务的包格式进行发送,(-sV)任何的open/filtered包回复则可以确认为open。

SNMP只有当确切的正确字符串给出,才能给出回复,很多设备配置开始为字符串public,但不是所有的都是。

对于nmap自动化来说,检测版本方法为唯一方法。

手工方法还有:一些特殊的traceroute,可以使用hping2等工具对一只的开放TCP或UDP 端口进行traceroute。

接着对有问题的UDP端口进行,跳数的不同可以区分出open和filtered 端口。

对UDP扫描提速nmap会根据主机的情况降低扫描速度和并限制速率,防止网络洪灾而导致目标机器丢弃。

对于linux类型规定1包/s方法:1、增加主机并行--min-hostgroup2、优先扫描主要端口-F设置3、添加—version-intensity 0 给版本扫描nmap直接查找最可能的端口数。

使用nmap-service-probes文件中的内容。

4、从防火墙后开始5、使用—host-timeout跳过慢主机6、使用-v 给出预测扫描技术时间Nmap脚本引擎目的:网络发现、更多复杂版本探测、漏洞检测、后门检测、漏洞利用脚本使用Lua语言编写NSE用-sC选项,结果为完整的Nmap和XML输出。

支持两种脚本,服务和主机脚本。

服务脚本涉及目标主机上一个开放的服务或端口,任何结果将显示在输出中。

主机脚本对每个目标IP运行不超过一次。

-Sc使用一般脚本--script使用用户编写脚本,可以指定脚本名称,或者脚本所在目录名称--script-args提供参数,--script-trace和—script-updatedb一般用于脚本调试和开发。

脚本分类:auth确定目标系统的身份验证凭据,包括snmp-brute,http-auth,ftp-anondefault 默认考虑因素包括:speed:运行速度快,不考虑暴力破解,怕中,和其他花费几分钟或消失的服务。

usefulness:提供有价值可用信息。

verbosity:产生的结果必须可读而且简洁。

reliability:很多脚本使用启发式和模糊质问匹配达到目的。

如果经常出错不应加入默认intrusiveness:太强进攻行为的脚本不适合。

privacy:有些外部脚本把信息传给第三方。

discovery 通过查询公共等级,SNMP服务,目录服务发现关于网络的更多信息。

html-title,smb-enum-shares,snmp-sysdescrexternal 这类脚本把数据发送到第三方数据库或其他网络资源。

whoisintrusive 可能造成系统崩溃,并且占用带宽或CPU时间,会被目标系统管理员认为是恶意代码。

http-open-proxy,snmp-brutemalware 检查系统是否被病毒感染,或存在后门。

smtp-strangeport,auth-spoofsafe 不会造成目标服务崩溃,不使用大量带宽或者资源,或一处漏洞的脚本。

ssh-hostkey,html-title。

version 版本探查,但不能单一选择。

只当版本检测(-sV)运行时启动。

vuln检查某一一直的漏洞返回发现的问题。

realvnc-auth-bypass,xampp-default-auth脚本格式:包括两个5部分描述域包括一个当脚本被执行时,一个动作块包含实际脚本指令的端口或者主机的规则定义。

description域描述脚本用途以及任何需要使用者注意的东西。

包括脚本的大纲。

categories域定义几个或多个脚本所属类别。

author域作者姓名,联系方式license域确定有合法许可可以分享runlevel域决定脚本执行顺序端口和主机规则nmap使用脚本规则决定是否应该在目标运行,一个脚本包含一个端口规则,管理脚本应该针对目标的哪个端口运行,或者一个主机规则,确保在条件成立时脚本针对目标IP只运行一次。

规则是一个Lua函数返回true或false。

主机规则接受一个主机表昨为他们的参数并测试,例如,ip地址和目标的主机名。

端口规则接受丢与任何open,open|filtered,或unfiltered的TCP或UDP端口主机和端口表作为参数。

端口规则通常测试如端口好,端口状态,或监听服务,是否针对端口运行。

Action运行包含任何满足端口和主机规则的条件触发后,会运行的指令。

是一个Lua函数,返回nil或者字符串。

如果返回字符串,将在nmap端口表后打印。

脚本语言NSE内部有一个Lua解释器,一个NSE库,后者连接Lua和Nmap。

负责处理初始化Lua解释器,调度并行脚本运行,脚本恢复或其他。

同时也是NSE网络I/O架构以及异常处理的核心。

同样包含一个使用的苦,使脚本更加方便有效。

基于Lua的语言nmap相关函数在命名空间nmap中,如nmap.socket()脚本中也可以引用C语言模块,模块必须遵循lua_CFunction类型。

一个特别的初始化函数提供在模块和剩余NSE代码的初始化。

初始化函数在luaopen_<module>270页具体函数注册方法以md5为例Nmap APINmap获得的关于目标主机信息以参数形式给到脚本action方法。

host和port是Lua表,如果脚本符合一条主机规则,只得到host表,如果符合端口规则,得到host和port表。

包含内容:host表:host, host.os, host.ip(如果使用主机名扫描,从反向DNS得到多余一个IP,则选择相同的IP进行扫描), , host.targetname, host.directly_connected, host.mac_addr, host.mac_addr_src(可以用来欺骗), host.interface, host.bin_ip, host.bin_ip_srcport表:port, port.number, port.protocol, port.service, port.version, port.state网络I/O API支持两种接口为:连接类型和未加工数据包connect-style network I/O连接类型网络I/O用于传统网络使用,建立socket连接,发送接收数据等。

raw packet network I/O 未加工数据包I/O未加工数据包接收依靠在Nsock库中的Libpacap封装器。

一般步骤为打开一个捕获设备,注册监听对象,处理收到的数据包。

具体函数调用关系见274线程互斥每个脚本运行线程时,当需要调用网络对象时,产生其他脚本。

有些脚本需要并发控制,nse 存在一个互斥函数。

异常处理NSE提供异常处理,Lua不提供,对于网络I/O操作设计允许结构化。

注册注册是针对一个Lua表,每个脚本可以读写注册。

脚本一般使用保存信息给相同的脚本实例。

注册也用于掌握完全不同的脚本的信息。

规则是一个Lua方法,决定是否对一个目标运行脚本。

文档使用Luadoc系统,NSEDoc执行细节初始化阶段初始阶段Nmap加载Lua解释器和库。

包括debug,io,math,os,package,string,table。

除了加载Lua提供的库,nmap命名空间函数也加载。

搜索路径是nmap搜索数据文件相同的目录,除了nselib库附加到每一个上。

在这个阶段所有的脚本参数保存在注册中。

下一步载入选择的脚本,根据默认或者提供给—script选项的参数。

version类脚本在版本探测可用时载入。

NSE首先尝试说明每个—script参数,这些使用nse_中的LuaC函数entry,基于从script.db脚本分类数据库中得到。

如果发现类别,这些脚本被载入。

否则Nmap尝试说明—script参数为文件或者目录。

如果没有相应文件或目录,脚本引擎产生错误,最终终止。

如果指定一个目录,所有的.nse文件被加载运行。

如果存在一个portrule,保存在porttests 表中同时有一个portrule key和文件终止值。

否则,如果脚本有一个hostrule,同样方式保存在hosttests表中。

对目标进行匹配脚本初始化结束后,hostrule和portrule对当前目标群的每台主机进行评估。

每个选中的脚本的规则对每台主机和主机上的open以及open/filtered端口进行测试。

portrule需要尽量简单,将任何大计算放到action中。

接着为每个匹配的脚本目标组合创建一个Lua线程。

每个线程存储相关的信息如:运行级别,目标,目标端口,host和port表,以及脚本类型。

mainloop函数按顺序处理每个运行等级。

脚本运行Nmap执行NSE脚本通过利用Nmap的Nsock并行接口库以及Lua系统语言特性实现并行扫描。

协同程序提供了合作的多个线程,脚本可以在特定点暂停,并允许其他系统程序运行。

网络I/O,特别是从远程主机等待请求,总是包含很长的等待时间,因此脚本为其他程序暂停。

Nsock封装器的主要函数因此放弃(终止)。

当Nsock完成处理如请求,回收将引起脚本从等待队列进入运行队列,当唤醒时可以重新运行。

mainloop函数将线程在等待和运行队列之间移动。

被阻止的线程从运行到等待,运行线程运行直到被阻止,完成或者出现错误而失败。

线程通过call process_waiting2running,从准备到运行。

这个过程是安排运行线程,或在队列继续指导没有线程存在在任何队伍终止。

相关文档
最新文档