青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

saga's blog

突出重點(diǎn),系統(tǒng)全面,不留死角

  C++博客 :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
  33 Posts :: 2 Stories :: 185 Comments :: 0 Trackbacks

公告

QQ:34O859O5

常用鏈接

留言簿(15)

搜索

  •  

積分與排名

  • 積分 - 212397
  • 排名 - 124

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

??????? 最近自己因?yàn)閷?shí)際需要,用winpcap開(kāi)發(fā)一個(gè)程序里面有需要轉(zhuǎn)發(fā)包.自己就寫(xiě)了一個(gè),發(fā)現(xiàn)轉(zhuǎn)發(fā)時(shí)延>500ms.也確實(shí)把自己嚇到了.便把轉(zhuǎn)發(fā)的那段代碼開(kāi)始精減,大致如下
while((j=pcap_next_ex(slecadopt,&pkt_header,(const?u_char**)&pkt_data))>=0)
{???
?????
if(j==0)
?????
{
?????
continue;
?????}

?????
if(*(unsigned?short?*)(pkt_data+12)==htons(ETH_IP)&&(!(memcmp(pkt_data+6,myip->mac,6)==0))&&*(unsigned?long?*)(pkt_data+30)!=myip->ip&&(!(memcmp(pkt_data,bcast,6)==0)))
?????
{?
?????
for(z=Pipmachead;z!=NULL;z=z->next)
?????
{
?????????
if(*(unsigned?long?*)(pkt_data+30)==z->ip)
?????????????
{
?????????????????????? ?memcpy(cmac
->mac,z->mac,6);
??????????????????????? memcpy(cmac
->mac+6,myip->mac,6);
????????????????????????memcpy(sendbuf,pkt_data,pkt_header
->caplen);
??????????????????????? memcpy(sendbuf,cmac,
12);
?????????????????????? pcap_sendpacket(slecadopt,sendbuf,pkt_header
->caplen);??????
?????????}
?
?????????
continue;
?????}

?????}

}
??????? 過(guò)程很簡(jiǎn)單,pcap_next_ex()收包,在做判斷處理,然后用pcap_sendpacket()發(fā)包.怎么想都不會(huì)有那么大的時(shí)延.很不解就搜索了下關(guān)于pcap_sendpacket()發(fā)包效能的網(wǎng)頁(yè),其中有一個(gè)http://community.csdn.net/Expert/TopicView3.asp?id=4153633來(lái)里面有人說(shuō)
我用winpcap做個(gè)一個(gè)初步的試驗(yàn),我得機(jī)器是奔4?2。6,內(nèi)存512,我一個(gè)線程接包,一個(gè)線程收包,用動(dòng)態(tài)連表做緩存,一秒鐘轉(zhuǎn)發(fā)1-2個(gè)包沒(méi)有多大問(wèn)題,要是再多了,就會(huì)又丟包,轉(zhuǎn)發(fā)上千萬(wàn)包要丟幾百個(gè)。
還有人說(shuō)
winpcap的sendpacket超級(jí)慢,而且延遲很大。

我試圖實(shí)現(xiàn)一個(gè)bridge,即一個(gè)端口進(jìn)入的包不經(jīng)修改從一個(gè)端口出,反之亦然。結(jié)果ping的結(jié)果顯示延遲為數(shù)百毫秒級(jí)別,個(gè)別時(shí)候甚至到了1秒。運(yùn)行其它應(yīng)用更是不可忍受。

我想使用sendQuene,結(jié)果sendQuene的具體用法只見(jiàn)過(guò)預(yù)先準(zhǔn)備好所有的包然后整體發(fā)送的,沒(méi)見(jiàn)過(guò)隨著包來(lái)隨著發(fā)送的例子。或許對(duì)于我的bridge,winpcap是一個(gè)錯(cuò)誤的選擇?又或者大家有什么新鮮的思路?愿意聽(tīng)大家說(shuō)說(shuō)。
???? ?? 使我也開(kāi)始懷疑pcap_sendpacket()了.難道真實(shí)pcap_sendpacket()效率底.但是我還是不相信.堂堂winpcap怎么可能怎么慢.使我發(fā)現(xiàn)破綻的使貼子里最后一的人的說(shuō)法:
我也寫(xiě)了個(gè)類似的程序,延時(shí)穩(wěn)定在20ms左右,帶寬可以達(dá)到10M
我發(fā)現(xiàn)一個(gè)有趣的事情,即我在運(yùn)行brigde的服務(wù)器上,運(yùn)行一個(gè)fluke的抓包工具,居然發(fā)現(xiàn)運(yùn)行后,通過(guò)bridge后的時(shí)延居然只有1ms左右了,停止抓包工具后,延時(shí)又回到20ms左右,試了多次情況都一樣

