[so] [SO][Tema 5][Linux] netcat opreste conexiunea prea devreme

Mihai Barbulescu b12mihai at gmail.com
Fri May 17 22:47:31 EEST 2019


Salut George,

Mesajele tale sunt foarte bune si explicatiile pe care le dai la fel,
ar trebui sa ajute si pe altii. Nu este nici un deranj ca le dai pe
bucati, apreciem faptul ca impartasesti experienta ta de debugging, te
rog sa nu iti faci griji in privinta numarului mare de mesaje.

On Fri, 17 May 2019 at 19:17, George Diaconu via so
<so at cursuri.cs.pub.ro> wrote:
>
> Salut,
>
> Imi cer scuze pentru toate mesajele, acesta e ultimul in acest thread.
> Am gasit problema. Server-ul meu nu astepta sa primeasca tot
> request-ul de la client. Imediat ce parsa calea, incepea sa trimita
> raspunsul. Acum astept sa trimita clientul toata cererea, apoi trimit
> raspunsul si fisierul daca este cazul si merge perfect.
> Stack overflow m-a salvat din nou [1].
>
> Numai bine,
> George
>
> https://stackoverflow.com/questions/31168131/http-server-not-sending-complete-file-to-wget-firefox-connection-reset-by-peer
>
> În vin., 17 mai 2019 la 18:01, George Diaconu <pgn.george at gmail.com> a scris:
> >
> > Revin cu o completare.
> > La testul 16, server-ul afiseaza ca a trimis raspunsul "200 OK", apoi
> > fisierul si ca a inchis conexiunea, chair daca wget spune ca a fost
> > inchisa conexiunea inainte sa primeasca macar "200 OK".
> > Am rulat testul si am obitnut 2 fisiere .pcap, unul pentru o executie
> > cu succes a testului si altul cand esueaza testul. Las arhiva cu cele
> > doua fisiere la [1].
> > La [2] este link-ul catre repo-ul meu.
> >
> > Numai bine,
> > George Diaconu
> >
> > [1] https://drive.google.com/open?id=1JG98HjEDUO7kZM0UmOiHid62gF0OWqNY
> > [2] https://gitlab.cs.pub.ro/george.diaconu2208/l3-so-assignments
> >
> > În vin., 17 mai 2019 la 16:48, George Diaconu <pgn.george at gmail.com> a scris:
> > >
> > > Salut,
> > >
> > > Am reusit sa rezolv problema asta intre timp. Las la [1] link-ul unde
> > > am inteles care a fost problema. Pe scurt, din ce am inteles, netcat
> > > anunta ca este gata sa opreasca conexiunea, dar server-ul considera ca
> > > s-a si deconectat si dadea drop conexiunii. Acum in momentul in care
> > > recv intoarce 0, nu inchid imediat conexiunea, verific in ce stadiu
> > > este conexiunea (am o masina de stari cum este recomandat in enuntul
> > > temei), si inchid conexiunea dupa ce a fost trimis tot fisierul.
> > >
> > > Acum am probleme cu testul 16. Uneori merge, alteori nu merge. Acest
> > > test foloseste wget. Cand nu merge, mesajul intors de wget este "Read
> > > error (Connection reset by peer) in headers." Interesant este ca daca
> > > adaug flag-ul '-d' comenzii wget, testul trece mereu (am testat cu 100
> > > de rulari succesive, fara '-d' merge foarte rar). Flag-ul acesta ar
> > > trebui doar sa produca mai mult output, dar cumva face mai mult.
> > >
> > > Numai bine,
> > > George
> > >
> > > [1] https://stackoverflow.com/questions/41776718/what-exactly-does-the-q-option-of-netcat-do
> > >
> > > În vin., 17 mai 2019 la 15:12, Razvan Crainea
> > > <razvan.crainea at gmail.com> a scris:
> > > >
> > > > Salut, George!
> > > >
> > > > Poți face un trace pcap (folosind wireshark sau tcpdump) pe portul
> > > > 8888, să vedem exact comunicația TCP între client și server?
> > > >
> > > > Numai bine,
> > > > Răzvan
> > > >
> > > > On Fri, May 17, 2019 at 1:28 AM George Diaconu via so
> > > > <so at cursuri.cs.pub.ro> wrote:
> > > > >
> > > > > Salut,
> > > > >
> > > > > Am o problema la testul 13. Checker-ul executa urmatoarea comanda:
> > > > > echo -ne "GET /static/small00.dat HTTP/1.0\r\n\r\n" | nc -q 1
> > > > > 192.168.169.128 8888
> > > > >
> > > > > Inteleg de aici ca cere fisierul /static/small00.dat.
> > > > > Problema mea este ca dupa ce clientul trimite toata cererea (unesc
> > > > > bucatile trimise de client), server-ul apuca sa parseze cererea, dar
> > > > > apoi client-ul inchide conexiunea fara sa mai astepte raspunsul.
> > > > > Am reusit sa reduc problema la parametrul '-q 1' al comenzii 'nc'. In
> > > > > manual scrie ca acest parametru face ca 'nc' sa mai astepte o secunda
> > > > > dupa ce a primit EOF de la stdin, si apoi se inchide.
> > > > > Am incercat cu '-q 5' si am observat ca server-ul scrie mesajul de la
> > > > > deconectarea cleintului inainte ca 'nc' sa isi termine executia. Asta
> > > > > ma face sa trag concluzia ca nc inchide conexiunea mult prea devreme.
> > > > > Restul testelor de la static merg fara probleme.
> > > > >
> > > > > De asemenea, in momentul in care trimit raspunsul, intai raspund cu
> > > > > HTTP/1.1 200 OK si apoi incep sa trimit fisierul. De asemenea, verific
> > > > > ca raspunsul sa fie trimis in intregime, si trimit pe bucati daca nu
> > > > > poate fi trimis tot o data.
> > > > >
> > > > > Nu inteleg unde gresesc, mai ales ca restul testellor trec fara probleme.
> > > > >
> > > > > Multumesc anticipat.
> > > > > _______________________________________________
> > > > > http://ocw.cs.pub.ro/courses/so/info/lista-discutii
> > > >
> > > >
> > > >
> > > > --
> > > > Răzvan Crainea
> _______________________________________________
> http://ocw.cs.pub.ro/courses/so/info/lista-discutii



-- 
Cu stimă,
Mihai Bărbulescu


More information about the so mailing list