当我运行命令时
tshark -i 3 -c 100 -V less 1514 src 192.168.10.57 and dst 192.168.10.60 and tcp
输出为:
Transmission Control Protocol, Src Port: commplex-link (5001), Dst Port: 63077 (63077), Seq: 1, Ack: 1, Len: 0
Source port: commplex-link (5001)
Destination port: 63077 (63077)
[Stream index: 0]
Sequence number: 1 (relative sequence number)
Acknowledgement number: 1 (relative ack number)
Header length: 20 bytes
Flags: 0x10 (ACK)
0... .... = Congestion Window Reduced (CWR): Not set
.0.. .... = ECN-Echo: Not set
..0. .... = Urgent: Not set
...1 .... = Acknowledgement: Set
.... 0... = Push: Not set
.... .0.. = Reset: Not set
.... ..0. = Syn: Not set
.... ...0 = Fin: Not set
Window size: 40960
**Checksum: 0x95e0 [validation disabled]**
[Good Checksum: False]
[Bad Checksum: False]
如何计算 TCP 校验和字段?我可以使用什么命令来实现这一点?
答案1
tshark -o tcp.check_checksum:TRUE ...
就可以了。
笔记:
tshark 使用当前配置文件中的当前首选项值,除非另有说明。如果首选项从未更改和保存(在 Wireshark 中),则使用默认值。
tshark -G currentprefs
列出当前的首选项(描述性文本、首选项名称和值)tshark -G defaultprefs
列出默认首选项(同上)。所以:
tshark -G currentprefs | egrep -B2 "^#?tcp\."
将列出所有 tcp 首选项名称及其当前值(以及一些描述性文本)。只有那些未以 # 开头的首选项才具有除默认值以外的值。
如果您想确保 tshark 仅使用您指定的首选项更改的默认首选项:
tshark -C Default -o tcp.check_checksum:TRUE ...
有关 tshark 选项的信息,请参阅tshark -h
tshark 手册页。