-
當(dāng)前位置:首頁(yè) > 創(chuàng)意學(xué)院 > 技術(shù) > 專題列表 > 正文
模擬tcp發(fā)包工具
大家好!今天讓創(chuàng)意嶺的小編來(lái)大家介紹下關(guān)于模擬tcp發(fā)包工具的問(wèn)題,以下是小編對(duì)此問(wèn)題的歸納整理,讓我們一起來(lái)看看吧。
開(kāi)始之前先推薦一個(gè)非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對(duì)話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫(xiě)出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁(yè)版、PC客戶端
官網(wǎng):https://ai.de1919.com
本文目錄:
一、tcp調(diào)試助手怎么用 linux
TCP調(diào)試助手是一個(gè)輔助調(diào)試UDP/TCP的工具軟件,支持TCP Server、TCP Client、UDP等通信模式,為網(wǎng)絡(luò)調(diào)試提供極大的方便。
如何建立一個(gè)UDP連接?
用TCP調(diào)試助手,選擇UDP方式。打開(kāi)兩個(gè),填寫(xiě)好端口號(hào),然后互聯(lián)就可以了!
二、TCP、UDP協(xié)議測(cè)試
基于Nodejs、socket.io,開(kāi)發(fā)了TCP和UDP服務(wù)平臺(tái),幫助大家做TCP和UDP協(xié)議的測(cè)試
在做硬件終端與服務(wù)器通信時(shí),由于沒(méi)有服務(wù)器、沒(méi)有TCP或UDP服務(wù)后臺(tái),非常不方便進(jìn)行TCP、UDP協(xié)議的測(cè)試,我這里為大家分別提供TCP和UDP測(cè)試平臺(tái)。
TCP測(cè)試服務(wù)平臺(tái)信息:
TCP協(xié)議硬件地址(報(bào)文上報(bào)地址)IP:47.107.99.203 端口:8002
客戶端TCP報(bào)文查看和報(bào)文下發(fā)地址: http://47.107.99.203:8012/
UDP測(cè)試服務(wù)平臺(tái)信息:
UDP協(xié)議硬件地址(報(bào)文上報(bào)地址)IP:47.107.99.203 端口:5003
客戶端UDP報(bào)文查看和報(bào)文下發(fā)地址: http://47.107.99.203:8013/
如下進(jìn)行簡(jiǎn)單演示硬件終端與服務(wù)平臺(tái)的交互過(guò)程
1、TCP協(xié)議終端與平臺(tái)交互過(guò)程演示
1.1 打開(kāi)瀏覽器輸入客戶端地址: http://47.107.99.203:8012/ ,即可訪問(wèn)到測(cè)試TCP協(xié)議的前端頁(yè)面,如下圖所示
1.2 用TCP調(diào)試工具進(jìn)行測(cè)試,輸入終端測(cè)試服務(wù)器地址IP:47.107.99.203 端口:8002,建立SOCKET連接,并向服務(wù)器發(fā)送報(bào)文,如下圖所示
1.3 服務(wù)器接收到終端發(fā)送的報(bào)文,并實(shí)時(shí)的展示出來(lái),如下圖所示
1.4 在下發(fā)輸入框,輸入需要下發(fā)的報(bào)文,然后點(diǎn)擊”SEND”按鈕,服務(wù)平臺(tái)將向終端發(fā)送報(bào)文,如下圖所示,終端接收到服務(wù)平臺(tái)發(fā)送的報(bào)文
2、UDP協(xié)議終端與平臺(tái)交互過(guò)程演示
2.1 打開(kāi)瀏覽器輸入客戶端地址: http://47.107.99.203:8013/ ,即可訪問(wèn)到測(cè)試UDP協(xié)議的前端頁(yè)面,如下圖所示
2.2 用UDP調(diào)試工具進(jìn)行測(cè)試,輸入終端測(cè)試服務(wù)器地址IP:47.107.99.203 端口:5003,建立UDP連接,并向服務(wù)器發(fā)送報(bào)文,如下圖所示
2.3 服務(wù)器接收到終端發(fā)送的報(bào)文,并實(shí)時(shí)的展示出來(lái),如下圖所示
2.4 在下發(fā)輸入框,輸入需要下發(fā)的報(bào)文,然后點(diǎn)擊”SEND”按鈕,服務(wù)平臺(tái)將向終端發(fā)送報(bào)文,如下圖所示,終端接收到服務(wù)平臺(tái)發(fā)送的報(bào)文
三、如何使用 JMeter 對(duì) TCP 協(xié)議的服務(wù)進(jìn)行負(fù)載測(cè)試
1.建立一種類型測(cè)試
這里只描述簡(jiǎn)單的tcp測(cè)試建立步驟,因?yàn)槟壳爸С值臏y(cè)試類型很多,無(wú)法一一陳述,功能細(xì)節(jié)部分可以參考JMeter文檔
1)創(chuàng)建測(cè)試線程組
2)根據(jù)需要設(shè)定線程組參數(shù)
3)建立TCP采樣
3)配置TCP采樣參數(shù)
基本上一個(gè)簡(jiǎn)單的測(cè)試計(jì)劃就完成了,點(diǎn)擊運(yùn)行采樣,就會(huì)將文本發(fā)送出去。
2.高級(jí)功能配置
1)配置結(jié)果查看監(jiān)聽(tīng)器
有時(shí)候需要查看線程組執(zhí)行結(jié)果情況,這個(gè)可以通過(guò)設(shè)定采樣結(jié)果查看
針對(duì)上面配置的線程組應(yīng)該執(zhí)行6次,也就是發(fā)送6條消息,通過(guò)監(jiān)控器可以看到的確有6個(gè)采樣結(jié)果,說(shuō)明執(zhí)行成功
2)配置變量
有時(shí)候需要在報(bào)文中加上一些變化的內(nèi)容,可以通過(guò)在文本中增加變量設(shè)定來(lái)實(shí)現(xiàn)
如增加一個(gè)變量名 bank, 其值為 1111,在前面發(fā)送的報(bào)文中加上${bank}即可引用,如
執(zhí)行之后就可以在監(jiān)控器中看到報(bào)文中有1111了
3)配置TCP 二進(jìn)制報(bào)文
大多數(shù)情況下,報(bào)文可能非純文本形式,常常都是不可讀的二進(jìn)制,所以這種情況下需要配置二進(jìn)制報(bào)文。當(dāng)前JMeter支持HEX形式,也就是16進(jìn)制的報(bào)文輸入配置
參考: https://wiki.apache.org/jmeter/UserManual/Reference/TcpSampler
當(dāng)前支持三種格式 1.TCPClientImpl(默認(rèn)) 2.BinaryTCPClientImpl 3.LengthPrefixedBinaryTCPClientImpl
使用二進(jìn)制方式需要做如下幾件事:
a.把普通文本報(bào)文翻譯成HEX格式,可以找文本編輯器做這件事。比如notepad++,打開(kāi)文本文件
Ctrl+A全選內(nèi)容,paste到一個(gè)新文件,替換掉所有空格
3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e3c544c533e3c707273636f64653e6c6f67696e3c2f707273636f64653e3c69643e313233343536373c2f69643e3c746f6b656e3e75736a64666a6b736137356b733833326f6b7564736a643934383737616b6a6475613c2f746f6b656e3e3c2f544c533e
如果報(bào)文還需要加上頭的話,需要額外計(jì)算一下。比如增加一個(gè)command id和報(bào)文長(zhǎng)度。比如上文中文本長(zhǎng)度在編輯器狀態(tài)欄上顯示155長(zhǎng),假定command id是1.
System.out.println("155 hex " + Integer.toHexString(155)); --- 9b
System.out.println("1 hex " + Integer.toHexString(1)); ---1
如果command id是4個(gè)字節(jié)那么16進(jìn)制字符串就是 00 00 00 01
如果length也是4個(gè)字節(jié)那么16進(jìn)制字符串就是 00 00 00 9b
去掉空格加入到前面報(bào)文中就拼成如下新報(bào)文
000000010000009b3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e3c544c533e3c707273636f64653e6c6f67696e3c2f707273636f64653e3c69643e313233343536373c2f69643e3c746f6b656e3e75736a64666a6b736137356b733833326f6b7564736a643934383737616b6a6475613c2f746f6b656e3e3c2f544c533e
再把新報(bào)文放入發(fā)送字符串輸入框中。
b.修改JMeter啟動(dòng)配置,就是前文提到的指定BinaryTCPClientImpl適配
在jmeter.properties文件中找到如下部分,修改一下
#---------------------------------------------------------------------------
# TCP Sampler configuration
#---------------------------------------------------------------------------
# The default handler class
#tcp.handler=TCPClientImpl
tcp.handler=BinaryTCPClientImpl
重新執(zhí)行TCP測(cè)試,可以看到服務(wù)器端正常收到報(bào)文,如圖
jmeter測(cè)試TCP服務(wù)器,使用TCP采樣器模擬發(fā)送TCP請(qǐng)求。
TCP采樣器:打開(kāi)一個(gè)到指定服務(wù)器的TCP / IP連接,然后發(fā)送指定文本并等待響應(yīng)。
jmeter模擬發(fā)送TCP請(qǐng)求的方法:
1.新建線程組,然后在線程組中新建TCP采樣器
TCP采樣器中填寫(xiě)服務(wù)器地址、端口和“要發(fā)送的文本”,其它選項(xiàng)根據(jù)需要選填:
re_use connection表示重復(fù)發(fā)送連接請(qǐng)求
close connection 關(guān)閉連接
如果TCP請(qǐng)求需要用戶名/密碼,可以在登錄配置中填寫(xiě)
2.新建“察看結(jié)果樹(shù)”監(jiān)視器,查看發(fā)送的請(qǐng)求和響應(yīng)的結(jié)果。如果需要發(fā)送16進(jìn)制報(bào)文這個(gè)地方會(huì)失敗。
jmeter發(fā)送16進(jìn)制TCP報(bào)文的方法:
很多TCP服務(wù)器報(bào)文為16進(jìn)制,并且多數(shù)不能轉(zhuǎn)換成文本發(fā)送,而jmeter默認(rèn)發(fā)送文本。
jmeter.properties中修改tcp.handler=BinaryTCPClientImpl ,啟動(dòng)jmeter重新發(fā)送,抓包查看既是16進(jìn)制的tcp報(bào)文。
另一個(gè)方法:可以在工作臺(tái)新建–非測(cè)試元件–Property Display,Property Display中修改jmeter.properties只對(duì)當(dāng)前進(jìn)程有效。
四、Tcpdump 用法詳解
大部分 Linux 發(fā)行版都內(nèi)置了 Tcpdump 工具。如果沒(méi)有,也可以直接使用對(duì)應(yīng)的包管理器進(jìn)行安裝(如: $ sudo apt-get install tcpdump 和 $ sudo yum install tcpdump )
通過(guò)表達(dá)式可以對(duì)各種不同類型的網(wǎng)絡(luò)流量進(jìn)行過(guò)濾,以獲取到需要的信息。這也是 tcpdump 強(qiáng)大功能的一個(gè)體現(xiàn)。
主要有 3 種類型的表達(dá)式:
指定網(wǎng)絡(luò)接口 :
# tcpdump -i <dev>
原始信息輸出模式 :
# tcpdump -ttttnnvvS
更詳細(xì)的輸出,不解析主機(jī)名和端口名,使用絕對(duì)序列號(hào),方便閱讀的時(shí)間戳
通過(guò)IP地址過(guò)濾 :
# tcpdump host 10.2.64.1
HEX 輸出
# tcpdump -nnvXSs 0 -c1 icmp
通過(guò)源地址和目標(biāo)地址進(jìn)行過(guò)濾
# tcpdump src 10.2.67.203
# tcpdump dst 10.2.67.203
通過(guò)子網(wǎng)進(jìn)行過(guò)濾
# tcpdump net 10.2.64.0/24
監(jiān)聽(tīng)指定端口號(hào)
# tcpdump port 515
指定協(xié)議
# tcpdmp icmp
端口范圍
# tcpdump portrange 21-23
通過(guò)包大小過(guò)濾
# tcpdump less 32
# tcpdump greater 64
# tcpdump <= 128
寫(xiě)入 PCAP 文件
# tcpdump port 80 -w capture_file
讀取 PCAP 文件
# tcpdump -r capture_file
可以通過(guò)命令選項(xiàng)的不同組合(使用 邏輯運(yùn)算符 )完成更復(fù)雜的任務(wù)。運(yùn)算符包括以下3種:
# tcpdump src 10.2.64.29 and dst port 80
即捕捉從指定主機(jī)(10.2.64.92)發(fā)出,且目標(biāo)端口為 80 的所有網(wǎng)絡(luò)數(shù)據(jù)
# tcpdump src net 192.168.0.0/16 and dst net 10.0.0.0/8 or 172.16.0.0/16
即捕捉從指定子網(wǎng)(192.168.0.0/16)發(fā)送到目標(biāo)子網(wǎng)(10.0.0.0/8 和 172.16.0.0/16)的所有網(wǎng)絡(luò)數(shù)據(jù)
# tcpdump src 192.168.56.1 and not dst port 22
即捕捉從指定主機(jī)(192.168.56.1)發(fā)出,且目標(biāo)端口不為 22 的所有網(wǎng)絡(luò)數(shù)據(jù)
# tcpdump 'tcp[13] & 32!=0' 所有 URGENT ( URG ) 包
# tcpdump 'tcp[13] & 16!=0' 所有 ACKNOWLEDGE ( ACK ) 包
# tcpdump 'tcp[13] & 8!=0' 所有 PUSH ( PSH ) 包
# tcpdump 'tcp[13] & 4!=0' 所有 RESET ( RST ) 包
# tcpdump 'tcp[13] & 2!=0' 所有 SYNCHRONIZE ( SYN ) 包
# tcpdump 'tcp[13] & 1!=0' 所有 FINISH ( FIN ) 包
# tcpdump 'tcp[13]=18' 所有 SYNCHRONIZE/ACKNOWLEDGE ( SYNACK ) 包
其他指定標(biāo)志位的方式如:
# tcpdump 'tcp[tcpflags] == tcp-syn'
# tcpdump 'tcp[tcpflags] == tcp-fin'
一些特殊的用法
# tcpdump 'tcp[13] = 6' RST 和 SYN 同時(shí)啟用的數(shù)據(jù)包(不正常)
# tcpdump 'tcp[32:4] = 0x47455420' 獲取 http GET 請(qǐng)求的文本
# tcpdump 'tcp[(tcp[12]>>2):4] = 0x5353482D' 獲取任何端口的 ssh 連接(通過(guò) banner 信息)
# tcpdump 'ip[8] < 10' ttl 小于 10 的數(shù)據(jù)包(出現(xiàn)問(wèn)題或 traceroute 命令)
# tcpdump 'ip[6] & 128 != 0' 非常有可能是黑客入侵的情況
A tcpdump Tutorial and Primer with Examples
以上就是關(guān)于模擬tcp發(fā)包工具相關(guān)問(wèn)題的回答。希望能幫到你,如有更多相關(guān)問(wèn)題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會(huì)為您講解更多精彩的知識(shí)和內(nèi)容。
推薦閱讀:
有沒(méi)有模擬裝修房子的軟件(手機(jī)上自己設(shè)計(jì)房子裝修軟件)
石頭城公園景觀設(shè)計(jì)(石頭城公園景觀設(shè)計(jì)理念)