tcp.4p (11994f6f6fa6fc668363b92c6b6ef60b2e75ebd6) tcp.4p (1edba515a3484e0f74b638b203d462b3112ac84d)
1'\"
1.\"
2.\" This file and its contents are supplied under the terms of the
3.\" Common Development and Distribution License ("CDDL"), version 1.0.
4.\" You may only use this file in accordance with the terms of version
5.\" 1.0 of the CDDL.
6.\"
7.\" A full copy of the text of the CDDL should have accompanied this
8.\" source. A copy of the CDDL is also available via the Internet at
9.\" http://www.illumos.org/license/CDDL.
10.\"
11.\"
12.\" Copyright (c) 2006, Sun Microsystems, Inc. All Rights Reserved.
13.\" Copyright (c) 2011 Nexenta Systems, Inc. All rights reserved.
14.\" Copyright 2019 Joyent, Inc.
2.\" This file and its contents are supplied under the terms of the
3.\" Common Development and Distribution License ("CDDL"), version 1.0.
4.\" You may only use this file in accordance with the terms of version
5.\" 1.0 of the CDDL.
6.\"
7.\" A full copy of the text of the CDDL should have accompanied this
8.\" source. A copy of the CDDL is also available via the Internet at
9.\" http://www.illumos.org/license/CDDL.
10.\"
11.\"
12.\" Copyright (c) 2006, Sun Microsystems, Inc. All Rights Reserved.
13.\" Copyright (c) 2011 Nexenta Systems, Inc. All rights reserved.
14.\" Copyright 2019 Joyent, Inc.
15.\" Copyright 2022 Oxide Computer Company
15.\" Copyright 2024 Oxide Computer Company
16.\" Copyright 1989 AT&T
17.\"
16.\" Copyright 1989 AT&T
17.\"
18.Dd December 2, 2023
18.Dd April 17, 2024
19.Dt TCP 4P
20.Os
21.Sh NAME
22.Nm tcp ,
23.Nm TCP
24.Nd Internet Transmission Control Protocol
25.Sh SYNOPSIS
26.In sys/socket.h

--- 4 unchanged lines hidden (view full) ---

31s = socket(AF_INET6, SOCK_STREAM, 0);
32t = t_open("/dev/tcp", O_RDWR);
33t = t_open("/dev/tcp6", O_RDWR);
34.Ed
35.Sh DESCRIPTION
36TCP is the virtual circuit protocol of the Internet protocol family.
37It provides reliable, flow-controlled, in-order, two-way transmission of data.
38It is a byte-stream protocol layered above the Internet Protocol
19.Dt TCP 4P
20.Os
21.Sh NAME
22.Nm tcp ,
23.Nm TCP
24.Nd Internet Transmission Control Protocol
25.Sh SYNOPSIS
26.In sys/socket.h

--- 4 unchanged lines hidden (view full) ---

31s = socket(AF_INET6, SOCK_STREAM, 0);
32t = t_open("/dev/tcp", O_RDWR);
33t = t_open("/dev/tcp6", O_RDWR);
34.Ed
35.Sh DESCRIPTION
36TCP is the virtual circuit protocol of the Internet protocol family.
37It provides reliable, flow-controlled, in-order, two-way transmission of data.
38It is a byte-stream protocol layered above the Internet Protocol
39.Po Sy IP Pc ,
39.Pq Sy IP ,
40or the Internet Protocol Version 6
40or the Internet Protocol Version 6
41.Po Sy IPv6 Pc ,
41.Pq Sy IPv6 ,
42the Internet protocol family's
43internetwork datagram delivery protocol.
44.Pp
45Programs can access TCP using the socket interface as a
46.Dv SOCK_STREAM
47socket type, or using the Transport Level Interface
42the Internet protocol family's
43internetwork datagram delivery protocol.
44.Pp
45Programs can access TCP using the socket interface as a
46.Dv SOCK_STREAM
47socket type, or using the Transport Level Interface
48.Po Sy TLI Pc
48.Pq Sy TLI
49where it supports the connection-oriented
49where it supports the connection-oriented
50.Po Dv BT_COTS_ORD Pc
50.Pq Dv BT_COTS_ORD
51service type.
52.Pp
53A checksum over all data helps TCP provide reliable communication.
54Using a window-based flow control mechanism that makes use of positive
55acknowledgements, sequence numbers, and a retransmission strategy, TCP can
56usually recover when datagrams are damaged, delayed, duplicated or delivered
57out of order by the underlying medium.
58.Pp

