2011-10-21 13 views
16

Per ragioni a cui non posso accedere, il nostro sistema utilizza un MTU molto piccolo (128 byte). Questi dispositivi integrati si trovano su una rete completamente separata, quindi nessun accesso a Internet o interazione con altri dispositivi.Come posso attivare IPCOMP per un socket?

Ovviamente, il TCP occupa 66 byte per pacchetto lasciando non molto per il carico utile.

Dopo aver cercato su google, mi sono imbattuto in IPCOMP che sembra possa aiutare a ridurre la quantità di traffico sulla rete.

La mia domanda è come posso abilitare questo? C'è un setockopt o ho bisogno di un driver speciale?

L'unico esempio che ho visto è:

socket(PF_INET, SOCK_RAW, IPPROTO_COMP) 

ma questo significa che ho bisogno di creare l'/ TCP/IP payload manualmente.

Chiunque abbia esperienza con questo.

MODIFICA: Forse un metodo migliore sarebbe abilitare cslip o ppp su questa connessione. Posso trovare tutorial sull'attivazione di PPP su una porta seriale (per modem dial-up), ma nulla sull'abilitazione di PPP su Ethernet.
Ho visto articoli su PPPoE, ma questo sembra aggiungere MORE al payload piuttosto che ridurlo.
Qualcuno può aiutare con questo?

+0

Sono curioso, l'IP MTU 128 o è l'MTU Ethernet? –

+0

L'MTU Ethernet è 128. – Neil

+1

Credo che si possa fare ciò usando 'ip xfrm state' e' ip xfrm policy', ma devo ancora provarlo. OpenBSD usa un flag sysctl, ma in Linux credo che IPSec debba essere usato o che xfrm debba essere usato direttamente. – Appleman1234

risposta

2

Ho giocato con IP xfrm in passato ma non ho mai provato l'opzione comp. Se vuoi che tutto il traffico in uscita venga compresso, qualcosa del genere funzionerebbe.

ip xfrm policy add dev eth0 dir out tmpl proto comp 
Problemi correlati