亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問板塊 發(fā)新帖
查看: 2607 | 回復(fù): 2
打印 上一主題 下一主題

netfilter hook小程序死機(jī)問題 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2011-03-30 23:09 |只看該作者 |倒序?yàn)g覽
各位大俠,我最近在做畢業(yè)設(shè)計(jì),是關(guān)于流量控制方面的,F(xiàn)在想對(duì)基于滑動(dòng)窗口的算法和TC進(jìn)行一下比較,下面是一個(gè)修改窗口值的簡(jiǎn)單測(cè)試程序,完成對(duì)發(fā)送給google的數(shù)據(jù)包修改一下窗口值,目的是減慢google服務(wù)器的返回速度:
unsigned int window(unsigned int hooknum,
        struct sk_buff *__skb,
        const struct net_device *in,
        const struct net_device *out,
        int (*okfn)(struct sk_buff *))
{
    struct sk_buff *skb;
    struct iphdr *iph;
    struct tcphdr *tcph;
    int tot_len;
    int iph_len;
    int tcph_len;

    skb = __skb;
    if(skb == NULL)
        return NF_ACCEPT;

    iph = ip_hdr(skb);
    if(iph == NULL)
        return NF_ACCEPT;

    tot_len = ntohs(iph->tot_len);

        
    if(iph->daddr == in_aton("72.14.203.106") || iph->daddr == in_aton("72.14.203.103") || iph->daddr == in_aton("72.14.203.104") || iph->daddr == in_aton("72.14.203.105") || iph->daddr == in_aton("72.14.203.147"))
    {
        iph_len = ip_hdrlen(skb);
        skb_pull(skb,iph_len);//skb->data指針定位到了傳輸層

        skb_reset_transport_header(skb);
        if(iph->protocol == IPPROTO_TCP)
        {
            tcph = tcp_hdr(skb);
            tcph_len = tcp_hdrlen(skb);
                        if (ntohs(tcph->dest) == 80)
            {
                                printk("\n");
                printk("the packet source %d dest %d",ntohs(tcph->source),ntohs(tcph->dest));

                tcph->window = htons(ntohs(tcph->window) >> 3);
                printk(" ack=%d syn=%d rst=%d seq=%u window=%u\n",tcph->ack,tcph->syn,tcph->rst,ntohl(tcph->seq),ntohs(tcph->window));
                tcph->check = 0;
                skb->csum = csum_partial((unsigned char *)tcph, tot_len - iph_len,0);
                tcph->check = csum_tcpudp_magic(iph->saddr,
                        iph->daddr,
                        ntohs(iph->tot_len) - iph_len,iph->protocol,
                        skb->csum);
                iph->check = 0;
                iph->check = ip_fast_csum(iph,iph->ihl);

                skb_push(skb,iph_len);
                                skb_reset_network_header(skb);
                                return NF_ACCEPT;
                        }
        }
        skb_push(skb,iph_len);
                skb_reset_network_header(skb);
    }
    return NF_ACCEPT;
}


但該程序在NF_INET_LOCAL_OUT點(diǎn)上,一點(diǎn)擊google網(wǎng)頁(yè)就會(huì)直接死機(jī),圖形界面也沒有了。麻煩大俠幫忙看一下問題,是在沒看出來哪錯(cuò)了。謝謝~

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2011-03-31 09:47 |只看該作者
再補(bǔ)充一下,假如我在NF_INET_PRE_ROUTING鉤子點(diǎn)上掛在該函數(shù),同時(shí)源目的地址做相應(yīng)修改,則程序運(yùn)行正常。

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2011-03-31 09:48 |只看該作者
再補(bǔ)充一下,假如我在NF_INET_PRE_ROUTING鉤子點(diǎn)上掛在該函數(shù),同時(shí)源目的地址做相應(yīng)修改,則程序運(yùn)行正常。有點(diǎn)奇怪,希望高手指點(diǎn)
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP