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) RFC 7413 Fast Open. : 0x1 Fast Open 0x2 Fast Open 0x4 SYN Fast Open 0x200 SYN Fast Open 0x400 Fast Open TCP_FASTOPEN tcp_fastopen_key ( 3.7) Fast Open RFC 7413 Fast Open Fast Open . 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) (RFC 7413) . SYN ( backlog listen(2)). TCP Fast Open SYN TCP Fast Open. 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)