--- 16 unchanged lines hidden (view full) ---

75.Ss "Listening And Connecting"
76TCP uses IP's host-level addressing and adds its own per-host
77collection of
78.Dq port addresses .
79The endpoints of a TCP connection are
80identified by the combination of an IPv4 or IPv6 address and a TCP
81port number.
82Although other protocols, such as the User Datagram Protocol
51service type.
52.Pp
53A checksum over all data helps TCP provide reliable communication.
54Using a window-based flow control mechanism that makes use of positive
55acknowledgements, sequence numbers, and a retransmission strategy, TCP can
56usually recover when datagrams are damaged, delayed, duplicated or delivered
57out of order by the underlying medium.
58.Pp

--- 16 unchanged lines hidden (view full) ---

75.Ss "Listening And Connecting"
76TCP uses IP's host-level addressing and adds its own per-host
77collection of
78.Dq port addresses .
79The endpoints of a TCP connection are
80identified by the combination of an IPv4 or IPv6 address and a TCP
81port number.
82Although other protocols, such as the User Datagram Protocol
83.Po Sy UDP Pc ,
83.Pq Sy UDP ,
84may use the same host and port address format, the port space of these
85protocols is distinct.
86See
87.Xr inet 4P
88and
89.Xr inet6 4P
90for details on
91the common aspects of addressing in the Internet protocol family.

--- 25 unchanged lines hidden (view full) ---

117call after binding to initiate connections.
118.Pp
119If incoming connection requests include an IP source route option, then the
120reverse source route will be used when responding.
121.Pp
122By using the special value
123.Dv INADDR_ANY
124with IPv4, or the unspecified
84may use the same host and port address format, the port space of these
85protocols is distinct.
86See
87.Xr inet 4P
88and
89.Xr inet6 4P
90for details on
91the common aspects of addressing in the Internet protocol family.

--- 25 unchanged lines hidden (view full) ---

117call after binding to initiate connections.
118.Pp
119If incoming connection requests include an IP source route option, then the
120reverse source route will be used when responding.
121.Pp
122By using the special value
123.Dv INADDR_ANY
124with IPv4, or the unspecified
125address (all zeroes) with IPv6, the local IP address can be left
126unspecified in the
125address
126.Pq all zeroes
127with IPv6, the local IP address can be left unspecified in the
127.Fn bind
128call by either active or passive TCP
129sockets.
130This feature is usually used if the local address is either unknown or
131irrelevant.
132If left unspecified, the local IP address will be bound at connection time to
133the address of the network interface used to service the connection.
134For passive sockets, this is the destination address used by the connecting

--- 31 unchanged lines hidden (view full) ---

166.Dv INADDR_ANY ,
167the unspecified address, or the same IP address, then the two sockets can be
168bound to the same port.
169.Pp
170If an application does not want to allow another socket using the
171.Dv SO_REUSEADDR
172option to bind to a port its socket is bound to, the
173application can set the socket-level
128.Fn bind
129call by either active or passive TCP
130sockets.
131This feature is usually used if the local address is either unknown or
132irrelevant.
133If left unspecified, the local IP address will be bound at connection time to
134the address of the network interface used to service the connection.
135For passive sockets, this is the destination address used by the connecting

--- 31 unchanged lines hidden (view full) ---

