Annotation of 43BSDReno/share/man/man4/tp.4, revision 1.1.1.1

1.1       root        1: .\" Copyright (c) 1990 The Regents of the University of California.
                      2: .\" All rights reserved.
                      3: .\"
                      4: .\" Redistribution and use in source and binary forms are permitted
                      5: .\" provided that: (1) source distributions retain this entire copyright
                      6: .\" notice and comment, and (2) distributions including binaries display
                      7: .\" the following acknowledgement:  ``This product includes software
                      8: .\" developed by the University of California, Berkeley and its contributors''
                      9: .\" in the documentation or other materials provided with the distribution
                     10: .\" and in all advertising materials mentioning features or use of this
                     11: .\" software. Neither the name of the University nor the names of its
                     12: .\" contributors may be used to endorse or promote products derived
                     13: .\" from this software without specific prior written permission.
                     14: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
                     15: .\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
                     16: .\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                     17: .\"
                     18: .\"    @(#)tp.4        6.2 (Berkeley) 5/30/90
                     19: .\"
                     20: .TH TP 4 "May 30, 1990"
                     21: .UC 5
                     22: .SH NAME
                     23: .UC 4
                     24: .SH NAME
                     25: TP \- ISO Transport Protocol
                     26: .SH SYNOPSIS
                     27: .nf
                     28: \fB#include <sys/socket.h>\fR
                     29: \fB#include <netiso/iso_errno.h>\fR
                     30: \fB#include <netiso/tp_param.h>\fR
                     31: \fB#include <netiso/tp_user.h>\fR
                     32: .PP
                     33: \fBs = socket( [ AF_INET, AF_ISO ] , SOCK_SEQPACKET, 0);\fR
                     34: .SH DESCRIPTION
                     35: .PP
                     36: The TP protocol provides reliable, flow-controlled, two-way
                     37: transmission of data and record boundaries. 
                     38: It is a byte-stream protocol and is accessed according to
                     39: the SOCK_SEQPACKET abstraction.
                     40: The TP protocol makes use of a standard ISO address format,
                     41: including a Network Service Access Point, and a Transport Service Entity
                     42: Selector.
                     43: Subclass 4 may make use of the internet
                     44: Internet address format.
                     45: .PP
                     46: Sockets utilizing the tp protocol are either \*(lqactive\*(rq or
                     47: \*(lqpassive\*(rq.  Active sockets initiate connections to passive
                     48: sockets.  By default TCP sockets are created active; to create a
                     49: passive socket the
                     50: .IR listen (2)
                     51: system call must be used
                     52: after binding the socket with the
                     53: .IR bind (2)
                     54: system call.  Only
                     55: passive sockets may use the 
                     56: .IR accept (2)
                     57: call to accept incoming connections.  Only active sockets may
                     58: use the
                     59: .IR connect (2)
                     60: call to initiate connections.
                     61: .PP
                     62: Passive sockets may \*(lqunderspecify\*(rq their location to match
                     63: incoming connection requests from multiple networks.  This
                     64: technique, termed \*(lqwildcard addressing\*(rq, allows a single
                     65: server to provide service to clients on multiple networks.
                     66: To create a socket which listens on all networks, the NSAP portion
                     67: of the bound address must be void (of length zero).
                     68: The Transport Selector may still be specified
                     69: at this time; if the port is not specified the system will assign one.
                     70: Once a connection has been established the socket's address is
                     71: fixed by the peer entity's location.   The address assigned the
                     72: socket is the address associated with the network interface
                     73: through which packets are being transmitted and received.
                     74: .PP
                     75: The ISO Transport Protocol implemented for AOS R2
                     76: at the University of Wisconsin - Madison,
                     77: and modified for inclusion in the Berkeley Software Distribution,
                     78: includes classes 0 and 4 
                     79: of the ISO transport protocols
                     80: as specified in
                     81: the June 1986 version of IS 8073.
                     82: Class 4 of the protocol provides reliable, sequenced,
                     83: flow-controlled, two-way
                     84: transmission of data packets with an alternate stop-and-wait data path called
                     85: the "expedited data" service.
                     86: Class 0 is essentially a null transport protocol, which is used
                     87: when the underlying network service provides reliable, sequenced,
                     88: flow-controlled, two-way data transmission.
                     89: Class 0 does not provide the expedited data service.
                     90: The protocols are implemented as a single transport layer entity 
                     91: that coexists with the Internet protocol suite.
                     92: Class 0 may be used only in the ISO domain.
                     93: Class 4 may be used in the Internet domain as well as in the ISO domain.
                     94: .PP
                     95: Two system calls were modified from the previous
                     96: release of the Berkeley Software Distribution
                     97: to permit the support the end-of-transport-service-data-unit (EOTSDU)
                     98: indication, and for the receipt and transmission of user
                     99: connect, confirm, and disconnect data.
                    100: See \fIsendmsg(2)\fR and \fIrecmsgv(2)\fR, and further discussion
                    101: below for the formats of the data in the ancillary data buffer.
                    102: If the EOTSDU is not needed, the normal
                    103: .IR read (2),
                    104: and
                    105: .IR write (2)
                    106: system calls may be used.
                    107: .PP
                    108: Through the 
                    109: \fIgetsockopt\fR and \fIsetsockopt\fR
                    110: system calls,
                    111: TP supports several options 
                    112: to control such things as negotiable options
                    113: in the protocol and protocol strategies.
                    114: The options are defined in \fB<netiso/tp_user.h>\fR,
                    115: and are described below.
                    116: .\".PP
                    117: .\"The options marked with a percent sign ( \fB%\fR )
                    118: .\"are limited to use by the super-user.
                    119: .PP
                    120: In the tables below,
                    121: the options marked with a pound sign ( \fB#\fR )
                    122: may be used 
                    123: with \fIsetsockopt()\fR
                    124: after a connection is established.
                    125: Others must be used before the connection
                    126: is established, in other words,
                    127: before calling
                    128: \fIconnect()\fR or 
                    129: \fIaccept()\fR.
                    130: All options may be used 
                    131: with \fIgetsockopt()\fR
                    132: before or
                    133: after a connection is established.
                    134: .\"
                    135: .\" .PP
                    136: .\" The options marked with an exclamation point ( \fB!\fR )
                    137: .\" may be used after a connection is released,
                    138: .\" but before 
                    139: .\" the TP reference timer (which generally
                    140: .\" has a value in minutes) expires, and before
                    141: .\" a \fIclose()\fR system call.
                    142: .\" In other words, these commands may be used when the peer closes
                    143: .\" a connection (possibly causing a disconnect indication), as long as the command
                    144: .\" is issued "soon" after the disconnection occurred.  
                    145: .sp 1
                    146: .TP 25
                    147: \fBName\fR
                    148: \fBValue [default]\fR
                    149: .IP
                    150: \fBDescription\fR
                    151: .TP 25
                    152: TPOPT_CONN_DATA
                    153: (char *) [none]
                    154: .IP
                    155: Data to send on \fIconnect()\fR.
                    156: The passive user may issue a
                    157: .IR getsockopt ()
                    158: call to retrieve a connection request's user data,
                    159: after having done the
                    160: .IR accept ()
                    161: system call without implying confirmation of the connection.
                    162: .IP
                    163: The data may also be retrieved by issuing a
                    164: .IR recvmsg ()
                    165: request for ancillary data only,
                    166: without implying confirmation of the connection.
                    167: The returned cmsghdr will contain SOL_TRANSPORT for the csmg_level
                    168: and TPOPT_CONN_DATA for cmsg_type.
                    169: .TP 25
                    170: TPOPT_DISC_DATA\fB #\fR
                    171: (char *) [none]
                    172: .IP
                    173: Data to send on \fIclose()\fR.
                    174: Disconnect data may be sent by the side initiating the close
                    175: but not by the passive side ("passive" with respect to the closing
                    176: of the connection), so there is no need to read disconnect data
                    177: after calling \fIclose()\fR.
                    178: This may be sent by a
                    179: .IR setsockopt ()
                    180: system call, or by issuing a
                    181: .IR sendmsg ()
                    182: request specifying ancillary data only.
                    183: The user-provided cmsghdr must contain SOL_TRANSPORT for csmg_level
                    184: and TPOPT_DISC_DATA for cmsg_type.
                    185: Sending of disconnect data will in of itself tear down (or reject)
                    186: the connection.
                    187: .TP 25
                    188: TPOPT_CFRM_DATA\fB #\fR
                    189: (char *) [none]
                    190: .IP
                    191: Data to send when confirming a connection.
                    192: This may aslo be sent by a 
                    193: .IR setsockopt ()
                    194: system call, or by issuing a
                    195: .IR sendmsg ()
                    196: request, as above.
                    197: Sending of connect confirm data will cause the connection
                    198: to be confirmed rather than rejected.
                    199: .\".TP 25
                    200: .\"TPOPT_CDDATA_CLEAR\fB #\fR
                    201: .\"No associated value.
                    202: .\".IP
                    203: .\"Erase outgoing connect or disconnect data.
                    204: .TP 25
                    205: TPOPT_PERF_MEAS\fB #\fR
                    206: Boolean.
                    207: .IP
                    208: When \fBtrue\fR, performance measurements will be kept
                    209: for this connection.  
                    210: When set before a connection is established, the
                    211: active side will use a locally defined parameter on the
                    212: connect request packet; if the peer is another ARGO
                    213: implementation, this will cause performance measurement to be
                    214: turned on 
                    215: on the passive side as well.
                    216: See \fItpperf(8)\fR.
                    217: .TP 25
                    218: TPOPT_PSTATISTICS\fB\fR
                    219: No associated value on input.
                    220: On output, struct tp_pmeas.
                    221: .IP
                    222: This command is used to read the performance statistics accumulated
                    223: during a connection's lifetime.
                    224: It can only be used with \fIgetsockopt()\fR.
                    225: The structure it returns is described in \fB<netiso/tp_stat.h>\fR.
                    226: See \fItpperf(8)\fR.
                    227: .TP 25
                    228: TPOPT_FLAGS
                    229: unsigned integer. [ 0x0 ]
                    230: .IP
                    231: This command can only be used with \fIgetsockopt()\fR.
                    232: See the description of the flags below.
                    233: .TP 25
                    234: TPOPT_PARAMS\fB\fR
                    235: struct tp_conn_param.
                    236: .IP
                    237: Used to get or set a group parameters for a connection.
                    238: The struct tp_conn_param is the argument used with the
                    239: \fIgetsockopt()\fR or \fIsetsockopt()\fR system call. 
                    240: It is described in 
                    241: \fB<netiso/tp_user.h>\fR.
                    242: .PP
                    243: The fields of the \fItp_conn_param\fR structure are
                    244: described below.
                    245: .nf
                    246: .sp 1
                    247: \fIValues for TPOPT_PARAMS:\fR
                    248: .fi
                    249: .TP 25
                    250: \fBField\fR
                    251: \fBValue [default]\fR
                    252: .IP
                    253: \fBDescription\fR
                    254: .\" ******************8
                    255: .TP 25
                    256: p_Nretrans
                    257: nonzero short integer [ 1 ]
                    258: .IP
                    259: Number of times a TPDU will be retransmitted before the
                    260: local TP entity closes a connection.
                    261: .\" ******************8
                    262: .TP 25
                    263: p_dr_ticks
                    264: nonzero short integer [ various ]
                    265: .IP
                    266: Number of clock ticks between retransmissions of disconnect request TPDUs.
                    267: .\" ******************8
                    268: .TP 25
                    269: p_dt_ticks
                    270: nonzero short integer [ various ]
                    271: .IP
                    272: Number of clock ticks between retransmissions of data TPDUs.
                    273: This parameter applies only to class 4.
                    274: .\" ******************8
                    275: .TP 25
                    276: p_cr_ticks
                    277: nonzero short integer [ various ]
                    278: .IP
                    279: Number of clock ticks between retransmissions of connection request TPDUs.
                    280: .\" ******************8
                    281: .TP 25
                    282: p_cc_ticks
                    283: nonzero short integer [ various ]
                    284: .IP
                    285: Number of clock ticks between retransmissions of connection confirm TPDUs.
                    286: This parameter applies only to class 4.
                    287: .\" ******************8
                    288: .TP 25
                    289: p_x_ticks
                    290: nonzero short integer [ various ]
                    291: .IP
                    292: Number of clock ticks between retransmissions of expedited data TPDUs.
                    293: This parameter applies only to class 4.
                    294: .\" ******************8
                    295: .TP 25
                    296: p_sendack_ticks
                    297: nonzero short integer [ various ]
                    298: .IP
                    299: Number of clock ticks that the local TP entity
                    300: will wait before sending an acknowledgment for normal data
                    301: (not applicable if the acknowlegement strategy is TPACK_EACH).
                    302: This parameter applies only to class 4.
                    303: .\" ******************8
                    304: .TP 25
                    305: p_ref_ticks
                    306: nonzero short integer [ various ]
                    307: .IP
                    308: Number of clock ticks for which a reference will
                    309: be considered frozen after the connection to which
                    310: it applied is closed.
                    311: This parameter applies to classes 4 and 0 in the 
                    312: ARGO implementation, despite the fact that
                    313: the frozen reference function is required only for
                    314: class 4.
                    315: .\" ******************8
                    316: .TP 25
                    317: p_inact_ticks
                    318: nonzero short integer [ various ]
                    319: .IP
                    320: Number of clock ticks without an incoming packet from the peer after which 
                    321: TP close the connection.
                    322: This parameter applies only to class 4.
                    323: .\" ******************8
                    324: .TP 25
                    325: p_keepalive_ticks
                    326: nonzero short integer [ various ]
                    327: .IP
                    328: nonzero short integer [ various ]
                    329: Number of clock ticks between acknowledgments that are sent
                    330: to keep an inactive connection open (to prevent the peer's
                    331: inactivity control function from closing the connection).
                    332: This parameter applies only to class 4.
                    333: .\" ******************8
                    334: .TP 25
                    335: p_winsize
                    336: short integer between 128 and 16384. [4096 bytes]
                    337: .IP
                    338: The buffer space limits in bytes for incoming and outgoing data.
                    339: There is no way to specify different limits for incoming and outgoing
                    340: paths.
                    341: The actual window size at any time
                    342: during the lifetime of a connection
                    343: is a function of the buffer size limit, the negotiated
                    344: maximum TPDU size, and the 
                    345: rate at which the user program receives data.
                    346: This parameter applies only to class 4.
                    347: .\" ******************8
                    348: .TP 25
                    349: p_tpdusize
                    350: unsigned char between 0x7 and 0xd. 
                    351: [ 0xc for class 4 ] [ 0xb for class 0 ]
                    352: .IP
                    353: Log 2 of the maximum TPDU size to be negotiated.
                    354: The TP standard (ISO 8473) gives an upper bound of 
                    355: 0xd for class 4 and 0xb for class 0.
                    356: The ARGO implementation places upper bounds of
                    357: 0xc on class 4 and 0xb on class 0.
                    358: .\" ******************8
                    359: .TP 25
                    360: p_ack_strat
                    361: TPACK_EACH or TPACK_WINDOW.  [ TPACK_WINDOW ]
                    362: .IP
                    363: This parameter applies only to class 4.
                    364: Two acknowledgment strategies are supported:
                    365: .IP
                    366: TPACK_EACH means that each data TPDU is acknowledged
                    367: with an AK TPDU.
                    368: .IP
                    369: TPACK_WINDOW
                    370: means that upon receipt of the packet that represents
                    371: the high edge of the last window advertised, and AK TPDU is generated.
                    372: .\" ******************8
                    373: .TP 25
                    374: p_rx_strat
                    375: 4 bit mask
                    376: [ TPRX_USE_CW | TPRX_FASTSTART over
                    377: connectionless network protocols ]
                    378: [ TPRX_USE_CW over
                    379: connection-oriented network protocols ]
                    380: .IP
                    381: This parameter applies only to class 4.
                    382: The bit mask may include the following values:
                    383: .IP
                    384: TPRX_EACH: When a retransmission timer expires, retransmit
                    385: each packet in the send window rather than
                    386: just the first unacknowledged packet.
                    387: .IP
                    388: TPRX_USE_CW: Use a "congestion window" strategy borrowed
                    389: from Van Jacobson's congestion window strategy for TCP.
                    390: The congestion window size is set to one whenever
                    391: a retransmission occurs.
                    392: .IP
                    393: TPRX_FASTSTART: Begin sending the maximum amount of data permitted
                    394: by the peer (subject to availability).
                    395: The alternative is to start sending slowly by 
                    396: pretending the peer's window is smaller than it is, and letting
                    397: it slowly grow up to the real peer's window size.
                    398: This is to smooth the effect of new connections on a congested network
                    399: by preventing a transport connection from suddenly 
                    400: overloading the network with a burst of packets.
                    401: This strategy is also due to Van Jacobson.
                    402: .\" ******************8
                    403: .TP 25
                    404: p_class
                    405: 5 bit mask
                    406: [ TP_CLASS_4 | TP_CLASS_0 ]
                    407: .IP
                    408: Bit mask including one or both of the values TP_CLASS_4 and TP_CLASS_0.
                    409: The higher class indicated is the preferred class.
                    410: If only one class is indicated, negotiation will not occur
                    411: during connection establishment.
                    412: .\" ******************8
                    413: .TP 25
                    414: p_xtd_format
                    415: Boolean.
                    416: [ false ]
                    417: .IP
                    418: Boolean indicating that extended format shall be negotiated.
                    419: This parameter applies only to class 4.
                    420: .\" ******************8
                    421: .TP 25
                    422: p_xpd_service
                    423: Boolean.
                    424: [ true ]
                    425: .IP
                    426: Boolean indicating that 
                    427: the expedited data transport service will be negotiated.
                    428: This parameter applies only to class 4.
                    429: .\" ******************8
                    430: .TP 25
                    431: p_use_checksum
                    432: Boolean.
                    433: [ true ]
                    434: .IP
                    435: Boolean indicating the the use of checksums will be negotiated.
                    436: This parameter applies only to class 4.
                    437: .\" ******************8
                    438: .TP 25
                    439: p_use_nxpd
                    440: Reserved for future use.
                    441: .\" ******************8
                    442: .TP 25
                    443: p_use_rcc
                    444: Reserved for future use.
                    445: .\" ******************8
                    446: .TP 25
                    447: p_use_efc
                    448: Reserved for future use.
                    449: .\" ******************8
                    450: .TP 25
                    451: p_no_disc_indications
                    452: Boolean.
                    453: [ false ]
                    454: .IP
                    455: Boolean indicating that the local TP entity shall not issue
                    456: indications (signals) when a TP connection is disconnected.
                    457: .\" ******************8
                    458: .TP 25
                    459: p_dont_change_params
                    460: Boolean.
                    461: [ false ]
                    462: .IP
                    463: If \fBtrue\fR the TP entity will not override
                    464: any of the other values given in this structure.
                    465: If the values cannot be used, the TP entity will drop, disconnect,
                    466: or refuse to establish the connection to which this structure pertains.
                    467: .\" ******************8
                    468: .TP 25
                    469: p_netservice
                    470: One of { ISO_CLNS, ISO_CONS, ISO_COSNS, IN_CLNS }.
                    471: [ ISO_CLNS ]
                    472: .IP
                    473: Indicates which network service is to be used.
                    474: .IP
                    475: ISO_CLNS indicates the connectionless network service provided
                    476: by CLNP (ISO 8473).
                    477: .IP
                    478: ISO_CONS indicates the connection-oriented network service provided
                    479: by X.25 (ISO 8208) and ISO 8878.
                    480: .IP
                    481: ISO_COSNS indicates the 
                    482: connectionless network service running over a
                    483: connection-oriented subnetwork service : CLNP (ISO 8473) over X.25 (ISO 8208).
                    484: .IP
                    485: IN_CLNS indicates the 
                    486: DARPA Internet connectionless network service provided by IP (RFC 791).
                    487: .\" ******************8
                    488: .TP 25
                    489: p_dummy
                    490: Reserved for future use.
                    491: .sp 1
                    492: .PP
                    493: The TPOPT_FLAGS option is used for obtaining
                    494: various boolean-valued options.
                    495: Its meaning is as follows.
                    496: The bit numbering used is that of the RT PC, which means that bit
                    497: 0 is the most significant bit, while bit 8 is the least significant bit.
                    498: .nf
                    499: .sp 1
                    500: \fIValues for TPOPT_FLAGS:\fR
                    501: .fi
                    502: .TP 10
                    503: \fBBits\fR
                    504: \fBDescription [Default]\fR
                    505: .TP 10
                    506: 0
                    507: TPFLAG_NLQOS_PDN : set when the quality of the 
                    508: network service is
                    509: similar to that of a public data network.
                    510: .TP 10
                    511: 1
                    512: TPFLAG_PEER_ON_SAMENET : set when the peer TP entity
                    513: is considered to be on the same network as the local
                    514: TP entity.
                    515: .TP 10
                    516: 2
                    517: Not used.
                    518: .TP 10
                    519: 3
                    520: TPFLAG_XPD_PRES : set when expedited data are present
                    521: [ 0 ]
                    522: .TP 10
                    523: 4..7
                    524: Reserved.
                    525: .\".TP 10
                    526: .\"4
                    527: .\"Reserved.
                    528: .\".TP 10
                    529: .\"5
                    530: .\"TPFLAG_DISC_DATA_IN : read only flag, if set indicates that
                    531: .\"data from a disconnect TPDU are present.
                    532: .\".TP 10
                    533: .\"6
                    534: .\"Reserved.
                    535: .\".TP 10
                    536: .\"7
                    537: .\"TPFLAG_CONN_DATA_IN : read only flag, if set indicates that
                    538: .\"data from a connect TPDU are present.
                    539: .SH "ERROR VALUES
                    540: .PP
                    541: The TP entity returns \fIerrno\fR error values as defined in
                    542: \fB<sys/errno.h>\fR
                    543: and
                    544: \fB<netiso/iso_errno.h>\fR.
                    545: User programs may print messages associated with these value by
                    546: using an expanded version of \fIperror()\fR
                    547: found in the ISO library, \fIlibisodir.a\fR.
                    548: .PP
                    549: If the TP entity encounters asynchronous events
                    550: that will cause a transport connection to be closed,
                    551: such as
                    552: timing out while retransmitting a connect request TPDU,
                    553: or receiving a DR TPDU,
                    554: the TP entity issues a SIGURG signal, indicating that
                    555: disconnection has occurred.
                    556: If the signal is issued during a 
                    557: a system call, the system call may be interrupted,
                    558: in which case the
                    559: \fIerrno\fR value upon return from the system call is EINTR.
                    560: If the signal SIGURG
                    561: is being handled by reading
                    562: from the socket, and it was a \fIaccept()\fR that
                    563: timed out, the read may result in ENOTSOCK,
                    564: because the \fIaccept()\fR call had not yet returned a
                    565: legitimate socket descriptor when the signal was handled.
                    566: ETIMEDOUT (or a some other errno value appropriate to the
                    567: type of error) is returned if SIGURG is blocked
                    568: for the duration of the system call.
                    569: A user program should take one of the following approaches:
                    570: .IP "Block SIGURG." 5
                    571: If the program is servicing
                    572: only one connection, it can block or ignore SIGURG during connection 
                    573: establishment.
                    574: The advantage of this is that the \fIerrno\fR value
                    575: returned is somewhat meaningful.
                    576: The disadvantage of this is that
                    577: if ignored, disconnection and expedited data indications could be
                    578: missed.
                    579: For some programs this is not a problem.
                    580: .IP "Handle SIGURG." 5
                    581: If the program is servicing more than one connection at a time
                    582: or expedited data may arrive or both, the program may elect to
                    583: service SIGURG.
                    584: It can use the \fIgetsockopt(...TPOPT_FLAGS...)\fR system 
                    585: call to see if the signal
                    586: was due to the arrival of expedited data or due to a disconnection.
                    587: In the latter case, 
                    588: \fIgetsockopt()\fR
                    589: will return ENOTCONN.
                    590: .SH BUGS
                    591: .PP
                    592: The protocol definition of expedited data is slightly problematic,
                    593: in a way that renders expedited data almost useless,
                    594: if two or more packets of expedited data are send within
                    595: time 
                    596: \(*e,
                    597: where \(*e
                    598: depends on the application.
                    599: The problem is not of major significance since most applications
                    600: do not use transport expedited data.
                    601: The problem is this:
                    602: the expedited data acknowledgment TPDU has no field for conveying
                    603: credit, thus it is not possible for a TP entity to inform its peer
                    604: that "I received your expedited data but have no room to receive more."
                    605: The TP entity has the choice of acknowledging receipt of the
                    606: XPD TPDU 
                    607: .TP 10
                    608: when the user receives the XPD TSDU
                    609: which may be a fairly long time,
                    610: which may cause the sending TP entity to retransmit the packet,
                    611: and possibly to close the connection after retransmission, or
                    612: .TP 10
                    613: when the TP entity receives it
                    614: so the sending entity does not retransmit or close the connection.
                    615: If the sending user then tries to send more expedited data
                    616: "soon", the expedited data will not be acknowledged (until the
                    617: receiving user receives the first XPD TSDU).
                    618: .PP
                    619: The ARGO implementation acknowledges XPD TPDUs immediately,
                    620: in the hope that most users will not use expedited data requently
                    621: enough for this to be a problem.
                    622: .SH SEE ALSO
                    623: .PP
                    624: tcp(4), 
                    625: netstat(1),
                    626: iso(4), clnp(4), 
                    627: cltp(4),
                    628: ifconfig(8)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.