`

TCP的状态 (SYN, FIN, ACK, PSH, RST, URG)

阅读更多

转至:http://www.cnblogs.com/azraelly/archive/2012/12/25/2832393.html

 

在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG.

其中,对于我们日常的分析有用的就是前面的五个字段。

 它们的含义是:

SYN表示建立连接,

FIN表示关闭连接,

ACK表示响应,

PSH表示有 DATA数据传输,

RST表示连接重置。

 其中,ACK是可能与SYN,FIN等同时使用的,比如SYN和ACK可能同时为1,它表示的就是建立连接之后的响应,

 如果只是单个的一个SYN,它表示的只是建立连接。

TCP的几次握手就是通过这样的ACK表现出来的。

 但SYN与FIN是不会同时为1的,因为前者表示的是建立连接,而后者表示的是断开连接。

RST一般是在FIN之后才会出现为1的情况,表示的是连接重置。

 一般地,当出现FIN包或RST包时,我们便认为客户端与服务器端断开了连接;而当出现SYN和SYN+ACK包时,我们认为客户端与服务器建立了一个连接。

PSH为1的情况,一般只出现在 DATA内容不为0的包中,也就是说PSH为1表示的是有真正的TCP数据包内容被传递。

TCP的连接建立和连接关闭,都是通过请求-响应的模式完成的。

 概念补充-TCP三次握手:

TCP(Transmission Control Protocol)传输控制协议

TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:

 位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急)Sequence number(顺序号码) Acknowledge number(确认号码)

第一次握手:主机A发送位码为syn=1,随机产生seq number=1234567的数据包到服务器,主机B由SYN=1知道,A要求建立联机;

 第二次握手:主机B收到请求后要确认联机信息,向A发送ack number=(主机A的seq+1),syn=1,ack=1,随机产生seq=7654321的包;

 第三次握手:主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,主机A会再发送ack number=(主机B的seq+1),ack=1,主机B收到后确认seq值与ack=1则连接建立成功。

 完成三次握手,主机A与主机B开始传送数据。

 

 在TCP/IP协议中,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 SYN ACK FIN RST PSH URG.doc

    TCP SYN ACK FIN RST PSH URG.doc

    ICMP发现活动主机&TCP(SYN FIN ACK)扫描&UDP扫描

    ICMP发现活动主机 TCP(SYN FIN ACK)端口扫描 UDP端口扫描 vs2008 Winpcap开发

    TCP.rar_TCP rst_URG_fin_syn

    16位源端口,16位目的端口,32位序号,32位确认序号,4位首部长度都转化成相应的十进制显示,6位保留位,URG,ACK,PSH,RST,SYN,FIN 均为1位二进制, 16位窗口,16位紧急指针,16位校验和均用二进制显示

    5种不同的端口扫描器程序.zip

    端口扫描器程序,实现了: TCP Connect扫描 TCP SYN扫描 TCP FIN扫描 TCP ACK扫描 TCP NULL扫描 TCP XMAS扫描 UDP扫描。 4.端口扫描器: 1.采用多线程技术能够对指定的网络主机与端口在同一时间并发进行扫描 2....

    tcp-shaker:在Go中不带ACK的情况下执行TCP握手,对健康检查很有用,即SYN,SYN-ACK,RST

    但是,对于TCP健康状况检查,服务器在发送回SYN-ACK之后就可以认为它仍然处于活动状态, 在某些情况下,使最后的ACK变得不必要甚至有害。 好处 通过避免最后一个ACK 更少的数据包提高效率 健康检查不太明显 第二...

    C#编的基于TCPSYN/FIN的端口扫描器源代码

    最近刚刚编的,有些功能还不完善,但也能很好的进行扫描了

    详解tcp三次握手过程syn,ack

    图解tcp三次握手过程udp没有三次握手,所以不可靠

    多变化的TCP-SYN攻击

    如果发动SYN攻击的源地址和物理地址不变,容易受防火墙拦截,不能实现真正意义上的SYN攻击。通过对程序的修改实现IP和MAC地址的同时改变从而可以通过防火墙实现攻击!!!

    tcp_syn_file.cap

    FLOOD攻击需要的情下载吧,没什么可说的了

    端口扫描程序,TCP connect, SYN scan, FIN scan,ICMP scan

    visual studio 2008工程,实现TCP connect, SYN scan, FIN scan, ICMP scan

    内核tcp的syn包skbuffer构造发送模块

    使用skbuffer 构造tcp连接的第一个包syn包 发送给目的主机,

    c++魔兽游戏里踢人源代码

    因为通过伪造TCP,SYN,ACK数据包来实现,几乎不可能) (魔兽世界游戏踢我们HOOK发送功能。如果我们耳语一个玩家,假设输入7,720,668,然后肯定在pBuffer中搜索到这个字符串,然后我们关闭套接字来实现相应的T人。...

    tcp syn 扫描

    基于window2000 tcp syn扫描实现

    TCP SYN Flood分析

    数据包分析,tcp攻击,syn攻击,让你如何分析ddos攻击,让你了解ddos攻击的原理。

    操作系统安全:防syn 攻击优化配置.docx

     第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;  第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack...

    tcp三次握手四次挥手.md

    3. 客户端收到SYN+ACK包后,向服务器发送确认包ACK(应答),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。 通过这三次握手,客户端和服务器成功建立TCP连接,准备进行数据传输...

    Dos+ddos+网络攻击原理及其实现

    正常情况下,任何TCP报文都会设置SYN,FIN,ACK,RST,PSH五个标志中的至少一个标志,第一个TCP报文(TCP连接请求报文)设置SYN标志,后续报文都设置ACK标志。有的协议栈基于这样的假设,没有针对不设置任何标志的...

    操作系统安全:syncookie配置.docx

    一般把收到SYN包而还未收到ACK包时的连接状态称为半打开连接(Half-open Connection)。在最常见的SYN Flood攻击中,攻击者在短时间内发送大量的TCP SYN包给受害者。受害者(服务器)为每个TCP SYN包分配一个特定的数据...

    TCP socket SYN队列和Accept队列区别原理解析

    首先我们必须明白,处于“LISTENING”状态的TCP socket,有两个独立的队列: SYN队列(SYN Queue) Accept队列(Accept Queue) 这两个术语有时也被称为“reqsk_queue”,“ACK backlog”,“listen backlog”,...

Global site tag (gtag.js) - Google Analytics