HOME 首頁(yè)
SERVICE 服務(wù)產(chǎn)品
XINMEITI 新媒體代運(yùn)營(yíng)
CASE 服務(wù)案例
NEWS 熱點(diǎn)資訊
ABOUT 關(guān)于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    模擬tcp發(fā)包工具

    發(fā)布時(shí)間:2023-03-19 11:07:28     稿源: 創(chuàng)意嶺    閱讀: 74        問(wèn)大家

    大家好!今天讓創(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發(fā)包工具

    一、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)容。


    推薦閱讀:

    模擬器ip地址修改器

    有沒(méi)有模擬裝修房子的軟件(手機(jī)上自己設(shè)計(jì)房子裝修軟件)

    安卓模擬器排行榜(安卓模擬器排行榜2020)

    文案狗ai文章生成(ai智能文章生成器)

    石頭城公園景觀設(shè)計(jì)(石頭城公園景觀設(shè)計(jì)理念)