167.Dv INADDR_ANY ,
168the unspecified address, or the same IP address, then the two sockets can be
169bound to the same port.
170.Pp
171If an application does not want to allow another socket using the
172.Dv SO_REUSEADDR
173option to bind to a port its socket is bound to, the
174application can set the socket-level
174.Po Dv SOL_SOCKET Pc
175.Pq Dv SOL_SOCKET
175option
176.Dv SO_EXCLBIND
177on a socket.
178The
179option values of 0 and 1 mean enabling and disabling the option respectively.
180Once this option is enabled on a socket, no other socket can be bound to the
181same port.
182.Ss "Sending And Receiving Data"
183Once a connection has been established, data can be exchanged using the
184.Xr read 2
185and
186.Xr write 2
187system calls.
188If, after sending data, the local TCP receives no acknowledgements from its
176option
177.Dv SO_EXCLBIND
178on a socket.
179The
180option values of 0 and 1 mean enabling and disabling the option respectively.
181Once this option is enabled on a socket, no other socket can be bound to the
182same port.
183.Ss "Sending And Receiving Data"
184Once a connection has been established, data can be exchanged using the
185.Xr read 2
186and
187.Xr write 2
188system calls.
189If, after sending data, the local TCP receives no acknowledgements from its
189peer for a period of time (for example, if the remote machine crashes), the
190connection is closed and an error is returned.
190peer for a period of time
191.Pq for example, if the remote machine crashes ,
192the connection is closed and an error is returned.
191.Pp
192When a peer is sending data, it will only send up to the advertised
193.Dq receive window ,
194which is determined by how much more data the recipient can fit in its buffer.
195Applications can use the socket-level option
196.Dv SO_RCVBUF
197to increase or decrease the receive buffer size.
198Similarly, the socket-level option
199.Dv SO_SNDBUF
200can be used to allow TCP to buffer more unacknowledged and unsent data locally.
201.Pp
202Under most circumstances, TCP will send data when it is written by the
203application.
204When outstanding data has not yet been acknowledged, though, TCP will gather
205small amounts of output to be sent as a single packet once an acknowledgement
206has been received.
193.Pp
194When a peer is sending data, it will only send up to the advertised
195.Dq receive window ,
196which is determined by how much more data the recipient can fit in its buffer.
197Applications can use the socket-level option
198.Dv SO_RCVBUF
199to increase or decrease the receive buffer size.
200Similarly, the socket-level option
201.Dv SO_SNDBUF
202can be used to allow TCP to buffer more unacknowledged and unsent data locally.
203.Pp
204Under most circumstances, TCP will send data when it is written by the
205application.
206When outstanding data has not yet been acknowledged, though, TCP will gather
207small amounts of output to be sent as a single packet once an acknowledgement
208has been received.
207Usually referred to as Nagle's Algorithm (RFC 896), this behavior helps prevent
208flooding the network with many small packets.
209Usually referred to as Nagle's Algorithm
210.Pq RFC 896 ,
211this behavior helps prevent flooding the network with many small packets.
209.Pp
212.Pp
210However, for some highly interactive clients (such as remote shells or
211windowing systems that send a stream of keypresses or mouse events), this
213However, for some highly interactive clients
214.Po
215such as remote shells or windowing systems that send a stream of keypresses or
216mouse events
217.Pc ,
218this
212batching may cause significant delays.
213To disable this behavior, TCP provides a boolean socket option,
214.Dv TCP_NODELAY .
215.Pp
216Conversely, for other applications, it may be desirable for TCP not to send out
217any data until a full TCP segment can be sent.
218To enable this behavior, an application can use the TCP-level socket option
219.Dv TCP_CORK .
220When set to a non-zero value, TCP will only send out a full TCP segment.
221When
222.Dv TCP_CORK
223is set to zero after it has been enabled, all currently buffered data is sent
219batching may cause significant delays.
220To disable this behavior, TCP provides a boolean socket option,
221.Dv TCP_NODELAY .
222.Pp
223Conversely, for other applications, it may be desirable for TCP not to send out
224any data until a full TCP segment can be sent.
225To enable this behavior, an application can use the TCP-level socket option
226.Dv TCP_CORK .
227When set to a non-zero value, TCP will only send out a full TCP segment.
228When
229.Dv TCP_CORK
230is set to zero after it has been enabled, all currently buffered data is sent
224out (as permitted by the peer's receive window and the current congestion
225window).
231out
232.Po
233as permitted by the peer's receive window and the current congestion window
234.Pc .
226.Pp
227Still other latency-sensitive applications rely on receiving a quick
228notification that their packets have been successfully received.
229To satisfy the requirements of those applications, setting the
230.Dv TCP_QUICKACK
235.Pp
236Still other latency-sensitive applications rely on receiving a quick
237notification that their packets have been successfully received.
238To satisfy the requirements of those applications, setting the
239.Dv TCP_QUICKACK
231option to a non-zero value will instruct the TCP stack to send an acknowlegment
240option to a non-zero value will instruct the TCP stack to send an acknowledgment
232immediately upon receipt of a packet, rather than waiting to acknowledge
233multiple packets at once.
234.Pp
235TCP provides an urgent data mechanism, which may be invoked using the
236out-of-band provisions of
237.Xr send 3SOCKET .
238The caller may mark one byte as
239.Dq urgent

--- 14 unchanged lines hidden (view full) ---

