TCP状态标识 --- URG,ACK,PSH,RST,SYN,FIN

TCP 首部:
这里写图片描述

此次我们要讨论的就是其中的状态标识
URG:紧急指针有效。
ACK:确认序号有效。
PSH:接收方应尽快将报文段交给应用层。
RST:复位连接。
SYN:同步序号,用来发起一个连接。
FIN:发送端完成发送任务。

URG

紧急方式,使连接的一端可以告诉另一端有些具有某种方式的”紧急数据”已经放置在普通的数据流中。
另一端被通知这个紧急数据已被放置在普通的数据流中,处理方式由接收方决定。

URG比特被置1,并且紧急指针被置为一个正的偏移量,偏移量与TCP首部的序号字段相加,得出紧急数据的最后一个字节的序号。

TCP 通知接收进程:
何时接收到一个紧急数据指针。
何时某个紧急数据指针还不在此连接上。
紧急指针是否在 数据流中向前移动。

接收进程读取数据流并被告知何时碰到了紧急数据指针。
只要从当前读取位置到紧急数据指针之间有数据存在 ,就认为程序处于紧急方式。

TCP 本身并不知道紧急数据从数据流的何处开始,TCP 通过连接传送的唯一信息就是紧急方式已经开始和指向紧急数据最后一个字节的指针。其他的事情留给应用程序去处理 。

ACK

确认字符,当接收方成功收到数据,那么会回复一个ACK报文。
通常 ACK 有自己固定的格式,长度大小。
ACK可以和 SYN,FIN等同时使用。

PSH

发送方使用 PSH 标志通知接收方将所收到的数据全部提交给接收进程。
这些数据包括与 PSH 一起传送的数据以及接收方已经接收到的其他数据。

客户端应用程序通知 TCP 设置 PSH 标志,TCP 通知服务器不需要等待额外数据而使已提交数据在缓存中滞留。
服务器收到带有 PSH 标志的报文,立即将这些数据交给服务器而不等待判断是否还有额外的数据到达。

RST

RST 用于复位 — 异常的关闭连接。
发送 RST 包关闭连接时,不必等待缓冲区的包都发出去,直接丢弃缓冲区的包发送 RST 包。
接收端接收到 RST 包时,也不必发送 ACK 来确认。

TCP处理程序会在自己认为的异常时刻发送RST包。例如,A向B发起连接,但B之上并未监听相应的端口,这时B操作系统上的TCP处理程序会发RST包。

异常终止一个连接的优点:
1. 丢弃任何待发送数据并立即发送复位报文段。
2. RST 接收方会区分另一端执行的是异常关闭还是正常关闭。

SYN

SYN 是 TCP 建立连接时使用的握手信号,在客户机和服务器之间建立正常的 TCP 网络连接时,客户机首先发出一个 SYN 消息,服务器使用 SYN+ACK 应答表示接收到了这个消息。最后客户机再以 ACK 作为响应。

SYN攻击:
SYN 攻击利用TCP协议缺陷,发送了大量伪造的TCP连接请求,使得被攻击方资源耗尽,无法及时回应或处理正常的服务请求。一个正常的TCP连接需要三次握手,首先客户端发送一个包含SYN标志的数据包,其后服务器返回一个SYN/ACK的应答包,表示客户端的请求被接受,最后客户端再返回一个确认包ACK,这样才完成TCP连接。在服务器端发送应答包后,如果客户端不发出确认,服务器会等待到超时,期间这些半连接状态都保存在一个空间有限的缓存队列中;如果大量的SYN包发到服务器端后没有应答,就会使服务器端的TCP资源迅速耗尽,导致正常的连接不能进入,甚至会导致服务器的系统崩溃。

FIN

发送 FIN 只意味着在这一个方向上没有数据流动,通常是应用层进行关闭的结果。
因此每个方向必须单独的进行关闭。

客户端发送一个 FIN,用来关闭从客户到服务器的数据传送。
服务器收到这个 FIN,它发回一个 ACK,确认序号为收到的序号加1。
同时 TCP 还向应用程序传送一个文件结束符。接着服务器发送一个 FIN 报文段。
客户端收到 FIN 后,发回一个 ACK 确认报文段。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Land-Attack是一种特殊的DoS攻击,攻击者在TCP连接中伪造源IP和源端口,将这些包发送给被攻击者,从而导致目标主机崩溃。为了防范这种攻击,我们可以使用iptables来过滤TCP Land-Attack攻击,并将攻击记录存储到指定文件中。 以下是实现此目的的iptables规则: ```bash iptables -A INPUT -p tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -m limit --limit 2/s --limit-burst 10 -j LOG --log-prefix "Possible Land Attack: " iptables -A INPUT -p tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP ``` 这个规则将匹配TCP标志中的所有6个标志,并将其限制在每秒2个数据包、10个数据包的限制范围内。如果超过此限制,iptables将记录关于“Possible Land Attack”的日志,并将其丢弃。日志将存储在/var/log/messages文件中。 如果您想将日志存储到其他文件中,可以将日志前缀中的“Possible Land Attack”替换为您想要的内容,并使用以下命令将日志重定向到指定文件: ```bash iptables -A INPUT -p tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -m limit --limit 2/s --limit-burst 10 -j LOG --log-prefix "Possible Land Attack: " --log-level 4 >> /path/to/logfile iptables -A INPUT -p tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP ``` 这会将日志级别设置为4,将日志记录重定向到指定的日志文件中。请确保您有权限写入指定的日志文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值