Pushack是什么意思?这里的P.代表的是pushack的数据包,那么pushack是什么意思呢?11:53:56.748105IP40.100.29.194.https>10.79.98.55.62947:Flags[P.],seq5758:5814,ack6948,win2052,length5611:53:56.748287IP40.100.29>.55.98.98.62947:Flags[P.],seq5814:6273,ack6948,win2052,length45911:53:56.748448IP40.100.29.194.https>10.79.98.55.62947:Flags[P.],3:6858,ack6948,win2052,length192这里有详细的理解UnderstandingPushACKTCPFlagsPSH(push)标志表示传入的数据应该直接传递给应用程序而不是得到缓冲。ACK(acknowledgement)标志用于确认数据包已经收到后,也用于确认发起请求和拆除请求。一旦创建了TCP会话,每个数据包都包含一个ACK??标志。push和ack是两个常用的tcp标志。tcp协议中有六个tcp标志。下面的文章会详细解释。理解TCPFlags使用tcpdump命令可以很方便的查看每个数据包的tcpflag状态。Tcpdump:FilterPacketswithTcpFlagstcpflag详解我们通常使用六种tcpflag。在TCP层,有一个FLAGS字段,它有如下标识:SYN、FIN、ACK、PSH、RST、URG。其中,前五个字段对我们日常分析很有用。它们的含义分别是:SYN表示建立连接,FIN表示关闭连接,ACK表示响应,PSH表示有DATA数据传输,RST表示重置连接。pushack是一个常见的组合。其中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(TransmissionControlProtocol)传输控制协议TCP是一种主机到主机层的传输控制协议,提供可靠的连接服务,使用三路握手来确认连接的建立:位code是tcp标志,有6种标记:SYN(同步连接建立)ACK(确认确认)PSH(推送传输)FIN(finish结束)RST(reset重置)URG(urgent紧急)sequencenumber(序列号)Acknowledgenumber(确认号)第一次握手:主机A发送一个syn=1的比特码,随机生成一个seqnumber=1234567的数据包给服务器,主机B从SYN=1得知,A请求建立连接;第二次握手:主机B收到请求后,需要确认连接信息,向A发送ack号=(主机A的seq+1),syn=1,ack=1,随机生成一个seq=7654321的数据包;第三次握手:主机A收到后检查ack号是否正确,即第一次发送的seq号+1,位码ack是否为1,如果正确则主机A发送ack号=(主机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状态,完成三次握手方式握手。完成三次握手后,客户端和服务器开始传输数据。通过tcpdump可以查看每个数据包的状态位。tcpdumpcapturetcpflags更多参考文章:Tcpdump:FilterUDPPacketsUnderstandingTCPSequenceNumberwithExamplesUnderstandingTCPSocketWithExamplesTcpdump:FilterPacketswithPorts
