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