254Because the system never returns data across the urgent mark in a single
255.Xr read 2
256call, it is possible to
257advance to the urgent data in a simple loop which reads data, testing the
258socket with the
259.Dv SIOCATMARK
260.Fn ioctl
261request, until it reaches the mark.
241immediately upon receipt of a packet, rather than waiting to acknowledge
242multiple packets at once.
243.Pp
244TCP provides an urgent data mechanism, which may be invoked using the
245out-of-band provisions of
246.Xr send 3SOCKET .
247The caller may mark one byte as
248.Dq urgent

--- 14 unchanged lines hidden (view full) ---

263Because the system never returns data across the urgent mark in a single
264.Xr read 2
265call, it is possible to
266advance to the urgent data in a simple loop which reads data, testing the
267socket with the
268.Dv SIOCATMARK
269.Fn ioctl
270request, until it reaches the mark.
271.Pp
272The
273.Dv TCP_MD5SIG
274option controls the use of MD5 digests
275.Pq as defined by RFC 2385
276on the specified socket.
277The option value is specified as an
278.Vt int .
279When enabled
280.Pq non-zero ,
281outgoing packets have a digest added to the included TCP options and digests in
282incoming packets are verified.
283Incoming packets without a digest, or without a correct digest value, are
284silently dropped.
285In order to use this function, TCPSIG security associations
286.Pq one for each direction
287must also be configured in the system security association database
288.Pq SADB
289using
290.Xr tcpkey 8 .
291If no matching security association
292.Pq SA
293is found for traffic on a socket configured with the
294.Dv TCP_MD5SIG
295option, no outgoing segments are sent, and all inbound segments are dropped.
296In particular, the SA must be present prior to the socket being used in a
297call to
298.Xr connect 3SOCKET
299or
300.Xr accept 3SOCKET .
301Once the option is enabled and an SA is bound to a connection, it will be
302cached and used for all subsequent segments; it cannot be changed mid-stream.
303An SA which is in use can be deleted using
304.Xr tcpkey 8
305and will not be used for any new connections, but existing connections continue
306to use their cached copy.
262.Ss "Congestion Control"
263TCP follows the congestion control algorithm described in RFC 2581, and
307.Ss "Congestion Control"
308TCP follows the congestion control algorithm described in RFC 2581, and
264also supports the initial congestion window (cwnd) changes in RFC 3390.
309also supports the initial congestion window
310.Pq cwnd
311changes in RFC 3390.
265The initial cwnd calculation can be overridden by the socket option
266.Dv TCP_INIT_CWND .
267An application can use this option to set the initial cwnd to a
268specified number of TCP segments.
269This applies to the cases when the connection
270first starts and restarts after an idle period.
271The process must have the
272.Dv PRIV_SYS_NET_CONFIG

--- 15 unchanged lines hidden (view full) ---

288.Va errno
289will be set to
290.Er ENOENT .
291.Ss "TCP Keep-Alive"
292Since TCP determines whether a remote peer is no longer reachable by timing out
293waiting for acknowledgements, a host that never sends any new data may never
294notice a peer that has gone away.
295While consumers can avoid this problem by sending their own periodic heartbeat
312The initial cwnd calculation can be overridden by the socket option
313.Dv TCP_INIT_CWND .
314An application can use this option to set the initial cwnd to a
315specified number of TCP segments.
316This applies to the cases when the connection
317first starts and restarts after an idle period.
318The process must have the
319.Dv PRIV_SYS_NET_CONFIG

--- 15 unchanged lines hidden (view full) ---

335.Va errno
336will be set to
337.Er ENOENT .
338.Ss "TCP Keep-Alive"
339Since TCP determines whether a remote peer is no longer reachable by timing out
340waiting for acknowledgements, a host that never sends any new data may never
341notice a peer that has gone away.
342While consumers can avoid this problem by sending their own periodic heartbeat
296messages (Transport Layer Security does this, for example),
343messages
344.Pq Transport Layer Security does this, for example,
297TCP describes an optional keep-alive mechanism in RFC 1122.
298Applications can enable it using the socket-level option
299.Dv SO_KEEPALIVE .
300When enabled, the first keep-alive probe is sent out after a TCP connection is
301idle for two hours.
302If the peer does not respond to the probe within eight minutes, the TCP
303connection is aborted.
304An application can alter the probe behavior using the following TCP-level

--- 29 unchanged lines hidden (view full) ---

