Lines Matching full:socket
37 layers correspond to the services provided by the socket
43 of the appropriate socket abstraction.
48 Socket layer
50 The socket layer deals with the interprocess communication
51 facilities provided by the system. A socket is a bidirectional
57 A socket consists of the following data structure:
60 struct socket {
62 short so_options; /* from socket call */
67 struct socket *so_head; /* back pointer to accept socket */
68 struct socket *so_q0; /* queue of partial connections */
70 struct socket *so_q; /* queue of incoming connections */
82 Each socket contains two data queues, \fIso_rcv\fP and \fIso_snd\fP,
84 The type of the socket,
85 \fIso_type\fP is defined at socket creation time and used in selecting
87 protocol is selected at socket creation time and recorded in
88 the socket data structure for later use. Protocols are defined
92 the ``protocol control block,'' is also present in the socket structure.
94 back pointer to the parent socket structure to allow easy
97 field). The other entries in the socket structure are used in
99 socket characteristics (e.g.
100 options supplied at the time a socket is created), and maintaining
101 a socket's state.
103 Processes ``rendezvous at a socket'' in many instances. For instance,
104 when a process wishes to extract data from a socket's receive queue
108 for the process and is placed in the socket's queue, the blocked
111 Socket state
113 A socket's state is defined from the following:
117 #define SS_ISCONNECTED 0x002 /* socket connected to a peer */
129 The state of a socket is manipulated both by the protocols
131 When a socket is created, the state is defined based on the type of socket.
143 related to the socket, the SIGIO signal is posted to the process
145 An event is a change in the socket's state;
150 A socket may be marked ``privileged'' if it was created by the
155 Socket data queues
157 A socket's data queue contains a pointer to the data stored in
180 The socket routines cooperate in implementing the flow control
190 When a socket is created, the supporting protocol ``reserves'' space
191 for the send and receive queues of the socket.
196 socket queue may fluctuate during a socket's lifetime, but it is assumed
200 The timeout and select values are manipulated by the socket routines
204 Data queued at a socket is stored in one of two styles.
224 A socket queue has a number of flags used in synchronizing access
237 Socket connection queuing
244 From the passive side, a socket is marked with
250 a socket structure queued on \fIso_q0\fP by calling the routine
252 is established, the socket structure is then transferred
255 If an SO_ACCEPTCONN socket is closed with sockets on either
261 Each socket is created in a communications domain,
263 and a set of protocols which implement various socket types within the domain
285 for externalization of access rights at the receiving socket
289 socket-visible characteristics, some of which are used in
290 deciding which socket type(s) they may support.
297 short pr_type; /* socket type used for */
300 short pr_flags; /* socket visible attributes */
333 The \fIpr_usrreq\fP routine interfaces protocols to the socket
346 flag so that the socket routines will never attempt to send data
348 is set, the socket routines will notify the protocol when the user
349 has removed data from the socket's receive queue. This allows
353 data placed in the socket's receive queue will be preceded by the
361 When a socket is created, the socket routines scan the protocol
364 socket being created. The \fIpr_type\fP field contains one of the
365 possible socket types (e.g. SOCK_STREAM), while the \fIpr_domain\fP
386 The address is set at boot time using an \fIioctl\fP on a socket