본문 바로가기
리눅스&OS

리눅스 tcp 커널 파라메터 정리

by developer's warehouse 2024. 1. 5.

리눅스 TCP 커널 파라미터는 TCP 네트워크 성능을 결정짓는 데 중요한 역할을 합니다. 리눅스에서 sysctl을 이용해서 tcp 관련 리눅스 파라메터를 출력한 모든 설정들에 대해서 설명을 확인해 보도록 합니다.

리눅스 네트워크 tcp ipv4 관련 커널 파라메터 확인

리눅스에서 커널 파라메터는 sysctl을 이용해서 확인할 수 있습니다. -a 옵션을 주면 모든 커널 파라메터가 나타나는데, grep을 통해서 net.ipv4.tcp를 필터링 하면 ipv4 중 tcp 관련된 커널 파라메터만 나타납니다.

$ sudo sysctl -a | grep "net.ipv4.tcp"
net.ipv4.tcp_abort_on_overflow = 0
net.ipv4.tcp_adv_win_scale = 1
net.ipv4.tcp_allowed_congestion_control = reno cubic
net.ipv4.tcp_app_win = 31
net.ipv4.tcp_autocorking = 1
net.ipv4.tcp_available_congestion_control = reno cubic
net.ipv4.tcp_available_ulp = espintcp mptcp
net.ipv4.tcp_base_mss = 1024
net.ipv4.tcp_challenge_ack_limit = 2147483647
net.ipv4.tcp_child_ehash_entries = 0
net.ipv4.tcp_comp_sack_delay_ns = 1000000
net.ipv4.tcp_comp_sack_nr = 44
net.ipv4.tcp_comp_sack_slack_ns = 100000
net.ipv4.tcp_congestion_control = cubic
net.ipv4.tcp_dsack = 1
net.ipv4.tcp_early_demux = 1
net.ipv4.tcp_early_retrans = 3
net.ipv4.tcp_ecn = 2
net.ipv4.tcp_ecn_fallback = 1
net.ipv4.tcp_ehash_entries = 262144
net.ipv4.tcp_fack = 0
net.ipv4.tcp_fastopen = 1
net.ipv4.tcp_fastopen_blackhole_timeout_sec = 0
net.ipv4.tcp_fastopen_key = e15eabec-6aed8b5a-e38c1185-44c7b443
net.ipv4.tcp_fin_timeout = 60
net.ipv4.tcp_frto = 2
net.ipv4.tcp_fwmark_accept = 0
net.ipv4.tcp_invalid_ratelimit = 500
net.ipv4.tcp_keepalive_intvl = 75
net.ipv4.tcp_keepalive_probes = 9
net.ipv4.tcp_keepalive_time = 7200
net.ipv4.tcp_l3mdev_accept = 0
net.ipv4.tcp_limit_output_bytes = 1048576
net.ipv4.tcp_low_latency = 0
net.ipv4.tcp_max_orphans = 131072
net.ipv4.tcp_max_reordering = 300
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_max_tw_buckets = 131072
net.ipv4.tcp_mem = 373545       498063  747090
net.ipv4.tcp_migrate_req = 0
net.ipv4.tcp_min_rtt_wlen = 300
net.ipv4.tcp_min_snd_mss = 48
net.ipv4.tcp_min_tso_segs = 2
net.ipv4.tcp_moderate_rcvbuf = 1
net.ipv4.tcp_mtu_probe_floor = 48
net.ipv4.tcp_mtu_probing = 0
net.ipv4.tcp_no_metrics_save = 0
net.ipv4.tcp_no_ssthresh_metrics_save = 1
net.ipv4.tcp_notsent_lowat = 4294967295
net.ipv4.tcp_orphan_retries = 0
net.ipv4.tcp_pacing_ca_ratio = 120
net.ipv4.tcp_pacing_ss_ratio = 200
net.ipv4.tcp_plb_cong_thresh = 128
net.ipv4.tcp_plb_enabled = 0
net.ipv4.tcp_plb_idle_rehash_rounds = 3
net.ipv4.tcp_plb_rehash_rounds = 12
net.ipv4.tcp_plb_suspend_rto_sec = 60
net.ipv4.tcp_probe_interval = 600
net.ipv4.tcp_probe_threshold = 8
net.ipv4.tcp_recovery = 1
net.ipv4.tcp_reflect_tos = 0
net.ipv4.tcp_reordering = 3
net.ipv4.tcp_retrans_collapse = 1
net.ipv4.tcp_retries1 = 3
net.ipv4.tcp_retries2 = 15
net.ipv4.tcp_rfc1337 = 0
net.ipv4.tcp_rmem = 4096        131072  6291456
net.ipv4.tcp_sack = 1
net.ipv4.tcp_slow_start_after_idle = 1
net.ipv4.tcp_stdurg = 0
net.ipv4.tcp_syn_retries = 6
net.ipv4.tcp_synack_retries = 5
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_thin_linear_timeouts = 0
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_tso_rtt_log = 9
net.ipv4.tcp_tso_win_divisor = 3
net.ipv4.tcp_tw_reuse = 2
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_wmem = 4096        16384   4194304
net.ipv4.tcp_workaround_signed_windows = 0

 