334.It Dv TCP_KEEPCNT
335This option specifies the number of keep-alive probes that should be sent
336without any response from the peer before aborting the connection.
337.It Dv TCP_KEEPINTVL
338This option specifies the interval in seconds between successive,
339unacknowledged keep-alive probes.
340.El
341.Ss "Additional Configuration"
345TCP describes an optional keep-alive mechanism in RFC 1122.
346Applications can enable it using the socket-level option
347.Dv SO_KEEPALIVE .
348When enabled, the first keep-alive probe is sent out after a TCP connection is
349idle for two hours.
350If the peer does not respond to the probe within eight minutes, the TCP
351connection is aborted.
352An application can alter the probe behavior using the following TCP-level

--- 29 unchanged lines hidden (view full) ---

382.It Dv TCP_KEEPCNT
383This option specifies the number of keep-alive probes that should be sent
384without any response from the peer before aborting the connection.
385.It Dv TCP_KEEPINTVL
386This option specifies the interval in seconds between successive,
387unacknowledged keep-alive probes.
388.El
389.Ss "Additional Configuration"
342illumos supports TCP Extensions for High Performance (RFC 7323)
390illumos supports TCP Extensions for High Performance
391.Pq RFC 7323
343which includes the window scale and timestamp options, and Protection Against
344Wrap Around Sequence Numbers
392which includes the window scale and timestamp options, and Protection Against
393Wrap Around Sequence Numbers
345.Po Sy PAWS Pc .
394.Pq Sy PAWS .
346Note that if timestamps are negotiated on
347a connection, received segments without timestamps on that connection are
348silently dropped per the suggestion in the RFC. illumos also supports Selective
349Acknowledgment
395Note that if timestamps are negotiated on
396a connection, received segments without timestamps on that connection are
397silently dropped per the suggestion in the RFC. illumos also supports Selective
398Acknowledgment
350.Po Sy SACK Pc
351capabilities (RFC 2018) and Explicit Congestion
352Notification
353.Po Sy ECN Pc
354mechanism (RFC 3168).
399.Pq Sy SACK
400capabilities
401.Pq RFC 2018
402and Explicit Congestion Notification
403.Pq Sy ECN
404mechanism
405.Pq RFC 3168 .
355.Pp
356Turn on the window scale option in one of the following ways:
357.Bl -bullet -offset indent -width 4m
358.It
359An application can set
360.Dv SO_SNDBUF
361or
362.Dv SO_RCVBUF

--- 139 unchanged lines hidden (view full) ---

502default for
503.Cm tcp_tstamp_always
504is
505.Sy 0 .
506.It
507Regardless of the value of
508.Cm tcp_tstamp_always ,
509the timestamp option will
406.Pp
407Turn on the window scale option in one of the following ways:
408.Bl -bullet -offset indent -width 4m
409.It
410An application can set
411.Dv SO_SNDBUF
412or
413.Dv SO_RCVBUF

--- 139 unchanged lines hidden (view full) ---

553default for
554.Cm tcp_tstamp_always
555is
556.Sy 0 .
557.It
558Regardless of the value of
559.Cm tcp_tstamp_always ,
560the timestamp option will
510always be included in a connect acknowledgement (and all succeeding packets) if
511the connecting system has used the timestamp option.
561always be included in a connect acknowledgement
562.Pq and all succeeding packets
563if the connecting system has used the timestamp option.
512.El
513.Pp
514Use the following procedure to turn on the timestamp option only when the
515window scale option is in effect:
516.Bl -bullet -offset indent -width 4m
517.It
518Use
519.Nm ndd

--- 14 unchanged lines hidden (view full) ---

534not be set when connecting to a remote system.
535The default for
536.Cm tcp_tstamp_if_wscale
537is
538.Sy 1 .
539.El
540.Pp
541Protection Against Wrap Around Sequence Numbers
564.El
565.Pp
566Use the following procedure to turn on the timestamp option only when the
567window scale option is in effect:
568.Bl -bullet -offset indent -width 4m
569.It
570Use
571.Nm ndd

--- 14 unchanged lines hidden (view full) ---

586not be set when connecting to a remote system.
587The default for
588.Cm tcp_tstamp_if_wscale
589is
590.Sy 1 .
591.El
592.Pp
593Protection Against Wrap Around Sequence Numbers
542.Po Sy PAWS Pc
594.Pq Sy PAWS
543is always used when the
544timestamp option is set.
545.Pp
546The operating system also supports multiple methods of generating initial sequence numbers.
547One of these methods is the improved technique suggested in RFC 1948.
548We
549.Em HIGHLY
550recommend that you set sequence number generation parameters as

