国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
TCPCopy 線上流量復(fù)制工具

TCPCopy是一種重放TCP流的工具,使用真實環(huán)境來測試互聯(lián)網(wǎng)服務(wù)器上的應(yīng)用程序。

一、描述:

雖然真實的實時流量對于Internet服務(wù)器應(yīng)用程序的測試很重要,但是由于生產(chǎn)環(huán)境中的情況很負(fù)責(zé),測試環(huán)境很難完全模擬線上環(huán)境。為了能夠更真實的測試,我們開發(fā)了一款線上流量復(fù)制工具-TCPCopy,它可以使用線上真實的流量來對測試環(huán)境中的服務(wù)器進(jìn)行測試。目前,TcpCopy技術(shù)已經(jīng)在中國很多公司大量使用。

二、使用場景:

1)分布式壓力測試

使用tcpcopy復(fù)制真實的數(shù)據(jù)來進(jìn)行服務(wù)器的壓力測試。有些bug只有在高并發(fā)的情況下才能夠被發(fā)現(xiàn)。

2)仿真實驗:

被證明是穩(wěn)定的新系統(tǒng),其bug只能在真正使用的時候才能被發(fā)現(xiàn)

3)回歸測試

4)性能對比

三、框架:


        如Figure1中所示,tcpcopy包括兩部分:tcpcopy(client)和intercept(server)(后文中統(tǒng)一將tcpcopy-client稱為tcpcopy,將tcpcopy-server稱為intercept),當(dāng)tcpcopy運行在生產(chǎn)服務(wù)器并從生產(chǎn)服務(wù)器抓取請求時,inteceptor運行在輔助服務(wù)器上進(jìn)行一些輔助工作,例如,響應(yīng)tcpcopy。切記,測試應(yīng)用程序應(yīng)該運行在測試服務(wù)器上。

tcpcopy默認(rèn)情況下使用socket輸入技術(shù)在網(wǎng)絡(luò)層抓取線上的數(shù)據(jù)包,做一些基本處理(包括:模擬TCP交互,網(wǎng)絡(luò)控制,以及模擬傳輸層和應(yīng)用層),使用socket輸出技術(shù)發(fā)送數(shù)據(jù)包到測試服務(wù)器(如粉色箭頭所示)

tcpcopy的測試服務(wù)器需要做的唯一操作是:設(shè)置適當(dāng)?shù)膮?shù)使響應(yīng)信息發(fā)送到輔助服務(wù)器中(裝intercept的服務(wù)器)(如綠色箭頭所示)

intercept(默認(rèn))將響應(yīng)信息傳送給tcpcopy。通過抓取響應(yīng)包,intercept提取響應(yīng)頭信息,并使用一個特殊的通道將響應(yīng)頭信息發(fā)送給tcpcopy(如紫色箭頭所示)。當(dāng)tcpcopy接受到響應(yīng)頭信息,它利用頭信息修改在線打包器的屬性并繼續(xù)發(fā)送另一個包。應(yīng)當(dāng)注意,來自測試服務(wù)器的響應(yīng)被路由到應(yīng)該充當(dāng)黑洞的輔助服務(wù)器。

四、快速開始

1、獲取intercept的兩種方式:

    1)Download the latest intercept release.

    2)clone git://github.com/session-replay-tools/intercept.git

    2、獲取tcpcopy的兩種方式

    1)Download the latest tcpcopy release.

    2)clone git://github.com/session-replay-tools/tcpcopy.git

五、獲取安裝在輔助服務(wù)器上的intercept

    1)cd intercept
    2)./configure
    3)選擇適當(dāng)?shù)呐渲脜?shù)
    4)make
    5)make install

六、intercept的配置參數(shù)

    --single            intercept運行在單機情況下
    --with-pfring=PATH  將路徑設(shè)置為PF_RING庫源
    --with-debug        以debug模式編譯intercept(保存在日志文件中)

七、獲取安裝在生產(chǎn)服務(wù)器上的tcpcopy

    1)cd tcpcopy
    2)./configure
    3)選擇適當(dāng)?shù)呐渲脜?shù)
    4)make
    5)make install