打開(kāi)網(wǎng)卡的句柄是按下面的參數(shù)執(zhí)行的
pcap_open(d
->name,?//?name?of?the?device?
65536,?//?portion?of?the?packet?to?capture.
PCAP_OPENFLAG_PROMISCUOUS,?//?promiscuous?mode?
1,?//?read?timeout?
NULL,?//?remote?authentication?
errbuf?//?error?buffer?
);?
對(duì)數(shù)據(jù)報(bào)的捕獲是用pcap_loop函數(shù),我試過(guò)將pcap_open的read?timeout參數(shù)設(shè)置為
-1,即讀取立即返回,但這樣對(duì)系統(tǒng)資源占用太大,cpu利用率增加到100%,此時(shí)bridge的延時(shí)就很不穩(wěn)定了,從1ms到1s都有。
?????? 他在里面特意提到了pcap_open()的read timeout參數(shù),我回想起我的設(shè)的1000ms,也就是一秒.嫌疑很大.(注:我用的是pcap_open_live())
pcap_open_live(d->name,?1000,?1,?1000,?error)
然后就去查Winpcap的官方資料http://www.winpcap.org/docs/docs31/html/group__wpcapfunc.html
里面說(shuō)的很清楚:
to_ms?specifies?the?read?timeout?in?milliseconds.?The?read?timeout?is?used?to?arrange?that?the?read?not?necessarily?return?immediately?when?a?packet?is?seen,?but?that?it?wait?for?some?amount?of?time?to?allow?more?packets?to?arrive?and?to?read?multiple?packets?from?the?OS?kernel?in?one?operation.?

???? 當(dāng)已經(jīng)發(fā)現(xiàn)包之后還會(huì)等多一些的包一起返回,等待時(shí)間就是read timeout.明白了,我把read timeout設(shè)為1以后時(shí)延降到了<10ms.

?????其中還需要提醒的是用Ethereal等一些抓包工具看到收包到轉(zhuǎn)發(fā)時(shí)延很大時(shí)就以為是pcap_next_ex()和pcap_sendpacket()函數(shù)之間的處理造成了時(shí)延.這里容易給我們產(chǎn)生一個(gè)假相.以為網(wǎng)卡收到包的時(shí)刻就是轉(zhuǎn)發(fā)程序就要開(kāi)始處理.實(shí)際上pcap_next_ex()還在等待更多的包一起返回.
?????所以事發(fā)的原因離事發(fā)現(xiàn)場(chǎng)比較遠(yuǎn).在pcap_open()那.程序就就是怎么千絲萬(wàn)縷的關(guān)聯(lián)著.
???? 大家一定要多懷疑自己,別去怪罪工具.winpcap很無(wú)辜的.嘻嘻!!肚子餓了去吃飯!!

?????????????????????????????????????????????????????????????????????-----saga.constantine

posted on 2006-04-16 17:13 saga.constantine 閱讀(11740) 評(píng)論(12)  編輯 收藏 引用 所屬分類: Winpcap

Feedback

# re: [原創(chuàng)]用Winpcap函數(shù)轉(zhuǎn)發(fā)包需要留心的一點(diǎn) 2006-04-17 08:43 任我行
學(xué)習(xí)中,我要做的是先收包,然后修改包頭,再發(fā)送包。
還不知道WinPcap能否做到。
我也看了看這個(gè)庫(kù)。沒(méi)有你研究的那么深入。
我在這里關(guān)注你的進(jìn)展。
  回復(fù)  更多評(píng)論
  

# re: [原創(chuàng)]用Winpcap函數(shù)轉(zhuǎn)發(fā)包需要留心的一點(diǎn) 2006-04-17 08:53 saga.constantine
@任我行
謝謝關(guān)注,我也是在學(xué)習(xí),對(duì)winpcap了解也不深,一般能達(dá)到目的就不在研究了,呵呵.收包,改包頭,發(fā)送就是我上面給出代碼的功能.winpcap擅長(zhǎng)的就是這方面把.發(fā)送你任意改過(guò)的包!  回復(fù)  更多評(píng)論
  

