[轉]Tcpcopy簡介與實戰

來源:互聯網
上載者:User

標籤:

Tcpcopy簡介

TCPCopy是一種提取複寫(所有基於tcp的packets)工具 ,其功能是複製線上資料包,修改TCP/IP頭部資訊,發送給測試伺服器,達到欺騙測試伺服器的TCP 程式的目的,從而為欺騙上層應用打下堅實基礎。

TCPCopy七大功能
  • 1)分布式壓力測試工具,利用線上資料,可以測試系統能夠承受的壓力大小(遠比ab壓力測試工具真實地多),也可以提前發現一些bug
  • 2)普通上線測試,可以發現新系統是否穩定,提前發現上線過程中會出現的諸多問題,讓開發人員有信心上線
  • 3)對比實驗,同樣請求,針對不同或不同版本程式,可以做效能對比等實驗
  • 4)流量放大功能,可以利用多種手段構造無限線上壓力,滿足中小網站壓力測試要求
  • 5)利用TCPCopy轉寄傳統壓力測試工具發出的請求,可以增加網路延遲,使其壓力測試更加真實
  • 6)熱備份
  • 7)實戰演習(架構師必備)
TCPCopy分為TCPCopy client和TCPCopy server

其中TCPCopy client運行在線上服務器上面,用來捕獲線上請求資料包;TCPCopy server(監聽連接埠為36524)運行在測試機器上面,在測試伺服器的響應包丟棄之前截獲測試伺服器的響應包,並通過TCPCopy client和TCPCopy server之間的tcp串連傳遞響應包的tcp和ip
頭部資訊給TCPCopy client,以完成TCP互動。

啟動tcpcopy

TCPCopy server (root使用者執行)
1)啟動核心模組ip_queue

#modprobe ip_queue

2)設定要截獲的連接埠,並且設定對output截獲

#iptables -I OUTPUT -p tcp --sport <port> -j QUEUE 

3)啟動intercept

intercept

注意:
1.如果已經啟動ip_queue和已經設定iptables,只需要運行第3項;

iptables --list

2.測試完以後要記得刪除上面設定的iptables條目
清空iptables:

iptables -F

3.為了避免不必要的麻煩,關閉的時候先關閉tcpcopy,然後再關閉intercept
TCPCopy client (root使用者執行)
tcpcopy 0.6版本
./tcpcopy -x 伺服器應用連接埠號碼-測試伺服器ip地址:測試伺服器應用連接埠
-n 參數
進行多重複製,此參數的值就是代表複製過去的流量是線上的n 倍
其他參數請參看文檔

Tcpcopy實戰

我測試的項目是一個基於RFID的物聯網採集項目,採集的主要功能是接收基站發過來的TCP資料對其進行解析,分發。當時選工具的時候也考慮了好幾個,Jmeter好像沒有這方面功能,而LoadRunner的windows sockets又相對複雜,所以選擇了簡單易用的tcpcopy。

測試環境

2台ubuntu/linux機器,一台作為線上服務器,用來接收真實的基站資訊,一台用來做測試伺服器,用來承受線上服務器流量翻倍後的壓力。線上服務器使用4001連接埠,為了保持一致,測試伺服器也使用該連接埠。
tcpcopy 0.6
nethogs 用來監控流量

tcpcopy安裝:
tar -zxvf tcpcopy-0.6.0 .tar.gzcd tcpcopy-0.6.0./configuremakemake install
第一步:設定靜態IP

設定靜態IP是為了以後測試方便,可以略過
/etc/netword/interfaces中加入

auto eth0 #網卡iface eth0 inet staticaddress 192.168.0.94 #IP地址gateway 192.168.0.254 #網關netmask 255.255.255.0 #子網路遮罩

/etc/NetworkManager/NetworkManager.conf 中設定

[ifupdown]managed=true
第二步:啟動線上服務器和測試伺服器上的測試程式第三步:啟動測試伺服器上的intercept
#modprobe ip_queue#iptables -I OUTPUT -p tcp --sport <port> -j QUEUE #intercept
第四步:啟動線上服務器上的tcpcopy
#tcpcopy  -x <port>-192.168.0.96:<port> -n 100
第五步:通過nethogs查看壓力是否上來

nethogs安裝:

#apt-get install nethogs

nethogs使用:

#nethogs eth0

線上服務器上java程式流量:

測試服務區上java程式流量:

通過對比可以看出,tcpcopy產生的壓力上來了。
相關下載:

  • Tcpcopy 0.6 傳送門
  • Tcpcopy 文檔 傳送門

[轉]Tcpcopy簡介與實戰

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.