Nmap IP分片傳送學習

2021-08-20 13:35:58 字數 1017 閱讀 2902

netutil.cc

ip分片並傳送函式解析

1、mtu是通訊協議某一層上面所能通過的最大資料大小

2、分片過程:

將ip資料部分劃分為fragment片,每片大小mtu,最後一片大小datalen % mtu(因為可能不足mtu)

劃分好的每片長度fdatalen

for (fragment = 1; fragment * mtu < datalen + mtu; fragment++)

u8 *fpacket = (u8 *) safe_malloc(headerlen + mtu);

memcpy(fpacket, packet, headerlen + mtu);

ip = (struct ip *) fpacket;

// create fragments and send them建立分片並傳送

for (fragment = 1; fragment * mtu < datalen + mtu; fragment++)

free(fpacket);

return res;

}傳送函式

上面分割好的ip分片fpacket被拷貝到eth_frame + 14的位置

memcpy(eth_frame + 14, packet, packetlen);

之後傳送出去

/* send an ip packet over an ethernet handle. */

int send_ip_packet_eth(const struct eth_nfo *eth, const u8 *packet, unsigned int packetlen) else

res = eth_send(ethsd, eth_frame, 14 + packetlen);

/* no need to close ethsd due to caching */

free(eth_frame);

return res;

}

mycat學習 4 分片JOIN,分片規則

mycat 支援跨分片join,主要有四種方法 1 全域性表 字典表 變動不頻繁,資料量總體變化不大,資料規模不大很少超過10w條記錄 可以做為全域性表 特性 1 全域性表的插入,更新操作會實時在所有節點上執行,保持各個分片的資料一致性。沒有太激烈的update操作。2 全域性表查詢只從乙個節點獲取...

Elasticsearch 學習之 分片未分配原因

分片未分配的原因主要有 1 index created 由於建立索引的api導致未分配。2 cluster recovered 由於完全集群恢復導致未分配。3 index reopened 由於開啟open或關閉close乙個索引導致未分配。4 dangling index imported 由於匯...

redis學習記錄08 分片

redis的分片 sharding或者partitioning 技術是指將資料分散到多個redis例項中的方法,分片之後,每個redis擁有一部分原資料集的子集。在資料量非常大時,這種技術能夠將資料量分散到若干主機的redis例項上,進而減輕單台redis例項的壓力。分片技術能夠以更易擴充套件的方式...