[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

UDP communication



    Date: Thu, 23 Jul 1992 19:02 EDT
    From: robin@ciani.den.mmc.com (Robin Kladke (303-977-9670))

    How do i (1) disable the ACK requirement associated with ...invoke-service...
    so that i can disregard anything sent through this channel and just look
    explicitly at messages received?  
    -- why is an ACK required?  I thought UDP was supposed to be a non-ackd 
    protocol

The ACK is required because Symbolics's generic datagram service was
derived from the Chaosnet datagram facility, which always acks.  They
were both designed with the assumption that they would be used for
low-overhead query/response facilities (i.e. remote procedure calls),
not one-way communication.

To get around the need for an ACK, you can use "futures".  These allow
you to continue execution after transmitting, and later read the
response.  But you can also abort the future before reading the
response.  See NET:START-SERVICE-ACCESS-PATH-FUTURE and related
functions.

    (2) Get the sun to send an ACK in a way that the symbolics will like it.  The
    sun is just using the standard UDP send; is there any UNIX stuff that needs
    to be done that will associate the ACK sent out with the receipt of the 
    packet?

Genera expects the source port of the response to match the destination
port of the request.  And until Genera 8.1, it also required the source
address of the response to match the destination address of the source
(in 8.1 it requires it to match one of the addresses in the destination
host's namespace entry).

                                                barmar