요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
.. SPDX-License-Identifier: GPL-2.0
.. Copyright (C) 2023 Google LLC
===========================================
netns_ipv4 enum fast path usage breakdown
===========================================
============== ===================================== =================== =================== ==================================================
Type Name fastpath_tx_access fastpath_rx_access comment
============== ===================================== =================== =================== ==================================================
unsigned_long LINUX_MIB_TCPKEEPALIVE write_mostly tcp_keepalive_timer
unsigned_long LINUX_MIB_DELAYEDACKS write_mostly tcp_delack_timer_handler,tcp_delack_timer
unsigned_long LINUX_MIB_DELAYEDACKLOCKED write_mostly tcp_delack_timer_handler,tcp_delack_timer
unsigned_long LINUX_MIB_TCPAUTOCORKING write_mostly tcp_push,tcp_sendmsg_locked
unsigned_long LINUX_MIB_TCPFROMZEROWINDOWADV write_mostly tcp_select_window,tcp_transmit-skb
unsigned_long LINUX_MIB_TCPTOZEROWINDOWADV write_mostly tcp_select_window,tcp_transmit-skb
unsigned_long LINUX_MIB_TCPWANTZEROWINDOWADV write_mostly tcp_select_window,tcp_transmit-skb
unsigned_long LINUX_MIB_TCPORIGDATASENT write_mostly tcp_write_xmit
unsigned_long LINUX_MIB_TCPHPHITS write_mostly tcp_rcv_established,tcp_v4_do_rcv,tcp_v6_do_rcv
unsigned_long LINUX_MIB_TCPRCVCOALESCE write_mostly tcp_try_coalesce,tcp_queue_rcv,tcp_rcv_established
unsigned_long LINUX_MIB_TCPPUREACKS write_mostly tcp_ack,tcp_rcv_established
unsigned_long LINUX_MIB_TCPHPACKS write_mostly tcp_ack,tcp_rcv_established
unsigned_long LINUX_MIB_TCPDELIVERED write_mostly tcp_newly_delivered,tcp_ack,tcp_rcv_established
unsigned_long LINUX_MIB_SYNCOOKIESSENT
unsigned_long LINUX_MIB_SYNCOOKIESRECV
unsigned_long LINUX_MIB_SYNCOOKIESFAILED
unsigned_long LINUX_MIB_EMBRYONICRSTS
unsigned_long LINUX_MIB_PRUNECALLED
unsigned_long LINUX_MIB_RCVPRUNED
unsigned_long LINUX_MIB_OFOPRUNED
unsigned_long LINUX_MIB_OUTOFWINDOWICMPS
unsigned_long LINUX_MIB_LOCKDROPPEDICMPS
unsigned_long LINUX_MIB_ARPFILTER
unsigned_long LINUX_MIB_TIMEWAITED
unsigned_long LINUX_MIB_TIMEWAITRECYCLED
unsigned_long LINUX_MIB_TIMEWAITKILLED
unsigned_long LINUX_MIB_PAWSACTIVEREJECTED
unsigned_long LINUX_MIB_PAWSESTABREJECTED
unsigned_long LINUX_MIB_BEYOND_WINDOW
unsigned_long LINUX_MIB_TSECR_REJECTED
unsigned_long LINUX_MIB_PAWS_OLD_ACK
unsigned_long LINUX_MIB_PAWS_TW_REJECTED
unsigned_long LINUX_MIB_DELAYEDACKLOST
unsigned_long LINUX_MIB_LISTENOVERFLOWS
unsigned_long LINUX_MIB_LISTENDROPS
unsigned_long LINUX_MIB_TCPRENORECOVERY
unsigned_long LINUX_MIB_TCPSACKRECOVERY
unsigned_long LINUX_MIB_TCPSACKRENEGING
unsigned_long LINUX_MIB_TCPSACKREORDER
unsigned_long LINUX_MIB_TCPRENOREORDER
unsigned_long LINUX_MIB_TCPTSREORDER
unsigned_long LINUX_MIB_TCPFULLUNDO
unsigned_long LINUX_MIB_TCPPARTIALUNDO
unsigned_long LINUX_MIB_TCPDSACKUNDO
unsigned_long LINUX_MIB_TCPLOSSUNDO
unsigned_long LINUX_MIB_TCPLOSTRETRANSMIT
unsigned_long LINUX_MIB_TCPRENOFAILURES
unsigned_long LINUX_MIB_TCPSACKFAILURES
unsigned_long LINUX_MIB_TCPLOSSFAILURES
unsigned_long LINUX_MIB_TCPFASTRETRANS
unsigned_long LINUX_MIB_TCPSLOWSTARTRETRANS
unsigned_long LINUX_MIB_TCPTIMEOUTS
unsigned_long LINUX_MIB_TCPLOSSPROBES
unsigned_long LINUX_MIB_TCPLOSSPROBERECOVERY
unsigned_long LINUX_MIB_TCPRENORECOVERYFAIL
unsigned_long LINUX_MIB_TCPSACKRECOVERYFAIL
unsigned_long LINUX_MIB_TCPRCVCOLLAPSED
unsigned_long LINUX_MIB_TCPDSACKOLDSENT
unsigned_long LINUX_MIB_TCPDSACKOFOSENT
unsigned_long LINUX_MIB_TCPDSACKRECV
unsigned_long LINUX_MIB_TCPDSACKOFORECV
unsigned_long LINUX_MIB_TCPABORTONDATA
unsigned_long LINUX_MIB_TCPABORTONCLOSE
unsigned_long LINUX_MIB_TCPABORTONMEMORY
unsigned_long LINUX_MIB_TCPABORTONTIMEOUT
unsigned_long LINUX_MIB_TCPABORTONLINGER
unsigned_long LINUX_MIB_TCPABORTFAILED
unsigned_long LINUX_MIB_TCPMEMORYPRESSURES
unsigned_long LINUX_MIB_TCPMEMORYPRESSURESCHRONO
unsigned_long LINUX_MIB_TCPSACKDISCARD
unsigned_long LINUX_MIB_TCPDSACKIGNOREDOLD
unsigned_long LINUX_MIB_TCPDSACKIGNOREDNOUNDO
unsigned_long LINUX_MIB_TCPSPURIOUSRTOS
unsigned_long LINUX_MIB_TCPMD5NOTFOUND
unsigned_long LINUX_MIB_TCPMD5UNEXPECTED
unsigned_long LINUX_MIB_TCPMD5FAILURE
unsigned_long LINUX_MIB_SACKSHIFTED
unsigned_long LINUX_MIB_SACKMERGED
unsigned_long LINUX_MIB_SACKSHIFTFALLBACK
unsigned_long LINUX_MIB_TCPBACKLOGDROP
unsigned_long LINUX_MIB_PFMEMALLOCDROP
unsigned_long LINUX_MIB_TCPMINTTLDROP
unsigned_long LINUX_MIB_TCPDEFERACCEPTDROP
unsigned_long LINUX_MIB_IPRPFILTER
unsigned_long LINUX_MIB_TCPTIMEWAITOVERFLOW
unsigned_long LINUX_MIB_TCPREQQFULLDOCOOKIES
unsigned_long LINUX_MIB_TCPREQQFULLDROP
unsigned_long LINUX_MIB_TCPRETRANSFAIL
unsigned_long LINUX_MIB_TCPBACKLOGCOALESCE
unsigned_long LINUX_MIB_TCPOFOQUEUE
unsigned_long LINUX_MIB_TCPOFODROP
unsigned_long LINUX_MIB_TCPOFOMERGE
unsigned_long LINUX_MIB_TCPCHALLENGEACK
unsigned_long LINUX_MIB_TCPSYNCHALLENGE
unsigned_long LINUX_MIB_TCPFASTOPENACTIVE
unsigned_long LINUX_MIB_TCPFASTOPENACTIVEFAIL
unsigned_long LINUX_MIB_TCPFASTOPENPASSIVE
unsigned_long LINUX_MIB_TCPFASTOPENPASSIVEFAIL
unsigned_long LINUX_MIB_TCPFASTOPENLISTENOVERFLOW
unsigned_long LINUX_MIB_TCPFASTOPENCOOKIEREQD
unsigned_long LINUX_MIB_TCPFASTOPENBLACKHOLE
unsigned_long LINUX_MIB_TCPSPURIOUS_RTX_HOSTQUEUES
unsigned_long LINUX_MIB_BUSYPOLLRXPACKETS
unsigned_long LINUX_MIB_TCPSYNRETRANS
unsigned_long LINUX_MIB_TCPHYSTARTTRAINDETECT
unsigned_long LINUX_MIB_TCPHYSTARTTRAINCWND
unsigned_long LINUX_MIB_TCPHYSTARTDELAYDETECT
unsigned_long LINUX_MIB_TCPHYSTARTDELAYCWND
unsigned_long LINUX_MIB_TCPACKSKIPPEDSYNRECV
unsigned_long LINUX_MIB_TCPACKSKIPPEDPAWS
unsigned_long LINUX_MIB_TCPACKSKIPPEDSEQ
unsigned_long LINUX_MIB_TCPACKSKIPPEDFINWAIT2
unsigned_long LINUX_MIB_TCPACKSKIPPEDTIMEWAIT
unsigned_long LINUX_MIB_TCPACKSKIPPEDCHALLENGE
unsigned_long LINUX_MIB_TCPWINPROBE
unsigned_long LINUX_MIB_TCPMTUPFAIL
unsigned_long LINUX_MIB_TCPMTUPSUCCESS
unsigned_long LINUX_MIB_TCPDELIVEREDCE
unsigned_long LINUX_MIB_TCPACKCOMPRESSED
unsigned_long LINUX_MIB_TCPZEROWINDOWDROP
unsigned_long LINUX_MIB_TCPRCVQDROP
unsigned_long LINUX_MIB_TCPWQUEUETOOBIG
unsigned_long LINUX_MIB_TCPFASTOPENPASSIVEALTKEY
unsigned_long LINUX_MIB_TCPTIMEOUTREHASH
unsigned_long LINUX_MIB_TCPDUPLICATEDATAREHASH
unsigned_long LINUX_MIB_TCPDSACKRECVSEGS
unsigned_long LINUX_MIB_TCPDSACKIGNOREDDUBIOUS
unsigned_long LINUX_MIB_TCPMIGRATEREQSUCCESS
unsigned_long LINUX_MIB_TCPMIGRATEREQFAILURE
unsigned_long __LINUX_MIB_MAX
============== ===================================== =================== =================== ==================================================
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
TCP 송수신 hot MIB와 초기 counter
1-50이 문서는 `netns_ipv4`에서 사용하는 Linux MIB enum counter의 fast-path update 위치를 나열합니다. Counter type은 `unsigned_long`이고 name은 `/proc/net/netstat` 계열 통계와 연결되는 kernel symbol입니다.
TX write-hot counter에는 keepalive, delayed ACK, autocorking, zero-window advertisement와 original data sent가 있습니다. RX write-hot counter에는 header prediction hit, receive coalescing, pure ACK, high-performance ACK와 delivered data가 표시됩니다. 그 밖의 Syncookie, prune, overflow, memory과 lock drop counter도 원문 enum 순서를 유지합니다.
원문 11~50행을 구조화했습니다.
.. SPDX-License-Identifier: GPL-2.0
.. Copyright (C) 2023 Google LLC
===========================================
netns_ipv4 enum fast path usage breakdown
===========================================
============== ===================================== =================== =================== ==================================================
Type Name fastpath_tx_access fastpath_rx_access comment
============== ===================================== =================== =================== ==================================================
unsigned_long LINUX_MIB_TCPKEEPALIVE write_mostly tcp_keepalive_timer
unsigned_long LINUX_MIB_DELAYEDACKS write_mostly tcp_delack_timer_handler,tcp_delack_timer
unsigned_long LINUX_MIB_DELAYEDACKLOCKED write_mostly tcp_delack_timer_handler,tcp_delack_timer
unsigned_long LINUX_MIB_TCPAUTOCORKING write_mostly tcp_push,tcp_sendmsg_locked
unsigned_long LINUX_MIB_TCPFROMZEROWINDOWADV write_mostly tcp_select_window,tcp_transmit-skb
unsigned_long LINUX_MIB_TCPTOZEROWINDOWADV write_mostly tcp_select_window,tcp_transmit-skb
unsigned_long LINUX_MIB_TCPWANTZEROWINDOWADV write_mostly tcp_select_window,tcp_transmit-skb
unsigned_long LINUX_MIB_TCPORIGDATASENT write_mostly tcp_write_xmit
unsigned_long LINUX_MIB_TCPHPHITS write_mostly tcp_rcv_established,tcp_v4_do_rcv,tcp_v6_do_rcv
unsigned_long LINUX_MIB_TCPRCVCOALESCE write_mostly tcp_try_coalesce,tcp_queue_rcv,tcp_rcv_established
unsigned_long LINUX_MIB_TCPPUREACKS write_mostly tcp_ack,tcp_rcv_established
unsigned_long LINUX_MIB_TCPHPACKS write_mostly tcp_ack,tcp_rcv_established
unsigned_long LINUX_MIB_TCPDELIVERED write_mostly tcp_newly_delivered,tcp_ack,tcp_rcv_established
unsigned_long LINUX_MIB_SYNCOOKIESSENT
unsigned_long LINUX_MIB_SYNCOOKIESRECV
unsigned_long LINUX_MIB_SYNCOOKIESFAILED
unsigned_long LINUX_MIB_EMBRYONICRSTS
unsigned_long LINUX_MIB_PRUNECALLED
unsigned_long LINUX_MIB_RCVPRUNED
unsigned_long LINUX_MIB_OFOPRUNED
unsigned_long LINUX_MIB_OUTOFWINDOWICMPS
unsigned_long LINUX_MIB_LOCKDROPPEDICMPS
unsigned_long LINUX_MIB_ARPFILTER
unsigned_long LINUX_MIB_TIMEWAITED
unsigned_long LINUX_MIB_TIMEWAITRECYCLED
unsigned_long LINUX_MIB_TIMEWAITKILLED
unsigned_long LINUX_MIB_PAWSACTIVEREJECTED
unsigned_long LINUX_MIB_PAWSESTABREJECTED
unsigned_long LINUX_MIB_BEYOND_WINDOW
unsigned_long LINUX_MIB_TSECR_REJECTED
unsigned_long LINUX_MIB_PAWS_OLD_ACK
unsigned_long LINUX_MIB_PAWS_TW_REJECTED
unsigned_long LINUX_MIB_DELAYEDACKLOST
unsigned_long LINUX_MIB_LISTENOVERFLOWS
unsigned_long LINUX_MIB_LISTENDROPS
unsigned_long LINUX_MIB_TCPRENORECOVERY
unsigned_long LINUX_MIB_TCPSACKRECOVERY
unsigned_long LINUX_MIB_TCPSACKRENEGING
unsigned_long LINUX_MIB_TCPSACKREORDER
unsigned_long LINUX_MIB_TCPRENOREORDER
Recovery·loss·abort·drop counter
51-100중간 counter는 timestamp·Reno·SACK reordering, undo와 recovery failure, fast/slow-start retransmission, timeout과 loss probe, DSACK, TCP abort 원인, memory pressure 및 MD5 failure를 포함합니다.
이어 SACK shift/merge, backlog와 PF memory drop, minimum TTL과 defer-accept drop, reverse-path filter, TIME_WAIT overflow, request queue cookie/drop, retransmit failure와 out-of-order queue 통계를 기록합니다. 이 구간은 access column이 대부분 비어 있어 원문이 특정 TX/RX hotness를 지정하지 않았음을 그대로 나타냅니다.
원문 51~100행을 구조화했습니다.
unsigned_long LINUX_MIB_TCPTSREORDER
unsigned_long LINUX_MIB_TCPFULLUNDO
unsigned_long LINUX_MIB_TCPPARTIALUNDO
unsigned_long LINUX_MIB_TCPDSACKUNDO
unsigned_long LINUX_MIB_TCPLOSSUNDO
unsigned_long LINUX_MIB_TCPLOSTRETRANSMIT
unsigned_long LINUX_MIB_TCPRENOFAILURES
unsigned_long LINUX_MIB_TCPSACKFAILURES
unsigned_long LINUX_MIB_TCPLOSSFAILURES
unsigned_long LINUX_MIB_TCPFASTRETRANS
unsigned_long LINUX_MIB_TCPSLOWSTARTRETRANS
unsigned_long LINUX_MIB_TCPTIMEOUTS
unsigned_long LINUX_MIB_TCPLOSSPROBES
unsigned_long LINUX_MIB_TCPLOSSPROBERECOVERY
unsigned_long LINUX_MIB_TCPRENORECOVERYFAIL
unsigned_long LINUX_MIB_TCPSACKRECOVERYFAIL
unsigned_long LINUX_MIB_TCPRCVCOLLAPSED
unsigned_long LINUX_MIB_TCPDSACKOLDSENT
unsigned_long LINUX_MIB_TCPDSACKOFOSENT
unsigned_long LINUX_MIB_TCPDSACKRECV
unsigned_long LINUX_MIB_TCPDSACKOFORECV
unsigned_long LINUX_MIB_TCPABORTONDATA
unsigned_long LINUX_MIB_TCPABORTONCLOSE
unsigned_long LINUX_MIB_TCPABORTONMEMORY
unsigned_long LINUX_MIB_TCPABORTONTIMEOUT
unsigned_long LINUX_MIB_TCPABORTONLINGER
unsigned_long LINUX_MIB_TCPABORTFAILED
unsigned_long LINUX_MIB_TCPMEMORYPRESSURES
unsigned_long LINUX_MIB_TCPMEMORYPRESSURESCHRONO
unsigned_long LINUX_MIB_TCPSACKDISCARD
unsigned_long LINUX_MIB_TCPDSACKIGNOREDOLD
unsigned_long LINUX_MIB_TCPDSACKIGNOREDNOUNDO
unsigned_long LINUX_MIB_TCPSPURIOUSRTOS
unsigned_long LINUX_MIB_TCPMD5NOTFOUND
unsigned_long LINUX_MIB_TCPMD5UNEXPECTED
unsigned_long LINUX_MIB_TCPMD5FAILURE
unsigned_long LINUX_MIB_SACKSHIFTED
unsigned_long LINUX_MIB_SACKMERGED
unsigned_long LINUX_MIB_SACKSHIFTFALLBACK
unsigned_long LINUX_MIB_TCPBACKLOGDROP
unsigned_long LINUX_MIB_PFMEMALLOCDROP
unsigned_long LINUX_MIB_TCPMINTTLDROP
unsigned_long LINUX_MIB_TCPDEFERACCEPTDROP
unsigned_long LINUX_MIB_IPRPFILTER
unsigned_long LINUX_MIB_TCPTIMEWAITOVERFLOW
unsigned_long LINUX_MIB_TCPREQQFULLDOCOOKIES
unsigned_long LINUX_MIB_TCPREQQFULLDROP
unsigned_long LINUX_MIB_TCPRETRANSFAIL
unsigned_long LINUX_MIB_TCPBACKLOGCOALESCE
unsigned_long LINUX_MIB_TCPOFOQUEUE
Fast Open·HyStart·ACK·ECN tail
101-141후반부는 out-of-order drop/merge, challenge ACK와 SYN challenge, TCP Fast Open active·passive 성공과 실패, listen overflow, cookie requirement, blackhole, busy-poll RX와 SYN retransmission을 다룹니다.
HyStart train/delay detection과 cwnd, 상태별 skipped ACK, window probe, MTU probe 성공·실패, ECN delivered CE, compressed ACK, zero-window·receive queue·write queue drop 및 rehash·migration 결과 counter가 이어집니다. `__LINUX_MIB_MAX`는 enum 끝 경계입니다.
원문 101~140행을 구조화했습니다.
unsigned_long LINUX_MIB_TCPOFODROP
unsigned_long LINUX_MIB_TCPOFOMERGE
unsigned_long LINUX_MIB_TCPCHALLENGEACK
unsigned_long LINUX_MIB_TCPSYNCHALLENGE
unsigned_long LINUX_MIB_TCPFASTOPENACTIVE
unsigned_long LINUX_MIB_TCPFASTOPENACTIVEFAIL
unsigned_long LINUX_MIB_TCPFASTOPENPASSIVE
unsigned_long LINUX_MIB_TCPFASTOPENPASSIVEFAIL
unsigned_long LINUX_MIB_TCPFASTOPENLISTENOVERFLOW
unsigned_long LINUX_MIB_TCPFASTOPENCOOKIEREQD
unsigned_long LINUX_MIB_TCPFASTOPENBLACKHOLE
unsigned_long LINUX_MIB_TCPSPURIOUS_RTX_HOSTQUEUES
unsigned_long LINUX_MIB_BUSYPOLLRXPACKETS
unsigned_long LINUX_MIB_TCPSYNRETRANS
unsigned_long LINUX_MIB_TCPHYSTARTTRAINDETECT
unsigned_long LINUX_MIB_TCPHYSTARTTRAINCWND
unsigned_long LINUX_MIB_TCPHYSTARTDELAYDETECT
unsigned_long LINUX_MIB_TCPHYSTARTDELAYCWND
unsigned_long LINUX_MIB_TCPACKSKIPPEDSYNRECV
unsigned_long LINUX_MIB_TCPACKSKIPPEDPAWS
unsigned_long LINUX_MIB_TCPACKSKIPPEDSEQ
unsigned_long LINUX_MIB_TCPACKSKIPPEDFINWAIT2
unsigned_long LINUX_MIB_TCPACKSKIPPEDTIMEWAIT
unsigned_long LINUX_MIB_TCPACKSKIPPEDCHALLENGE
unsigned_long LINUX_MIB_TCPWINPROBE
unsigned_long LINUX_MIB_TCPMTUPFAIL
unsigned_long LINUX_MIB_TCPMTUPSUCCESS
unsigned_long LINUX_MIB_TCPDELIVEREDCE
unsigned_long LINUX_MIB_TCPACKCOMPRESSED
unsigned_long LINUX_MIB_TCPZEROWINDOWDROP
unsigned_long LINUX_MIB_TCPRCVQDROP
unsigned_long LINUX_MIB_TCPWQUEUETOOBIG
unsigned_long LINUX_MIB_TCPFASTOPENPASSIVEALTKEY
unsigned_long LINUX_MIB_TCPTIMEOUTREHASH
unsigned_long LINUX_MIB_TCPDUPLICATEDATAREHASH
unsigned_long LINUX_MIB_TCPDSACKRECVSEGS
unsigned_long LINUX_MIB_TCPDSACKIGNOREDDUBIOUS
unsigned_long LINUX_MIB_TCPMIGRATEREQSUCCESS
unsigned_long LINUX_MIB_TCPMIGRATEREQFAILURE
unsigned_long __LINUX_MIB_MAX
============== ===================================== =================== =================== ==================================================
요약·해설
snmp.rst:1-141Keepalive와 ACK hot counter부터 recovery·drop·Fast Open·ECN·migration 통계까지 130개 MIB symbol을 원문 순서와 접근 성격 그대로 제공합니다.