题目二 发现服务器开启的 TCP 端服务
一、课题内容和要求
1.设计内容 :
编写程序来扫描服务器已开启的 TCP 端口,并将获得的端口号显示出
来。要求扫描 0—1023 范围内的端口。
2.设计要求
(1)将部分字段的内容显示在屏幕上,具体格式:
请输入将扫描主机的 IP 地址:xx.xx.xx.xx
已开启的端口:xx xx xx xx ...
(2)要求有良好的编程规范和注释,编程所使用的操作系统、语言和编译
环境不限,但是需在课程设计报告文档中予以说明。
(3)可以采用多线程来提高主机扫描速度。(选做)
二、需求分析
随着计算机网络的快速发展和广泛应用,网络安全问题日益引起重视。端
口扫描是网络安全问题中漏洞检测的一项重要手段。对攻击者而言,端口扫描
是对目标系统进行针对性探测的必经之路。通过端口扫描可以知道目标系统开
放了哪些端口,运行了哪些服务。攻击者根据扫描结果确定如何对目标系统进
行下一步的探测或攻击。对安全管理员而言,端口扫描是进行脆弱性评估的必
要手段。管理员针对端口扫描得到的安全敏感信息采取适当的防范补救措施,
可以更好地对网络进行防护。本验实验要完成的任务是编写一种基于多线程技
术的 TCP 端口扫描器。
三、概要设计
1.端口扫描原理
尝试与目标主机的某些端口建立连接,如果目标主机该端口有回复(见三次握
手中的第二次),则说明该端口开放,即为“活动端口”。
2.扫描原理分类
(1)全 TCP 连接
这种扫描方法使用三次握手,与目标计算机建立标准的 TCP 连接。需要说明的是,这种古
老的扫描方法很容易被目标主机记录。
(2)半打开式扫描(SYN 扫描)
在这种扫描技术中,扫描主机自动向目标计算机的指定端口发送 SYN 数据段,表示发送建