View Full Version : [c/c++] implementazione 'router'
Ciao.
Dovrei realizzare una applicazione che ritrasmette pacchetti in una piccola LAN e pensavo di sfruttare un campo nel pacchetto che invio per gestire l'instradamento nei 'nodi' intermedi. Una sorta di 'router', anche se nn è propriamente corretto definirlo tale.
Pensavo di creare un piccolo buffer interno in grado di raccogliere + pacchetti diretti alla stessa destinazione.
Qlc di voi ha qlc esperienza in materia?
s.o. linux
Ciao...thanks in advance!
Ti dirò...quello che vuoi fare è molto interessante ma al tempo stesso anche enormemente complesso secondo me..
Ok tu ti gestisci un buffer sul quale devi accodare i pacchetti destinati ad una sola macchina; ma quanto grande deve essere? Dato che su una rete Lan i pacchetti arrivano ad una velocità tale da saturarti un qualunque buffer in pochi secondi e anche meno dovresti gestirti anche quest'ulteriore problema...e se si riempe cosa fai? scarti i pacchetti che arrivano o effettui una spedizione immediata?
Per il campo del pacchetto da utilizzare, bisognerebbe visionare un attimo lo standard...poi tra parentesi dovresti riuscire ad inserire l'applicazione molto in basso (quasi a livello kernel) perchè sicuramente finisce che se usi pacchetti con questo campo speciale vengono scartati dallo stack tcp/ip di linux senza neanche arrivare in user space...
Ecco questi sono solo alcuni interroggativi...magari spiegami meglio cosa dovrebbe fare l'applicazione e poi ne discutiamo..
Se devi scrivere il tutto su Linux posso darti una mano anche se ultimamente sono impegnato con l'uni....
La grandezza del buffer la imposto in base alla lunghezza dei pacchetti che invio, ad esempio, potrei realizzarne uno in grado di ospitare 10 pacchetti e poi con un thread gestire l'invio di questi prima che si riempia.
Userò il protocollo UDP (specifiche del progetto); pensavo di sfruttare una cosa molto simile ad un TFTP per problemi di realizzabilità.
Ke dici? Realizzabile?
mmm...si ma non ha molto senso creare un buffer per 10 pacchetti per il semplice motivo che i pacchetti udp hanno dimensione variabile..a meno che tu non hai come ipotesi il fatto che ti arrivino pacchetti di dimensione fisse magari perchè il protocollo applicativo è stato realizato per mandarli sempre di una tale dimensione...
libero di farlo...lo scopo è solo quello di fare viaggiare i pacchetti nella rete attraverso nodi intermedi.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.