-/* SHOULD BE PIPSIZ and 0 */
-int unp_sendspace = 1024*2;
-int unp_recvspace = 1024*2;
+/*
+ * We assign all buffering for stream sockets to the source,
+ * as that is where the flow control is implemented.
+ * Datagram sockets really use the sendspace as the maximum datagram size,
+ * and don't really want to reserve the sendspace. Their recvspace should
+ * be large enough for at least one max-size datagram plus address.
+ */
+#define PIPSIZ 4096
+int unpst_sendspace = PIPSIZ;
+int unpst_recvspace = 0;
+int unpdg_sendspace = 2*1024; /* really max datagram size */
+int unpdg_recvspace = 4*1024;