# re: [原創(chuàng)]用Winpcap函數(shù)轉(zhuǎn)發(fā)包需要留心的一點(diǎn) 2006-04-17 09:26 任我行
@saga.constantine
好,其實(shí)我想做一個(gè)proxy,先收,再改,然后發(fā)。
有方向就好辦了。到時(shí)搞到問(wèn)題再來(lái)向你要答案。
  回復(fù)  更多評(píng)論
  

# re: [原創(chuàng)]用Winpcap函數(shù)轉(zhuǎn)發(fā)包需要留心的一點(diǎn) 2006-04-28 16:52 任我行
剛才練習(xí)了以下WinPcap,還是不太會(huì)用。
能否發(fā)些例子來(lái)學(xué)習(xí)學(xué)習(xí)。
先來(lái)一個(gè)發(fā)包程序,例如:自己組裝一些IP包,然后發(fā)出去,
在來(lái)一個(gè)收包程序,接收上面發(fā)過(guò)來(lái)的IP包,并提取其中相關(guān)的數(shù)據(jù)。

  回復(fù)  更多評(píng)論
  

# re: [原創(chuàng)]用Winpcap函數(shù)轉(zhuǎn)發(fā)包需要留心的一點(diǎn) 2006-04-28 19:22 saga.constantine
@任我行
你看我的另一篇post里面的arp欺騙 代碼拉.里面發(fā)包收包都有......
for(k=0;k<6;k++)
{
eth.eh_dst[k]=0xff;
eth.eh_src[k]=0x0f;
arp.arp_sha[k]=0x0f;
arp.arp_tha[k]=0x00;
}
eth.eh_type=htons(ETH_ARP);
arp.arp_hdr=htons(ARP_HARDWARE);
arp.arp_pro=htons(ETH_IP);
arp.arp_hln=6;
arp.arp_pln=4;
arp.arp_opt=htons(ARP_REQUEST);
arp.arp_tpa=myip->ip;
arp.arp_spa=inet_addr("127.0.0.2"); //隨便設(shè)的請(qǐng)求方ip

memset(sendbuf,0,sizeof(sendbuf));
memcpy(sendbuf,&eth,sizeof(eth));
memcpy(sendbuf+sizeof(eth),&arp,sizeof(arp));

if(pcap_sendpacket(slecadopt,sendbuf,42)==0)
{
printf("PacketSend succeed\n\n");
}
else
{
printf("PacketSendPacket in getmine Error: %d\n",GetLastError());
return 0;
}
就可以發(fā)一個(gè)簡(jiǎn)單的arp請(qǐng)求包!!

  回復(fù)  更多評(píng)論
  

# re: [原創(chuàng)]用Winpcap函數(shù)轉(zhuǎn)發(fā)包需要留心的一點(diǎn) 2008-06-27 08:54 狼唇之吻
LZ你好,我使用wpcap編程時(shí),使用int pcap_findalldevs (pcap_if_t **alldevsp, char *errbuf)獲取網(wǎng)卡列表,在windows xp下沒(méi)有發(fā)生任何問(wèn)題,但是在windows 2000里面發(fā)現(xiàn)有很大部分獲取不到正在使用的網(wǎng)卡。

而是獲取到的只有一個(gè)dialup and vpn capture

請(qǐng)問(wèn)這個(gè)大概什么原因。
我測(cè)試了100臺(tái)左右的2000系統(tǒng),有將近一半不行。200多臺(tái)XP一點(diǎn)問(wèn)題都沒(méi)有  回復(fù)  更多評(píng)論
  

# re: [原創(chuàng)]用Winpcap函數(shù)轉(zhuǎn)發(fā)包需要留心的一點(diǎn) 2008-07-03 09:45 saga
抱歉 不知道@狼唇之吻
  回復(fù)  更多評(píng)論
  

# re: [原創(chuàng)]用Winpcap函數(shù)轉(zhuǎn)發(fā)包需要留心的一點(diǎn) 2008-07-03 19:19 SG
轉(zhuǎn)發(fā)包出去的包不會(huì)又被pcap_next_ex捕獲回來(lái)嗎??
如果 我只想捕獲接收到的包,不想捕獲網(wǎng)卡發(fā)出去的包有沒(méi)辦法哪?
前提不提取數(shù)據(jù)判斷方向,我也看了點(diǎn)資料資料上都寫(xiě)著
if(pcap_next_ex == 1)我實(shí)驗(yàn)過(guò)好象不太有用我所有發(fā)出去的包都被忠實(shí)的捕獲回來(lái),很郁悶,當(dāng)然我不是僅僅把捕獲的到的包修改下再發(fā)出發(fā) 我發(fā)出的是另外一個(gè)包 大概結(jié)構(gòu)就象第一個(gè)程序快 郁悶啊  回復(fù)  更多評(píng)論
  

