View Full Version : [C] - Costruzione frame livello di collegamento
clockover
24-04-2010, 13:13
Salve a tutti, come da titolo... è possibile costruire un frame ethernet? Non sono riuscito a trovare ancora nulla in giro per la rete... Grazie..
Sistema operativo ? Compilatore ? Eventuali framework e librerie ?
clockover
25-04-2010, 00:13
Grazie della risposta... utilizzo Linux 2.6, molto spesso anche Osx 10.6, entrambi con compilatore gcc versione 4.2.1 per Osx e per Linux non ricordo perchè non ce l'ho sottomano!
Dai uno sguardo qui: http://aschauf.landshut.org/fh/linux/udp_vs_raw/ch01s03.html
clockover
25-04-2010, 09:40
Dai uno sguardo qui: http://aschauf.landshut.org/fh/linux/udp_vs_raw/ch01s03.html
Gradissimo.... avevo già dato uno sguardo alle librerie af_*.h però non avevo capito come funzionava... adesso do una letta alla guida... che personaggio il tipo del sito :D :D
clockover
26-04-2010, 13:19
Alla grande :D :D
clockover
26-04-2010, 16:33
Non capisco una cosa.. perchè inserire 2 volte l'indirizzo di destinazione! Nella struct sockaddr_ll il tipo del link inserisce nuovamente il MAC address di destinazione! Ma l'informazione è ridondante! Infatti ho fatto varie prove, e comunque funziona lo stesso anche senza inserire i valori nella struct dato che sono già nell'header!
Teo@Unix
26-04-2010, 21:26
Difatti non dovrebbe servire, per spedire frame ethernet di solito mi basta il nome della interfaccia.
A differenza dell'esempio io ti consiglio di usare write e read per inviare e leggere dal socket raw.
clockover
26-04-2010, 23:42
Difatti non dovrebbe servire, per spedire frame ethernet di solito mi basta il nome della interfaccia.
A differenza dell'esempio io ti consiglio di usare write e read per inviare e leggere dal socket raw.
Infatti poi ci ho ragionato mentre andavo a lavoro e ho pensato che giustamente se nell'header c'è tutto quello che mi serve mi basterebbe una write... Inoltre sempre ripensandoci su quello è un frame ARP... un frame ethernet completo non dovrebbe avere anche il preambolo??
nuovoUtente86
27-04-2010, 01:05
una richiesta arp viaggia incapsulata in un normale frame ethernet il cui preambolo di sincronizzazione è composto da 7 byte in sequenze di 101010...
un frame ethernet completo non dovrebbe avere anche il preambolo??
Il preambolo fa parte del protocollo di MAC. Ci pensa l'interfaccia a metterlo.
clockover
27-04-2010, 08:04
Il preambolo fa parte del protocollo di MAC. Ci pensa l'interfaccia a metterlo.
A ok adesso mi è più chiara la cosa!
clockover
27-04-2010, 08:11
A differenza dell'esempio io ti consiglio di usare write e read per inviare e leggere dal socket raw.
Read e write non funzionano invece.. ci ho provato.. Anche perchè nel struct sockaddr_ll c'è da specificare l'interfaccia... cosa che non è possibile includere con la write o con una read..
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.