net.ipv4.tcp 관련 커널 파라메터 의미

a to m 앞부분 40개

1. net.ipv4.tcp_abort_on_overflow: 이 파라미터가 1로 설정되면, 서버가 SYN 대기열이 가득 찼을 때 연결을 중단합니다.
2. net.ipv4.tcp_adv_win_scale: 이 파라미터는 수신 윈도우 스케일링을 제어합니다.
3. net.ipv4.tcp_allowed_congestion_control: 이 파라미터는 허용된 혼잡 제어 알고리즘을 지정합니다.
4. net.ipv4.tcp_app_win: 이 파라미터는 애플리케이션 윈도우 크기를 지정합니다.
5. net.ipv4.tcp_autocorking: 이 파라미터가 1로 설정되면, 커널이 자동으로 데이터를 모아서 한 번에 보내는 autocorking 기능을 활성화합니다.
6. net.ipv4.tcp_available_congestion_control: 이 파라미터는 사용 가능한 혼잡 제어 알고리즘을 나열합니다.
7. net.ipv4.tcp_available_ulp: 이 파라미터는 사용 가능한 사용자 수준 프로토콜(ULP)을 나열합니다.
8. net.ipv4.tcp_base_mss: 이 파라미터는 TCP의 기본 최대 세그먼트 크기(MSS)를 설정합니다.
9. net.ipv4.tcp_challenge_ack_limit: 이 파라미터는 초당 도전 ACK의 최대 수를 설정합니다.
10. net.ipv4.tcp_child_ehash_entries: 이 파라미터는 TCP 연결 해시 테이블의 크기를 설정합니다.
11. net.ipv4.tcp_comp_sack_delay_ns: 이 파라미터는 압축된 SACK을 보내는 데 걸리는 지연 시간을 나노초 단위로 설정합니다.
12. net.ipv4.tcp_comp_sack_nr: 이 파라미터는 압축된 SACK의 수를 설정합니다.
13. net.ipv4.tcp_comp_sack_slack_ns: 이 파라미터는 압축된 SACK의 슬랙 시간을 나노초 단위로 설정합니다.
14. net.ipv4.tcp_congestion_control: 이 파라미터는 기본 혼잡 제어 알고리즘을 설정합니다.
15. net.ipv4.tcp_dsack: 이 파라미터가 1로 설정되면, D-SACK 옵션을 활성화합니다.
16. net.ipv4.tcp_early_demux: 이 파라미터가 1로 설정되면, TCP/IP 스택이 패킷을 빠르게 분리하여 처리하는 early demux 기능을 활성화합니다.
17. net.ipv4.tcp_early_retrans: 이 파라미터는 빠른 재전송 모드를 설정합니다.
18. net.ipv4.tcp_ecn: 이 파라미터는 ECN(Early Congestion Notification) 기능을 설정합니다.
19. net.ipv4.tcp_ecn_fallback: 이 파라미터가 1로 설정되면, ECN 설정이 실패하면 TCP 연결이 자동으로 ECN 없이 재시도합니다.
20. net.ipv4.tcp_ehash_entries: 이 파라미터는 TCP 연결 해시 테이블의 크기를 설정합니다.
21. net.ipv4.tcp_fack: 이 파라미터가 1로 설정되면, FACK(Forward Acknowledgment) 옵션을 활성화합니다.
22. net.ipv4.tcp_fastopen: 이 파라미터는 TCP Fast Open 기능을 설정합니다.
23. net.ipv4.tcp_fastopen_blackhole_timeout_sec: 이 파라미터는 TCP Fast Open blackhole 탐지 기능의 타임아웃을 설정합니다.
24. net.ipv4.tcp_fastopen_key: 이 파라미터는 TCP Fast Open 기능의 키를 설정합니다.
25. net.ipv4.tcp_fin_timeout: 이 파라미터는 FIN 패킷에 대한 타임아웃을 설정합니다.
26. net.ipv4.tcp_frto: 이 파라미터는 Forward RTO-Recovery (F-RTO) 알고리즘을 설정합니다.
27. net.ipv4.tcp_fwmark_accept: 이 파라미터가 1로 설정되면, fwmark가 설정된 연결 요청을 수락합니다.
28. net.ipv4.tcp_invalid_ratelimit: 이 파라미터는 잘못된 TCP 세그먼트에 대한 처리 속도를 제한합니다.
29. net.ipv4.tcp_keepalive_intvl: 이 파라미터는 keepalive 프로브 간의 간격을 설정합니다.
30. net.ipv4.tcp_keepalive_probes: 이 파라미터는 연결이 끊어진 것으로 간주되기 전에 보낼 keepalive 프로브의 수를 설정합니다.
31. net.ipv4.tcp_keepalive_time: 이 파라미터는 첫 번째 keepalive 프로브를 보내기 전의 유휴 시간을 설정합니다.
32. net.ipv4.tcp_l3mdev_accept: 이 파라미터가 1로 설정되면, L3 마스터 장치에서 들어오는 연결 요청을 수락합니다.
33. net.ipv4.tcp_limit_output_bytes: 이 파라미터는 소켓 버퍼의 최대 크기를 설정합니다.
34. net.ipv4.tcp_low_latency: 이 파라미터가 1로 설정되면, 네트워크 대기 시간을 최소화하는 데 초점을 맞춥니다.
35. net.ipv4.tcp_max_orphans: 이 파라미터는 시스템이 처리할 수 있는 최대 orphaned (부모가 없는) TCP 소켓의 수를 설정합니다.
36. net.ipv4.tcp_max_reordering: 이 파라미터는 TCP 패킷의 최대 재정렬 횟수를 설정합니다.
37. net.ipv4.tcp_max_syn_backlog: 이 파라미터는 SYN 대기열의 최대 크기를 설정합니다.
38. net.ipv4.tcp_max_tw_buckets: 이 파라미터는 시스템이 처리할 수 있는 최대 TIME-WAIT 소켓의 수를 설정합니다.
39. net.ipv4.tcp_mem: 이 파라미터는 TCP 스택이 사용할 수 있는 메모리의 양을 설정합니다.
40. net.ipv4.tcp_migrate_req: 이 파라미터가 1로 설정되면, TCP 연결 마이그레이션을 활성화합니다.

