From: "Mike Black" <mblack@csihq.com> To: "Robert Kleemann" <robert@kleemann.org>, <linux-kernel@vger.kernel.org> Subject: Re: Client receives TCP packets but does not ACK Date: Fri, 15 Jun 2001 08:44:36 -0400 [thread overview] Message-ID: <025c01c0f598$f04d0f30$e1de11cc@csihq.com> (raw) In-Reply-To: <Pine.LNX.4.33.0106142028150.1149-100000@localhost.localdomain> Here's the end of my run -- I assume this means my config works OK? I'm on a dual PIII/600 linux-2.4.6-pre3 -- ran it all on the local host. received msg#90, name pad1, 1 blocks, 12 total bytes received msg#91, name pad1, 1 blocks, 12 total bytes received msg#92, name class tande.server.ClientMap, 1624 blocks, 3244 total bytes received msg#93, name pad1, 1 blocks, 12 total bytes received msg#94, name pad1, 1 blocks, 12 total bytes received msg#95, name pad1, 1 blocks, 12 total bytes received msg#96, name class tande.server.ClientMap, 1624 blocks, 3244 total bytes successfully read all blocks I'm concerned that you're probably just overruning your IP stack: foreach $block (@blocks) { print $client $block; $bytes += length($block); } TCP is NOT a guaranteed protocol -- you can't just blast data from one port to another and expect it to work. a tcp-write is NOT guaranteed -- and as you've seen -- a recv() isn't either (that's why you need timeouts). You're probably overrunning the tcp buffer on your "print" statement and truncating a block. I don't see where you're checking for EAGAIN or EWOULDBLOCK (see man send). Not real sure how to do this in perl... You need a layer-7 protocol that will guarantee your transactions -- once you're client acks/naks your server I'll bet everything works hunky-dory. If you're not familiar with the OSI model http://www.csihq.com/~mike/students/networking/iso/isomodel.html ________________________________________ Michael D. Black Principal Engineer mblack@csihq.com 321-676-2923,x203 http://www.csihq.com Computer Science Innovations http://www.csihq.com/~mike My home page FAX 321-676-2355 ----- Original Message ----- From: "Robert Kleemann" <robert@kleemann.org> To: <linux-kernel@vger.kernel.org> Sent: Thursday, June 14, 2001 11:50 PM Subject: Re: Client receives TCP packets but does not ACK A couple people have requested a test case. The problem first showed up in a very large java app. Since then I wrote a small perl program to duplicate the behavior of the large app by sending the same data, in the same order, in the same sized blocks, from the server to the client. If you want to test this on your configuration then download the following two files: http://www.kleemann.org/crap/clientserver http://www.kleemann.org/crap/log1e1.txt Place a copy of the files in the same directory on both the client and the server and run the program the following way: [server]$ ./clientserver -s log1e1.txt listening on port 20001 [client]$ ./clientserver -c serverhostname log1e1.txt The server will attempt to send the data to the client which then verifies each byte received. My client generally stops ack-ing between messages 15 and 25. Robert. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
next prev parent reply other threads:[~2001-06-15 12:44 UTC|newest] Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top 2001-06-13 0:26 Robert Kleemann 2001-06-15 3:50 ` Robert Kleemann 2001-06-15 12:44 ` Mike Black [this message] 2001-06-15 18:29 ` Albert D. Cahalan 2001-06-15 23:10 ` Robert Kleemann 2001-06-16 11:55 ` Mike Black 2001-06-16 23:56 ` Robert Kleemann 2001-06-27 1:04 ` Robert Kleemann [not found] <Pine.LNX.4.33.0106121720310.1152-100000@localhost.localdomain.suse.lists.linux.kernel> 2001-06-13 8:48 ` Andi Kleen 2001-06-13 16:09 ` Robert Kleemann 2001-06-15 12:53 Heusden, Folkert van 2001-06-15 18:27 ` Mike Black 2001-06-15 18:39 ` Gérard Roudier 2001-06-15 19:12 ` Alan Cox 2001-06-17 18:17 ` Pavel Machek 2001-06-17 19:32 ` Alan Cox 2001-06-17 19:40 ` Dan Podeanu [not found] ` <200106172113.f5HLDhJ377473@saturn.cs.uml.edu> 2001-06-17 22:09 ` Dan Podeanu 2001-06-17 22:35 ` dean gaudet 2001-06-18 11:50 ` Jan Hudec 2001-06-18 16:17 ` dean gaudet 2001-06-18 16:48 ` Jonathan Morton 2001-06-18 22:30 ` dean gaudet 2001-06-18 23:43 ` Jonathan Morton 2001-06-19 2:46 ` dean gaudet 2001-06-20 21:01 ` David Schwartz [not found] <E15BiHy-0002xC-00@the-village.bc.nu.suse.lists.linux.kernel> 2001-06-17 20:21 ` Andi Kleen 2001-07-01 21:27 Nivedita Singhvi 2001-07-11 3:43 ` Robert Kleemann
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to='025c01c0f598$f04d0f30$e1de11cc@csihq.com' \ --to=mblack@csihq.com \ --cc=linux-kernel@vger.kernel.org \ --cc=robert@kleemann.org \ --subject='Re: Client receives TCP packets but does not ACK' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).