八、tcpcopy的配置參數(shù)

    --offline 從pcap文件重放TCP流
    --pcap-capture 在數(shù)據(jù)鏈路層抓包(默認(rèn)在網(wǎng)絡(luò)層)
    --pcap-send 在數(shù)據(jù)鏈路層發(fā)包(默認(rèn)在網(wǎng)絡(luò)層)
    --with-pfring=PATH 將路徑設(shè)置為PF_RING庫源
    --set-protocol-module=PATH 設(shè)置tcpcopy為外部協(xié)議模塊工作
    --single 如果intercept和tcpcopy都設(shè)置為單機模式,只有一個tcpcopy和一個intercept一起工作,將會獲得更好的性能
    --with-debug 以debug模式編譯tcpcopy(保存在日志文件中)

九、運行tcpcopy

    確保tcpcopy和intercept都配置為“./configure”

    1)在運行應(yīng)用程序的測試服務(wù)器上,正確設(shè)置路由命令以將響應(yīng)數(shù)據(jù)包發(fā)送到輔助服務(wù)器上

    例如:

    假設(shè)61.135.233.161是輔助服務(wù)器的IP地址。 我們設(shè)置以下route命令將所有對62.135.200.x的的響應(yīng)路由到輔助服務(wù)器。

    route add -net 62.135.200.0 netmask 255.255.255.0 gw 61.135.233.161

    2)在運行intercept的輔助服務(wù)器上(需要root權(quán)限或者能使用socket通信的權(quán)限)

    ./intercept -F <filter> -i <device,>

    請注意,過濾器格式與pcap過濾器相同。
    例如:./intercept -i eth0 -F 'tcp and src port 8080' -d

    intercept將捕獲基于TCP應(yīng)用的響應(yīng),該應(yīng)用監(jiān)聽在設(shè)備的8080端口上

    3)生產(chǎn)服務(wù)器中(需要root權(quán)限或者能使用socket通信的權(quán)限

    ./tcpcopy -x localServerPort-targetServerIP:targetServerPort -s <intercept server,> 

    [-c <ip range,>]

    例如(假設(shè)61.135.233.160是目標(biāo)服務(wù)器的IP地址):

    ./tcpcopy -x 80-61.135.233.160:8080 -s 61.135.233.161 -c 62.135.200.x

    tcpcopy將抓取當(dāng)前服務(wù)器上80端口的數(shù)據(jù)包,修改客戶端IP地址為62.135.200.x,將這些數(shù)據(jù)包發(fā)送到ip地址為61.135.233.160,端口為8080的測試服務(wù)器,并且連接61.135.233.161,告訴intercept將響應(yīng)數(shù)據(jù)包發(fā)送給它(tcpcopy)
    雖然“-c”參數(shù)是可選的,但在此設(shè)置以便簡化路由命令。

十、注意

    1)只能在linux上測試(kernal 2.6 or above)
    2)tcpcopy可能丟包,因此丟失請求
    3)root權(quán)限或socket權(quán)限是必須的(例如 setcap CAP_NET_RAW = ep tcpcopy)
    4)TCPCopy現(xiàn)在只支持客戶端啟動的連接
    5)TCPCopy不支持使用SSL / TLS的服務(wù)器應(yīng)用程序的重放
    6)對于MySQL會話重放,請參考 https://github.com/session-replay-tools
    7)不應(yīng)該在輔助服務(wù)器上設(shè)置ip轉(zhuǎn)發(fā)
    8)請執(zhí)行“./tcpcopy -h”或“./intercept -h”以獲取更多詳細(xì)信息