m to w 뒷 부분 40개

1. net.ipv4.tcp_min_rtt_wlen: 이 파라미터는 RTT 측정을 위한 최소 윈도우 길이를 설정합니다.
2. net.ipv4.tcp_min_snd_mss: 이 파라미터는 보낼 수 있는 최소 MSS를 설정합니다.
3. net.ipv4.tcp_min_tso_segs: 이 파라미터는 TSO를 사용할 때의 최소 세그먼트 수를 설정합니다.
4. net.ipv4.tcp_moderate_rcvbuf: 이 파라미터가 1로 설정되면, 자동 수신 버퍼 조절을 활성화합니다.
5. net.ipv4.tcp_mtu_probe_floor: 이 파라미터는 MTU 프로브의 최소값을 설정합니다.
6. net.ipv4.tcp_mtu_probing: 이 파라미터는 MTU 프로브 기능을 설정합니다.
7. net.ipv4.tcp_no_metrics_save: 이 파라미터가 1로 설정되면, TCP 메트릭 저장을 비활성화합니다.
8. net.ipv4.tcp_no_ssthresh_metrics_save: 이 파라미터가 1로 설정되면, ssthresh 메트릭 저장을 비활성화합니다.
9. net.ipv4.tcp_notsent_lowat: 이 파라미터는 아직 전송되지 않은 데이터의 최소 양을 설정합니다.
10. net.ipv4.tcp_orphan_retries: 이 파라미터는 orphaned (부모가 없는) TCP 소켓을 끊기 전에 확인하는 횟수를 설정합니다.
11. net.ipv4.tcp_pacing_ca_ratio: 이 파라미터는 혼잡 회피 단계에서의 패킷 전송 속도를 설정합니다.
12. net.ipv4.tcp_pacing_ss_ratio: 이 파라미터는 느린 시작 단계에서의 패킷 전송 속도를 설정합니다.
13. net.ipv4.tcp_plb_cong_thresh: 이 파라미터는 PLB (Packet Loss Burst) 혼잡 임계값을 설정합니다.
14. net.ipv4.tcp_plb_enabled: 이 파라미터가 1로 설정되면, PLB 기능을 활성화합니다.
15. net.ipv4.tcp_plb_idle_rehash_rounds: 이 파라미터는 PLB가 유휴 상태일 때의 재해시 라운드 수를 설정합니다.
16. net.ipv4.tcp_plb_rehash_rounds: 이 파라미터는 PLB의 재해시 라운드 수를 설정합니다.
17. net.ipv4.tcp_plb_suspend_rto_sec: 이 파라미터는 PLB의 RTO (Retransmission Timeout) 중단 시간을 설정합니다.
18. net.ipv4.tcp_probe_interval: 이 파라미터는 TCP 프로브 간격을 설정합니다.
19. net.ipv4.tcp_probe_threshold: 이 파라미터는 TCP 프로브 임계값을 설정합니다.
20. net.ipv4.tcp_recovery: 이 파라미터는 TCP 복구 모드를 설정합니다.
21. net.ipv4.tcp_reflect_tos: 이 파라미터가 1로 설정되면, TOS (Type of Service) 필드를 반영합니다.
22. net.ipv4.tcp_reordering: 이 파라미터는 TCP 패킷의 최대 재정렬 횟수를 설정합니다.
23. net.ipv4.tcp_retrans_collapse: 이 파라미터가 1로 설정되면, 재전송을 위해 패킷을 합치는 기능을 활성화합니다.
24. net.ipv4.tcp_retries1: 이 파라미터는 TCP 연결 시도를 중단하기 전의 재시도 횟수를 설정합니다.
25. net.ipv4.tcp_retries2: 이 파라미터는 TCP 연결을 끊기 전의 재시도 횟수를 설정합니다.
26. net.ipv4.tcp_rfc1337: 이 파라미터가 1로 설정되면, RFC 1337에 따른 TCP 동작을 활성화합니다.
27. net.ipv4.tcp_rmem: 이 파라미터는 TCP 수신 버퍼의 크기를 설정합니다.
28. net.ipv4.tcp_sack: 이 파라미터가 1로 설정되면, SACK (Selective Acknowledgment) 옵션을 활성화합니다.
29. net.ipv4.tcp_slow_start_after_idle: 이 파라미터가 1로 설정되면, 유휴 상태 후 느린 시작을 활성화합니다.
30. net.ipv4.tcp_stdurg: 이 파라미터가 1로 설정되면, TCP URG 포인터 필드를 표준에 따라 해석합니다.
31. net.ipv4.tcp_syn_retries: 이 파라미터는 SYN 패킷의 재전송 횟수를 설정합니다.
32. net.ipv4.tcp_synack_retries: 이 파라미터는 SYN/ACK 패킷의 재전송 횟수를 설정합니다.
33. net.ipv4.tcp_syncookies: 이 파라미터가 1로 설정되면, SYN 쿠키 기능을 활성화합니다.
34. net.ipv4.tcp_thin_linear_timeouts: 이 파라미터가 1로 설정되면, 얇은 선형 타임아웃을 활성화합니다.
35. net.ipv4.tcp_timestamps: 이 파라미터가 1로 설정되면, TCP 타임스탬프를 사용합니다⁵.
36. net.ipv4.tcp_tso_rtt_log: 이 파라미터는 TSO (TCP Segmentation Offload) RTT 로그를 설정합니다.
37. net.ipv4.tcp_tso_win_divisor: 이 파라미터는 TSO 윈도우 나눗셈 값을 설정합니다.
38. net.ipv4.tcp_tw_reuse: 이 파라미터가 1로 설정되면, TIME-WAIT 소켓 재사용을 활성화합니다.
39. net.ipv4.tcp_window_scaling: 이 파라미터가 1로 설정되면, TCP 윈도우 스케일링을 활성화합니다.
40. net.ipv4.tcp_wmem: 이 파라미터는 TCP 전송 버퍼의 크기를 설정합니다.
41. net.ipv4.tcp_workaround_signed_windows: 이 파라미터가 1로 설정되면, signed window workaround를 활성화합니다.

 

 

facebook twitter kakaoTalk kakaostory naver band shareLink