--- 263 unchanged lines hidden (view full) ---

814.Fn bind
815operation was attempted on a socket with a network address for which no network
816interface exists.
817.It Er EACCES
818A
819.Fn bind
820operation was attempted with a
821.Dq reserved
595is always used when the
596timestamp option is set.
597.Pp
598The operating system also supports multiple methods of generating initial sequence numbers.
599One of these methods is the improved technique suggested in RFC 1948.
600We
601.Em HIGHLY
602recommend that you set sequence number generation parameters as

--- 263 unchanged lines hidden (view full) ---

866.Fn bind
867operation was attempted on a socket with a network address for which no network
868interface exists.
869.It Er EACCES
870A
871.Fn bind
872operation was attempted with a
873.Dq reserved
822port number and the effective user ID of the process was not the privileged user.
874port number and the effective user ID of the process was not the privileged
875user.
823.It Er ENOBUFS
824The system ran out of memory for internal data structures.
825.El
826.Sh SEE ALSO
827.Xr svcs 1 ,
828.Xr ioctl 2 ,
829.Xr read 2 ,
830.Xr write 2 ,

--- 5 unchanged lines hidden (view full) ---

836.Xr listen 3SOCKET ,
837.Xr send 3SOCKET ,
838.Xr inet 4P ,
839.Xr inet6 4P ,
840.Xr ip 4P ,
841.Xr ip6 4P ,
842.Xr smf 7 ,
843.Xr ndd 8 ,
876.It Er ENOBUFS
877The system ran out of memory for internal data structures.
878.El
879.Sh SEE ALSO
880.Xr svcs 1 ,
881.Xr ioctl 2 ,
882.Xr read 2 ,
883.Xr write 2 ,

--- 5 unchanged lines hidden (view full) ---

889.Xr listen 3SOCKET ,
890.Xr send 3SOCKET ,
891.Xr inet 4P ,
892.Xr inet6 4P ,
893.Xr ip 4P ,
894.Xr ip6 4P ,
895.Xr smf 7 ,
896.Xr ndd 8 ,
844.Xr svcadm 8
897.Xr svcadm 8 ,
898.Xr tcpkey 8
845.Rs
846.%A "K. Ramakrishnan"
847.%A "S. Floyd"
848.%A "D. Black"
849.%T "The Addition of Explicit Congestion Notification (ECN) to IP"
850.%R "RFC 3168"
851.%D "September 2001"
852.Re

--- 23 unchanged lines hidden (view full) ---

876.Re
877.Rs
878.%A "Jon Postel"
879.%T "Transmission Control Protocol - DARPA Internet Program Protocol Specification"
880.%R "RFC 793"
881.%C "Network Information Center, SRI International, Menlo Park, CA."
882.%D "September 1981"
883.Re
899.Rs
900.%A "K. Ramakrishnan"
901.%A "S. Floyd"
902.%A "D. Black"
903.%T "The Addition of Explicit Congestion Notification (ECN) to IP"
904.%R "RFC 3168"
905.%D "September 2001"
906.Re

--- 23 unchanged lines hidden (view full) ---

930.Re
931.Rs
932.%A "Jon Postel"
933.%T "Transmission Control Protocol - DARPA Internet Program Protocol Specification"
934.%R "RFC 793"
935.%C "Network Information Center, SRI International, Menlo Park, CA."
936.%D "September 1981"
937.Re
938.Rs
939.%A "A. Heffernan"
940.%T "Protection of BGP Sessions via the TCP MD5 Signature Option"
941.%R "RFC 2385"
942.%D "August 1998"
943.Re
884.Sh NOTES
885The
886.Sy tcp
887service is managed by the service management facility,
888.Xr smf 7 ,
889under the service identifier
890.Sy svc:/network/initial:default .
891.Pp
892Administrative actions on this service, such as enabling, disabling, or
893requesting restart, can be performed using
894.Xr svcadm 8 .
895The service's
896status can be queried using the
897.Xr svcs 1
898command.
944.Sh NOTES
945The
946.Sy tcp
947service is managed by the service management facility,
948.Xr smf 7 ,
949under the service identifier
950.Sy svc:/network/initial:default .
951.Pp
952Administrative actions on this service, such as enabling, disabling, or
953requesting restart, can be performed using
954.Xr svcadm 8 .
955The service's
956status can be queried using the
957.Xr svcs 1
958command.