終端登錄被互相踢掉,思路分析


背景:

       有兩台終端要接入通信程序(設備當作客戶端,通信程序作為服務端),當一台終端接入時是正常的,另一個終端接入時就會產生互相踢掉的現象,兩個終端單獨去連接通信程序也是正常的。

分析:

1.首先通過監聽服務端的監聽端口,查看是不是存在被踢掉的現象。

netstat -apn | grep 18003

 

 

如上圖,可以看到相同的IP,端口卻在變化,這就說明是有產生了“互相踢”(一個變化,從而導致另一個也變化)。

2.通過抓包工具分析,抓取當前主機與指定主機之間指定協議、指定端口的數據包

因為不知道是客戶端先斷開的連接,還是服務端先斷開的連接,所以要通過抓包分析,到底是從哪里斷開的連接。

在部署的通信程序的Linux服務器上,執行下面的命令,抓取IP為X.X.X.X(為其中一個終端),端口為 18003的網絡包,並以更詳細的方式輸出到184.cap

tcpdump -i ens224 host X.X.X.X and port 18003 -vvvv -w 184.cap

 命令參考博客:https://www.cnblogs.com/golinux/p/11012781.html

 

3.通過TCP模擬工具,模擬兩個終端發送報文,查看是否存在互相踢的現象。

 

總結:1.一般互相踢的現象,要么是IP端口沖突,或者唯一標識沖突。(我這個原因,主要是唯一標識的沖突,雖然12位數字,前10位相同,后2位不一樣,但是程序里只處理了8位數字是作為唯一標識的,我的程序把這兩個終端當作是一個終端了,從而造成了這個現象。)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM