Messages in this thread | | | From | "Albert D. Cahalan" <> | Subject | Re: Client receives TCP packets but does not ACK | Date | Fri, 15 Jun 2001 14:29:16 -0400 (EDT) |
| |
Mike Black writes:
> I'm concerned that you're probably just overruning your IP stack: ... > TCP is NOT a guaranteed protocol -- you can't just blast data from one port > to another and expect it to work.
Yes you can. This is why we have TCP in fact.
> 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).
You do have to check for partial writes due to the UNIX API. Then check for EAGAIN and EINTR at least.
> 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
You don't need that crap. TCP/IP doesn't even fit the OSI model, and we're missing much of the OSI stack AFAIK. (Do we have that thing with 10-byte addresses? I think not.) - 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/
| |