下面就这三种方法来小小的探讨一下,不对的地方还请多多指教!

1:TCP扫描

相对来说是速度比较慢的一种,为什么会慢呢?因为这种方法在扫描的时候会从本地主机的一个端口向目标主机的一个端口发出一个连接请求报文段,而目标主机在收到这个这个请求报文后若同意的话则发回一个确认报文段,那么我们本地主机收到确认报文段之后就可以确认目标主机的该端口是活动的了.因为如果目标主机的该端口是死端口的话,目标主机不会发回确认报文.(这里还有一个问题,就是如果该端口是死端口的话,那目标主机能收到我们的连接请求吗?我自己感觉应该是收不到的...谁要知道了一定要告诉我啊)

2.SYN扫描

这种扫描方式相对来说速度比较快.
原理为:
(1):本地主机向目标主机发送一个SYN数据段.(这里牵扯到TCP报文结构的问题,在TCP报文中SYN标志位用来建立连接,让连接的双方同步序列号.如果SYN=1而ACK=0,则表示该数据包为连接请求,如果SYN=1且ACK=1,则表示接受连接.)
(2):如果目标主机的回应报文中SYN=1,ACK=1,则说明该端口是活动的,那么接着,我们再发一个RST给目标主机,拒绝建立连接.
在这里,如果目标主机的回应为RST,则表示该端口为死端口,在这种情况下,我们不用再做任何回应.

3.FIN扫描

在TCP报文结构中,FIN段负责表示发送端已经没有数据要传输了,希望释放连接.
我们发送一个FIN=1的报文到一个关闭的端口时,该报文会被丢掉,并返回一个RST报文.但是,当FIN报文到一个活动的端口时,该报文只是被简单的丢掉,而不回应任何信息. chi flat iron
这种扫描方法的好处就是完全不建立TCP连接,从而大大减少了被目标主机记录下来的可能性,安全性较高.chi flat irons
好了,三种方法的原理都已经说完了,下面说一下一个非常严重的问题,就是在很多小小菜的印象中,TCP和SYN是平起平坐的.其实并不是这样,SYN只不过是TCP报文结构中的一小块罢了,FIN、RST、PSH、ACK、URG等等都是属于TCP中的.而UDP才是和TCP在一个级别的,千万别把SYN和UDP混淆了!

参考:https://blog.51cto.com/cckdc/233835