十一、影響因素

    有幾個因素可能影響TCPCopy,將在以下部分中詳細(xì)介紹:

    1)抓包接口

    tcpcopy默認(rèn)使用套接字輸入接口在網(wǎng)絡(luò)層抓取生產(chǎn)服務(wù)器的數(shù)據(jù)包。在系統(tǒng)忙時,系統(tǒng)內(nèi)核可能會丟包。

    如果你配置tcpcopy的參數(shù)“--pcap-capture”,tcpcopy將在數(shù)據(jù)鏈路層抓包,也可以過濾內(nèi)核中的數(shù)據(jù)包。在PF_RING資源中,當(dāng)使用pcap捕獲時,tcpcopy將丟失更少的數(shù)據(jù)包。

    或許抓請求包的最好方式是通過交換機鏡像入口的數(shù)據(jù)包,然后通過負(fù)載均衡器將巨大的流量劃分到幾臺機器

    2)發(fā)送接口

    tcpcopy默認(rèn)使用套接字輸出接口在網(wǎng)絡(luò)層發(fā)送數(shù)據(jù)包到測試服務(wù)器。如果你想避免IP連接跟蹤問題或者獲得更好的性能表現(xiàn),配置tcpcopy的參數(shù)“--pcap-send”,設(shè)置適當(dāng)?shù)膮?shù),tcpcopy可以在數(shù)據(jù)鏈路層發(fā)送數(shù)據(jù)包到測試服務(wù)器。

    3)數(shù)據(jù)包在通往測試服務(wù)器的路上

    當(dāng)一個數(shù)據(jù)包被tcpcopy發(fā)送時,它可能在到達(dá)測試服務(wù)器前遭到很多挑戰(zhàn)。由于數(shù)據(jù)包中的源IP地址依然是終端用戶的IP地址(默認(rèn)情況下)而不是生產(chǎn)服務(wù)器的IP地址,一些安全設(shè)備可能將該包削弱或當(dāng)做偽造的包丟棄它。這種情況下,你在測試服務(wù)器使用tcp抓包工具,可能抓取不到期望的終端用戶的數(shù)據(jù)包。要確定你是否正處于這種情況下,你可以使用同一網(wǎng)段下的測試服務(wù)器做個小測試。如果數(shù)據(jù)包能被成功的發(fā)送到同一網(wǎng)段的測試服務(wù)器,而不能發(fā)送到不同網(wǎng)段的測試服務(wù)器,那么證明你的數(shù)據(jù)包在半路被丟棄了。

    為了解決這個問題,我們建議將tcpcopy、測試服務(wù)器、intercept部署在同一個網(wǎng)段內(nèi)。在同一網(wǎng)段中有一個代理的幫助下還有另一個解決方案,tcpcopy可以向代理發(fā)送數(shù)據(jù)包,然后代理會將相應(yīng)的請求發(fā)送到另一個網(wǎng)段中的測試服務(wù)器。

    注意,在同一網(wǎng)段中的一個虛擬機上部署目標(biāo)服務(wù)器應(yīng)用程序可能面臨上述問題

    4)測試服務(wù)器的路由

    測試服務(wù)器可能設(shè)置了反向過濾技術(shù),可以檢查包中源IP地址是否是被偽造的。如果是,則該包在網(wǎng)絡(luò)層被丟棄。

    如果在測試服務(wù)器中能用tcp抓包工具抓到包,但是測試服務(wù)器上的應(yīng)用程序接收不到任何請求,你應(yīng)該檢查你是否有類似反向過濾技術(shù)的設(shè)置。如果設(shè)置了,你不得不移除相關(guān)的設(shè)置來讓數(shù)據(jù)包通過網(wǎng)絡(luò)層。

    也有些其他原因可能導(dǎo)致tcpcopy不能正常工作,例如防火墻設(shè)置問題。

    5)測試服務(wù)器上的應(yīng)用程序

    測試服務(wù)器上的應(yīng)用程序可能不能及時處理所有的請求。一方面,應(yīng)用中的bug導(dǎo)致請求很長時間得不到響應(yīng);另一方面,一些TCP層以上的協(xié)議只處理socket緩沖中的第一個請求,將剩下的請求留在socket緩沖中不處理。

    6)輔助服務(wù)器的路由

    你不應(yīng)該設(shè)置ip轉(zhuǎn)發(fā)為true或者輔助服務(wù)器不能作為一個黑洞工作。

十二、歷史版本

    2014.09 v1.0 TCPCopy released

十三、錯誤和功能請求

    有錯誤或功能請求?請打開一個新問題。 在打開任何問題之前,請搜索現(xiàn)有問題。

十四、版權(quán)和許可

    版權(quán)所有2016根據(jù)BSD許可。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
真刀真槍壓測:基于TCPCopy的仿真壓測方案
tcpcopy流量復(fù)制
Tcpcopy簡介與實戰(zhàn)
一文讀懂客戶端請求是如何到達(dá)服務(wù)器的(干貨)
TCP標(biāo)志位
cisco路由器上巧用tcp/IP防止dos攻擊
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服