📄 spp.4
字号:
.\" Copyright (c) 1985, 1991, 1993.\" The Regents of the University of California. All rights reserved..\".\" Redistribution and use in source and binary forms, with or without.\" modification, are permitted provided that the following conditions.\" are met:.\" 1. Redistributions of source code must retain the above copyright.\" notice, this list of conditions and the following disclaimer..\" 2. Redistributions in binary form must reproduce the above copyright.\" notice, this list of conditions and the following disclaimer in the.\" documentation and/or other materials provided with the distribution..\" 3. All advertising materials mentioning features or use of this software.\" must display the following acknowledgement:.\" This product includes software developed by the University of.\" California, Berkeley and its contributors..\" 4. Neither the name of the University nor the names of its contributors.\" may be used to endorse or promote products derived from this software.\" without specific prior written permission..\".\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION).\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF.\" SUCH DAMAGE..\".\" @(#)spp.4 8.2 (Berkeley) 4/19/94.\".Dd April 19, 1994.Dt SPP 4.Os BSD 4.3.Sh NAME.Nm spp.Nd Xerox Sequenced Packet Protocol.Sh SYNOPSIS.Fd #include <sys/socket.h>.Fd #include <netns/ns.h>.Fd #include <netns/sp.h>.Ft int.Fn socket AF_NS SOCK_STREAM 0.Ft int.Fn socket AF_NS SOCK_SEQPACKET 0.Sh DESCRIPTIONThe.Tn SPPprotocol provides reliable, flow-controlled, two-waytransmission of data. It is a byte-stream protocol used tosupport the.Dv SOCK_STREAMabstraction..Tn SPPuses the standard.Tn NS Ns (tm)address formats..PpSockets utilizing the.Tn SPPprotocol are either.Dq activeor.Dq passive .Active sockets initiate connections to passivesockets. By default.Tn SPPsockets are created active; to create apassive socket the.Xr listen 2system call must be usedafter binding the socket with the.Xr bind 2system call. Onlypassive sockets may use the .Xr accept 2call to accept incoming connections. Only active sockets mayuse the.Xr connect 2call to initiate connections..PpPassive sockets may.Dq underspecifytheir location to matchincoming connection requests from multiple networks. Thistechnique, termed.Dq wildcard addressing ,allows a singleserver to provide service to clients on multiple networks.To create a socket which listens on all networks, the.Tn NSaddress of all zeroes must be bound.The.Tn SPPport may still be specifiedat this time; if the port is not specified the system will assign one.Once a connection has been established the socket's address isfixed by the peer entity's location. The address assigned thesocket is the address associated with the network interfacethrough which packets are being transmitted and received. Normallythis address corresponds to the peer entity's network..PpIf the.Dv SOCK_SEQPACKETsocket type is specified,each packet received has the actual 12 byte sequenced packet headerleft for the user to inspect:.Bd -literal -offset indentstruct sphdr { u_char sp_cc; /* connection control */#define SP_EM 0x10 /* end of message */ u_char sp_dt; /* datastream type */ u_short sp_sid; u_short sp_did; u_short sp_seq; u_short sp_ack; u_short sp_alo;};.Ed.PpThis facilitates the implementation of higher level Xerox protocolswhich make use of the data stream type field and the end of message bit.Conversely, the user is required to supply a 12 byte header,the only part of which inspected is the data stream type and end of messagefields..PpFor either socket type,packets received with the Attention bit sent are interpreted asout of band data. Data sent with.Dq send(..., ..., ..., Dv MSG_OOB )cause the attention bit to be set..Sh DIAGNOSTICSA socket operation may fail with one of the following errors returned:.Bl -tag -width [EADDRNOTAVAIL].It Bq Er EISCONNwhen trying to establish a connection on a socket whichalready has one;.It Bq Er ENOBUFSwhen the system runs out of memory foran internal data structure;.It Bq Er ETIMEDOUTwhen a connection was droppeddue to excessive retransmissions;.It Bq Er ECONNRESETwhen the remote peerforces the connection to be closed;.It Bq Er ECONNREFUSEDwhen the remotepeer actively refuses connection establishment (usually becauseno process is listening to the port);.It Bq Er EADDRINUSEwhen an attemptis made to create a socket with a port which has already beenallocated;.It Bq Er EADDRNOTAVAILwhen an attempt is made to create a socket with a network address for which no network interfaceexists..El.Sh SOCKET OPTIONS.Bl -tag -width SO_DEFAULT_HEADERS.It Dv SO_DEFAULT_HEADERSwhen set, this determines the data stream type and whetherthe end of message bit is to be set on every ensuing packet..It Dv SO_MTUThis specifies the maximum amount of user data in a single packet.The default is 576 bytes - sizeof(struct spidp). This quantityaffects windowing \- increasing it without increasing the amountof buffering in the socket will lower the number of unread packetsaccepted. Anything larger than the default will not be forwardedby a bona fide.Tn XEROXproduct internetwork router.The data argument for the setsockopt call must bean unsigned short..El.Sh SEE ALSO.Xr intro 4 ,.Xr ns 4.Sh HISTORYThe.Nmprotocol appeared in.Bx 4.3 ..Sh BUGSThere should be some way to reflect record boundaries ina stream.For stream mode, there should be an option to get the data stream type ofthe record the user process is about to receive.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -