tcp(7) Miscellaneous Information Manual tcp(7) tcp - TCP #include #include #include tcp_socket = socket(AF_INET, SOCK_STREAM, 0); TCP RFC 793 RFC 1122 RFC 2001 NewReno SACK. ip(7) v4 v6. TCP . (checksum) . TCP . TCP . TCP connect(2) TCP . bind(2) listen(2) . accept(2). accept(2) connect(2) . . TCP RFC 1323. (PAWS) . TCP (> 64 ) . . /proc/sys/net/ipv4/tcp_wmem /proc/sys/net/ipv4/tcp_rmem SO_SNDBUF SO_RCVBUF setsockopt(2). SO_SNDBUF SO_RCVBUF /proc/sys/net/core/rmem_max /proc/sys/net/core/wmem_max. TCP setsockopt(2) getsockopt(2) setsockopt(2). TCP /proc TCP . listen(2) connect(2) . socket(7) . TCP . . MSG_OOB send(2). SIGURG "" ioctls SIOCSPGRP FIOSETOWN ( fcntl(2) F_SETOWN POSIX.1). SO_OOBINLINE ( ioctl SIOCATMARK ) MSG_OOB recv(2) recvmsg(2). select(2) poll (2) POLLPRI. 2.4 . sendfile(2) TIME_WAIT SACK . TCP IP ( ip(7)). ip(7) TCP. TCP (broadcasting) (multicasting) . /proc TCP /proc/sys/net/ipv4/. /proc IP TCP ip(7). Boolean ("true") ("false") . tcp_abc ( : 0 2.6.15 3.8) (ABC) RFC 3465. ABC (cwnd) . : 0 cwnd ( ABC) 1 cwnd 2 cwnd . tcp_abort_on_overflow (Boolean : 2.4) . (overflow) . . . tcp_adv_win_scale ( : 2 2.4) /2^tcp_adv_win_scale tcp_adv_win_scale 0 -/2^(-tcp_adv_win_scale) tcp_adv_win_scale . . TCP TCP . "" . tcp_adv_win_scale 2 . tcp_allowed_congestion_control ( : 2.4.20) / ( TCP_CONGESTION). . tcp_available_congestion_control. "reno" tcp_congestion_control. tcp_autocorking (Boolean : 3.14) ( write(2) sendmsg(2) ) . Qdisc . TCP_CORK / . tcp_available_congestion_control ( 2.4.20) . . tcp_allowed_congestion_control. (modules) . tcp_app_win ( : 31 2.4) TCP . (window/2^tcp_app_win, mss) . 0 . tcp_base_mss ( : 512 2.6.17) search_low Path MTU ( MTU). MTU MSS . tcp_bic (Boolean : 2.4.27/2.6.6 2.6.13) BIC TCP. BIC-TCP RTT TCP . . RTT . TCP. tcp_bic_low_window ( : 14 2.4.27/2.6.6 2.6.13) () BIC TCP . BIC TCP TCP Reno . tcp_bic_fast_convergence (Boolean : 2.4.27/2.6.6 2.6.13) BIC TCP . . tcp_congestion_control ( : 2.4.13) . "reno" . . tcp_dma_copybreak ( : 4096 2.6.24) DMA CONFIG_NET_DMA. tcp_dsack (Boolean : 2.4) TCP Duplicate SACK RFC 2883. tcp_fastopen ( : 0x1 3.7) Enables RFC 7413 Fast Open support. The flag is used as a bitmap with the following values: 0x1 Fast Open 0x2 Fast Open 0x4 SYN Fast Open 0x200 SYN Fast Open 0x400 Fast Open TCP_FASTOPEN tcp_fastopen_key ( 3.7) Set server side RFC 7413 Fast Open key to generate Fast Open cookie when server side Fast Open support is enabled. tcp_ecn ( : 2.4) RFC 3168 (ECN). : 0 ECN. ECN . 2.6.30 . 1 ECN ECN . 2 ECN ECN . 2.6.31. . 1 tcp_ecn_fallback. tcp_ecn_fallback ( : 4.1) RFC 3168 6.1.1.1. SYN ECN SYN CWR ECE. tcp_fack ( : 2.2) TCP. tcp_fin_timeout ( : 60 2.2) FIN . TCP . 2.2 180. tcp_frto ( : 2.4.21/2.6) F-RTO TCP (RTOs). . RFC 4138 . : 0 . 2.6.23 . 1 F-RTO . 2 F-RTO SACK SACK. SACK F-RTO TCP SACK. 2.6.24. 2.6.22 0 1 . tcp_frto_response ( : 0 2.6.22) F-RTO TCP ( TCP ) TCP . : 0 (cwnd) (ssthresh) (RTT) . 1 TCP cwnd ssthresh . 2 ( TCP ) cwnd ssthresh . tcp_keepalive_intvl ( : 75 2.4) keep-alive TCP. tcp_keepalive_probes ( : 9 2.2) keep-alive TCP . tcp_keepalive_time ( : 7200 2.2) TCP (keep-alive). SO_KEEPALIVE. 7200 (). 11 (9 75 ) . . tcp_low_latency ( : 2.4.21/2.6 4.14) TCP . . . 4.14 . tcp_max_orphans ( : 2.4) TCP ( ) . . . . ~64 . NR_FILE. . tcp_max_syn_backlog ( : 2.2) . . 256 1024 (>= 128 ) 128 (<= 32 ). 2.6.20 1024 SYNACK (TCP_SYNQ_HSIZE) include/net/tcp.h TCP_SYNQ_HSIZE * 16 <= tcp_max_syn_backlog . 2.6.20 TCP_SYNQ_HSIZE . tcp_max_tw_buckets ( : 2.4) TIME_WAIT . . NR_FILE*2 . . tcp_moderate_rcvbuf (Boolean : 2.4.17/2.6.7) TCP ( tcp_rmem[2]) . tcp_mem ( 2.4) 3 : [low pressure high]. TCP . . ( TCP low memory 900 32-. 64- ). low TCP . pressure TCP . low. high TCP. . tcp_mtu_probing ( : 0 2.6.17) MTU (Packetization-Layer Path MTU Discovery) TCP. : 0 1 ICMP 2 MSS tcp_base_mss. tcp_no_metrics_save ( : 2.6.6) TCP . . tcp_no_metrics_save TCP . tcp_orphan_retries ( : 8 2.4) . tcp_reordering ( : 3 2.4) TCP . . . tcp_retrans_collapse ( : 2.2) . tcp_retries1 ( : 3 2.2) TCP . . RFC 3. tcp_retries2 ( : 15 2.2) TCP . 15 13 30 . RFC 1122 100 . tcp_rfc1337 ( : 2.2) TCP RFC 1337. RST TIME_WAIT TIME_WAIT. tcp_rmem ( 2.4) 3 : [min, default, max]. TCP . TCP . min TCP. . ( 2.4 4 . PAGE_SIZE ). . SO_RCVBUF . default TCP. net.core.rmem_default . 87380 . ( 2.4 43689 ). ( ). TCP net.ipv4.tcp_window_scaling (). max TCP. net.core.rmem_max . SO_RCVBUF . max(87380, min(4 MB, tcp_mem[1]*PAGE_SIZE/128)) ( 2.4 87380*2 87380 ). tcp_sack ( : 2.2) TCP RFC 2018. tcp_slow_start_after_idle (Boolean : 2.6.18) RFC 2861 . RTO ( ) . . tcp_stdurg (Boolean : 2.2) RFC 1122 TCP. . BSD : . . tcp_syn_retries ( : 6 2.2) SYN TCP . 255. 6 127 . 3.7 5 ( ) 180 . tcp_synack_retries ( : 5 2.2) SYN/ACK TCP . 255. tcp_syncookies ( : 1 2.2) TCP (syncookies). CONFIG_SYN_COOKIES. (SYN flood). . TCP TCP. . . tcp_max_syn_backlog tcp_synack_retries tcp_abort_on_overflow. : 0 TCP. 1 . 2 ( 3.12) . . tcp_timestamps ( : 1 2.2) RFC 1323 TCP: 0 . 1 RFC1323 . 2 1 . tcp_timestamps 4.10. tcp_tso_win_divisor ( : 3 2.6.9) TCP (TSO) . TSO . tcp_tw_recycle (Boolean : 2.4 4.11) TIME_WAIT. IP ( NAT ). RFC 1323 (PAWS) RFC 6191. tcp_tw_reuse ( : 2.4.19/2.6) TIME_WAIT . . tcp_vegas_cong_avoid ( : 2.2 2.6.13) TCP Vegas. TCP Vegas TCP . TCP Vegas . TCP Vegas TCP Reno. tcp_westwood ( : 2.4.26/2.6.3 2.6.13) TCP Westwood+. TCP Westwood+ TCP Reno TCP. . TCP Westwood+ . TCP Westwood+ TCP Reno . tcp_window_scaling ( : 2.2) TCP RFC 1323. (> 64 ) TCP . 16 TCP 64 . . tcp_window_scaling TCP . tcp_wmem ( 2.4) 3 : [min, default, max]. TCP . TCP . min TCP. . ( 2.4 4 ). . SO_SNDBUF . default TCP. /proc/sys/net/core/wmem_default . 16 . ( ). TCP /proc/sys/net/ipv4/tcp_window_scaling (). max TCP. /proc/sys/net/core/wmem_max. SO_SNDBUF . max(65536, min(4 MB, tcp_mem[1]*PAGE_SIZE/128)) ( 2.4 128 64 ). tcp_workaround_signed_windows (Boolean : 2.6.26) TCP . TCP . TCP getsockopt(2) setsockopt(2) IPPROTO_TCP. optval int. IPPROTO_IP TCP. ip(7). TCP. TCP socket(7). TCP_CONGESTION ( 2.6.13) . TCP . tcp_allowed_congestion_control ( ). (CAP_NET_ADMIN) ( tcp_available_congestion_control ). TCP_CORK ( 2.2) . . sendfile(2) . 200 TCP_CORK. . TCP_NODELAY 2.5.71. . TCP_DEFER_ACCEPT ( 2.4) . () TCP . TCP. (ACK) (ACK) (delayed-ACK). . TCP_INFO ( 2.4) . struct tcp_info /usr/include/linux/tcp.h. . TCP_KEEPCNT ( 2.4) keepalive TCP . . TCP_KEEPIDLE ( 2.4) () TCP SO_KEEPALIVE . . TCP_KEEPINTVL ( 2.4) () keepalive . . TCP_LINGER2 ( 2.4) FIN_WAIT2. /proc/sys/net/ipv4/tcp_fin_timeout . socket(7) SO_LINGER. . TCP_MAXSEG (MSS) TCP . 2.2 2.6.28 MSS . MTU () . TCP . TCP_NODELAY Nagle. . . TCP_CORK TCP_CORK . TCP_QUICKACK ( 2.4.4) (quickack) . (acks) TCP . . / TCP . . TCP_SYNCNT ( 2.4) SYN TCP . 255. . TCP_SAVE_SYN ( 4.3) SYN TCP_SAVED_SYN . listen(2). TCP_SAVED_SYN ( 4.3) SYN TCP_SAVE_SYN. SYN . TCP_SAVED_SYN (IPv4/IPv6) TCP. TCP_USER_TIMEOUT ( 2.6.37) unsigned int . 0 ( ) TCP ETIMEDOUT . 0 TCP . TCP . " " . 20 WAN . TCP (ESTABLISHED FIN-WAIT-1 FIN-WAIT-2 CLOSE-WAIT CLOSING LAST-ACK). TCP (SO_KEEPALIVE) TCP_USER_TIMEOUT . TCP . accept(2) . RFC 793 RFC 5482 (" TCP"). TCP_WINDOW_CLAMP ( 2.4) . SOCK_MIN_RCVBUF/2. . TCP_FASTOPEN ( 3.6) This option enables Fast Open (RFC 7413) on the listener socket. The value specifies the maximum length of pending SYNs (similar to the backlog argument in listen(2)). Once enabled, the listener socket grants the TCP Fast Open cookie on incoming SYN with TCP Fast Open option. SYN Fast Open SYN-ACK SYN. accept(2) . . sysctl net.ipv4.tcp_fastopen ( ). TCP Fast Open send(2) MSG_FASTOPEN TCP_FASTOPEN_CONNECT . TCP_FASTOPEN_CONNECT ( 4.11) (). connect(2) Fast Open . ( ) connect(2) SYN SYN Fast Open . connect(2) 0 SYN. write(2) sendmsg(2) SYN Fast Open. . : errno . write(2) sendmsg(2) connect(2) SYN+ (3WHS) . read(2) connect(2) write(2) . TCP_FASTOPEN_CONNECT write(2) sendmsg(2) write(2) sendmsg(2) MSG_FASTOPEN . : s = socket(); setsockopt(s, IPPROTO_TCP, TCP_FASTOPEN_CONNECT, 1, ...); connect(s); write(s); /* write() connect() * SYN . */ read(s)/write(s); /* ... */ close(s); (Sockets API) TCP ( ) . ( SO_OOBINLINE). BSD. BSD . RFC 1122 . /proc/sys/net/ipv4/tcp_stdurg. MSG_PEEK recv(2). 2.4 MSG_TRUNC flags recv(2) ( recvmsg(2)). . 2.4.4 MSG_TRUNC MSG_OOB . Ioctls ioctl(2) value. : int value; error = ioctl(tcp_socket, ioctl_type, &value); ioctl_type : SIOCINQ . LISTEN (EINVAL). SIOCINQ . FIONREAD . SIOCATMARK ( value ) . SO_OOBINLINE SIOCATMARK . SO_OOBINLINE SIOCATMARK ( recv(MSG_OOB)). . select(2) ( exceptfds) SIGURG SIOCATMARK ( ) SIOCATMARK . SIOCOUTQ . LISTEN (EINVAL). SIOCOUTQ . TIOCOUTQ . TCP . ETIMEDOUT . . IP_RECVERR IPPROTO_IP. . -- TCP . EAFNOTSUPPORT sin_family AF_INET. EPIPE . ETIMEDOUT . ip(7) TCP. (ECN) sendfile(2) SACK (DSACK) 2.4. (FACK) TIME_WAIT keepalive 2.3. . IPv6. accept(2), bind(2), connect(2), getsockopt(2), listen(2), recvmsg(2), sendfile(2), sendmsg(2), socket(2), ip(7), socket(7) Documentation/networking/ip-sysctl.rst. RFC 793 TCP. RFC 1122 TCP (Nagle). RFC 1323 TCP . RFC 1337 (assassination) TIME_WAIT. RFC 3168 . RFC 2581 TCP. RFC 2018 RFC 2883 SACK . 3 . . : . 6.18 19 2026 tcp(7)