# TCP三次握手
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
完成三次握手,客户端与服务器开始传送数据。
 
# 端口扫描类型
## TCP connect扫描
全连接扫描,此扫描与每个TCP端口进行3次握手通信。成功建立连接,则证明端口开放,否则为关闭。准确度很高,但是容易被防火墙和IDS检测到,并且在目标主机日志会有记录。
 
## TCP SYN扫描
端口开放:client发送SYN,server端回复SYN/ACK,client发送RST断开
端口关闭:client发送SYN,server端回复RST
 
## 秘密扫描
秘密扫描是一种不被审计工具所检测的扫描技术。它通常用于在通过普通的防火墙或路由器的筛选时隐藏自己。秘密扫描能躲避IDS、防火墙、包过滤器和日志审计,从而获取目标端口的开放或关闭的信息。由于没有包含TCP3次协议的任何部分,所以无法被记录下来,比半连接扫描更为隐藏。但是这种扫描的缺点是扫描结果的不可靠性会增加,而且扫描主机也需要自己构造IP包。
 
TCP FIN扫描
端口开放:client发送FIN,server没有响应
端口关闭:client发送FIN,server回复RST
 
TCP ACK扫描
端口开放:client发送ACK,server回复RST数据包TTL<=64
端口关闭:client发送ACK,server回得RST数据包TTL>64
 
NULL扫描
端口开放:client发送NULL,server没有响应
端口关闭:client发送NULL,server回复RST
 
TCP XMAS扫描
端口开放:client发送USG/PSH/FIN,server没有响应
端口关闭:client发送USG/PSH/FIN,server回复RST
 
SYN/ACK扫描
## 其他扫描
UDP扫描
IP头信息dump扫描
IP分段扫描
慢速扫描
乱序扫描
 
## TCP FLAGS
SYN(synchronous建立联机) SYN表示建立连接
FIN(finish结束) FIN表示关闭连接
ACK(acknowledgement 确认) ACK表示响应
PSH(push传送) PSH表示有DATA数据传输
RST(reset重置) RST表示连接重置
URG(urgent紧急)
Sequence number(顺序号码)
Acknowledge number(确认号码)
 
当FIN之后出现RST=1时,表示的是连接重置
当出现FIN包或RST包时,我们便认为客户端与服务器端断开了连接
当出现SYN和SYN+ACK包时,我们认为客户端与服务器建立了一个连接
当出现SYN=ACK=1时,表示的就是建立连接之后的响应
当出现PSH=1时,表示的是有真正的TCP数据包内容被传递
SYN与FIN是不会同时为1的,因为SYN表示建立连接,而FIN表示断开连接
 

最新文章

  1. Material Design兼容包的使用
  2. Android 中“TabBar”的背景拉伸问题
  3. Android控件之MultiAutoCompleteTextView(自动匹配输入的内容)
  4. JSBinding + SharpKit / 使用 Firefox 调试 JS
  5. 01-CALayer的基本操作
  6. poj 1035 Spell checker(水题)
  7. 删除sd卡的文件
  8. Asp.Net--上传大文件(页面超时)
  9. 关于lambda表达式树
  10. Codeforces 582B Once Again
  11. base64这种编码的意义
  12. 第13天 JSTL标签、MVC设计模式、BeanUtils工具类
  13. keil mdk中如何确保某一段程序不被优化掉(转)
  14. node删除当前文件底下全部文件的正确姿势
  15. python--Selectors模块/队列
  16. 将一个html文件引入另一个html文件的div中
  17. 28. 实现strStr()
  18. bzoj1559 [JSOI2009]密码
  19. 页面Vue
  20. Python 的几种推导式

热门文章

  1. 扩展Puppet – 建立Puppet CA集群
  2. sys.argv的意义及用法
  3. promise,await,async小论
  4. 【Winform-获取ListView选中行】Winform如何获取ListView选中行数据 ?
  5. 自动化登录QQ脚本
  6. [转] SSH两种登录方式(公私钥)解析
  7. @RequestParam和@PathVariable用法小结
  8. poj 3623(贪心)
  9. Fermat小定理的证明
  10. Spring Boot教程(三十一)使用Spring-data-jpa(2)