tcp 抓包命令 ,wireshark 软件过滤及转码使用 ,TCP tcpdump 连接状态,标志位详解
# tcpdump 抓包命令
tcpdump -i eht0 host 203.119.160.6 and tcp port 80 -w 1.cap
tcpdump host 203.119.160.6 and tcp port 80 -w 1.cap
# -i 指定网卡
# -w 指定文件
# host ip
# and 并且 tcp 协议 端口
tcpdump host 203.119.160.6 and port not 22
# and port not 不匹配端口
tcpdump -i eth0 -U -w - 'host 192.168.2.29 and (port 22222 or port 22221 or port 80)'
# tcp 协议 SYN ACK PSH FIN 说明
TCP(Transmission Control Protocol)传输控制协议
TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:
位码即tcp标志位,有6种标示:
SYN(synchronous建立联机)
ACK(acknowledgement 确认)
PSH(push传送)
FIN(finish结束)
RST(reset重置)
URG(urgent紧急)
Sequence number(顺序号码)
Acknowledge number(确认号码)
# 三次握手
a 客户端,b 服务器,seq 请求, ack 携带信息:如a带来的信息,+1 服务器的信息打包为ack
第一次: 客户端 ----> 服务器端 : SYN ( seq=a ) # SYN 连接请求 ; seq 客户端标识 a
# 发包标志: SYN=1; ACK=0
第二次: 客户端 <---- 服务器端 : SYN-ACK ( seq=b; ack=a+1 ) # SYN ACK 连接确认,并将消息给客户端知晓,且等客户回复确认连接
# 标识:b 服务器,包ack 客户端标识+服务器答复 1 收到请求
# 发包标志:SYN=1,ACK=1 让客户端发确认连接数据包
# 服务器允许连接,(可以通信)
第三次: 客户端 ----> 服务器端 : ACK ( seq=b+a; ack=b+1 ) # ACK 客户确认连接,seq 标识:服务器和客户端两个
# 发向服务器,服务器收到后就不再回复了而是打开数据传输。
# 发包标识 SYN=0,ACK=1
4. 服务器开始传输数据
# 四次挥手
客户端主动断开:
1. 客户端 ----> 服务器端 : FIN ( seq=a ) # 客户端标识 a 发 FIN 断开请求
2. 客户端 <---- 服务器端 : ACK ( seq=a+1 ) # 发请求:客户端标识+服务器响应 1 (收到断开请求) 给客户端
3. 客户端 <---- 服务器端 : FIN ( seq=b; ack=a+1 ) # 发断开请求: 断开客户端a的请求 1 已经收到
3. 客户端 ----> 服务器端 : ACK ( seq=b+1) # 客户端b收到
# wireshark 软件过滤及转码使用
ip.addr==47.95.216.170 # 过滤IP,指定为:47.95.216.170
tcp.port==443 # 过滤端口
ip.addr==47.95.216.170 and tcp.port==443
# 过滤ip 并且过滤端口
ip.addr == 47.95.216.170 and not tcp.port in {3306 25 443}
# 过滤ip 并且指定端口,不是这几个:3306 25 443
ip.src ip.dst ip.addr ! tcp.port
来源ip 目的ip 源或者目的地ip 非不匹配 指定tcp模块中的端口
# tcp 分析报文
上图圈起来的就是封包详细信息(Packet Details Pane):
这是最重要的信息,用来查看协议中的每一个字段。而OSI七层模型分别为:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
在封包信息中,每行对应的含义及在OSI模型中的对应关系如下:
Frame: 物理层的数据帧概况 ->对应OSI七层模型中的【物理层】
Ethernet II: 数据链路层以太网帧头部信息 ->对应OSI七层模型中的【数据链路层】
Internet Protocol Version 4: 互联网层IP包头部信息 ->对应OSI七层模型中的【网络层】
Transmission Control Protocol: 传输层T的数据段头部信息,此处是TCP ->对应OSI七层模型中的【传输层】
Hypertext Transfer Protocol: 应用层的信息,此处是HTTP协议 ->对应OSI七层模型中的【应用层】
# TCP tcpdump 连接状态,标志位详解
S, SYN
F, FIN
R, RST
P, PUSH
LISTEN:侦听来自远方的TCP端口的连接请求
SYN-SENT:再发送连接请求后等待匹配的连接请求(客户端)
SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认(服务器)
ESTABLISHED:代表一个打开的连接
FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认
FIN-WAIT-2:从远程TCP等待连接中断请求
CLOSE-WAIT:等待从本地用户发来的连接中断请求
CLOSING:等待远程TCP对连接中断的确认
LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认
TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认
CLOSED:没有任何连接状态
主动端可能出现的状态:FIN_WAIT1、FIN_WAIT2、CLOSING、TIME_WAIT
# 网络层次划分
简书:https://www.jianshu.com/p/d3725391af59
tcp协议说明:https://blog.csdn.net/qq_25948717/article/details/80382766
tcp报文:https://blog.csdn.net/LL845876425/article/details/90143936