wireshark of tshark tools v3.4.0版本 支持json
tshark(1)
Install tshark (Wireshark) Ver.3.4.0 on CentOS7 --It must be "ps", "text", "pdml", "psml" or "fields".
TCP 协议中的三次握手和四次挥手是 TCP 连接建立和关闭的过程。
三次握手
-
客户端向服务器发送 SYN 报文(请求建立连接)
-
服务器收到 SYN 报文后,回复 SYN+ACK 报文(同意建立连接)
-
客户端收到 SYN+ACK 报文后,再回复 ACK 报文(确认连接建立)

四次挥手
-
客户端向服务器发送 FIN 报文(请求断开连接)
-
服务器收到 FIN 报文后,回复 ACK 报文(确认收到请求)
-
当服务器确认数据已经全部发送完毕后,它会向客户端发送 FIN 报文(关闭连接)
-
客户端收到 FIN 报文后,回复 ACK 报文(表示确认收到关闭请求),至此,整个 TCP 连接就被彻底关闭了

三次握手用于建立连接,是双方协商建立 TCP 连接的过程;四次挥手用于断开连接,是双方结束 TCP 连接的过程;不过,有时候四次挥手也会变成三次(如果没有数据发送,2 个包会合并传输)。

我们可以通过 tshark 抓包来观察 TCP 连接、断开的具体过程。
[root@k8s-worker27-65 work]# tshark -i ens192 -f 'tcp port 8082 and host 192.168.0.254'
Running as user "root" and group "root". This could be dangerous.
Capturing on 'ens192'1 0.000000000 192.168.0.254 → 192.168.1.65 HTTP 551 GET /jettopro-basic/basichello20101 HTTP/1.1 2 0.084347377 192.168.1.65 → 192.168.0.254 TCP 54 8082 → 2205 [ACK] Seq=1 Ack=498 Win=245 Len=03 0.595447306 192.168.1.65 → 192.168.0.254 HTTP 182 HTTP/1.1 200 (text/html)4 0.637529068 192.168.0.254 → 192.168.1.65 TCP 60 2205 → 8082 [ACK] Seq=498 Ack=129 Win=4124 Len=05 34.345636265 192.168.0.254 → 192.168.1.65 TCP 60 2206 → 8082 [ACK] Seq=1 Ack=1 Win=4125 Len=16 34.345692626 192.168.1.65 → 192.168.0.254 TCP 66 8082 → 2206 [ACK] Seq=1 Ack=2 Win=229 Len=0 SLE=1 SRE=27 45.641652303 192.168.0.254 → 192.168.1.65 TCP 60 [TCP Keep-Alive] 2205 → 8082 [ACK] Seq=497 Ack=129 Win=4124 Len=18 45.641713966 192.168.1.65 → 192.168.0.254 TCP 66 [TCP Keep-Alive ACK] 8082 → 2205 [ACK] Seq=129 Ack=498 Win=245 Len=0 SLE=497 SRE=4989 49.367150373 192.168.1.65 → 192.168.0.254 TCP 54 8082 → 2206 [FIN, ACK] Seq=1 Ack=2 Win=229 Len=010 49.367535440 192.168.0.254 → 192.168.1.65 TCP 60 2206 → 8082 [ACK] Seq=2 Ack=2 Win=4125 Len=011 52.723050733 192.168.0.254 → 192.168.1.65 TCP 60 2206 → 8082 [FIN, ACK] Seq=2 Ack=2 Win=4125 Len=012 52.723119403 192.168.1.65 → 192.168.0.254 TCP 54 8082 → 2206 [ACK] Seq=2 Ack=3 Win=229 Len=013 61.314198115 192.168.1.65 → 192.168.0.254 TCP 54 8082 → 2205 [FIN, ACK] Seq=129 Ack=498 Win=245 Len=014 61.328775769 192.168.0.254 → 192.168.1.65 TCP 60 2205 → 8082 [ACK] Seq=498 Ack=130 Win=4124 Len=0
-- 观察屏幕输出
1、三次握手
从左到右的字段依次代表序号、时间戳(纳秒)、源端 IP、目标端 IP、协议、包的长度(字节)、具体信息(包括源/目标端口号或设备名、标志位等内容)
# 序号 1-3 的包,即 TCP 三次握手的过程
[root@k8s-worker27-65 work]# tshark -i ens192 -f 'tcp port 8082 and host 192.168.0.254'
Running as user "root" and group "root". This could be dangerous.
Capturing on 'ens192'1 0.000000000 192.168.0.254 → 192.168.1.65 HTTP 551 GET /jettopro-basic/basichello20101 HTTP/1.1 2 0.084347377 192.168.1.65 → 192.168.0.254 TCP 54 8082 → 2205 [ACK] Seq=1 Ack=498 Win=245 Len=03 0.595447306 192.168.1.65 → 192.168.0.254 HTTP 182 HTTP/1.1 200 (text/html)
TCP 包标志位的说明
TCP (传输控制协议)包头部有 6 个标志位(Flag),分别为 URG、ACK、PSH、RST、SYN、FIN,它们的十六进制值分别为:0x20、0x10、0x08、0x04、0x02、0x01,其中每个标志位的意义如下:
URG 标志:紧急指针是否有效
ACK 标志:确认号是否有效
PSH 标志:Push操作,尽可能快地将数据交给应用层
RST 标志:重置连接
SYN 标志:发起一个新的连接
FIN 标志:释放连接
DBA抓包神器tshark测评|服务器|数据包|mysql|query|tcpdump_网易订阅
$ tshark -r testcap_2020-12-14_05-34-54.pcap -T json
tshark: Invalid -T parameter.
It must be "ps", "text", "pdml", "psml" or "fields".
$ tshark -v
TShark 1.10.14 (Git Rev Unknown from unknown)~~abridgement~~
安装高版本:
Install the required rpm packages
sudo yum install libgcrypt-devel glib2-devel qt-devel qt5-qtbase-devel \qt5-linguist qt5-qtmultimedia-devel qt5-qtsvg-devel \libcap-devel libcap-ng-devel gnutls-devel krb5-devel \libxml2-devel lua-devel lz4-devel snappy-devel spandsp-devel \libssh2-devel bcg729-devel libmaxminddb-devel sbc-devel \libsmi-devel libnl3-devel libnghttp2-devel libssh-devel \libpcap-devel c-ares-devel redhat-rpm-config rpm-build \gtk+-devel gtk3-devel desktop-file-utils portaudio-devel \rubygem-asciidoctor docbook5-style-xsl docbook-style-xsl \systemd-devel python3 cmake3 git gcc gcc-c++ flex bison \doxygen gettext-devel libxslt cmake wget -y
Build and install cmake3
wget https://github.com/Kitware/CMake/releases/download/v3.19.1/cmake-3.19.1.tar.gz
tar zxvf cmake-3.19.1.tar.gz
cd cmake-3.19.1
mkdir -p /opt/cmake3/3.19.1
sudo mkdir /opt/cmake3/3.19.1/
./configure --prefix=/opt/cmake3/3.19.1
sudo make install
/opt/cmake3/3.19.1/bin/cmake --version
sudo ln -s /opt/cmake3/3.19.1/bin/cmake /usr/bin/cmake3
ls -lasF /usr/bin/cmake3
$ cmake3 --version
cmake version 3.19.1CMake suite maintained and supported by Kitware (kitware.com/cmake).
Build and install tshark
sudo su -
cd /root
git clone https://github.com/wireshark/wireshark.git
cd wireshark
git checkout tags/wireshark-3.4.0mkdir -p ~/temp/wireshark-3.4.0
mkdir -p /opt/wireshark/3.4.0
cd ~/temp/wireshark-3.4.0
cmake3 -DCMAKE_INSTALL_PREFIX=/opt/wireshark/3.4.0 -LH /root/wireshark
make
make install
# ls -lasF /opt/wireshark/3.4.0/bin/
# /opt/wireshark/3.4.0/bin/tshark --version
Running as user "root" and group "root". This could be dangerous.
TShark (Wireshark) 3.4.0 (v3.4.0-0-g9733f173ea5e)~~abridgement~~
$ /opt/wireshark/3.4.0/bin/tshark -r testcap_2020-12-14_05-34-54.pcap -T ABC
tshark: Invalid -T parameter "ABC"; it must be one of:"fields" The values of fields specified with the -e option, in a formspecified by the -E option."pdml" Packet Details Markup Language, an XML-based format for thedetails of a decoded packet. This information is equivalent tothe packet details printed with the -V flag."ps" PostScript for a human-readable one-line summary of each ofthe packets, or a multi-line view of the details of each ofthe packets, depending on whether the -V flag was specified."psml" Packet Summary Markup Language, an XML-based format for thesummary information of a decoded packet. This information isequivalent to the information shown in the one-line summaryprinted by default."json" Packet Summary, an JSON-based format for the detailssummary information of a decoded packet. This information is equivalent to the packet details printed with the -V flag."jsonraw" Packet Details, a JSON-based format for machine parsingincluding only raw hex decoded fields (same as -T json -x butwithout text decoding, only raw fields included). "ek" Packet Details, an EK JSON-based format for the bulk insert into elastic search cluster. This information is equivalent to the packet details printed with the -V flag."text" Text of a human-readable one-line summary of each of thepackets, or a multi-line view of the details of each of thepackets, depending on whether the -V flag was specified.This is the default."tabs" Similar to the text report except that each column of thehuman-readable one-line summary is delimited with an ASCIIhorizontal tab character.
根据试验,参数的书写有讲究。模仿tcpdump,可以把抓包过滤表达式写在命令的最后,在试用的时候可以在图像化界面上将命令输出正确后在tshark下引用。。一般将抓包表达式用引号quote起来(在windows上是双引号"),一是为了视觉方便,一是为了逃避其中字符和shell语法的冲突(如“>”,“||”等)。抓包过滤表达式也可以写在-f参数的后面,注意,此时更应该使用引号或者将-f放在最后。否则,它们会认为-f(可省)后面的参数都是表达式的一部分,而导致命令格式混乱。
主要参数分类含义权作解说如下:
- 抓包接口类
• -i 设置抓包的网络接口,不设置则默认为第一个非自环接口。
• -D 列出当前存在的网络接口。在不了解OS所控制的网络设备时,一般先用“tshark -D”查看网络接口的编号以供-i参数使用。
• -f 设定抓包过滤表达式(capture filter expression)。抓包过滤表达式的写法类似于tcpdump,可参考tcpdump man page的有关部分。
• -s 设置每个抓包的大小,默认为65535,多于这个大小的数据将不会被程序记入内存、写入文件。(这个参数相当于tcpdump的-s,tcpdump默认抓包的大小仅为68)
• -p 设置网络接口以非混合模式工作,即只关心和本机有关的流量。
• -B 设置内核缓冲区大小,仅对windows有效。
• -y 设置抓包的数据链路层协议,不设置则默认为-L找到的第一个协议,局域网一般是EN10MB等。
• -L 列出本机支持的数据链路层协议,供-y参数使用。 - 抓包停止条件
• -c 抓取的packet数,在处理一定数量的packet后,停止抓取,程序退出。
• -a 设置tshark抓包停止向文件书写的条件,事实上是tshark在正常启动之后停止工作并返回的条件。条件写为test:value的形式,如“-a duration:5”表示tshark启动后在5秒内抓包然后停止;“-a filesize:10”表示tshark在输出文件达到10kB后停止;“-a files:n”表示tshark在写满n个文件后停止。(windows版的tshark0.99.3用参数“-a files:n”不起作用——会有无数多个文件生成。由于-b参数有自己的files参数,所谓“和-b的其它参数结合使用”无从说起。这也许是一个bug,或tshark的man page的书写有误。) - 文件输出控制
• -b 设置ring buffer文件参数。ring buffer的文件名由-w参数决定。-b参数采用test:value的形式书写。“-b duration:5”表示每5秒写下一个ring buffer文件;“-b filesize:5”表示每达到5kB写下一个ring buffer文件;“-b files:7”表示ring buffer文件最多7个,周而复始地使用,如果这个参数不设定,tshark会将磁盘写满为止。 - 文件输入
• -r 设置tshark分析的输入文件。tshark既可以抓取分析即时的网络流量,又可以分析dump在文件中的数据。-r不能是命名管道和标准输入。 - 处理类
• -2: 执行两次分析
• -R 设置读取(显示)过滤表达式(read filter expression)。不符合此表达式的流量同样不会被写入文件。注意,读取(显示)过滤表达式的语法和底层相关的抓包过滤表达式语法不相同,它的语法表达要丰富得多,类似于抓包过滤表达式,在命令行使用时最好将它们quote起来。
-Y: -Y <display filter>,使用读取过滤器的语法,在单次分析中可以代替-R选项;
• -n 禁止所有地址名字解析(默认为允许所有)。
• -N 启用某一层的地址名字解析。“m”代表MAC层,“n”代表网络层,“t”代表传输层,“C”代表当前异步DNS查找。如果-n和-N参数同时存在,-n将被忽略。如果-n和-N参数都不写,则默认打开所有地址名字解析。
• -d 将指定的数据按有关协议解包输出。如要将tcp 8888端口的流量按http解包,应该写为“-d tcp.port==8888,http”。注意选择子和解包协议之间不能留空格。 - 输出类
• -w 设置raw数据的输出文件。这个参数不设置,tshark将会把解码结果输出到stdout。“-w-”表示把raw输出到stdout。如果要把解码结果输出到文件,使用重定向“>”而不要-w参数。
• -F 设置输出raw数据的格式,默认为libpcap。“tshark -F”会列出所有支持的raw格式。
• -V 设置将解码结果的细节输出,否则解码结果仅显示一个packet一行的summary。
• -x 设置在解码输出结果中,每个packet后面以HEX dump的方式显示具体数据。
-O: -O <protocols>,只显示此选项指定的协议的详细信息。
-P: 即使将解码结果写入文件中,也打印包的概要信息;
-e: 如果-T fields选项指定,-e用来指定输出哪些字段;
-E: -E <fieldsoption>=<value>如果-T fields选项指定,使用-E来设置一些属性,比如
header=y|n
separator=/t|/s|<char>
occurrence=f|l|a
aggregator=,|/s|<char>
-S: -S <separator> 行分割符
• -T 设置解码结果输出的格式,包括text,ps,psml和pdml,默认为text。
-t: -t a|ad|d|dd|e|r|u|ud 设置解码结果的时间格式。“ad”表示带日期的绝对时间,“a”表示不带日期的绝对时间,“r”表示从第一个包到现在的相对时间,“d”表示两个相邻包之间的增量时间(delta)。
-u: s|hms 格式化输出秒;
-l: 在输出每个包之后flush标准输出
-q: 结合-z选项进行使用,来进行统计分析;
-X: <key>:<value> 扩展项,lua_script、read_format,具体参见 man pages;
-z:统计选项,具体的参考文档;tshark -z help,可以列出,-z选项支持的统计方式。
“r”表示从第一个包到现在的相对时间,“d”表示两个相邻包之间的增量时间(delta)。
• -S 在向raw文件输出的同时,将解码结果打印到控制台。
• -l 在处理每个包时即时刷新输出。
• -X 扩展项。
• -q 设置安静的stdout输出(例如做统计时)
• -z 设置统计参数。 - 其它
• -h 显示命令行帮助。
• -v 显示tshark的版本信息。
• -o 重载选项。
在即时抓包模式(-r未设定)时的各参数功能一览:

在文件读取分析模式时的各参数功能一览:

案列解析:
[root@k8s-worker27-65 work]# tshark -s 512 -i ens192 -n -f 'tcp dst port 8082' -Y 'http.host and http.request.uri' -T fields -e http.host -e http.request.uri -l | tr -d '\t'
Running as user "root" and group "root". This could be dangerous.
Capturing on 'ens192'
1 192.168.1.65:8082/jettopro-basic/basichello20101注释:-s: 只抓取前512字节;-i: 捕获ens192 网卡;-n: 禁止网络对象名称解析;-f: 只捕获协议为tcp,目的端口为80; 抓包前过滤;-R: 过滤出http.host和http.request.uri; #单次可以用-Y 代替 抓包后过滤;-T,-e: 指的是打印这两个字段;-I: 输出到命令行界面;
//实时打印当前mysql查询语句
tshark -s 512 -i ens192 -n -f 'tcp dst port 3306' -Y 'mysql.query' -T fields -e mysql.query
注释:-Y: 过滤出mysql的查询语句;
/导出smpp协议header和value的例子
tshark -r test.cap -R '(smpp.command_id==0x80000004) and (smpp.command_status==0x0)' -e smpp.message_id -e frame.time -T fields -E header=y >test.txt注释:-r: 读取本地文件,可以先抓包存下来之后再进行分析;-R: smpp...可以在wireshark的过滤表达式里面找到,后面会详细介绍;-E: 当-T字段指定时,设置输出选项,header=y意思是头部要打印;-e: 当-T字段指定时,设置输出哪些字段;>: 重定向;
//统计http状态
tshark -n -q -z http,stat, -z http,tree
注释:-q: 只在结束捕获时输出数据,针对于统计类的命令非常有用;-z: 各类统计选项,具体的参考文档,后面会介绍,可以使用tshark -z help命令来查看所有支持的字段;http,stat: 计算HTTP统计信息,显示的值是HTTP状态代码和HTTP请求方法。http,tree: 计算HTTP包分布。 显示的值是HTTP请求模式和HTTP状态代码。
//抓取500个包提取访问的网址打印出来
tshark -s 0 -i eth0 -n -f 'tcp dst port 80' -R 'http.host and http.request.uri' -T fields -e http.host -e http.request.uri -l -c 500注释: -f: 抓包前过滤;-R: 抓包后过滤;-l: 在打印结果之前清空缓存;-c: 在抓500个包之后结束;
//显示ssl data数据
tshark -n -t a -R ssl -T fields -e "ip.src" -e "ssl.app_data"//读取指定报文,按照ssl过滤显示内容
tshark -r temp.cap -R "ssl" -V -T text注释: -T text: 格式化输出,默认就是text;-V: 增加包的输出;//-q 过滤tcp流13,获取data内容
tshark -r temp.cap -z "follow,tcp,ascii,13"//按照指定格式显示-e
tshark -r temp.cap -R ssl -Tfields -e "ip.src" -e tcp.srcport -e ip.dst -e tcp.dstport//输出数据
tshark -r vmx.cap -q -n -t ad -z follow,tcp,ascii,10.1.8.130:56087,10.195.4.41:446 | more注释:-t ad: 输出格式化时间戳;
//过滤包的时间和rtp.seq
tshark -i eth0 -f "udp port 5004" -T fields -e frame.time_epoch -e rtp.seq -o rtp.heuristic_rtp:true 1>test.txt注释:-o: 覆盖属性文件设置的一些值;//提取各协议数据部分
tshark -r H:/httpsession.pcap -q -n -t ad -z follow,tcp,ascii,71.6.167.142:27017,101.201.42.120:59381 | more
捕获接口:
-i: -i <interface> 指定捕获接口,默认是第一个非本地循环接口;
-f: -f <capture filter> 设置抓包过滤表达式,遵循libpcap过滤语法,这个实在抓包的过程中过滤,如果是分析本地文件则用不到。
-s: -s <snaplen> 设置快照长度,用来读取完整的数据包,因为网络中传输有65535的限制,值0代表快照长度65535,默认也是这个值;
-p: 以非混合模式工作,即只关心和本机有关的流量。
-B: -B <buffer size> 设置缓冲区的大小,只对windows生效,默认是2M;
-y: -y<link type> 设置抓包的数据链路层协议,不设置则默认为-L找到的第一个协议,局域网一般是EN10MB等;
-D: 打印接口的列表并退出;
-L 列出本机支持的数据链路层协议,供-y参数使用。
捕获停止选项:
-c: -c <packet count> 捕获n个包之后结束,默认捕获无限个;
-a: -a <autostop cond.> ... duration:NUM,在num秒之后停止捕获;
filesize:NUM,在numKB之后停止捕获;
files:NUM,在捕获num个文件之后停止捕获;
捕获输出选项:
-b <ringbuffer opt.> ... ring buffer的文件名由-w参数决定,-b参数采用test:value的形式书写;
duration:NUM - 在NUM秒之后切换到下一个文件;
filesize:NUM - 在NUM KB之后切换到下一个文件;
files:NUM - 形成环形缓冲,在NUM文件达到之后;
RPCAP选项:
remote packet capture protocol,远程抓包协议进行抓包;
-A: -A <user>:<password>,使用RPCAP密码进行认证;
输入文件:
-r: -r <infile> 设置读取本地文件
处理选项:
-2: 执行两次分析
-R: -R <read filter>,包的读取过滤器,可以在wireshark的filter语法上查看;在wireshark的视图->过滤器视图,在这一栏点击表达式,就会列出来对所有协议的支持。
-Y: -Y <display filter>,使用读取过滤器的语法,在单次分析中可以代替-R选项;
-n: 禁止所有地址名字解析(默认为允许所有)
-N: 启用某一层的地址名字解析。“m”代表MAC层,“n”代表网络层,“t”代表传输层,“C”代表当前异步DNS查找。如果-n和-N参数同时存在,-n将被忽略。如果-n和-N参数都不写,则默认打开所有地址名字解析。
-d: 将指定的数据按有关协议解包输出,如要将tcp 8888端口的流量按http解包,应该写为“-d tcp.port==8888,http”;tshark -d. 可以列出所有支持的有效选择器。
输出选项:
-w: -w <outfile|-> 设置raw数据的输出文件。这个参数不设置,tshark将会把解码结果输出到stdout,“-w -”表示把raw输出到stdout。如果要把解码结果输出到文件,使用重定向“>”而不要-w参数。
-F: -F <output file type>,设置输出的文件格式,默认是.pcapng,使用tshark -F可列出所有支持的输出文件类型。
-V: 增加细节输出;
-O: -O <protocols>,只显示此选项指定的协议的详细信息。
-P: 即使将解码结果写入文件中,也打印包的概要信息;
-S: -S <separator> 行分割符
-x: 设置在解码输出结果中,每个packet后面以HEX dump的方式显示具体数据。
-T: -T pdml|ps|text|fields|psml,设置解码结果输出的格式,包括text,ps,psml和pdml,默认为text
-e: 如果-T fields选项指定,-e用来指定输出哪些字段;
-E: -E <fieldsoption>=<value>如果-T fields选项指定,使用-E来设置一些属性,比如
header=y|n
separator=/t|/s|<char>
occurrence=f|l|a
aggregator=,|/s|<char>
-t: -t a|ad|d|dd|e|r|u|ud 设置解码结果的时间格式。“ad”表示带日期的绝对时间,“a”表示不带日期的绝对时间,“r”表示从第一个包到现在的相对时间,“d”表示两个相邻包之间的增量时间(delta)。
-u: s|hms 格式化输出秒;
-l: 在输出每个包之后flush标准输出
-q: 结合-z选项进行使用,来进行统计分析;
-X: <key>:<value> 扩展项,lua_script、read_format,具体参见 man pages;
-z:统计选项,具体的参考文档;tshark -z help,可以列出,-z选项支持的统计方式。
其他选项:
-h: 显示命令行帮助;
-v: 显示tshark 的版本信息;
//1. 示例1,分析报文封装的协议C:\Users\sdut>tshark -r H:\httpsession.pcap -T fields -e frame.number -e frame.protocols -E header=y--输出 frame.number frame.protocols1 eth:ethertype:ip:tcp2 eth:ethertype:ip:tcp3 eth:ethertype:ip:tcp4 eth:ethertype:ip:tcp:http5 eth:ethertype:ip:tcp6 eth:ethertype:ip:tcp:http:data-text-lines7 eth:ethertype:ip:tcp8 eth:ethertype:ip:tcp9 eth:ethertype:ip:tcp-e frame.number:显示帧序号-e frame.time: 显示时间,时间格式为 Sep 21, 2016 17:20:02.233249000 中国标准时间 -e frame.protocols: 显示此数据包使用的协议-e ip.src: 显示源ip,但是不能跟frame一起用-e ip.dst: 显示目的ip地址;-e tcp.port: 显示端口号。......还有很多,针对需求,一方面可以自己通过wireshark软件显示的头部字段来猜测,另一方面可以查阅文档,https://www.wireshark.org/docs/dfref/,这里面列出了所有支持的-e字段写法,可以在里面搜索ip、frame上面我们使用的这几个就会搜到。//2.示例2C:\Users\sdut>tshark -2 -r H:\httpsession.pcap -R "http.request.line || http.file_data || http.response.line" -T fields -e http.request.line -e http.file_data -e http.response.line -E header=y输出:该例子输出http协议的请求头,响应头,和响应数据;http.request.line http.file_data http.response.line...... ...... ......具体的这个-R过滤写法,可以查看文档,根据自己的需求来。https://wiki.wireshark.org/DisplayFilters//3.示例3使用windows版本的tshark,抓包存储到本地。每个包只读取1024字节。tshark -w E:/1015.pcap -s 1024 -i 本地连接 -q -F pcap
.....
tshark官方文档:tshark(1)
wireshark wiki:Home
捕获过滤器 CaptureFilters
显示过滤器,用于display过滤的字段可以通过https://wiki.wireshark.org/DisplayFilters 查询。如果不过滤-e指定的字段数据都会输出,通过-R过滤之后,只有满足规则的才会输出,会因此-R和-T、-e通常会一起使用。
统计:Statistics
相关文章:
wireshark of tshark tools v3.4.0版本 支持json
tshark(1) Install tshark (Wireshark) Ver.3.4.0 on CentOS7 --It must be "ps", "text", "pdml", "psml" or "fields". TCP 协议中的三次握手和四次挥手是 TCP 连接建立和关闭的过程。 三次握手 客户端向服务器发送 SYN…...
Python开源项目月排行 2023年9月
#2023年9月2023年9月9日1fishdraw这个项目是用来随机生成一条鱼的,这条鱼特别的稀奇古怪,这个项目不依赖任何库,支持 svg, json, csv 等格式。2vizro一个用于创建模块化数据可视化应用程序的工具包。在几分钟内快速自助组装定制仪表板 - 无需…...
uniapp项目实践总结(二十五)苹果 ios 平台 APP 打包教程
导语:当你的应用程序开发完成后,在上架 ios 应用商店之前,需要进行打包操作,下面就简单介绍一下打包方法。 目录 准备工作注册账号生成证书打包配置准备工作 在打包之前,请保证你的 uniapp 应用程序编译到 ios 模拟器或者是真机调试基座环境下是可以正常运行的,苹果打包…...
MySQL查询(基础到高级)
一、单表查询: 1.基本查询: 1.1 查询多个字段: 1.查询所有字段: select * from 表名;2.查询指定字段: select 字段1,字段2 from 表名; 1.2 去除重复记录 select distinct "字段" FROM "表名"; …...
电脑通过串口助手和51单片机串口通讯
今天有时间把电脑和51单片机之间的串口通讯搞定了,电脑发送的串口数据,单片机能够正常接收并显示到oled屏幕上,特此记录一下,防止后面自己忘记了怎么搞得了。 先来两个图片看看结果吧! 下面是串口3.c的文件全部内容&a…...
【Linux】线程详解完结篇——信号量 + 线程池 + 单例模式 + 读写锁
线程详解第四篇 前言正式开始信号量引例信号量的本质信号量相关的四个核心接口生产消费者模型用环形队列实现生产者消费者模型基于环形队列的生产消费模型的原理代码演示单生产者单消费者多生产者多消费者 计数器的意义 线程池基本概念代码 单例模式STL,智能指针和线程安全STL中…...
弧度、圆弧上的点、圆的半径(r)、弧长(s)之间的关系
要计算弧度和圆弧上的点,需要知道以下几个要素: 圆的半径(r):即圆的中心到圆周上任意一点的距离。 弧长(s):从圆周上的一个点到另一个点所经过的弧长。 弧度(θ&#x…...
[AOSP] [JNI] [Android] AOSP中使用JNI
一. 简要 🍎 JNI是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是C&C)。从Java1.1开始,JNI标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。J…...
GEE案例——如何使用长时序影像实现多波段图像加载(不同层土壤湿度)
简介: 在GEE中实现时序图像的加载主要的目的是查看影像波段或者指数的变化,这里我们使用的主要是加载常规的4个波段,然后添加一个复合波段,复合波段主要的是求4个波段的平均值,然后再次加入到原有的4个波段的时序图中。这里面主要的技术难点一个是图表的设定,另外一个就…...
Cloudflare进阶技巧:缓存利用最大化
1. 引言 cloudflare我想你应该知道是什么,一家真正意义上免费无限量的CDN,至今未曾有哥们喷它的。当然,在国内的速度确实比较一般,不过这也不能怪它。 CDN最大的特色,我想就是它的缓存功能,达到防攻击&am…...
想要精通算法和SQL的成长之路 - 二叉树的判断问题(子树判断 | 对称性 | 一致性判断)
想要精通算法和SQL的成长之路 - 二叉树的判断问题 前言一. 相同的树二. 对称二叉树三. 判断子树 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 相同的树 原题链接 这题目典型的递归题: 如果两个节点都是null,我们返回true。如果两个节点一个nul…...
(零)如何做机器视觉项目
文章目录 1 项目的前期准备1.1 从5个方面初步分析客户需求1.2 方案评估与验证1.3 签订合同 2 项目规划2.1 定义客户端的详细需求2.2 制定项目管理计划2.3 方案评审 3 详细设计3.1 硬件设备的选择与环境搭建3.2 软件开发平台与开发工具的选择3.3 机器视觉系统的整体框架与开发流…...
【Leetcode】滑动窗口合集
这里写目录标题 209.长度最小的子数组题目思路代码 3. 无重复字符的最长子串(medium)题目思路 11. 最大连续 1 的个数 III题目思路 1658. 将 x 减到 0 的最⼩操作数题目思路代码 904. 水果成篮题目思路代码 438.找到字符串中所有字母的异位词题目思路代码…...
【C++】STL详解(九)—— set、map、multiset、multimap的介绍及使用
📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:C学习 🎯长路漫漫浩浩,万事皆有期待 上一篇博客:【C】STL…...
计组—— I/O系统
📕:参考王道课件 目录 一、I/O系统的基本概念 1.什么是“I/O”? 编辑2.主机如何和I/O设备进行交互? 3.I/O控制方式 (1)程序查询方式 (2)程序中断方式 (3&#x…...
基于vc6+sdk51开发简易文字识别转语音的程序
系统:window7 软件:vc6.0 目的:简易文字转语音真人发声 利用2023国庆小长假,研究如何将文言转语音,之前在网上查询相关知识,大致了解微信语音转换,翻译官之类软件的原理,但要加入神…...
DevOps:自动化部署和持续集成/持续交付(CI/CD)
DevOps:自动化部署和持续集成/持续交付(CI/CD) 在现代软件开发领域,DevOps(Development和Operations的组合)已经成为一个不可或缺的概念。它代表了一种将软件开发和运维(Operations)…...
专业图标制作软件 Image2icon 最新中文 for mac
Image2Icon是一款用于Mac操作系统的图标转换工具。它允许用户将常见的图像文件(如PNG、JPEG、GIF等)转换为图标文件(.ico格式),以便在Mac上用作应用程序、文件夹或驱动器的自定义图标。 以下是Image2Icon的一些主要功…...
数据结构:顺序表
SeqList.h #pragma once #include<stdio.h> #include<assert.h> #include<stdlib.h>typedef int SLDataType; //#define NULL 0typedef struct SeqList {SLDataType* a;int size;//顺序表中存储的有效元素的个数int capacity;//空间的大小 }SL;void SLInit(…...
僵尸进程的产生与处理
僵尸进程(Zombie Process)是指在操作系统中已经完成了执行,但其父进程尚未调用wait()或waitpid()来获取其终止状态的子进程。当一个进程结束时,操作系统会保留该进程的一些基本信息,包括进程ID(PID…...
突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...
Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
ffmpeg(四):滤镜命令
FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...
相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...
