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

    模擬tcp發(fā)包工具

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

    大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于模擬tcp發(fā)包工具的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。

    開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等

    只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準,寫出的就越詳細,有微信小程序端、在線網(wǎng)頁版、PC客戶端

    官網(wǎng):https://ai.de1919.com

    本文目錄:

    模擬tcp發(fā)包工具

    一、tcp調(diào)試助手怎么用 linux

    TCP調(diào)試助手是一個輔助調(diào)試UDP/TCP的工具軟件,支持TCP Server、TCP Client、UDP等通信模式,為網(wǎng)絡(luò)調(diào)試提供極大的方便。

    如何建立一個UDP連接?

    用TCP調(diào)試助手,選擇UDP方式。打開兩個,填寫好端口號,然后互聯(lián)就可以了!

    二、TCP、UDP協(xié)議測試

    基于Nodejs、socket.io,開發(fā)了TCP和UDP服務(wù)平臺,幫助大家做TCP和UDP協(xié)議的測試

           在做硬件終端與服務(wù)器通信時,由于沒有服務(wù)器、沒有TCP或UDP服務(wù)后臺,非常不方便進行TCP、UDP協(xié)議的測試,我這里為大家分別提供TCP和UDP測試平臺。

          TCP測試服務(wù)平臺信息:

          TCP協(xié)議硬件地址(報文上報地址)IP:47.107.99.203 端口:8002

          客戶端TCP報文查看和報文下發(fā)地址:   http://47.107.99.203:8012/

         UDP測試服務(wù)平臺信息:

         UDP協(xié)議硬件地址(報文上報地址)IP:47.107.99.203 端口:5003

         客戶端UDP報文查看和報文下發(fā)地址: http://47.107.99.203:8013/

         如下進行簡單演示硬件終端與服務(wù)平臺的交互過程

        1、TCP協(xié)議終端與平臺交互過程演示

        1.1 打開瀏覽器輸入客戶端地址:  http://47.107.99.203:8012/ ,即可訪問到測試TCP協(xié)議的前端頁面,如下圖所示

    1.2 用TCP調(diào)試工具進行測試,輸入終端測試服務(wù)器地址IP:47.107.99.203 端口:8002,建立SOCKET連接,并向服務(wù)器發(fā)送報文,如下圖所示

    1.3 服務(wù)器接收到終端發(fā)送的報文,并實時的展示出來,如下圖所示

    1.4 在下發(fā)輸入框,輸入需要下發(fā)的報文,然后點擊”SEND”按鈕,服務(wù)平臺將向終端發(fā)送報文,如下圖所示,終端接收到服務(wù)平臺發(fā)送的報文

    2、UDP協(xié)議終端與平臺交互過程演示

        2.1 打開瀏覽器輸入客戶端地址: http://47.107.99.203:8013/ ,即可訪問到測試UDP協(xié)議的前端頁面,如下圖所示

       2.2 用UDP調(diào)試工具進行測試,輸入終端測試服務(wù)器地址IP:47.107.99.203   端口:5003,建立UDP連接,并向服務(wù)器發(fā)送報文,如下圖所示

      2.3   服務(wù)器接收到終端發(fā)送的報文,并實時的展示出來,如下圖所示

    2.4 在下發(fā)輸入框,輸入需要下發(fā)的報文,然后點擊”SEND”按鈕,服務(wù)平臺將向終端發(fā)送報文,如下圖所示,終端接收到服務(wù)平臺發(fā)送的報文

    三、如何使用 JMeter 對 TCP 協(xié)議的服務(wù)進行負載測試

    1.建立一種類型測試

    這里只描述簡單的tcp測試建立步驟,因為目前支持的測試類型很多,無法一一陳述,功能細節(jié)部分可以參考JMeter文檔

    1)創(chuàng)建測試線程組

    2)根據(jù)需要設(shè)定線程組參數(shù)

    3)建立TCP采樣

    3)配置TCP采樣參數(shù)

    基本上一個簡單的測試計劃就完成了,點擊運行采樣,就會將文本發(fā)送出去。

    2.高級功能配置

    1)配置結(jié)果查看監(jiān)聽器

    有時候需要查看線程組執(zhí)行結(jié)果情況,這個可以通過設(shè)定采樣結(jié)果查看

    針對上面配置的線程組應(yīng)該執(zhí)行6次,也就是發(fā)送6條消息,通過監(jiān)控器可以看到的確有6個采樣結(jié)果,說明執(zhí)行成功

    2)配置變量

    有時候需要在報文中加上一些變化的內(nèi)容,可以通過在文本中增加變量設(shè)定來實現(xiàn)

    如增加一個變量名 bank, 其值為 1111,在前面發(fā)送的報文中加上${bank}即可引用,如

    執(zhí)行之后就可以在監(jiān)控器中看到報文中有1111了

    3)配置TCP 二進制報文

    大多數(shù)情況下,報文可能非純文本形式,常常都是不可讀的二進制,所以這種情況下需要配置二進制報文。當前JMeter支持HEX形式,也就是16進制的報文輸入配置

    參考: https://wiki.apache.org/jmeter/UserManual/Reference/TcpSampler

    當前支持三種格式 1.TCPClientImpl(默認) 2.BinaryTCPClientImpl 3.LengthPrefixedBinaryTCPClientImpl

    使用二進制方式需要做如下幾件事:

    a.把普通文本報文翻譯成HEX格式,可以找文本編輯器做這件事。比如notepad++,打開文本文件

    Ctrl+A全選內(nèi)容,paste到一個新文件,替換掉所有空格

    3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e3c544c533e3c707273636f64653e6c6f67696e3c2f707273636f64653e3c69643e313233343536373c2f69643e3c746f6b656e3e75736a64666a6b736137356b733833326f6b7564736a643934383737616b6a6475613c2f746f6b656e3e3c2f544c533e

    如果報文還需要加上頭的話,需要額外計算一下。比如增加一個command id和報文長度。比如上文中文本長度在編輯器狀態(tài)欄上顯示155長,假定command id是1.

    System.out.println("155 hex " + Integer.toHexString(155)); --- 9b

    System.out.println("1 hex " + Integer.toHexString(1)); ---1

    如果command id是4個字節(jié)那么16進制字符串就是 00 00 00 01

    如果length也是4個字節(jié)那么16進制字符串就是 00 00 00 9b

    去掉空格加入到前面報文中就拼成如下新報文

    000000010000009b3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e3c544c533e3c707273636f64653e6c6f67696e3c2f707273636f64653e3c69643e313233343536373c2f69643e3c746f6b656e3e75736a64666a6b736137356b733833326f6b7564736a643934383737616b6a6475613c2f746f6b656e3e3c2f544c533e

    再把新報文放入發(fā)送字符串輸入框中。

    b.修改JMeter啟動配置,就是前文提到的指定BinaryTCPClientImpl適配

    在jmeter.properties文件中找到如下部分,修改一下

    #---------------------------------------------------------------------------

    # TCP Sampler configuration

    #---------------------------------------------------------------------------

    # The default handler class

    #tcp.handler=TCPClientImpl

    tcp.handler=BinaryTCPClientImpl

    重新執(zhí)行TCP測試,可以看到服務(wù)器端正常收到報文,如圖

    jmeter測試TCP服務(wù)器,使用TCP采樣器模擬發(fā)送TCP請求。

    TCP采樣器:打開一個到指定服務(wù)器的TCP / IP連接,然后發(fā)送指定文本并等待響應(yīng)。

    jmeter模擬發(fā)送TCP請求的方法:

    1.新建線程組,然后在線程組中新建TCP采樣器

    TCP采樣器中填寫服務(wù)器地址、端口和“要發(fā)送的文本”,其它選項根據(jù)需要選填:

    re_use connection表示重復(fù)發(fā)送連接請求

    close connection 關(guān)閉連接

    如果TCP請求需要用戶名/密碼,可以在登錄配置中填寫

    2.新建“察看結(jié)果樹”監(jiān)視器,查看發(fā)送的請求和響應(yīng)的結(jié)果。如果需要發(fā)送16進制報文這個地方會失敗。

    jmeter發(fā)送16進制TCP報文的方法:

    很多TCP服務(wù)器報文為16進制,并且多數(shù)不能轉(zhuǎn)換成文本發(fā)送,而jmeter默認發(fā)送文本。

    jmeter.properties中修改tcp.handler=BinaryTCPClientImpl ,啟動jmeter重新發(fā)送,抓包查看既是16進制的tcp報文。

    另一個方法:可以在工作臺新建–非測試元件–Property Display,Property Display中修改jmeter.properties只對當前進程有效。

    四、Tcpdump 用法詳解

    大部分 Linux 發(fā)行版都內(nèi)置了 Tcpdump 工具。如果沒有,也可以直接使用對應(yīng)的包管理器進行安裝(如: $ sudo apt-get install tcpdump 和 $ sudo yum install tcpdump )

    通過表達式可以對各種不同類型的網(wǎng)絡(luò)流量進行過濾,以獲取到需要的信息。這也是 tcpdump 強大功能的一個體現(xiàn)。

    主要有 3 種類型的表達式:

    指定網(wǎng)絡(luò)接口

    # tcpdump -i <dev>

    原始信息輸出模式

    # tcpdump -ttttnnvvS

    更詳細的輸出,不解析主機名和端口名,使用絕對序列號,方便閱讀的時間戳

    通過IP地址過濾

    # tcpdump host 10.2.64.1

    HEX 輸出

    # tcpdump -nnvXSs 0 -c1 icmp

    通過源地址和目標地址進行過濾

    # tcpdump src 10.2.67.203

    # tcpdump dst 10.2.67.203

    通過子網(wǎng)進行過濾

    # tcpdump net 10.2.64.0/24

    監(jiān)聽指定端口號

    # tcpdump port 515

    指定協(xié)議

    # tcpdmp icmp

    端口范圍

    # tcpdump portrange 21-23

    通過包大小過濾

    # tcpdump less 32

    # tcpdump greater 64

    # tcpdump <= 128

    寫入 PCAP 文件

    # tcpdump port 80 -w capture_file

    讀取 PCAP 文件

    # tcpdump -r capture_file

    可以通過命令選項的不同組合(使用 邏輯運算符 )完成更復(fù)雜的任務(wù)。運算符包括以下3種:

    # tcpdump src 10.2.64.29 and dst port 80

    即捕捉從指定主機(10.2.64.92)發(fā)出,且目標端口為 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ā)送到目標子網(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

    即捕捉從指定主機(192.168.56.1)發(fā)出,且目標端口不為 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 ) 包

    其他指定標志位的方式如:

    # tcpdump 'tcp[tcpflags] == tcp-syn'

    # tcpdump 'tcp[tcpflags] == tcp-fin'

    一些特殊的用法

    # tcpdump 'tcp[13] = 6' RST 和 SYN 同時啟用的數(shù)據(jù)包(不正常)

    # tcpdump 'tcp[32:4] = 0x47455420' 獲取 http GET 請求的文本

    # tcpdump 'tcp[(tcp[12]>>2):4] = 0x5353482D' 獲取任何端口的 ssh 連接(通過 banner 信息)

    # tcpdump 'ip[8] < 10' ttl 小于 10 的數(shù)據(jù)包(出現(xiàn)問題或 traceroute 命令)

    # tcpdump 'ip[6] & 128 != 0' 非常有可能是黑客入侵的情況

    A tcpdump Tutorial and Primer with Examples

    以上就是關(guān)于模擬tcp發(fā)包工具相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。


    推薦閱讀:

    模擬器ip地址修改器

    有沒有模擬裝修房子的軟件(手機上自己設(shè)計房子裝修軟件)

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

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

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