Inhaltsbasierte Analyse Des Tauschverhaltens In P2P-Netzwerken
Inhaltsbasierte Analyse Des Tauschverhaltens In P2P-Netzwerken
Inhaltsbasierte Analyse Des Tauschverhaltens In P2P-Netzwerken
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.