%20%E4%B8%AD%E5%95%9F%E7%94%A8%20TCP%20%E6%A0%A1%E9%A9%97.png)
當我運行命令時
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 手冊頁。