# re: [原創(chuàng)]用Winpcap函數(shù)轉(zhuǎn)發(fā)包需要留心的一點(diǎn) 2009-01-13 15:42 complexs.net
可以使用Winpcap提供的過(guò)濾函數(shù),來(lái)過(guò)濾不需要的包.
這樣可以提高網(wǎng)絡(luò)堆棧的性能,提高發(fā)包速度.

關(guān)于Winpcap丟包的現(xiàn)象,是因?yàn)榘l(fā)包的速度慢造成的,應(yīng)該盡可能的降低發(fā)包速度.

我使用Winpcap開(kāi)發(fā),傳送10G大的文件,速度平均在8M左右.

理想速度應(yīng)該盡量接近10M,功力不夠~!  回復(fù)  更多評(píng)論
  

# re: [原創(chuàng)]用Winpcap函數(shù)轉(zhuǎn)發(fā)包需要留心的一點(diǎn) 2009-12-25 09:51 jjl
你試試在PCAP_OPEN()把打開(kāi)標(biāo)志設(shè)置為混雜模式和不捕獲本地包模式,也就是數(shù)字9.  回復(fù)  更多評(píng)論
  

# re: [原創(chuàng)]用Winpcap函數(shù)轉(zhuǎn)發(fā)包需要留心的一點(diǎn) 2012-06-03 18:44 吳同學(xué)
LZ十分謝謝你啊!!!!
我的程序ARP做的監(jiān)控軟件,就是覺(jué)得好慢!!被你這樣一說(shuō)改了那個(gè)時(shí)間,真的快了好多啊!!!!!
十分謝謝!!
雖然是好多年前的.  回復(fù)  更多評(píng)論
  

