书:计算机网络高级软件编程技术(P120) 之 基础训练:利用TCP协议扫描端口

本文介绍了TCP协议的端口扫描技术,详细阐述了Host A如何通过发送SYN包探测Host B的端口状态,以及根据不同的响应包类型判断端口是否开放。同时,文章涉及了TCP数据包的校验和计算及其必要性,并提供了类图和序列图来辅助理解解决方案的设计。
摘要由CSDN通过智能技术生成

Section I Problem Specification

本次实验主要是写一个程序:能够扫描到指定Ip地址的端口是否开放。主要利用TCP协议,因为如果端口开放,目的主机将会:发送固定格式的TCP数据给源主机,表示:可以利用TCP进行连接。如果端口没有开发,那么也会返回一个特别的TCP数据包给源主机,表示不能连接。我们主要是根据返回的TCP数据包判断该端口是否开放。

TCP数据包:

作为必备的知识,主要就是TCP数据包的格式以及各个字段的含义:





上面两幅图清楚的指明了TCP数据包的格式以及内容,下面对其内容作简要的解释:
序列号(sequence Number):TCP协议将发送一段连接的数据,这个序列号也就是按照数据流的先后顺序给每个发送的数据包编号
确认号(Acknowledgement number):表示接收端希望接受的下一个TCP协议包的第一个字节的编号,与发送端下一个要发的序列号相对应。
头部长度:TCP数据包的长度,单位为ULONG,其范围为5到15之间,基本长度为20B,最长可以是60B。
保留字段:无实际用途,设置为0。

控制字段:
SYN:同步信息,用于建立一个新的TCP连接
ACK:确认信息,当当前号设置为1时,表示确认号才有效。
PSH:表示希望协议栈尽快向上层传递数据
RST:表示Reset,强制切断连接
URG:表示需要紧急处理的数据存在。
FIN:连接正常终止,用来接收现有的TCP连接

窗口大小:用来表示滑动窗口的大小
校验和:数据报的忘记校验和
紧急指针:代表紧急数据在数据包中的位置,在URG置位时才有效(置位一词说的是将该位设置为1)

利用TCP扫描端口:

TCP连接的正常流程,
  1. Host A 发一个 SYN 包 给Hos
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值