Re: [twsocket] SSL post extremely slow
You never mentioned you were testing the synchronous methods of the component, that is not a fair test of ICS performance, you should be using proper events and the async component methods. I'm observing the same issue with async calls though, did the same test from above but this time with PostAsync, waited for RequestDone: 49 seconds. On Mon, Apr 18, 2016 at 6:06 PM, brian -wrote: > Captured with Microsoft Network Monitor, non-SSL post to my server: > > Synapse: 3.8s http://pasted.co/1f69a8a8 > ICS: 46.5s > https://mega.nz/#!b05jyRzT!hLB8_xKHeHJyRb7nAXcQDM2mv0_RW9uf4y-iN3e6gkc > (too large for text paste sites) > > few lines from each: > > Frame, time, time offset, process, source, destination, protocol, > description, conv id > > SYN > 52017:41:32 2016-Apr-1810.0849405Project1.exe > 192.168.0.2**dest host**TCPTCP:[Continuation to > #474]Flags=...A, SrcPort=58338, DstPort=HTTP(80), PayloadLen=1436, > Seq=61535050 - 61536486, Ack=220751404, Win=258 (scale factor 0x8) = > 66048{TCP:75, IPv4:18} > 52117:41:32 2016-Apr-1810.0849470Project1.exe > 192.168.0.2**dest host**TCPTCP:[Continuation to > #474]Flags=...A, SrcPort=58338, DstPort=HTTP(80), PayloadLen=1436, > Seq=61536486 - 61537922, Ack=220751404, Win=258 (scale factor 0x8) = > 66048{TCP:75, IPv4:18} > 52217:41:32 2016-Apr-1810.1643870Project1.exe**dest > host**192.168.0.2TCPTCP:Flags=...A, SrcPort=HTTP(80), > DstPort=58338, PayloadLen=0, Seq=220751404, Ack=61391450, Win=1167 (scale > factor 0x7) = 149376{TCP:75, IPv4:18} > 52317:41:32 2016-Apr-1810.1644469Project1.exe > 192.168.0.2**dest host**TCPTCP:[Continuation to > #474]Flags=...A, SrcPort=58338, DstPort=HTTP(80), PayloadLen=1436, > Seq=61537922 - 61539358, Ack=220751404, Win=258 (scale factor 0x8) = > 66048{TCP:75, IPv4:18} > 52417:41:32 2016-Apr-1810.1644572Project1.exe > 192.168.0.2**dest host**TCPTCP:[Continuation to > #474]Flags=...A, SrcPort=58338, DstPort=HTTP(80), PayloadLen=1436, > Seq=61539358 - 61540794, Ack=220751404, Win=258 (scale factor 0x8) = > 66048{TCP:75, IPv4:18} > 52517:41:32 2016-Apr-1810.1647476Project1.exe**dest > host**192.168.0.2TCPTCP:Flags=...A, SrcPort=HTTP(80), > DstPort=58338, PayloadLen=0, Seq=220751404, Ack=61394322, Win=1167 (scale > factor 0x7) = 149376{TCP:75, IPv4:18} > 52617:41:32 2016-Apr-1810.1647476Project1.exe**dest > host**192.168.0.2TCPTCP:Flags=...A, SrcPort=HTTP(80), > DstPort=58338, PayloadLen=0, Seq=220751404, Ack=61397194, Win=1167 (scale > factor 0x7) = 149376{TCP:75, IPv4:18} > 52717:41:32 2016-Apr-1810.1647476Project1.exe**dest > host**192.168.0.2TCPTCP:Flags=...A, SrcPort=HTTP(80), > DstPort=58338, PayloadLen=0, Seq=220751404, Ack=61402938, Win=1167 (scale > factor 0x7) = 149376{TCP:75, IPv4:18} > 52817:41:32 2016-Apr-1810.1647731Project1.exe > 192.168.0.2**dest host**TCPTCP:[Continuation to > #474]Flags=...A, SrcPort=58338, DstPort=HTTP(80), PayloadLen=1436, > Seq=61540794 - 61542230, Ack=220751404, Win=258 (scale factor 0x8) = > 66048{TCP:75, IPv4:18} > 52917:41:32 2016-Apr-1810.1647817Project1.exe > 192.168.0.2**dest host**TCPTCP:[Continuation to > #474]Flags=...A, SrcPort=58338, DstPort=HTTP(80), PayloadLen=1436, > Seq=61542230 - 61543666, Ack=220751404, Win=258 (scale factor 0x8) = > 66048{TCP:75, IPv4:18} > > ICS > 225117:50:17 2016-Apr-18177.9631709Project1.exe > 192.168.0.2 **dest host**HTTPHTTP:HTTP Payload, URL: > /test/upload.php {HTTP:289, TCP:288, IPv4:18} > 225217:50:17 2016-Apr-18177.9631750Project1.exe > 192.168.0.2 **dest host**TCPTCP:[Continuation to > #2251]Flags=...AP..., SrcPort=58460, DstPort=HTTP(80), PayloadLen=24, > Seq=458800455 - 458800479, Ack=3147579723, Win=258 (scale factor 0x8) = > 66048{TCP:288, IPv4:18} > 225317:50:17 2016-Apr-18177.9631908Project1.exe > 192.168.0.2 **dest host**HTTPHTTP:HTTP Payload, URL: > /test/upload.php {HTTP:289, TCP:288, IPv4:18} > 225417:50:17 2016-Apr-18177.9631942Project1.exe > 192.168.0.2 **dest host**TCPTCP:[Continuation to > #2253]Flags=...AP..., SrcPort=58460, DstPort=HTTP(80), PayloadLen=24, > Seq=458801915 - 458801939, Ack=3147579723, Win=258 (scale factor 0x8) = > 66048{TCP:288, IPv4:18} > 225517:50:17 2016-Apr-18177.9632252Project1.exe > 192.168.0.2 **dest host**HTTPHTTP:HTTP Payload, URL: > /test/upload.php {HTTP:289, TCP:288, IPv4:18} > 225617:50:17 2016-Apr-18177.9632296Project1.exe > 192.168.0.2 **dest host**TCPTCP:[Continuation to > #2255]Flags=...AP..., SrcPort=58460, DstPort=HTTP(80), PayloadLen=24, > Seq=458803375 - 458803399, Ack=3147579723, Win=258
Re: [twsocket] SSL post extremely slow
> Captured with Microsoft Network Monitor, non-SSL post to my > server: > Synapse: 3.8s http://pasted.co/1f69a8a8 > ICS: 46.5s All these measurements have little value when you are not comparing like with like. After my last message, I assume you have redesigned your ICS application to use async events and not slow sync events. And what buffer sizes? Did you change all the different buffers, including file I/O? Or some or none. For a third time, I will investigate this properly when I have spare time, probably next month. You don't need to keep telling us ICS is slower, we know already. Angus -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
Re: [twsocket] SSL post extremely slow
Captured with Microsoft Network Monitor, non-SSL post to my server: Synapse: 3.8s http://pasted.co/1f69a8a8 ICS: 46.5s https://mega.nz/#!b05jyRzT!hLB8_xKHeHJyRb7nAXcQDM2mv0_RW9uf4y-iN3e6gkc (too large for text paste sites) few lines from each: Frame, time, time offset, process, source, destination, protocol, description, conv id SYN 52017:41:32 2016-Apr-1810.0849405Project1.exe192.168.0.2 **dest host**TCPTCP:[Continuation to #474]Flags=...A, SrcPort=58338, DstPort=HTTP(80), PayloadLen=1436, Seq=61535050 - 61536486, Ack=220751404, Win=258 (scale factor 0x8) = 66048{TCP:75, IPv4:18} 52117:41:32 2016-Apr-1810.0849470Project1.exe192.168.0.2 **dest host**TCPTCP:[Continuation to #474]Flags=...A, SrcPort=58338, DstPort=HTTP(80), PayloadLen=1436, Seq=61536486 - 61537922, Ack=220751404, Win=258 (scale factor 0x8) = 66048{TCP:75, IPv4:18} 52217:41:32 2016-Apr-1810.1643870Project1.exe**dest host**192.168.0.2TCPTCP:Flags=...A, SrcPort=HTTP(80), DstPort=58338, PayloadLen=0, Seq=220751404, Ack=61391450, Win=1167 (scale factor 0x7) = 149376{TCP:75, IPv4:18} 52317:41:32 2016-Apr-1810.1644469Project1.exe192.168.0.2 **dest host**TCPTCP:[Continuation to #474]Flags=...A, SrcPort=58338, DstPort=HTTP(80), PayloadLen=1436, Seq=61537922 - 61539358, Ack=220751404, Win=258 (scale factor 0x8) = 66048{TCP:75, IPv4:18} 52417:41:32 2016-Apr-1810.1644572Project1.exe192.168.0.2 **dest host**TCPTCP:[Continuation to #474]Flags=...A, SrcPort=58338, DstPort=HTTP(80), PayloadLen=1436, Seq=61539358 - 61540794, Ack=220751404, Win=258 (scale factor 0x8) = 66048{TCP:75, IPv4:18} 52517:41:32 2016-Apr-1810.1647476Project1.exe**dest host**192.168.0.2TCPTCP:Flags=...A, SrcPort=HTTP(80), DstPort=58338, PayloadLen=0, Seq=220751404, Ack=61394322, Win=1167 (scale factor 0x7) = 149376{TCP:75, IPv4:18} 52617:41:32 2016-Apr-1810.1647476Project1.exe**dest host**192.168.0.2TCPTCP:Flags=...A, SrcPort=HTTP(80), DstPort=58338, PayloadLen=0, Seq=220751404, Ack=61397194, Win=1167 (scale factor 0x7) = 149376{TCP:75, IPv4:18} 52717:41:32 2016-Apr-1810.1647476Project1.exe**dest host**192.168.0.2TCPTCP:Flags=...A, SrcPort=HTTP(80), DstPort=58338, PayloadLen=0, Seq=220751404, Ack=61402938, Win=1167 (scale factor 0x7) = 149376{TCP:75, IPv4:18} 52817:41:32 2016-Apr-1810.1647731Project1.exe192.168.0.2 **dest host**TCPTCP:[Continuation to #474]Flags=...A, SrcPort=58338, DstPort=HTTP(80), PayloadLen=1436, Seq=61540794 - 61542230, Ack=220751404, Win=258 (scale factor 0x8) = 66048{TCP:75, IPv4:18} 52917:41:32 2016-Apr-1810.1647817Project1.exe192.168.0.2 **dest host**TCPTCP:[Continuation to #474]Flags=...A, SrcPort=58338, DstPort=HTTP(80), PayloadLen=1436, Seq=61542230 - 61543666, Ack=220751404, Win=258 (scale factor 0x8) = 66048{TCP:75, IPv4:18} ICS 225117:50:17 2016-Apr-18177.9631709Project1.exe 192.168.0.2 **dest host**HTTPHTTP:HTTP Payload, URL: /test/upload.php {HTTP:289, TCP:288, IPv4:18} 225217:50:17 2016-Apr-18177.9631750Project1.exe 192.168.0.2 **dest host**TCPTCP:[Continuation to #2251]Flags=...AP..., SrcPort=58460, DstPort=HTTP(80), PayloadLen=24, Seq=458800455 - 458800479, Ack=3147579723, Win=258 (scale factor 0x8) = 66048{TCP:288, IPv4:18} 225317:50:17 2016-Apr-18177.9631908Project1.exe 192.168.0.2 **dest host**HTTPHTTP:HTTP Payload, URL: /test/upload.php {HTTP:289, TCP:288, IPv4:18} 225417:50:17 2016-Apr-18177.9631942Project1.exe 192.168.0.2 **dest host**TCPTCP:[Continuation to #2253]Flags=...AP..., SrcPort=58460, DstPort=HTTP(80), PayloadLen=24, Seq=458801915 - 458801939, Ack=3147579723, Win=258 (scale factor 0x8) = 66048{TCP:288, IPv4:18} 225517:50:17 2016-Apr-18177.9632252Project1.exe 192.168.0.2 **dest host**HTTPHTTP:HTTP Payload, URL: /test/upload.php {HTTP:289, TCP:288, IPv4:18} 225617:50:17 2016-Apr-18177.9632296Project1.exe 192.168.0.2 **dest host**TCPTCP:[Continuation to #2255]Flags=...AP..., SrcPort=58460, DstPort=HTTP(80), PayloadLen=24, Seq=458803375 - 458803399, Ack=3147579723, Win=258 (scale factor 0x8) = 66048{TCP:288, IPv4:18} 225717:50:17 2016-Apr-18177.9632594Project1.exe 192.168.0.2 **dest host**HTTPHTTP:HTTP Payload, URL: /test/upload.php {HTTP:289, TCP:288, IPv4:18} 225817:50:17 2016-Apr-18177.9632631Project1.exe 192.168.0.2 **dest host**TCPTCP:[Continuation to #2257]Flags=...AP..., SrcPort=58460, DstPort=HTTP(80), PayloadLen=24, Seq=458804835 - 458804859, Ack=3147579723, Win=258 (scale factor 0x8) = 66048{TCP:288, IPv4:18} 225917:50:17 2016-Apr-18178.0811555Project1.exe
Re: [twsocket] SSL post extremely slow
> I think the main issue lies on OverbyteIcsHttpProt around > > while FState <> httpReady do begin > > {$IFDEF MSWINDOWS} > > if MsgWaitForMultipleObjects(0, Pointer(nil)^, FALSE, > > 1000, QS_ALLINPUT) = WAIT_OBJECT_0 then > > {$ENDIF} > > MessagePump; You never mentioned you were testing the synchronous methods of the component, that is not a fair test of ICS performance, you should be using proper events and the async component methods. MsgWaitForMultipleObjects has always been known to reduce performance in sync applications, I always override it if using sync versions, such as my TMagFtp and TMagHttp components. But without MsgWaitForMultipleObjects, your application will appear to use 100% CPU (or 50% if two cores, etc) and some users think that is bad, yet other heavy applications will still run fine. Angus -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
Re: [twsocket] SSL post extremely slow
> Do you think there might be an easy solution to this coming soon? > the problem is pretty serious, I would disagree this a serious problem, it might be annoying that your ICS implementation runs slower than some other applications, but it's hardly a major show stopper. HTTP was never designed as a high speed upload protocol, the first T stands for text, FTP is the upload protocol of choice. Our HTTP component was designed 20 years ago when high speeds were unheard of and was not optimised for such use. As I said last week, the HTTP client component needs larger buffers and maybe other minor changes to improve performance, but there are other ICS priorities that are more important. All ICS development is done by volunteers, you need to be patient until people have spare time to respond to your queries. Angus -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
Re: [twsocket] TCP Bridges (Dennis Siggaard)
Hi Dennis, SocketSpy works that way. If a client opens 6 sessions then SocketSpy will open 6 sessions to the other server using 6 TWSocket created on the fly. Met vriendelijke groeten, Wilfried Mestdagh Op 17-04-16 om 15:57 schreef IT+NET - Dennis Siggaard: Hi Wilfried, I have already looked at the SocketSpy example once, but this time I got it to work, Thanks :) But I got one last problem, that I am not sure can be solved at all ? The PC2 webserver is listening (OK) The PC2 TWSocketLocal can connect to the PC2 Webserver (ok) The PC2 TWSocketExt can connect to PC1 TWSocketServerExt (ok) The PC2 TCP bridge is working both ways (ok) (I see the right traffic flowing both ways) The PC1 TWSocketServerExt is listening (OK) The PC1 TWSocketServerLocal is listening (OK) The PC1 TCP bridge is working both ways (ok) (I see the right traffic flowing both ways) When I telnet to PC1:80 then everything seems to be okey traffic is flowing perferctly in both TCP bridges, but... surprise. When I use a webbrowser to connect to PC1:80, it creates multiply connections to PC1:80. (6 connections at the same time) >From my point of view, it would be impossible to bridge these (extra) connections, because there will always only be ONE connection (PC2 TWSocketExt connect to PC1 TWSocketServerExt) Is this an dead end, or can you see something that I can't ? I really spend many hours to get to this point. :( Dennis. -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be