Accesso di collegamento dati pacchetti dello strato
-
22-09-2019 - |
Domanda
Voglio creare un socket per l'accesso ai pacchetti IPv4 dal livello di collegamento dati. Da Unix programmazione di rete V1,
socket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_IP))
1) Io sono l'attuazione di un client DHCP, è questo il modo corretto di fare questo? (Significa senza accedere livello di collegamento dati, non posso ricevere risposta dal server DHCP) o c'è altro modo più semplice? anche, dal momento che questa presa riceverà tutti i pacchetti IPv4 destinati per il mio sistema, come devo distinguere DHCP pacchetto di risposta da altri pacchetti?
2) per favore mi suggeriscono un buon collegamento / tuorial per programmazione di rete con accesso a livello di collegamento dati . Nel libro di cui sopra, non è dettagliata descrizione.
Questa è codice mio
Soluzione
Avete bisogno le intestazioni link layer troppo? Se è così, è necessario utilizzare SOCK_RAW
-SOCK_DGRAM
rimuoverà l'intestazione livello di collegamento prima dell'alimentazione alla vostra applicazione.
È possibile identificare le richieste DHCP da parte delle porte di origine e di destinazione, in quanto DHCP genera traffico sulle porte UDP 67 e 68.
Altri suggerimenti
Forse si è tentato guardando le librerie PCAP? Fornisce funzioni di filtraggio belle su IP, la porta e le altre cose.