TCP:SYN ACK FIN RST PSH URG简析
三次握手Three-way Handshake
一个虚拟连接的建立是通过三次握手来实现的
1. (B) --> [SYN] --> (A)
假如服务器A和客户机B通讯. 当A要和B通信时,B首先向A发一个SYN (Synchronize) 标记的包,告诉A请求建立连接.
注意: 一个 SYN包就是仅SYN标记设为1的TCP包(参见TCP包头Resources). 认识到这点很重要,只有当A受到B发来的SYN包,才可建立连接,除此之外别无他法。因此,如果你的防火墙丢弃所有的发往外网接口的SYN包,那么你将不 能让外部任何主机主动建立连接。
2. (B) <-- [SYN/ACK] <--(A)
接着,A收到后会发一个对SYN包的确认包(SYN/ACK)回去,表示对第一个SYN包的确认,并继续握手操作.
注意: SYN/ACK包是仅SYN 和 ACK 标记为1的包.
3. (B) --> [ACK] --> (A)
B收到SYN/ACK 包,B发一个确认包(ACK),通知A连接已建立。至此,三次握手完成,一个TCP连接完成
Note: ACK包就是仅ACK 标记设为1的TCP包. 需要注意的是当三此握手完成、连接建立以后,TCP连接的每个包都会设置ACK位
这就是为何连接跟踪很重要的原因了. 没有连接跟踪,防火墙将无法判断收到的ACK包是否属于一个已经建立的连接.一般的包过滤(Ipchains)收到ACK包时,会让它通过(这绝对不是个 好主意). 而当状态型防火墙收到此种包时,它会先在连接表中查找是否属于哪个已建连接,否则丢弃该包
在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG.
其中,对于我们日常的分析有用的就是前面的五个字段。
它们的含义是:
URG:Urget pointer is valid (紧急指针字段值有效)
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数据包内容被传递。
http://blog.csdn.net/wudiyi815/article/details/8505726
相关推荐
TCP SYN ACK FIN RST PSH URG 详解 TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层协议。它是 TCP/IP 协议簇中的一部分,负责提供可靠的数据传输服务。今天,...
16位源端口,16位目的端口,32位序号,32位确认序号,4位首部长度都转化成相应的十进制显示,6位保留位,URG,ACK,PSH,RST,SYN,FIN 均为1位二进制, 16位窗口,16位紧急指针,16位校验和均用二进制显示
TCP连接的状态管理中,FLAGS字段包含多个标志位,如SYN、FIN、ACK、PSH、RST和URG,它们各自有特定的含义: - SYN:建立连接,用于同步序列编号。 - FIN:结束连接,表示一方希望关闭连接。 - ACK:确认,表明已...
根据给定的信息,我们可以深入分析TCP协议中的三次握手过程及其涉及的关键知识点。 ### TCP协议简介 TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,它通过三次握手...
7. **URG、ACK、PSH、RST、SYN、FIN**:控制位,分别表示紧急、确认、推送、重置、同步和终止等操作。 8. **窗口大小**:控制流量的速度,防止接收方来不及处理过多的数据。 9. **校验和**:用于检测数据在传输过程...
* 标记:8 位,后 6 位分别是 URG(紧急指针)、ACK(确认序号有效)、PSH(接收方应该尽快将这个报文段交给应用层)、RST(重建连接)、SYN(同步序号用来发起一个连接)、FIN(发送端完成发送任务)。 * 窗口大小...
TCP三次握手是建立连接的过程,包括以下步骤: 1. 客户端发送一个带有SYN标志的数据段,请求连接。 2. 服务器回应一个SYN+ACK,确认并同意连接请求。 3. 客户端再回应一个ACK,确认服务器的SYN,至此连接建立完成。 ...
- 包含六个标志位:URG、ACK、PSH、RST、SYN、FIN。 - 用途:这些标志位控制着TCP连接的状态和行为。 - **URG** (Urgent):表示紧急数据的存在。 - **ACK** (Acknowledgment):确认接收到了指定的序列号。 - **...
### TCP的三次握手及TCP协议的包文结构 #### TCP的三次握手过程 TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,在Internet中的应用极为广泛。为了确保数据传输的...
7. **标志位** (`Flags`):6位,用于控制连接或传递其他信息,包括URG、ACK、PSH、RST、SYN和FIN标志位。 #### 四、TCP三次握手的实际应用场景 在实际的网络通信中,TCP三次握手的应用非常广泛。例如,当客户端...
标志位包括 URG、ACK、PSH、RST、SYN、FIN 等,具体含义如下:URG:紧急指针有效;ACK:确认序号有效;PSH:接收方应该尽快将这个报文交给应用层;RST:重置连接;SYN:发起一个新连接;FIN:释放一个连接。 TCP 的...
TCP包头还包括其他标志位,如URG、ACK、PSH、RST、SYN和FIN,分别用于紧急数据、确认、推送、重置连接、同步建立连接和结束连接。 相比之下,UDP(User Datagram Protocol)的包头只有8个字节,它是一种无连接的...
TCP 三次握手图解 TCP(Transmission Control Protocol)是一种可靠的传输层协议,用于保证数据的可靠传输。在 TCP 中,三次握手是建立连接的过程,确保数据的可靠传输。本文将详细解释 TCP 三次握手的过程。 为...
### TCP三次握手与四次挥手详解 #### 一、TCP协议概述 传输控制协议(Transmission Control Protocol,简称TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在互联网应用中,TCP协议因其可靠性和稳定...
这六个标志位是:URG、ACK、PSH、RST、SYN和FIN,它们分别代表不同的含义。 1. URG(Urgent Pointer):当URG标志位设置为1时,表示报文段中包含紧急数据。紧急数据是一种特殊的数据,它需要尽快处理,不按照常规...
"TCP/IP 协议族详解 wireshark 抓包图解 TCP 三次握手四次挥手详解" TCP/IP 协议族是指由 TCP 和 IP 两个主要协议组成的协议簇,负责管理计算机之间的通信。该协议族分为四个层次:链路层、网络层、运输层和应用层...
- 控制位:其中6个标志位SYN, ACK, PSH, RST, FIN, URG指示特定的状态信息,如SYN用于同步,ACK用于确认,FIN用于终止连接等。 - 窗口大小:表示发送方的接收窗口大小,用于流量控制。 - 校验和:提供端到端的错误...
- **第一次握手**:使用过滤规则`tcp.flags.syn==1 and tcp.flags.ack==0`来捕获带有SYN标志但没有ACK标志的数据包。 - **第二次握手**:使用过滤规则`tcp.flags.syn==1 and tcp.flags.ack==1`来捕获同时包含SYN和...
TCP的报文结构包括源端口和目的端口、序号、首部长度、控制标志(如URG、ACK、PSH、RST、SYN、FIN)、窗口大小、紧急指针和校验和等。这些字段确保了TCP的连接建立、数据传输和连接终止的可靠性。TCP的三次握手建立...