用Tcpdump定位伺服器和客戶端通訊問題

2021-06-03 22:41:20 字數 2083 閱讀 3529

注意:tcpdump需要用root帳號登入

一、應用場景1

客戶端傳送過來的資料報,在伺服器解開之後發現資料報不對?

[root@ied_224_42_sles10_64]~>tcpdump -i eth1 port 8029 -x

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth1, link-type en10mb (ethernet), capture size 96 bytes

11:03:06.125337 ip 10.18.124.47.4217 > 10.6.224.42.8029: p 651073194:651073233(39) ack 1685844515 win 64472

0x0000:  4500 004f 056d 4000 3a06 caca 0a12 7c2f  e..o.m@.:.....|/

0x0010:  0a06 e02a 1079 1f5d 26ce 96aa 647b f223  ...*.y.]&...d{.#

0x0020:  5018 fbd8 51a5 0000 0027 0001 0000 0000  p...q....'......

0x0030:  0000 0000 0000 02bd 03ea 2540 0000 0000  ..........%@....

0x0040:  0000 0000 0a40 4553 355a 4961 5969 5a    .....@es5ziayiz

11:03:06.125869 ip 10.6.224.42.8029 > 10.18.124.47.4217: . ack 39 win 1460

0x0000:  4500 0028 b292 4000 4006 17cc 0a06 e02a  e..(..@.@......*

0x0010:  0a12 7c2f 1f5d 1079 647b f223 26ce 96d1  ..|/.].yd{.#&...

0x0020:  5010 05b4 f599 0000                      p.......

[msg version="1"]:

[m_stmsghead]

m_shmsgversion=1

m_uitimestamp_low=0

m_uitimestamp_high=0

m_uimsgid=account_createrole_request

m_uiuin=65676608

m_ifeedback=0

m_uibodylength=0

m_ucskeylength=0xa

m_szsessionkey[10]=0x40 0x45 0x53 0x35 0x5a 0x49 0x61 0x59 0x69 0x5a

[m_stmsgbody]

[m_staccountcreaterolerequest]

可以看出這一行以下為客戶端發給伺服器的資料報,再根據上面的協議比對,很明顯就可以看出客戶端傳送過來的包是有問題的,沒有msgbody部分內部。

11:03:06.125337 ip 10.18.124.47.4217 > 10.6.224.42.8029: p 651073194:651073233(39) ack 1685844515 win 64472

二、應用場景2

客戶端傳送登入請求,在伺服器端卻收到乙個沒有msgbody部分內容的包?

命令同場景1,從tcpdump列印看出伺服器確實收到了完整的資料報,但在伺服器邏輯層收到的是空的msgbody,很明顯問題就在伺服器接入層。

再到接入層定位,很快發現由於配置原因,接入層對客戶端資料報驗證不通過,問題就找到了。

三、應用場景3

在對時延非常高的場景中(ms級),伺服器發的包,客戶端未能及時收到?

或者客戶端傳送的包,伺服器未能及時收到?

命令同場景1,從日誌可以看出伺服器確實沒有按時傳送,在伺服器邏輯層列印時間,卻是按時傳送的,這就奇怪了?

進一步想想傳送層,就想到了tcp延遲傳送和延遲確認,nagel演算法,設定sock的no delay屬性,關閉nagel演算法就可以了。

牛客 華為雲伺服器

sudo chmod 600 只有所有者有讀和寫的許可權 sudo chmod 644 所有者有讀和寫的許可權,組使用者只有讀的許可權 sudo chmod 700 只有所有者有讀和寫以及執行的許可權 sudo chmod 666 每個人都有讀和寫的許可權 sudo chmod 666 每個人都有讀...

linux ftp伺服器和svn伺服器

問問題 使用vsftpd linux 架設的ftp伺服器,如何解決向其中拷貝多層資料夾的檔案時出現的550錯誤?然後寫部落格 只研究技術的就不要看了 因為要為我的本本重灌系統,並且要重新對整個硬碟進行分割槽,我開始往我的實驗室中的電腦上備份東西 因為我的實驗室的電腦上是linux系統,我於是選擇使用...

web伺服器和ftp伺服器

web伺服器又稱網路伺服器,http伺服器 伺服器的精髓就是你想在我這看到東西,裡面放一堆網頁,你向我傳送請求,我就找找找,把網頁給你。web伺服器使用的協議是http https 客戶機叫http客戶端 瀏覽器就叫http客戶端 8uftp就叫ftp客戶端 每天都獲取位址,電腦上有dhcp客戶端 ...