# re: [原創(chuàng)]用Winpcap函數(shù)轉(zhuǎn)發(fā)包需要留心的一點(diǎn) 2013-12-17 22:56 11
你做出來(lái)了嗎?@SG
  回復(fù)  更多評(píng)論
  

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产亚洲欧美日韩美女| 午夜精品久久久久久久久久久 | 亚洲欧美变态国产另类| 亚洲免费观看在线观看| 亚洲国产天堂久久综合| 欧美刺激午夜性久久久久久久| 免费成人黄色av| 欧美xxx在线观看| 亚洲人成网在线播放| 99视频在线观看一区三区| 在线亚洲自拍| 欧美一区亚洲| 欧美精品一区二区视频 | 欧美在线视频导航| 老巨人导航500精品| 欧美日韩精品免费观看视一区二区| 亚洲一区二区四区| 亚洲一区精品视频| 久久亚洲国产成人| 亚洲精品在线视频观看| 亚洲一区三区电影在线观看| 午夜精品久久| 亚洲三级免费观看| 亚洲男人的天堂在线| 久久香蕉精品| 国产精品国产馆在线真实露脸| 国产亚洲欧美一区在线观看| 亚洲精品视频在线看| 欧美一级午夜免费电影| 欧美国产大片| 欧美制服第一页| 国产精品成人一区二区三区夜夜夜| 国产在线拍偷自揄拍精品| av不卡在线| 欧美成年人网| 亚洲欧美综合精品久久成人| 欧美日韩91| 亚洲国产岛国毛片在线| 久久精品国产免费观看| 亚洲天堂av综合网| 欧美久久久久久蜜桃| 亚洲第一精品福利| 久久久久欧美精品| 亚洲欧美日韩国产成人| 欧美系列亚洲系列| 91久久久久久| 欧美成人精品一区二区三区| 欧美专区18| 国产欧美在线观看一区| 亚洲欧美国产一区二区三区| 99人久久精品视频最新地址| 久久久久久有精品国产| 亚洲欧美经典视频| 国产精品欧美经典| 亚洲视屏一区| 99精品热视频只有精品10| 欧美国产一区二区| 亚洲精品乱码久久久久久按摩观 | 亚洲欧洲久久| 免费中文字幕日韩欧美| 在线欧美福利| 欧美大片91| 欧美高清成人| 一区二区三区国产盗摄| 99re6这里只有精品| 欧美日韩情趣电影| 欧美一级免费视频| 欧美在线免费观看视频| 黑人中文字幕一区二区三区| 亚洲国产精品成人综合| 麻豆freexxxx性91精品| 欧美aⅴ一区二区三区视频| 亚洲国产精品久久久久久女王| 欧美成人日韩| 欧美另类视频在线| 亚洲欧美日韩天堂一区二区| 亚洲欧美久久久| 伊人成年综合电影网| 日韩视频三区| 亚洲免费激情| 国产无遮挡一区二区三区毛片日本| 久久九九热免费视频| 噜噜噜噜噜久久久久久91| 99热在这里有精品免费| 亚洲一区二区影院| 在线欧美一区| 亚洲视频在线观看网站| 狠狠色狠狠色综合日日五| 亚洲国产天堂久久国产91| 国产精品久久久久久久午夜片 | 国产精品一区毛片| 麻豆91精品91久久久的内涵| 欧美精品999| 久久精品国产2020观看福利| 麻豆精品网站| 欧美一区二区三区的| 久久人91精品久久久久久不卡| 99re66热这里只有精品4| 亚洲综合第一页| 最新国产精品拍自在线播放| 亚洲一区二区三区乱码aⅴ| 亚洲第一毛片| 性欧美xxxx大乳国产app| 中日韩视频在线观看| 老司机精品久久| 欧美在线二区| 欧美日韩三区| 欧美国产日产韩国视频| 国产精品欧美久久| 亚洲国产导航| 国产一区二区三区在线观看免费视频 | 久久综合给合| 欧美在线观看网址综合| 欧美电影在线免费观看网站| 久久九九有精品国产23| 国产精品高潮呻吟久久av无限| 欧美激情按摩| 激情国产一区二区| 欧美一区二区三区的| 午夜在线精品偷拍| 欧美日韩国产色视频| 亚洲大胆av| 蜜桃精品久久久久久久免费影院| 亚洲欧美bt| 欧美日韩精品免费观看视频| 欧美高清视频免费观看| 狠狠色综合日日| 午夜视频久久久| 先锋亚洲精品| 国产精品国产三级国产普通话三级 | 日韩午夜av在线| 亚洲欧洲日本在线| 久久免费精品视频| 久久一区二区三区av| 国产一区二区三区日韩| 校园春色国产精品| 久久久久国色av免费观看性色| 国产精品久久久久国产a级| av不卡在线看| 亚洲欧美久久久| 国产精品亚洲一区二区三区在线| 99这里只有久久精品视频| 亚洲视频在线一区| 国产精品视频精品视频| 亚洲一区二区视频在线| 欧美一区二区成人| 国产一区二区剧情av在线| 欧美中文在线观看国产| 久久精品国产91精品亚洲| 激情视频一区二区三区| 葵司免费一区二区三区四区五区| 欧美国产91| 亚洲视频国产视频| 国产欧美在线观看一区| 麻豆久久婷婷| 艳妇臀荡乳欲伦亚洲一区| 亚洲欧美欧美一区二区三区| 国产欧美日韩综合一区在线播放| 欧美在线免费观看| 亚洲激情一区| 欧美亚洲一区二区三区| 影音先锋亚洲电影| 欧美日韩国产美女| 欧美一区二区福利在线| 亚洲国产精品成人精品| 香蕉久久夜色精品国产使用方法| 国产一区二区三区丝袜| 欧美韩国日本一区| 午夜精品亚洲| 最新国产成人在线观看| 欧美一区二视频| 亚洲国产欧美一区二区三区同亚洲 | 国产午夜一区二区三区| 久久香蕉国产线看观看av| 亚洲欧洲综合另类| 欧美影院在线| 99国产欧美久久久精品| 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲一区二区精品| 韩国av一区二区三区| 欧美日精品一区视频| 久久天堂成人| 亚洲一线二线三线久久久| 亚洲国产高清自拍| 久久久水蜜桃| 午夜激情综合网| 99精品国产热久久91蜜凸| 精品盗摄一区二区三区| 国产精品美女在线| 欧美人与禽猛交乱配| 久久一本综合频道| 欧美一区二区三区另类 | 在线观看三级视频欧美| 老司机午夜精品视频| 欧美日韩一区二区国产| 久久久蜜桃一区二区人| 中文日韩在线视频| 亚洲国产欧美日韩另类综合| 久久久久久香蕉网| 欧美一区观看|