nespolehlivy prenos pres netcat (DELSI)

oldfrog.linux na volny.cz oldfrog.linux na volny.cz
Čtvrtek Září 23 17:24:11 CEST 2004


Pavel Kankovsky wrote:

>On Wed, 22 Sep 2004, oldfrog.linux na volny.cz wrote:
>
>>read(net): Connection reset by peer
>>    
>>
>To je moc divne. nc je sice obcas moc aktivni v tom, jak uzavira
>spojeni, ale nemuselo by z toho hned byt RST.
>
>>   root na router # netcat -l -p 9998 -e "cat /tmp/orig.txt";
>>   root na client # nc router 9998 > recv.txt;
>>    
>>
>Zkuste serverovemu netcatu za "cat /tmp/orig.txt" pridat jeste nejaky
>dostatecne dlouhy sleep. Pustte na nej strace a podivejte se, zda neco
>nedela se SO_LINGER (takove veci se obvykle deji na zacatku).
>  
>
Obe strany cekaji na probehnuti sleep a pak prijimaci strana napise:

read(net): Connection reset by peer

Ve stracu odesilaci strany je

setsockopt(3, SOL_SOCKET, SO_LINGER, {onoff=1, linger=0}, 8) = 0

a prijimaci strany

setsockopt(3, SOL_SOCKET, SO_LINGER, {onoff=1, linger=0}, 8) = 0

Podivne je, ze se to deje jen nekdy, ale skoro vzdy u dlouhych souboru.
K chybe dochazi pouze pokud je na vysilaci strane gnu netcat. S jinymi
verzemi netcatu na odesilaci strane funguje prenos dobre. Prijimaci strana
na to nema vubec zadny vliv (testovan telnet, jiny netcat, php).

Ze by bug gnu netcatu?

>A konecne je v takovem pripade dobre si poslechnout, co chodi po siti.
>--Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]
>"Resistance is futile. Open your source code and prepare for assimilation."
>  
>
Myslite primo odsnifovat posilane pakety? To jsem nikdy nedelal, co
navrhujete pouzit za soft? Me stacil vzdycky tcpdump. Ten si muzete
v pripade zajmu prohlednout na

http://www.oldfrog.cz/netcat_tcpdump/
    tcpdump.recv.bad  - gnu netcat na vysilaci strane, vysila zde 
'ns1.localnet'
    tcpdump.recv.ok - jiny netcat (Busybox nc treba) na vysilaci strane, 
vysila zde 'ns1.localnet'

-- 
------------------------------
Ondrej Nemecek alias 'OldFrog'

tel (domu):     241766035
tel (prace):    222090711
tel (mobil):    775046246
icq:            250163477
------------------------------



Další informace o konferenci Linux