[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Timeout



On Tue, Feb 05, 2002 at 10:26:14AM +0100, blitzkrieg wrote:
> On Mon, Feb 04, 2002 at 03:40:54PM +0100, walter valenti wrote:
> > sto usando una Debian GNU/Linux2.2r5 (kernel 2.2.19-ide), ho la 
> > necessità di cambiare un timeout dello stack TCP/IP.
> 
> > quando cerco di iniziare una connessione con una connect (quindi mando 
> > un SYN), lo stack rimane in attesa, per un tempo piuttosto lungo, di 
> > ricevere qualcosa (un SYN|ACK se la connessione va a buon fine, o un RST 
> > se la connessione viene rifiutata). Può però non roicevere nulla, perchè 
> > per eesempio, la porta dall'altra parte è "firewallata" (che brutta 
> > parola !!!).
> 
> > Qualcuno sa come si può fare ?????
> 
> Non e' cosi' semplice, la gestione del timeout tcp e' abbastanza
> complessa, cioe' non e' un valore fisso, ma varia e dipende dai
> timeout precedenti. Questo perche' le possibili cause di un timeout
> sono molte (perdita del pacchetto, intasamento di qualche nodo,
> distanza della destinazione etc.). Se vuoi modificare questo timeout
> per lo stack del kernel (cosa che ti sconsiglio) devi modificare la
> funzione tcp_rtt_estimator in linux/net/ipv4/tcp_input.c e ricompilare
> il tutto. Se questa modifica la devi usare solo per il tuo bel
> portscan devi trovare la funzione che gestisce il timeout (solitamente
> e' gestito internamente nei portscan), modificare e compilare

Penso volesse sapere: setsockopt(2), /usr/include/sys/socket.h,
/usr/include/bits/socket.h e soprattutto /usr/include/asm/socket.h
(SO_RCVTIMEO e SO_SNDTIMEO), ma Stevens (UNP 1990) riporta che questi
valori non sono utilizzati.

vedi anche: ioctl(2), fcntl(2) se non sei sicuro che vada, che
funziona, etc. per fortuna hai sorgenti (Glibc, Linux) che sono la
fonte piu' sicura.

... e magari usa qualche libro, spendi qualche soldo ma risparmi
parecchio tempo (se poi i libri riesci a farteli prestare ...;)


Ciao,
Daniele.



Reply to: