Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!cornell!uw-beaver!rice!sun-spots-request From: barmar@think.com (Barry Margolin) Newsgroups: comp.sys.sun Subject: Re: How does SUNRPC/UDP work? Keywords: SunOS Message-ID: <1902@brazos.Rice.edu> Date: 2 Oct 89 05:05:36 GMT Sender: root@rice.edu Organization: Sun-Spots Lines: 22 Approved: Sun-Spots@rice.edu X-Sun-Spots-Digest: Volume 8, Issue 151, message 1 of 15 In article <1843@brazos.Rice.edu> murthy@thir.cs.cornell.edu (Chet Murthy) writes: >X-Sun-Spots-Digest: Volume 8, Issue 148, message 4 of 10 >Second, if SUNRPC/UDP does allow arbitrary (or long) length messages, does >it allow multiple messages to be read in at the same time, so that, for >example, if one server is receiving two UDP messages simultaneously, and >one of them client machines dies in the middle of the message, the server >can still read the rest of the other message - it doesn't hang waiting for >the message from the other client, and it doesn't need to wait for a >timeout. I don't know offhand if it allows arbitrary length messages, but it does allow long messages. They are packed into a single UDP packet, which is packed into a single IP datagram, so the limit is on the size of the receiver's IP datagram reassembly buffer. The higher layers (UDP, RPC, application) don't see partial RPC messages; they see nothing until the entire message has been received. There's no blocking of messages when partial datagrams have been received; datagrams are filled in as packets are received, and when a datagram is complete it is forwarded to the higher layers. Barry Margolin, Thinking Machines Corp. barmar@think.com {uunet,harvard}!think!barmar