Re: Pořadí packetů

Jiří Nesvačil nesvacil na posys.eu
Pondělí Květen 9 16:35:33 CEST 2016


Na Api rozhrani nic nepoznate, to si doufam rozumime.

TCP je roura, takze prijimaci strana precte data a pozada o dalsi. Ona nevi kolik. Prijimaci roura posle potvrzeni o prijeti ACK a ceka, ze odesilaci strana posle dalsi data, pokud neposle, tak upozorni a to jsou ty packety navic. Tam je trosku 
zakopano v tech timeoutech.

Jen upozornuji, ze roura je obousmerna tj. vse je x2.

http://packetlife.net/blog/2010/jun/7/understanding-tcp-sequence-acknowledgment-numbers/

Jirka

Dne 9. 5. 2016 v 14:48 Slavomir Skopalik napsal(a):
>
> Jak TCP vyzve protistranu, aby poslala dalsi data?
>
> Obecne, NoDelay funguje (overeno ve vsech typech windows od windows2000 po windows10).
>
> Aby jste vedeli, kolik dat poslat, musi Vam to vyjit presne na MTU, coz muze byt i 10k.
>
> Pokud je to ale o byte vice, jste opet tam, kde jste byl, protoze ten posledni byte zustane trcet ve fronte na odeslani.
>
> Slavek
>
> Ing. Slavomir Skopalik
> Executive Head
> Elekt Labs s.r.o.
> Collection and evaluation of data from machines and laboratories
> by means of system MASA (http://www.elektlabs.cz/m2demo)
> -----------------------------------------------------------------
> Address:
> Elekt Labs s.r.o.
> Chaloupky 158
> 783 72 Velky Tynec
> Czech Republic
> ---------------------------------------------------------------
> Mobile: +420 724 207 851
> icq:199 118 333
> skype:skopaliks
> e-mail:skopalik na elektlabs.cz
> http://www.elektlabs.cz
> On 9.5.2016 13:44, Jiří Nesvačil wrote:
>> Ne u ostatni socketu, ale na stejnem socketu. Tech 200ms je hodne.
>>
>> Na tom samem socketu Vas vzdalena strana v tech 200ms vyzve, at poslete vice dat a vy reagovat nebudete. Nicmene ten Vas tcpi/ip stack v tom embedded MCU musi zaregovat a treba posle pockej nebo prazdny buffer nebo nic. Rozhodne bude prijimat a 
>> zpracovavat.
>>
>> 200ms se mi zda hodne na to cekani.
>>
>> Jak jsem poslal odkaz, tak zde pisi az 3x Vas v tech 200ms v tom Nagle algoritmu vyzve at neco poslete.
>>
>> Ano na vlastnim api to nepoznate, ale zivo zde je.
>>
>> http://smallvoid.com/article/winnt-nagle-algorithm.html
>>
>> Jirka
>>
>>
>> Dne 9. 5. 2016 v 13:09 Slavomir Skopalik napsal(a):
>>>
>>> Ono ani tak nezalezi jak je zivo u ostatnich spojeni.
>>>
>>> Dulezite je, zda ma kazdy send okamzite poslat paket (No Delay option), nebo zda muze ip stack cekat, az se naplni MTU.
>>>
>>> My s tim meli dost velke problemy, jelikoz co verze OS, to jiny IP stack.
>>>
>>> Navic tech 200ms se neuplatnuje u localhostu, takze nekteri programatori "odladili" sw na localhostu s tim, at si to vyresi admin site.
>>>
>>> Ohledne retranslace, tak do Windows 2000 SP2 to byla 1s a delsi, od SP3 to zmenili, ze pokud ACK nedojde v "obvyklem" case, tak se automaticky
>>>
>>> zahaji retranslace. TCP neumi odeslat "nedostal jsem ty data", umi pouze potvrzeni.
>>>
>>> Slavek
>>>
>>> Ing. Slavomir Skopalik
>>> Executive Head
>>> Elekt Labs s.r.o.
>>> Collection and evaluation of data from machines and laboratories
>>> by means of system MASA (http://www.elektlabs.cz/m2demo)
>>> -----------------------------------------------------------------
>>> Address:
>>> Elekt Labs s.r.o.
>>> Chaloupky 158
>>> 783 72 Velky Tynec
>>> Czech Republic
>>> ---------------------------------------------------------------
>>> Mobile: +420 724 207 851
>>> icq:199 118 333
>>> skype:skopaliks
>>> e-mail:skopalik na elektlabs.cz
>>> http://www.elektlabs.cz
>>> On 9.5.2016 12:47, Jiří Nesvačil wrote:
>>>> Tech 200ms je jen optimalizace pro male prenosy, nicmene na siti muze byt zivo. To muze zatezovat CPU nechtene. Tech 200 ms je docela dost, nepamatuji si ty timeouty, ale povidani nedostal jsem data, dodej bude rychlejsi.
>>>>
>>>> http://smallvoid.com/article/winnt-nagle-algorithm.html
>>>>
>>>> Jirka
>>>> Dne 9. 5. 2016 v 11:45 Slavomir Skopalik napsal(a):
>>>>> Je tomu tak pouze v pripade, ze vysledny packet je vetsi, nebo roven MTU, jinak se ceka 200ms.
>>>>> Ve windows si TCP/IP stack detekuje, jak jsou prikazy za sebou.
>>>>>
>>>>> Kod pro synapse, jenz to vypne:
>>>>>
>>>>> function TComThread.SetNoDelay(NoDelay:boolean): boolean;
>>>>> var flag:LongInt;
>>>>> begin
>>>>>   result:=false;
>>>>>   if (not TCP) or (Socket=nil) then exit;
>>>>>   flag:=ord(Nodelay);
>>>>> result:=synsock.SetSockOpt(Socket.Socket,IPPROTO_TCP,TCP_NODELAY, na flag,sizeof(flag))=0;
>>>>> end;
>>>>>
>>>>> Slavek
>>>>>
>>>>>> Dík, prostuduji. Já to dělám tak, že vytvořím string, který obsahuje vše, co mám k odeslání a volám SendString. Předpokládal jsem, že se okamžitě začne odesílat, až se odešle celý řetězec. Není to tak?
>>>>>>
>>>>>> Martin Záruba
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> HW-list mailing list  -  sponsored by www.HW.cz
>>>>> Hw-list na list.hw.cz
>>>>> http://list.hw.cz/mailman/listinfo/hw-list
>>>>
>>>> _______________________________________________
>>>> HW-list mailing list  -  sponsored by www.HW.cz
>>>> Hw-list na list.hw.cz
>>>> http://list.hw.cz/mailman/listinfo/hw-list
>>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> HW-list mailing list  -  sponsored by www.HW.cz
>>> Hw-list na list.hw.cz
>>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>>
>>
>>
>> _______________________________________________
>> HW-list mailing list  -  sponsored bywww.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>
>
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list

------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20160509/14e41962/attachment.html>


Další informace o konferenci Hw-list