05.11.2012 Aufrufe

Inhaltsbasierte Analyse Des Tauschverhaltens In P2P-Netzwerken

Inhaltsbasierte Analyse Des Tauschverhaltens In P2P-Netzwerken

Inhaltsbasierte Analyse Des Tauschverhaltens In P2P-Netzwerken

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

INHALTSBASIERTE ANALYSE DES TAUSCHVERHALTENS IN <strong>P2P</strong>-NETZWERKEN 32<br />

void bt_sha1_download(u8 *packet,u16 packetlen,u8 *flow, struct ipoque_stat_hash* hashp)<br />

{<br />

u32 len;<br />

u32 curr_pos;<br />

u8 direction;<br />

struct p2p_stat_flow *pflow;<br />

}<br />

if (flow == NULL)<br />

return;<br />

if (packetlen < 5)<br />

return;<br />

curr_pos = ipoque_get_allowed_bt_hash_address(flow);<br />

if (curr_pos >= hashp->stat_elements)<br />

return;<br />

pflow=&hashp->hash[curr_pos];<br />

if (pflow->used != <strong>P2P</strong>_STAT_HASH_BT)<br />

{<br />

return;<br />

}<br />

len=ntohl(get_u32(ipq packet,0));<br />

direction = ipoque_get_direction(flow);<br />

if (len < 0x1000A && len > 9 && (packet [4] == 0x07 || ntohl(get_u32(packet,4)) == 0x08))<br />

{<br />

pflow->bt_stat_has_traffic_send |= (direction + 1);<br />

}<br />

if ( (pflow->bt_stat_has_traffic_send & (direction + 1)) != 0)<br />

{<br />

pflow->hash_data.bt.transferred_bytes += packetlen;<br />

}<br />

return;<br />

Codeblock 7: Erhöhen des aktuellen BitTorrent Hasheintrages um die übertragene<br />

Menge<br />

Da in der BitTorrent-Übertragung keine Dateinamen verwendet werden, erfor-<br />

dert die BitTorrent-Erkennung zur Auswertung noch eine Erkennung des BitTor-<br />

rent-Trackers. Dazu wird im dritten Teil der BitTorrent-Tracker durch die Tra-<br />

cker-Anfrage ermittelt, die über das Protokoll HTTP läuft. Dabei fragt der Client<br />

nach weiteren Quellen für einen File-Hash. Damit kann danach (meist über die<br />

HTTP-Seite des Trackers oder andere Verzeichnisse) der Dateiname eines Fi-<br />

le-Hashes für einen Tracker ermittelt werden. <strong>In</strong>nerhalb der Implementierung ist<br />

das Einlesen des Hashes sehr komplex, weil das BitTorrent-Protokoll den Hash<br />

innerhalb des HTTP GET - Befehls nochmals kodiert [Bs]. Der Name des Tra-<br />

ckers wird danach zu einem File-Hash in einer Hashtabelle abgespeichert.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!