浅谈TCP扫描与SYN扫描与FIN扫描的更多相关文章

  1. 浅谈TCP IP协议栈(三)路由器简介

    读完这个系列的第一篇浅谈TCP/IP协议栈(一)入门知识和第二篇浅谈TCP/IP协议栈(二)IP地址,在第一篇中,可能我对协议栈中这个栈的解释有问题,栈在数据结构中是一种先进后出的常见结构,而在整个T ...

  2. 浅谈 TCP、IP、DNS 和 HTTP 的关系

    一.浅谈三个协议的基本概念 1.IP 协议 按层次分,IP网际协议位于网络层,几乎所有的网络的系统都会用到 IP 协议,其重要性非同一般.IP 协议作用就是把各种数据包传送给对方,对方的地址就要看其 ...

  3. 浅谈TCP/IP网络编程中socket的行为

    我认为,想要熟练掌握Linux下的TCP/IP网络编程,至少有三个层面的知识需要熟悉: 1. TCP/IP协议(如连接的建立和终止.重传和确认.滑动窗口和拥塞控制等等) 2. Socket I/O系统 ...

  4. 浅谈TCP三次握手和四次挥手

    学习三次握手和四次挥手前,先了解下几个基础的概念. Seq:数据段序号,我们都知道TCP是提供有序传输的,有序传输的基础就是数据段序号,接收方在收到发送方乱序包的情况下可以根据Seq进行重新排序,确保 ...

  5. Linux网络编程——浅谈 TCP 三次握手和四次挥手

    一.tcp协议格式 二.三次握手 在 TCP/IP 协议中.TCP 协议提供可靠的连接服务,採用三次握手建立一个连接. 第一次握手:建立连接时,client发送 syn 包(tcp协议中syn位置1. ...

  6. 面试:浅谈tcp/udp

    tcp是一种面向连接的.可靠的.基于字节流的传输层通信协议.是专门为了在不可靠的互联网络上提供一个可靠的端到端字节流而设计的,面向字节流. udp(用户数据报协议)是iso参考模型中一种无连接的传输层 ...

  7. 浅谈tcp socket的backlog参数

    最近看netty源码碰到ChannelOption.SO_BACKLOG参数,通过跟踪代码发现其实是用于设置底层tcp socket的backlog参数,由于不了解这个参数,有必要彻底的理解一下. 底 ...

  8. 浅谈TCP协议,总算明白它是干什么的了

    一.什么是TCP,他是干什么的? TCP即传输控制协议(Transmission Control Protocol)是一种面向连接的.可靠的.基于字节流的传输层通讯协议. TCP是为了在不可靠的互联网 ...

  9. 浅谈TCP优化

    原文地址:http://kb.cnblogs.com/page/197406/ 很多人常常对TCP优化有一种雾里看花的感觉,实际上只要理解了TCP的运行方式就能掀开它的神秘面纱.Ilya Grigor ...

随机推荐

  1. java程序连接Liunx服务器并且执行命令

    JSch 介绍 JSch 是SSH2的一个纯Java实现.它允许你连接到一个sshd 服务器,使用端口转发,X11转发,文件传输等等.你可以将它的功能集成到你自己的 程序中.同时该项目也提供一个J2M ...

  2. puppet 3+Unicorn+Nginx安装配置

    puppet 3+Unicorn+Nginx安装配置 2014-08-15 10:58 酒瓶不倒 酒瓶不倒的博客 字号:T | T 一键收藏,随时查看,分享好友! Unicorn 效率要比 Webri ...

  3. 【C#-程序时间计数器】如何计算某些步骤/过程耗时多少?

    使用Stopwatch对象,TimeSpan对象 Stopwatch sw = new Stopwatch();//跑表,该类可以进行时间的统计 命名空间using System.Diagnostic ...

  4. Python之multiprocessing模块的使用

    作用:Python多进程处理模块,解决threading模块不能使用多个CPU内核,避免Python GIL(全局解释器)带来的计算瓶颈. 1.开启多进程的简单示例,处理函数无带参数 #!/usr/b ...

  5. mysql 导入SQL文件报错

    ----MySQL导入数据的时候,总是报错,本地测试都没办法测试---- 导出SQL文件正常, 在导入SQL文件的时候, 报错-----大部分数据表导入成功, 个别的失败 在网上看到很多建议: 建议别 ...

  6. Prism框架的Regions使用

    Prism框架的Regions,可以把用户控件.窗体等附加到主窗体指定的控件中. [实战1] 1.新建Prism Blank App(WPF) 项目:Demo0810 Views文件夹处,鼠标右键—— ...

  7. #7 div2 B Layer Cake 造蛋糕 智商题+1

    B - Layer Cake Time Limit:6000MS     Memory Limit:524288KB     64bit IO Format:%I64d & %I64u Sub ...

  8. python测试网站访问速度

    # -*- coding: utf-8 -*- # @Author : Felix Wang # @time : 2018/8/13 22:13 # pip3 install pycurl impor ...

  9. TensorFlow使用记录 (五): 激活函数和初始化方式

    In general ELU > leaky ReLU(and its variants) > ReLU > tanh > logistic. If you care a lo ...

  10. Java集合框架之TreeSet

    简述 TreeSet是基于TreeMap作为存储的可排序.可去重的有序集合 继承于AbstractSet,AbstractSet实现了equals和hashcode方法 实现了NavigableSet ...