會員登陸
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
網站導航
最新下載
訪問統計 (自2012/5/3)


正在流覽:   1 名訪客





TCP Header Checksum
高級會員
註冊日期:
2013/02/27 11:13
所屬群組:
註冊會員
文章: 148
等級: 11; EXP: 22
HP : 0 / 255
MP : 49 / 5413
離線
這一個是我使用ModbusTcpClient跟enc28j60測試的圖
現在還沒通起來,先問個問題
請問為什麼這一個軟體,它的tcp的checksum怎麼算都不對

虛擬表頭:
c0a8+2887+c0a8+280a+0006+0020=1D207
TCP:
d7d8+01f6+1210+a18f+0000+0c01+5018+4200+CS跳過+0000+0001+0000+0006+0103+0000+0003=22C93
checksum:
1D207+22C93=3FE9A=3+FE9A=FE9D。反相=0162

但為什麼它的檢查碼是D208我算出來的是0162?

附加檔案:



jpg  2020-03-19_094414.jpg (70.08 KB)
13612_5e72d80ef38a2.jpg 849X228 px

3月19日 10:27:03

scott123 於 2020年03月19日 11:06:54
轉換PDF檔 列印


Re: TCP Header Checksum
高級會員
註冊日期:
2013/02/27 11:13
所屬群組:
註冊會員
文章: 148
等級: 11; EXP: 22
HP : 0 / 255
MP : 49 / 5413
離線
請問有人知道這個tcp的checksum的答案嗎
身邊沒有寫底層的人
都沒得問這麼detail的問題

3月24日 15:30:35
轉換PDF檔 列印


Re: TCP Header Checksum
資深會員
註冊日期:
2006/02/10 09:49
所屬群組:
註冊會員
文章: 315
等級: 16; EXP: 59
HP : 0 / 389
MP : 105 / 16285
離線
昨天有回復不確定是否正確,
但是我確定 MODBUS/TCP 應該不適用 CheckSUM , Modbus RTU 是 CRC-16

3月25日 09:38:46
轉換PDF檔 列印


Re: TCP Header Checksum
高級會員
註冊日期:
2013/02/27 11:13
所屬群組:
註冊會員
文章: 148
等級: 11; EXP: 22
HP : 0 / 255
MP : 49 / 5413
離線
引用:

dginlon 寫道:
但是我確定 MODBUS/TCP 應該不適用 CheckSUM , Modbus RTU 是 CRC-16

請問這句話什麼意思,不太懂

小弟我這兩個月才開始研究網路,接觸封包說,錯請指正
據我所知,MODBUS有兩種,RTU和ASCII
後來順應潮流,又發展出了MODBUS/TCP
前者怕資料傳送錯誤,所以在資料串後面加上檢查碼
後者因為TCP資料傳送嚴謹,較不會出錯,故沒有
所以我知道MODBUS沒有檢查碼這個東西

你可能誤會我的意思了
我現在的問題是L4 TCP傳輸層的CHECKSUM我這樣算對不對
如果我的算法正確
為什麼網路上的TCP測試軟體傳出了不對的CHECKSUM?

3月25日 10:35:59
轉換PDF檔 列印


Re: TCP Header Checksum
資深會員
註冊日期:
2007/06/05 21:45
所屬群組:
註冊會員
文章: 1051
等級: 28; EXP: 58
HP : 0 / 689
MP : 350 / 26158
離線
按照你給的資料...
我算出來也FE9D,反相=0162

也許你先抓一下"標準"的網路封包,
來看看,看看有沒有沒什麼不同或問題...

3月26日 21:57:16
轉換PDF檔 列印


Re: TCP Header Checksum
高級會員
註冊日期:
2013/02/27 11:13
所屬群組:
註冊會員
文章: 148
等級: 11; EXP: 22
HP : 0 / 255
MP : 49 / 5413
離線
我接上網路線,隨便抓了一個TCP封包來檢查,發現CHECKSUM好像兜的起來

我換了一個測TCP MODBUS的軟體,發現它傳出的資料CHECKSUM算出來也不符合

c0a8+2887+c0a8+280a+0006+0020=1D207
d6f7+01f6+2e0e+bc0e+0000+0a01+5018+4200+CS跳過+0000+0000+0000+0006+0103+0000+0001=2606C
檢查碼=1D207+2606C=43233=4+3233=3237,反相=CDC8
結果它的算出的是D208

問有沒有類似的經驗的高手,問題出在哪?

附加檔案:



jpg  2020-03-27_101647.jpg (90.85 KB)
13612_5e7d65197583d.jpg 1166X507 px

3月27日 10:39:02
轉換PDF檔 列印


Re: TCP Header Checksum
高級會員
註冊日期:
2013/02/27 11:13
所屬群組:
註冊會員
文章: 148
等級: 11; EXP: 22
HP : 0 / 255
MP : 49 / 5413
離線
各位,剛剛看到一個教學
在Wireshark封包,L4TCP層按右鍵/Protocol Preferences/Validate the TCP Checksum if possible打勾
它可以指出錯誤的CHECKSUM

試了一下,它真的指出錯誤的CHECKSUM
不過很奇怪的是,以前我也都拿這個軟體做測試都可用
如今看底層資料發現這錯誤,之前竟然可以用?
我再研究看看哪邊出問題

附加檔案:



jpg  2020-03-27_140215.jpg (30.66 KB)
13612_5e7d97cbe7470.jpg 735X141 px

3月27日 14:06:07
轉換PDF檔 列印






無法在此發表文章
可以在此觀看文章
無法回覆文章
無法編輯自己的文章
無法刪除自己的文章
無法發起投票調查
無法在此投票
無法上傳附加檔案
無法不經審核直接發表文章

[進階搜尋]


搜尋
Microchip連結
產品技術問題產品技術支援專線:0800-717718 台北02-25088600 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project