/proc/net/*
snmp文件
Ip: ip項
Forwarding : 是否開啓ip_forward,1開啓,2關閉
DefaultTTL : IP默認ttl.
InReceives : IP協議處理的數據包.
InHdrErrors : IP頭錯誤而丟棄的數據包.
InAddrErrors : IP地址沒有找到路由而丟棄的包.
ForwDatagrams : IP轉發的數據包個數
InUnknownProtos : IP頭中的協議未知的數據包個數
InDiscards : IP層中丟棄的數據包,因爲沒有內存等緣由引發.
InDelivers : IP層向上層傳輸層遞交的數據包
OutRequests : IP層向外發送數據包請求的個數,這個包最後不必定真發送出去了.
OutDiscards : IP層向外發送數據時因爲一些錯誤而丟棄的數據包.
OutNoRoutes : IP層發送數據時沒有找到路由的數據包個數
ReasmTimeout : IP碎片隊列超時次數
ReasmReqds : IP碎片重組包數
ReasmOKs : IP碎片重組成功次數
ReasmFails : IP碎片重組失敗次數
FragOKs : IP分片成功次數
FragFails : IP分片失敗次數
FragCreates : IP分片發送個數
icmp :icmp項
InMsgs : 總共接收的icmp包個數
InErrors : 錯誤的icmp包個數
InDestUnreachs : 接收的icmp目的不可達包個數
InTimeExcds : 接收的icmp超時包的個數
InParmProbs : 接收的icmp參數錯誤包的個數
InSrcQuenchs : 接收的icmp源抑制包的個數
InRedirects : 接收的icmp重定向包的個數
InEchos : 接收的icmp回顯請求包數量
InEchoReps : 接收的icmp回顯應答包數量
InTimestamps : 接收的icmp時間截請求數量
InTimestampReps : 接收的icmp時間截應答數量
InAddrMasks : 接收的icmp子網掩碼請求包數量
InAddrMaskReps : 接收的icmp子網掩碼應答包數量
OutMsgs : 總共發出的icmp包個數
OutErrors : 發出icmp包的錯誤個數,由於icmp包很小几乎不會出錯,內核沒使用這項因此老是0.
OutDestUnreachs : 發送的icmp目的不可達包個數
OutTimeExcds : 發送的icmp超時包的個數
OutParmProbs : 發送的icmp參數錯誤包的個數
OutSrcQuenchs : 發送的icmp源抑制包的個數
OutRedirects : 發送的icmp重定向包個數
OutEchos : 發送的icmp回顯請求包的個數
OutEchoReps : 發送的icmp回顯應答包數量
OutTimestamps : 發送的icmp時間截請求包數量
OutTimestampReps: 發送的icmp時間截應答數量
OutAddrMasks : 發送的icmp子網掩碼請求包數量
OutAddrMaskReps : 發送的icmp子網掩碼應答包數量
Tcp: tcp項
RtoAlgorithm : 轉發未答覆對象的延時的算法的數目,初始化爲1
RtoMin : TCP延遲重發的最小值,初始化爲200
RtoMax : TCP延遲重發的最大值,初始化爲120000
MaxConn : 主機可支持的TCP最大鏈接數目,初始化爲-1
ActiveOpens : tcp主動鏈接的發送次數
PassiveOpens : tcp listen狀態被動打開的次數
AttemptFails : tcp syn_recv狀態被reset的次數
EstabResets : 當tcp狀態在CLOSE_WAIT或TCP_ESTABLISHED狀態時被reset的次數
CurrEstab : tcp鏈接轉換到TCP_ESTABLISHED狀態的次數
InSegs : tcp協議層收到的數據包個數
OutSegs : tcp協議層發出的數據包個數
RetransSegs : tcp協議層重傳的數據包個數
InErrs : tcp協議層接收出錯的數據包的個數
OutRsts : tcp協議層發送的reset數據包的個數
Udp: udp項
InDatagrams : udp協議層接收到有效數據包個數
NoPorts : udp協議層接收到目的地址或目的端口不存在的數據包
InErrors : udp層接收到的無效數據包的個數
OutDatagrams : udp層發送的數據包個數
RcvbufErrors : udp接收數據時因緩衝區滿而丟棄的包數量
SndbufErrors : udp發送數據包因緩衝區滿或沒有內存而丟棄的包數量
netstat文件
TcpExt : tcp各類異常數據包
SyncookiesSent : 在sysctl_tcp_syncookies選項打開後接收到syn而進行syn cookies計算的次數
SyncookiesRecv : 在CONFIG_SYN_COOKIES配置打開後接收ack而進行syn cookies檢測計算成功的次數
SyncookiesFailed : 在CONFIG_SYN_COOKIES配置打開後接收ack而進行syn cookies檢測計算失敗的次數
EmbryonicRsts : 服務端因爲3次握手沒有成功由於接收到了一個reset包而致使向客戶端發送reset包的次數
PruneCalled : 因爲接收緩存空間不足而進行tcp內存回收的次數
RcvPruned : 因爲接收緩存空間不足而進行tcp內存回收後空間仍是不夠的次數
OfoPruned : 因爲接收緩存空間不足而進行tcp無序數據回收的次數
OutOfWindowIcmps : icmp協議棧處理ICMP_DEST_UNREACH, ICMP_TIME_EXCEED, ICMP_QUENCH類型包時,是超出tcp窗口類型的包個數
LockDroppedIcmps : icmp協議棧處理ICMP_DEST_UNREACH, ICMP_TIME_EXCEED, ICMP_QUENCH類型包時,當時sock正被用戶程序鎖定的包個數
ArpFilter : 被arp協議棧過濾掉的包的個數,過濾後就不會響應arp_reply包
TW : timewait狀態sock超時後被回收的個數
TWRecycled : 試圖進行timewait狀態sock回收的次數,當新sock進行connect而hash時與原有的sock或timewait狀態的sock衝突時,會觸發回收工做.
TWKilled : 使用PAWS機制後釋放timewait狀態sock的個數
PAWSPassive : 服務器方在接收到syn並且在重用timewait狀態的sock時,因時間截檢查而失敗致使syn失效的次數.
PAWSActive : 客戶端在接收到syn+ack包但因時間截超出預取而被reset的鏈接數.
PAWSEstab : 鏈接已經創建中接收到時間截項錯誤的數據包的個數.
DelayedACKs : 延遲ack包發送的次數.
DelayedACKLocked : 發送延遲ack時,用戶已經鎖定了sock而致使ack再次延遲的次數.
DelayedACKLost : 延遲ack丟失而進行從發的次數
ListenOverflows : Listen狀態的sock因syn過多致使請求數量超過了sock的最大backlog的數量的次數
ListenDrops : 或者是由於請求數量超出或者是其餘錯誤緣由例如內存不足等致使Listen狀態sock分配子sock失敗的次數.
TCPPrequeued : 系統調用中處理tcp協議棧的skb包的次數.
TCPDirectCopyFromBacklog : 在網絡軟中斷中就已經拷貝到用戶空間的字節數.
TCPDirectCopyFromPrequeue : 直接從prequeue隊列拷貝到用戶空間的數據字節數.
TCPPrequeueDropped : 沒有使用老是0
TCPHPHits : tcp協議棧快速路徑處理數據被動拷貝到用戶空間的次數
TCPHPHitsToUser : tcp協議棧快速路徑處理數據主動拷貝到用戶空間的次數
TCPPureAcks : tcp協議棧接收到純ack包的次數
TCPHPAcks : tcp協議接收到預期順序ack包的次數
TCPRenoRecovery : 進入到快速重傳恢復狀態的次數,說明有數據包丟失 ??
TCPSackRecovery : 進入到擁塞控制狀態的次數 ??
TCPSACKReneging : 主機發送的SACK被拒絕的次數,說明接收端擁塞十分嚴重或有bug
TCPFACKReorder : tcp協議棧在接收到FACK包而進行亂序包閥值調整的次數 ??
TCPSACKReorder : tcp協議棧在接收到SACK包而進行亂序包閥值調整的次數 ??
TCPRenoReorder : tcp協議棧在擁塞狀態而進行亂序包閥值調整的次數 ??
TCPTSReorder : tcp協議棧在接收到時間截包而進行亂序包閥值調整的次數 ??
TCPFullUndo : tcp協議棧撤銷了全部須要重傳的數據包. ??
TCPPartialUndo : tcp協議棧撤銷了部分須要重傳的數據包. ??
TCPDSACKUndo : 撤銷了發送DSACK包的次數,DSACK要求重傳全部須要重傳的數據.
TCPLossUndo : 撤銷發送快速恢復數據包的次數.
TCPLoss : tcp協議棧丟失數據包而進行恢復的次數.
TCPLostRetransmit : tcp協議棧丟失重傳的數據包的次數.
TCPRenoFailures : 擁塞控制恢復失敗次數.
TCPSackFailures : tcp協議sack恢復數據失敗次數.
TCPLossFailures : tcp協議棧丟失數據包而進行恢復失敗的次數
TCPFastRetrans : tcp協議棧發送快速重傳數據的次數.
TCPForwardRetrans : tcp協議棧發送通常重傳數據的次數.
TCPSlowStartRetrans : tcp協議棧執行慢啓動重傳數據的次數.
TCPTimeouts : tcp數據在指定時間內沒有受到應答ack而超時的次數
TCPRenoRecoveryFail : 快速重傳包丟失致使快速重傳恢復機制失敗的次數 ??
TCPSackRecoveryFail : 從擁塞控制狀態恢復失敗的次數 ??
TCPSchedulerFailed : tcp在發送延遲ack而進行數據後備隊列的接收處理的次數.
TCPRcvCollapsed : tcp在丟棄重複完整數據包時的次數.
TCPDSACKOldSent : 發送過時的相同sack的次數
TCPDSACKOfoSent : 發送超前的相同sack的次數
TCPDSACKRecv : 接收到相同sack包的次數
TCPDSACKOfoRecv : 接收到相同超前的sack包次數 ??
TCPAbortOnSyn : 接收到錯誤的syn包(序號錯誤)致使鏈接被reset的次數.
TCPAbortOnData : 當sock狀態在TCP_FIN_WAIT1或TCP_FIN_WAIT2狀態已經進入半鏈接但仍是接收到數據而引發鏈接被reset的次數.
TCPAbortOnClose : 當sock關閉時還有相關數據未讀的次數.
TCPAbortOnMemory : 當sock關閉時因爲內存不足而直接被reset的次數.
TCPAbortOnTimeout : tcp協議棧各定時器超時重複次數超過最大限制而關閉sock的次數.
TCPAbortOnLinger : 當sock關閉時狀態是TCP_FIN_WAIT2狀態直接被reset的次數.
TCPAbortFailed : tcp協議棧在發送reset包而發送失敗的次數.
TCPMemoryPressures : 分配skb失敗致使進入協議棧內存緊缺狀態的次數.
IpExt: ip異常數據包
InNoRoutes : ip接收到數據包可是查找路由時路由標識目的地址不可達的次數.
InTruncatedPkts : ip接收到數據包實際長度小於ip頭中標識長度的個數.
InMcastPkts : ip接收到多播地址的數據包個數
OutMcastPkts : ip發送到多播地址的數據包個數
InBcastPkts : ip接收到廣播地址的數據包個數
OutBcastPkts : ip發送到廣播地址的數據包個數
/proc/sys/net/ 描述
ipv4
ip_default_ttl : net/ipv4/ip_output.c default 64
description:
表示IP數據報的Time To Live值(在網絡傳遞中,每通過一"跳",該值減小1,當ttl爲0的時候,丟棄該包.該值越大,即在網絡上能夠通過的路由器設備的數量越多,但一個錯誤的包,也會愈加浪費生存週期.根據目前的實際情形而看,設置爲32已經足夠普通網絡訪問Internet的需求了)
ip_dynaddr : net/ipv4/af_inet.c default 0
description :
撥號上網大部分都是使用動態IP地址,咱們不知道遠程撥號服務器的IP地址是多少,也不可能知道它會給電腦分配什麼IP地址。在其中寫入「1」,就是告訴內核要使用動態IP地址。
ip_forward : include/linux/inetdevice.h default 0
description:
struct in_device
{
......
struct ipv4_devconf cnf;
......
};
struct ipv4_devconf
{
......
int forwarding;
......
};
禁止和開啓ip路由功能,0爲禁止.
ipfrag_high_thresh : net/ipv4/ip_fragment.c default 256*1024
description:
用來組裝分段的IP包的最大內存量。一旦達到最高內存分配值,其它分段將被丟棄,直到達到最低內存(ipfrag_low_thresh)分配值。
ipfrag_low_thresh : net/ipv4/ip_fragment.c default 192*1024
description:
ip碎片內存最低閥值,直到回收內存到最低值的時候才又開門放分段的ip包進來處理.
ipfrag_max_dist : net/ipv4/ip_fragment.c default 64 :(
description:
相同的源地址ip碎片數據報的最大數量. 這個變量表示在ip碎片被添加到隊列前要做額外的檢查.若是超過定義的數量的ip碎片從一個相同源地址到達,那麼假定這個隊列的ip碎片有丟失,已經存在的ip碎片隊列會被丟棄,若是爲0關閉檢查。
很是小的值例如1,2可能致使沒必要要的碎片丟棄,若是值很大50000可能致使ip碎片重組的不正確性。
ipfrag_secret_interval : net/ipv4/ip_fragment.c default 10*60*HZ :(
description:
hash表中ip碎片隊列的重建延遲.
ipfrag_time : net/ipv4/ip_fragment.c default 30*HZ
description:
ip碎片隊列在內存中的超時時間,若是超時將銷燬ip碎片隊列.
ip_local_port_range : net/ipv4/inet_connection_sock.c default { 1024, 4999 }
description:
本地發起鏈接時使用的端口範圍,tcp初始化時會修改此值.
ip_nonlocal_bind : net/ipv4/af_inet.c default 0
description:
容許進程綁定到非本地地址,0爲禁止。
ip_no_pmtu_disc : include/net/ip.h default 0
description:
struct ipv4_config
{
......
int no_pmtu_disc;
};
關閉路徑MTU探測,一次成功的傳輸中,mtu是由網絡上最"窄"的位置決定的.若是IP層有一個數據報要傳,
並且數據的長度比鏈路層的MTU還大,那麼IP層就須要進行分片,把數據報分紅若干片,這樣每一片都小於MTU. 0爲開啓.
cipso : Commercial IP Security Option
cipso_cache_bucket_size : net/ipv4/cipso_ipv4.c default 10
description:
限制cipso緩存項的大小,若是在緩存中新添加一行超出了這個限制,那麼最舊的緩存項會被丟棄以釋放出空間。
cipso_cache_enable : net/ipv4/cipso_ipv4.c default 1
description:
是否啓用cipso緩存,默認啓用。
cipso_rbm_optfmt : net/ipv4/cipso_ipv4 default 0
description:
是否開啓cipso標誌優化選項,若是開啓,數據包中標誌將會在32bit對齊,默認關閉.
cipso_rbm_strictvalid : net/ipv4/cipso_ipv4 default 1
description:
是否開啓cipso選項的嚴格檢測,默認開啓。
icmp_echo_ignore_all : net/ipv4/icmp.c default 0
description:
是否忽略icmp回顯請求,默認不忽略.
icmp_echo_ignore_broadcasts : net/ipv4/icmp.c default 1
description:
是否忽略在廣播或多波地址上的回顯和時間截請求,1爲忽略,防止icmp風暴,防止網絡阻塞.
icmp_errors_use_inbound_ifaddr : net/ipv4/icmp.c default 0
description:
當前爲 ICMP 錯誤消息選擇源地址的方式,是使用存在的接口地址。1表示內核經過這個選項容許使用接收到形成這一錯誤的報文的接口的地址。
icmp_ignore_bogus_error_responses : net/ipv4/icmp.c default 1
description:
若是關閉這項,核心接收到廣播地址的icmp應答包將給出警告信息,由於一些路由器會發送這樣的僞造的數據包. dmesg中可見到,默認開啓.
icmp_ratelimit : net/ipv4/icmp.c default 1*HZ
description:
限制在下面掩碼中定義的icmp類型數據包的發送速度,若是爲0,那麼沒有限制。
icmp_ratemask : net/ipv4/icmp.c default 0x1818
description:
在這些位中定義的icmp類型數據報發送將被限速.
Significant bits: IHGFEDCBA9876543210
Default mask: 0000001100000011000 (6168)
Bit definitions (see include/linux/icmp.h):
0 Echo Reply
3 Destination Unreachable *
4 Source Quench *
5 Redirect
8 Echo Request
B Time Exceeded *
C Parameter Problem *
D Timestamp Request
E Timestamp Reply
F Info Request
G Info Reply
H Address Mask Request
I Address Mask Reply
igmp_max_memberships : net/ipv4/igmp.c default 20
description:
限制加入一個多播組的最大成員數.
igmp_max_msf : net/ipv4/igmp.c default 10
description:
限制多播源地址過濾數量.
inet_peer_gc_maxtime : net/ipv4/inetpeer.c default 120 * HZ
description:
廢物收集經過的最大間隔,這個間隔會影響到緩衝池中內存的低壓力。 該值以 jiffies爲單位測量。
inet_peer_gc_mintime : net/ipv4/inetpeer.c default 10 * HZ
description:
廢物收集經過的最短間隔。這個間隔會影響到緩衝池中內存的高壓力。 該值以 jiffies爲單位測量。
inet_peer_maxttl : net/ipv4/inetpeer.c default 10 * 60 * HZ
description:
項目的最大存活期。在此期限到達以後,若是緩衝池沒有耗盡壓力的話(例如,緩衝池中的條目數目很是少),不使用的條目將會超時。該值以 jiffies爲單位測量。
inet_peer_minttl : net/ipv4/inetpeer.c default 120 * HZ
description:
項目的最低存活期。在重組端必需要有足夠的碎片存活期。這個最低存活期必須保證緩衝池容積是否少於 inet_peer_threshold。該值以 jiffies爲單位測量。
inet_peer_threshold : net/ipv4/inetpeer.c default 65536 + 128
description:
INET對端存儲器某個合適值,當超過該閥值條目將被丟棄。該閥值一樣決定生存時間以及廢物收集經過的時間間隔。項越多,存活期越低,垃圾收集間隔越短
也就是當前數量若是超過這個值,那麼會使用inet_peer_gc_mintime和inet_peer_minttl參數.
tcp_abc : net/ipv4/tcp_input.c default 0
description:
用適當的字節計算增長tcp的擁塞窗口,以使tcp應答速度減慢, 定義在RFC3465.
tcp_abort_on_overflow : net/ipv4/tcp_minisocks.c default 0
description:
控制當tcp的監聽隊列滿時因爲瞬時的鏈接過多,鏈接是否會繼續. 由於鏈接滿了,
服務端會丟棄這個syn,客戶端會從發syn, 若是這項爲1那麼鏈接滿後會發送reset包而且丟棄請求結構,
這樣的話若是客戶端再次創建鏈接,服務器端又會重新創建請求結構. 若是肯定監聽進程不能經過適當的調節而更快的接受鏈接那麼開啓這項.
tcp_adv_win_scale : net/ipv4/tcp_input.c default 2
description:
接收窗口尺寸的選取與對接收端MSS和當前可用的接收緩存總量有關,接收緩存按必定的比例劃爲可用接收窗口.
這個比例可由這個參數調節.
tcp_allowed_congestion_control : net/ipv4/tcp_cubic.c net/ipv4/tcp_cong.c
description:
列出了tcp目前容許使用的擁塞控制算法,只能在下面可用的算法中選擇.
tcp_available_congestion_control : net/ipv4/tcp_cubic.c net/ipv4/tcp_cong.c
description:
列出了tcp目前可使用的擁塞控制算法.
tcp_congestion_control : net/ipv4/sysctl_net_ipv4.c default cubic
description:
當前正在使用的擁塞控制算法.
tcp_app_win : net/ipv4/tcp_input.c default 31
description:
調整滑動窗口的最大值時使用. 1 - 31 有影響,滑動窗口的最大值隨着數值的增長而增長,若是爲0或 > 32那麼滑動窗口的最大值取最大.
tcp_base_mss : net/ipv4/tcp_output.c default 512
description:
tcp探察路徑上mtu的最低邊界限制, mss+TCP頭部+TCP選項+IP頭+IP選項.
tcp_dma_copybreak : net/core/user_dma.c default 4096
description:
控制用戶請求數據時能夠從協議棧中直接拷貝數據的長度. 在內核開啓NET_DMA時使用,是tcp模擬dma拷貝的一項功能.
tcp_dsack : net/ipv4/tcp_input.c default 1
description:
表示是否容許TCP發送「兩個徹底相同」的SACK,默認開啓.
tcp_ecn : net/ipv4/tcp_input.c default 0
description:
表示是否打開TCP的直接擁塞通告功能,默認關閉.
tcp_fack : net/ipv4/tcp_input.c default 1
description:
表示是否打開FACK擁塞避免和快速重傳功能,啓用轉發應答(Forward Acknowledgment),這能夠進行有選擇應答(SACK)從而減小擁塞狀況的發生.默認開啓.
tcp_fin_timeout : net/ipv4/tcp.c default 60*HZ
description:
對於本端斷開的socket鏈接,TCP保持在FIN-WAIT-2狀態的時間。對方可能會斷開鏈接或一直不結束鏈接或不可預料的進程死亡,減小值可使系統處理更多的鏈接。
tcp_frto : net/ipv4/tcp_input.c default 0
description:
加強tcp超時從傳算法,通常用在無線環境,包丟失是因爲隨機無線接口設備而不是中間路由擁塞,默認關閉.
tcp_keepalive_intvl : net/ipv4/tcp_timer.c default 75 * HZ
description:
探測消息發送的頻率(保活定時器),乘以tcp_keepalive_probes就獲得對於從開始探測以來沒有響應的鏈接殺除的時間,
默認值爲75秒,也就是沒有活動的鏈接將在大約11分鐘之後將被丟棄。
tcp_keepalive_probes : net/ipv4/tcp_timer.c default 9
description:
表示丟棄TCP鏈接前,進行最大TCP保持鏈接偵測的次數。保持鏈接僅在SO_KEEPALIVE套接字選項被打開時才被髮送.
tcp_keepalive_time : net/ipv4/tcp_timer.c default 120*60*HZ
description:
表示從再也不傳送數據起到向鏈接上發送保持鏈接信號之間所需的秒數。
tcp_low_latency : net/ipv4/tcp_ipv4.c default 0
description:
容許 TCP/IP 棧適應在高吞吐量狀況下低延時的狀況;這個選項通常情形是的禁用.(但在構建Beowulf 集羣的時候,打開它頗有幫助)
是否容許TCP包將被排入套接字的預備隊列,這樣若是關閉將可使用預備隊列,那麼tcp接受處理將在用戶進程上下文中,若是開啓那麼處理將在軟中斷中.
tcp_max_orphans : net/ipv4/tcp_input.c default 8192
description:
系統所能處理不屬於任何進程的TCP sockets最大數量。假如超過這個數量,那麼不屬於任何進程的鏈接會被當即reset,並同時顯示警告信息。
之因此要設定這個限制,純粹爲了抵禦那些簡單的 DoS 攻擊,千萬不要依賴這個或是人爲的下降這個限制,這個數值會在啓動時隨內存大小根據在默認值的基礎上調整.
tcp_max_syn_backlog : net/core/request_sock.c default 256
description:
對於那些依然還未得到客戶端確認的鏈接請求,須要保存在隊列中最大數目.對於超過 128Mb 內存的系統,默認值是 1024,低於 128Mb 的則爲 128。
若是服務器常常出現過載,能夠嘗試增長這個數字.
(警告!假如您將此值設爲大於1024,最好修改 include/net/tcp.h 裏面的 TCP_SYNQ_HSIZE,以保持TCP_SYNQ_HSIZE*16 hash表的大小).
這個值並非具體個數,也是一個比例.
tcp_max_tw_buckets : include/net/inet_timewait_sock.h default 8192 * 2
description:
struct inet_timewait_death_row {
......
int sysctl_max_tw_buckets;
};
後備緩存中能夠建立的twsk的上限值,在啓動時會根據內存大小進行修改.通常不須要修改.
tcp_mem : net/ipv4/tcp.c
description:
該文件包含3個整數值,分別是:low,pressure,high
Low:當TCP使用了低於該值的內存頁面數時,TCP不會考慮釋放內存。
Pressure:當TCP使用了超過該值的內存頁面數量時,TCP試圖穩定其內存使用,進入pressure模式,當內存消耗低於low值時則退出pressure狀態。
High:容許全部tcp sockets用於排隊緩衝數據報的頁面量。
通常狀況下這些值是在系統啓動時根據系統內存數量計算獲得的.
tcp_moderate_rcvbuf : net/ipv4/tcp_input.c default 1
description:
若是值爲1,那麼每次數據到來時會進行接收緩存的調整.
tcp_mtu_probing : net/ipv4/tcp_output.c default 0
description:
是否開啓tcp層路徑mtu發現,自動調整tcp窗口等信息,默認關閉.
tcp_no_metrics_save : net/ipv4/tcp_input.c default 0
description:
若是開啓,tcp會在鏈接關閉時也就是LAST_ACK狀態保存各類鏈接信息到路由緩存中,新創建的鏈接可使用這些條件來初始化.
一般這會增長整體的系統性能,可是有些時候也會引發性能降低. 默認是開啓.
tcp_orphan_retries : net/ipv4/tcp_timer.c default 0
description:
在本端丟棄TCP孤兒鏈接以前,要進行多少次重試.若是您的系統是負載很大的web服務器,那麼也許須要下降該值. 默認爲最大值,1爲最小次數.
tcp_reordering : net/ipv4/tcp_input.c default 3
description:
表示TCP流中重排序的數據報最大數量.
tcp_retrans_collapse : net/ipv4/tcp_output.c default 1
description:
爲兼容某些糟糕的打印機設置的"將錯就錯"選項.再次發送時,把連續數據包和並,來避免某些TCP協議棧的BUG,默認開啓.
tcp_retries1 : net/ipv4/tcp_timer.c default 3
description:
當出現可疑狀況而必須向網絡層報告(修改路由緩存)這個可疑情況以前,須要進行多少次重試.最低的 RFC 數值是 3 ,
這也是默認值,根據RTO的值大約在3秒 - 8分鐘之間.
這個所謂的可疑狀況是在創建鏈接下重傳次數超過這個值.
tcp_retries2 : net/ipv4/tcp_timer.c default 15
description:
表示放棄在已經創建鏈接狀態下的一個TCP數據包進行重傳的次數(例如發送數據時),
RFC1122規定,該值必須大於100秒.默認值爲15,根據RTO的值來決定,至關於13-30分鐘.
tcp_rfc1337 : net/ipv4/tcp_input.c default 0
description:
這個開關能夠啓動對於在RFC1337中描述的"tcp的time-wait暗殺危機"問題的修復.默認內核接收到RST包後會銷燬掉那些time-wait狀態TCP套接字.
tcp_rmem : net/ipv4/tcp.c
description:
該文件包含3個整數值,分別是:min,default,max
Min: 爲TCP socket預留用於接收緩衝的最小內存數量,即便在內存出現緊張狀況下TCP socket都至少會有這麼多數量的內存用於接收緩衝.
Default:爲TCP socket預留用於接收緩衝的默認內存數量,默認狀況下該值會覆蓋net/core/rmem_default中的值.
該值決定了在tcp_adv_win_scale、tcp_app_win和tcp_app_win的默認值狀況下,TCP窗口大小爲65535。
Max: 爲TCP socket預留用於接收緩衝的內存最大值.選項參數SO_RCVBUF設置不能超過net/core/rmem_max的值.
tcp_sack : net/ipv4/tcp_input.c default 1
description:
該文件表示是否啓用有選擇的應答(Selective Acknowledgment),這能夠經過有選擇地應答亂序接收到的報文來提升性能
(這樣可讓發送者只發送丟失的報文段)(對於廣域網通訊來講)這個選項應該啓用,可是這會增長對 CPU 的佔用.
tcp_slow_start_after_idle : net/ipv4/tcp_output.c default 1
description:
若是設置知足RFC2861定義的行爲,在重新開始計算擁塞窗口前延遲一些時間,這延遲的時間長度由當前rto決定. (慢啓動 ??)
tcp_stdurg : net/ipv4/tcp_input.c default 0
description:
使用 TCP urg pointer 字段中的主機請求解釋功能。大部份的主機都使用老舊的BSD解釋,所以若是您在 Linux 打開它,或會致使不能和它們正確溝通.
默認關閉狀況,緊急指針會回退一字節.
tcp_synack_retries : net/ipv4/tcp_timer.c default 5
description:
對於遠端的鏈接請求SYN,內核會發送SYN + ACK數據報,以確認收到上一個 SYN鏈接請求包。
這是所謂的三次握手.這裏決定內核在放棄鏈接以前所送出的 SYN+ACK 數目.
tcp_syncookies : net/ipv4/tcp_minisocks.c default 1 若是配置CONFIG_SYSCTL default 0
description:
該文件表示是否打開TCP同步標籤(syncookie),內核必須打開了CONFIG_SYN_COOKIES項進行編譯.
同步標籤(syncookie)能夠防止一個套接字在有過多試圖鏈接到達時引發過載,該功能能夠防止部分SYN攻擊, 1爲開啓.
tcp_syn_retries : net/ipv4/tcp_timer.c default 5
description:
該文件表示本機向外發起TCP SYN鏈接超時重傳的次數,不該該高於255;該值僅僅針對外出的鏈接,對於進來的鏈接由tcp_retries1控制.
tcp_timestamps : net/ipv4/tcp_input.c default 1
description:
該文件表示是否啓用以一種比超時重發更精確的方法(請參閱 RFC 1323)來對 RTT 的計算;爲了實現更好的性能應該啓用這個選項.
tcp_tso_win_divisor : net/ipv4/tcp_output.c default 3
description:
控制根據擁塞窗口的百分比,是否來發送相應的延遲tso frame, 0爲關閉, 值越大表示tso frame延遲發送可能越小.
tcp_tw_recycle : include/net/inet_timewait_sock.h default 0
description:
struct inet_timewait_death_row {
......
int sysctl_tw_recycle;
......
};
啓動快速 TIME-WAIT sockets 回收,默認關閉.
tcp_tw_reuse : net/ipv4/tcp_ipv4.c default 0
description:
表示是否容許從新應用處於TIME-WAIT狀態的socket用於新的TCP鏈接.默認關閉.
tcp_window_scaling : net/ipv4/tcp_input.c default 1
description:
表示設置tcp會話的滑動窗口大小是否可變,默認時表示可變.tcp一般使用的窗口最大可達到 65535 字節,對於高速網絡,該值可能過小,
這時候若是啓用了該功能,可使tcpp滑動窗口大小增大數個數量級,從而提升數據傳輸的能力.
tcp_wmem : net/ipv4/tcp.c
description:
包含3個整數值,分別是:min,default,max
Min: 爲TCP socket預留用於發送緩衝的最小內存數量,即便在內存出現緊張狀況下TCP socket都至少會有這麼多數量的內存用於發送緩衝.
Default:爲TCP socket預留用於發送緩衝的默認內存數量,默認狀況下該值會覆蓋net/core/wmem_default中的值.
Max: 爲TCP socket預留用於發送緩衝的內存最大值.選項參數SO_SNDBUF設置不能超過net/core/wmem_max的值.
tcp_workaround_signed_windows : net/ipv4/tcp_output.c default 0
description:
若是設置爲1,假定遠程鏈接端有錯誤,沒有發送相關的窗口縮放選項.默認假定遠程鏈接端正常發送了窗口收縮選項,即便對端沒有發送.
ipv4/conf
在/proc/sys/net/ipv4/conf/{interface}/* :
下能夠發現相似 all,eth0,eth1,default,lo 等網絡接口界面,每個都是目錄,他們下屬的文件中,每一個文件對應該界面下某些能夠設置的選項設置.
(all/是特定的,用來修改全部接口的設置,default/表示缺省設置,lo/表示本地接口設置,eth0/表示第一塊網卡,eth1/表示第2塊網卡.
注意:下面有的參數,是須要all和該界面下同時爲ture才生效,而某些則是隻須要該界面下爲true便可,注意區別!!)
struct ipv4_devconf 在include/linux/inetdevice.h文件中定義了全部配置項
{
int accept_redirects;
int send_redirects;
int secure_redirects;
int shared_media;
int accept_source_route;
int rp_filter;
int proxy_arp;
int bootp_relay;
int log_martians;
int forwarding;
int mc_forwarding;
int tag;
int arp_filter;
int arp_announce;
int arp_ignore;
int arp_accept;
int medium_id;
int no_xfrm;
int no_policy;
int force_igmp_version;
int promote_secondaries;
......
};
accept_redirects : 對於主機來講默認爲1,對於路由器默認爲0
description:
是否收和發icmp重定向包.若是開啓爲1,須要二者同時生效.
accept_source_route : 對於主機默認0,對於路由默認1
description:
是否接受帶有srr IP選項的數據報.須要二者同時生效.
(IP 源路由選項,也是TCP/IP協議早期的一個實現缺陷,容許IP包自身攜帶路由選擇選項,這將容許攻擊者繞過某些安全檢驗的網關,或者被用來探測網絡環境。
在企業網關上強烈建議設置關閉或過濾丟棄IP源路由選項數據包。這個功能在調試網絡的時候頗有用,可是在真正的實際應用中,有可能形成一些麻煩和危險)
arp_accept : default 0
description:
是否接收相應arp請求的arp應答數據包,默認丟棄. (只有全局生效 ?)
arp_announce : default 0
description:
對網絡接口上,作相應級別的限制: 宣佈使用在發送ARP請求時IP地址中使用的接口的源IP地址.
0 : (默認) 在任意網絡接口(eth0,eth1,lo)上的任何本地地址.
1 : 儘可能避免不在該網絡接口子網段的本地地址作出arp迴應. 當發起ARP請求的源IP地址是被設置應該經由路由達到此網絡接口的時候頗有用.此時會檢查來訪IP是否爲全部接口上的子網段內ip之一.若是該來訪IP不屬於各個網絡接口上的子網段內,那麼將採用級別2的方式來進行處理.
2 : 對查詢目標使用最適當的本地地址.在此模式下將忽略這個IP數據包的源地址並嘗試選擇與能與該地址通訊的本地地址.首要是選擇全部的網絡接口的子網中外出訪問子網中包含該目標IP地址的本地地址. 若是沒有合適的地址被發現,將選擇當前的發送網絡接口或其餘的有可能接受到該ARP迴應的網絡接口來進行發送.
all和相應接口下(eth0)比較,較大的值生效.
參考:https://app.yinxiang.com/shard/s23/sh/cb19e31c-48b2-44c7-84d9-ae4614650b3c/2709b0fd9bcea8d9a9471d1cd0adbdd8
accept_local : default BOOLEAN
description:
Accept packets with local source addresses. In combination with
suitable routing, this can be used to direct packets between two
local interfaces over the wire and have them accepted properly.
default FALSE
arp_filter : default 0
description:
0 : 能夠從任意接口應答arp請求. 這項看似錯誤的設置卻常常很是有效,由於它增長了成功通信的機會.
在Linux主機上,每一個IP地址是網絡接口獨立的,而非一個複合的接口.只有在一些特殊的設置的時候,好比負載均衡的時候會帶來麻煩.
1 : 容許你有多個網絡接口在一樣的子網段內, 每一個網絡接口依據是,是否內核指派了路由,該數據包就會通過此接口來響應ARP查詢
(這個實現是由源地址肯定路由的時候決定的),換句話說,容許控制使用某一塊網卡(一般是第一塊)迴應arp請求.
all和相應接口至少一個爲1即生效.
(簡單來講,就是同一Linux上,若是有某些緣由,有2塊網卡必須設置爲同一網段,那麼默認狀況下,會有一塊工做,
而另一塊不工做或者內核頻繁報告錯誤,這個時候就須要打開這個選項了)
既然rp_filter已經能搞定出口入口相一致的問題,爲什麼要在arp模塊中再次存在arp_filter呢?這是一個層次的問題,rp_filter是對整個路由系統起做用的,而arp_filter僅僅針對arp系統,兩者的共存旨在解決路由系統和arp系統的配置策略不一致的問題。
arp_ignore : default 0
description:
對目標爲本地地址的arp請求做出不一樣的應答方法.
0 : 對全部本地地址進行應答,無論這個請求出如今哪一個接口上.
1 : 只應答目標地址是這個接口上地址的arp請求.
(好比eth0=192.168.0.1/24,eth1=10.1.1.1/24, eth0收到來自10.1.1.2地址發起的對192.168.0.1的查詢會進行應答,而對10.1.1.1 的arp查詢不會迴應)
2 : 只應答目標地址是這個接口上地址的arp請求,並且源地址也必須在該接口的同一子網內.
(好比eth0=192.168.0.1/24,eth1=10.1.1.1/24,eth0收到來自10.1.1.2這樣地址發起的對192.168.0.1的查詢不會回答,
而對192.168.0.2發起的對192.168.0.1的arp查詢會迴應)
3 : 不該答對本地地址的請求,只應答直連地址的請求.
4 - 7 : 未用
8 : 不該答全部arp請求
all和相應接口比較,較大值生效.
bootp_relay : default 0
description:
接收源地址爲任意,目的地址不是本機的數據報.用來支持BOOTP轉發服務進程,該進程將捕獲並轉發該包.
在kernel-2.6.18中沒有找到使用(尚未實現 ?)
disable_policy : default 0
description:
關閉接口上的IPSEC策略,默認0開啓.
disable_xfrm : default 0
description:
無論接口上的IPSEC策略是什麼,關閉IPSEC加密.
force_igmp_version : default 0
description:
強制kernel內igmp的版本,有0和1,2三個版本,0爲版本3,發送igmp報文時也使用設置的版本.
all和相應接口有一個設置生效既使用相關的版本,代碼中從1開始比較的而後2最後0.
forwarding : default 0
description:
在該網絡接口打開轉發功能,默認關閉
(在3塊或以上的網卡的時候很實用,有時候只想讓其中一外一內,另外一塊作服務,就可讓這塊作服務的網卡不轉發數據進出)
log_martians : default 0
description:
打印帶有錯誤數據的數據報到內核日誌中,dmesg能夠看見,是一個調試項.
all和相應接口有一個設置生效即生效.
mc_forwarding : default 0
description:
是否進行多播路由.只有內核編譯CONFIG_MROUTE選項而且有路由服務程序在運行,該參數纔有效.默認禁止
all和相應接口同時生效才生效.
medium_id : default 0
description:
一般,這個參數用來區分不一樣媒介(id).兩個網絡設備可使用不一樣的值,使他們只有其中之一接收到廣播包.
默認值表示各個網絡設備接受他們本身介質上的媒介,值-1表示該媒介未知.
這個參數被用來改變proxy_arp的行爲 : proxy_arp開啓表示容許arp報文在兩個不一樣的網絡設備中轉發
proxy_arp : default 0
description:
是否開啓arp代理功能.默認關閉
all和相應接口有一個生效即生效.
promote_secondaries : default 0
description:
如開啓,當網絡接口的主地址被刪除後,其復地址會變爲主地址.默認當主地址被刪除後其所有的復地址都會被刪除.
all和相應接口有一個生效即生效.
rp_filter : default 0
description:
0 - 不經過反向路徑回溯進行源地址驗證
1 - 經過反向路徑回溯進行源地址驗證(在RFC1812中定義)。
(router默認會路由全部東西,就算該封包'顯然'不屬於咱們的網路的.常見的例子,莫過於將私有 IP 泄漏到 internet 上去.假如某個接口,其上設定的網絡地址段爲
195.96.96.0/24,那麼理論上不會有212.64.94.1 這樣的地址段封包會到達這個接口上.許多人都不想轉發非本網段的數據包,所以核心設計者也打開了方便之門.
在/proc裏面有些選項,透過它們您可讓核心爲您作到這點.此方法被稱爲 "逆向路徑過濾(Reverse Path Filtering)".
基本上,假如對此封包做出的迴應,不是循其進入的接口送出去,那它就被置之不理.
驗證路由出口是否和正方向的入口一致。好比若是一個包的源地址是s1,目的地址是d1,從e1進入,那麼在開啓源驗證的狀況下,源爲d1,目的爲s1的路由出口必須是e1,
Refer to: http://blog.csdn.net/dog250/article/details/6150900
既然rp_filter已經能搞定出口入口相一致的問題,爲什麼要在arp模塊中再次存在arp_filter呢?這是一個層次的問題,rp_filter是對整個路由系統起做用的,而arp_filter僅僅針對arp系統,兩者的共存旨在解決路由系統和arp系統的配置策略不一致的問題。
secure_redirects : default 1
description:
只接收默認網關列表中網關發送的icmp重定向消息.
all和相應接口有一個生效即生效.
(這個參數通常情形請不要修改,能夠有效地防止來自同網段的非網關機器發出惡意ICMP重定向攻擊行爲)
send_redirects : default 1
description:
是否容許發送icmp重定向消息.默承認以.
all和相應接口有一個生效即生效.
(根據網絡而定,若是是作NAT,而且網內只有此一個網關的時候,實際上是能夠關閉掉它的,事實上目前而言,ICMP Redirects是TCP/IP協議產生早期爲了解決
網絡持續性而提出的一種方法,後來事實證實這種措施不太實用並且具備很大的安全風險,可能引發各類可能的網絡風險產生 - 拒絕服務攻擊,中間人攻擊,
會話劫持等等,因此不少安全文檔是推薦關閉它.)
shared_media : default 1
description:
發送(路由器)或接收(主機) RFC1620 共享媒體重定向.
all和相應接口有一個生效即生效.
tag : default 0
description:
沒有使用. !?
ipv4/neigh
在/proc/sys/net/ipv4/neigh/{interface}/* :
下能夠發現相似 default,eth0,eth1,lo 等網絡接口界面,每個都是目錄,他們下屬的文件中,每一個文件對應該界面下某些能夠設置的選項設置.
ARP的緩存表,也稱爲鄰居表.協議棧經過ARP協議獲取到的網絡上鄰居主機的IP地址與MAC地址的對應關係都會保存在這個表中,
以備下次與鄰居通信時使用,同時,ARP模塊自身也會提供一套相應的機制來更新和維護這個鄰居表.
struct neigh_table //include/net/neighbour.h
{
.....
struct neigh_parms parms;
//下面這幾項是全局的,不出如今特定端口
int gc_interval;
nt gc_thresh1;
int gc_thresh2;
int gc_thresh3;
......
};
struct neigh_parms
{
......
int base_reachable_time;
int retrans_time;
int gc_staletime;
int reachable_time;
int delay_probe_time;
int queue_len;
int ucast_probes;
int app_probes;
int mcast_probes;
int anycast_delay;
int proxy_delay;
int proxy_qlen;
int locktime;
};
anycast_delay : default 1*HZ
description:
對相鄰請求信息的回覆的最大延遲時間.(好像尚未實現)
app_solicit : default 0
description:
在使用多播探測前,經過netlink發送到用戶空間arp守護程序的最大探測數.(參考mcast_solicit).
base_reachable_time : default 30 * HZ
description:
一旦發現相鄰記錄,至少在一段介於 base_reachable_time/2和3*base_reachable_time/2之間的隨機時間內,該記錄是有效的.
若是收到上層協議的確定反饋, 那麼記錄的有效期將延長.
delay_first_probe_time : default 5 * HZ
description:
發現某個相鄰層記錄無效後,發出第一個探測要等待的時間. 缺省值是5秒.
gc_interval : default 30 * HZ
description:
垃圾收集器收集相鄰層記錄和無用記錄的運行週期,缺省爲30秒.
gc_stale_time : default 60 * HZ
description:
決定檢查一次相鄰層記錄的有效性的週期. 當相鄰層記錄失效時,將在給它發送數據前,再解析一次. 缺省值是60秒.
gc_thresh1 : default 128
description:
存在於ARP高速緩存中的最少個數,若是少於這個數, 垃圾收集器將不會運行.
gc_thresh2 : default 512
description:
保存在 ARP 高速緩存中的最多的記錄軟限制. 垃圾收集器在開始收集前,容許記錄數超過這個數字,在建立新表項時若是發現5秒沒有刷新過,那麼進行強制回收.
gc_thresh3 : default 1024
description:
保存在 ARP 高速緩存中的最多記錄的硬限制, 一旦高速緩存中的數目高於此, 垃圾收集器將立刻運行.
locktime : default 1 * HZ
description:
防止相鄰記錄被過分頻繁刷新,引發抖動,只有距鄰居上次刷新時間超過這時才容許被再次刷新.
mcast_solicit : default 3
description:
在把記錄標記爲不可達以前, 用多播/廣播方式解析地址的最大次數.
proxy_delay : default (8 * HZ) / 10
description:
當接收到有一個arp請求時,在迴應前能夠延遲的時間,這個請求是要獲得一個已知代理arp項的地址. 缺省值是0.8秒
proxy_qlen : default 64
description:
能放入代理 ARP 地址隊列的數據包最大數目.
retrans_time : default 1*HZ
description:
重發一個arp請求前的等待的秒數,缺省值是1秒.
ucast_solicit : default 3
description:
arp請求最多發送次數.
unres_qlen : default 3
description:
最大掛起arp請求的數量,這些請求都正在被解析中.
ipv4/route
控制路由表選項. net/ipv4/route.c
error_burst : default 5 * HZ
description:
這個參數和error_cast一塊兒用於限制有多少個icmp不可達消息被髮送.當數據包不能到達下一跳時會發送icmp不可達數據包.
當一些主機忽略咱們的icmp重定向消息時也會打印一些錯誤信息到dmesg.這個選項也控制打印的次數.
這選項控制上面兩個方面.默認是每5秒1次.
error_cost : default HZ
description:
這個參數和error_burst一塊兒用於限制有多少個icmp不可達消息被髮送.當數據包不能到達下一跳時會發送icmp不可達數據包.
當一些主機忽略咱們的icmp重定向消息時也會打印一些錯誤信息到dmesg.這個選項也控制打印的次數.
error_cost值越大,那麼icmp不可達和寫錯誤信息的頻率就越低.
這選項控制上面兩個方面.默認是每5秒1次.
flush : 只寫文件
description:
寫這個文件就會刷新路由高速緩衝.
gc_elasticity : default 8
description:
用來控制路由緩存垃圾回收機制的頻率和行爲.當路由表一個hash項的長度超過此值時,會進行緩存縮減,當路由緩存項長度超過
ip_rt_gc_elasticity << rt_hash_log(表示路由高速緩存hash table的容量以2爲對數所得的值) 時會進行強烈的回收.
gc_interval : default 60 * HZ
description:
此參數定義了路由表垃圾回收的間隔(秒).
gc_min_interval
description:
已再也不使用,並被gc_min_interval_ms取代
gc_min_interval_ms : default HZ / 2
description:
此參數定義了路由表垃圾回收的最小間隔,默認0.5秒.
gc_thresh : default (rt_hash_mask + 1) 路由hash table的大小
description:
struct dst_ops
{
......
unsigned gc_thresh;
......
};
當cache中的路由條數超過此值時,開始垃圾回收.
gc_timeout : default 300 * HZ
description:
設置一個路由表項的過時時長(秒).
max_delay : default 10 * HZ
description:
當觸發刷新操做時(像echo 1 > flush),刷新路由緩存的最大延時,默認爲10秒.
max_size : default (rt_hash_mask + 1) * 16
description:
路由高速緩存的最大項數,超過會進行清除舊項操做.
min_adv_mss : default 256
description:
根據第一跳路由的MTU,推薦設置的MSS,確定不會低於這個值.
min_delay : 2 * HZ
description:
當觸發刷新操做時(像echo 1 > flush),刷新路由緩存的最小延時,默認爲2秒.
min_pmtu : default 552
description:
該文件表示最小路徑MTU的大小.
mtu_expires : default 600 * HZ
description:
該文件表示PMTU信息緩存多長時間(秒). gc_min_interval_ms控制這種回收.
redirect_load : default HZ / 50
description:
決定是否要向特定主機發送更多的ICMP重定向的時間因子.一旦達到load時間或number個數就再也不發送.
redirect_number : default 9
description:
決定是否要向特定主機發送更多的ICMP重定向的數量因子.一旦達到load時間或number個數就再也不發送.
redirect_silence : default ((HZ / 50) << (9 + 1))
description:
重定向的超時.通過這麼長時間後,重定向會重發,而無論是否已經由於超過load或者number限制而中止.
secret_interval : default 600 * HZ
description:
緩存刷新的時間間隔,默認600秒.
ipv4/netfilter(2.6.18)或netfilter(2.6.23以上)
在2.6.18內核中還叫ip_conntrack到了2.6.23內核以上都該爲nf_conntrack.
同時netfilter目錄從i/proc/sys/net/pv4/下面改變到/proc/sys/net/目錄下面.
全部一ip_XXX爲頭的選項改成以nf_XXX爲開頭.
nf_conntrack_buckets : 只讀
description:
描述當前系統的ip_conntrack的hash table大小.
nf_conntrack_checksum : default 1
description:
驗證協議是否錯誤是,是否對協議進行校驗和驗證,默認開啓.
nf_conntrack_count : 只讀
description:
內存中ip_conntrack結構的數量.
nf_conntrack_generic_timeout : default 600 * HZ
description:
通用或未知協議的conntrack被設置的超時時間(每次看到包都會用這值從新更新定時器),一旦時間到conntrack將被回收.
nf_conntrack_icmp_timeout : default 30 * HZ
description:
icmp協議的conntrack被設置的超時時間,一旦到時conntrack將被回收.
nf_conntrack_log_invalid : default 0
description:
調試時使用,能夠指定一個數字,這個數字是內核定義的協議號好比IPPROTO_TCP是6,當指定協議解析時發現一些錯誤包會打印相關的錯誤信息到dmesg中.
最小值0,最大值255,默認不打印.
nf_conntrack_max : default 8 * ip_conntrack_htable_size(hash table大小)
description:
內存中最多ip_conntrack結構的數量.
nf_conntrack_tcp_be_liberal : default 0
description:
當開啓只有不在tcp窗口內的rst包被標誌爲無效,當關閉(默認)全部不在tcp窗口中的包都被標誌爲無效.
nf_conntrack_tcp_loose : default 3
description:
當想追蹤一條已經鏈接的tcp會話, 在系統能夠假設sync和window追逐已經開始後要求每一個方向必須經過的包的數量.
若是爲0,從不追蹤一條已經鏈接的tcp會話.
nf_conntrack_tcp_max_retrans : default 3
description:
沒有從目的端接收到一個ack而進行包重傳的次數,一旦達到這限制nf_conntrack_tcp_timeout_max_retrans將做爲ip_conntrack的超時限制.
nf_conntrack_tcp_timeout_max_retrans : default 5 * 60 * HZ
description:
當咱們看到殘廢的會話時ip_conntrack的超時限制(默認5分鐘).
nf_conntrack_tcp_timeout_close : default 10 * HZ (10秒)
nf_conntrack_tcp_timeout_close_wait : default 60 * HZ (60秒)
nf_conntrack_tcp_timeout_established : default 5天
nf_conntrack_tcp_timeout_fin_wait : default 2 * 60 * HZ (2分鐘)
nf_conntrack_tcp_timeout_last_ack : default 30 * HZ (30秒)
nf_conntrack_tcp_timeout_syn_recv : default 60 * HZ (60秒)
nf_conntrack_tcp_timeout_syn_sent : default 2*60*HZ (2分鐘)
nf_conntrack_tcp_timeout_time_wait : default 2*60*HZ (2分鐘)
description:
這些選擇表示tcp在相關的狀態下,ip_conntrack進行追蹤的超時時間.一旦超時ip_conntrack將被回收.
nf_conntrack_udp_timeout : default 30 * HZ
descripton:
icmp協議的conntrack被設置的超時時間(每次看到包都會用這值從新更新定時器),一旦到時conntrack將被回收.
nf_conntrack_udp_timeout_stream : default 180 * HZ
description:
當看到一些特殊的udp傳輸時(傳輸在雙向)設置的ip_conntrack超時時間(每次看到包都會用這值從新更新定時器).
core
該目錄下的配置文件主要用來控制內核和網絡層之間的交互行爲.
dev_weight : default 64
netdev_budget : default 300
description:
同時一次處理的數據報的數量不得超過backlog_dev->quota和netdev_budget兩個值中較小的那個值,backlog_dev->quota
由netif_rx_schedule初始化爲變量backlog_dev->weight的值,缺省爲 64,當用NAPI時能夠本身指定backlog_dev->weight這個值.
message_burst : default 10
description:
寫新的警告消息所需的時間(以 1/10 秒爲單位),在這個時間內系統接收到的其它警告消息會被丟棄.
這用於防止某些企圖用消息「淹沒」系統的人所使用的拒絕服務攻擊.
message_cost : default 5*HZ
description:
該文件表示寫每一個警告消息相關的成本值。該值越大,越有可能忽略警告消息.
netdev_max_backlog : default 1000
description:
表示在每一個網絡接口接收數據包的速率比內核處理這些包的速率快時,容許送到隊列的數據包的最大數目.
optmem_max : default 10240
description:
表示每一個套接字所容許的最大選項緩衝區的大小(通常用於特殊功能).
wmem_default 和 rmem_default : default (sizeof(struct sk_buff) + 256) * 256
description:
該文件指定了接收或發送套接字緩衝區大小的缺省值(以字節爲單位).
wmem_max 和 rmem_max : default 131071
description:
該文件指定了接收或發送套接字緩衝區大小的最大值(以字節爲單位).
若是經過setsockopt設置接收或發送緩衝區超過這值,會強制設置成這個值的兩倍.
somaxconn : default 128
description:
調用listen(int fd, int backlog)函數時第二個參數的最大限制.
warnings : default 1
description:
是否開啓debug(NETDEBUG, LIMIT_NETDEBUG)信息,默認開啓.
xfrm_acq_expires : default 30
description:
hard timeout in seconds for acquire requests
xfrm_aevent_etime : default 10
description:
used to provide default values for the XFRMA_ETIMER_THRESH in incremental
units of time of 100ms. The default is 10 (1 second)
xfrm_aevent_rseqth : default 2
description:
used to provide default values for XFRMA_REPLAY_THRESH parameter
in incremental packet count. The default is two packets
xfrm_larval_drop : default 0
description:
defaults to 0 in newer kernels, which apparently causes io over an ipsec connection block when the link is unavailable.
It would seem bind, at least as of 9.4.1, does not anticipate this behavior, and hangs rather dramatically in the process
bridge
bridge-nf-call-arptables : net/bridge/br_netfilter.c default 1
description:
是否容許橋傳輸arp協議到arptable的FORWARD鏈.默認容許.
bridge-nf-call-iptables : net/bridge/br_netfilter.c default 1
description:
是否容許橋傳輸ip協議到iptable鏈.默認容許.
bridge-nf-call-ip6tables : net/bridge/br_netfilter.c default 1
description:
是否容許橋傳輸ip協議到i相關的ip6table鏈.默認容許.
bridge-nf-filter-pppoe-tagged : default 1
description:
是否容許橋傳輸pppoe-tagged IP/IPv6協議到相應的{ip,ip6}tables.默認容許.
bridge-nf-filter-vlan-tagged : net/bridge/br_netfilter.c default 1
description:
是否容許橋傳輸vlan-tagged ARP/IP協議到相應的iptables/arptables.默認容許.
token-ring
rif_timeout : default 60*10*HZ
description:
Controls the number of hundredths of seconds before RIF routing cache entries for the token ring subsystem are purged.
unix
max_dgram_qlen : default 10
description:
容許域套接字中數據包的最大個數,在初始化unix域套接字時的默認值.
在調用listen函數時第二個參數會覆蓋這個值.
ipv4/vs
am_droprate : default 10
description:
丟包率.
amemthresh:default 1024
description:
可用內存閾值.
cache_bypass: default 0
description:
是否創建旁路cache項.
debug_level:
description:
調試級別.
drop_entry:default 0
description:
肯定刪除鏈接處理級別.
drop_packet: default 0
descripton:
丟包級別.
expire_nodest_conn:default 0
descripton:
是否刪除沒有目的服務器的鏈接,默認不刪除.
lblc_expiration:
descripton:
lblc算法的到期時間(缺省1天)
nat_icmp_send:default 0
descripton:
NAT模式下鏈接異常時發送ICMP包,默認不發送.
secure_tcp:default 0
descripton:
更安全的TCP狀態轉換. 3最安全.
sync_threshold: default [3, 50]
descripton:
鏈接同步時的包數閾值數值.
timeout_close:
descripton:
TCP sCL狀態超時.
timeout_closewait:
descripton:
TCP sCW狀態超時.
timeout_established:
descripton:
TCP sES狀態超時.
timeout_finwait:
descripton:
TCP sFW狀態超時.
timeout_icmp:
descripton:
ICMP超時.
timeout_lastack:
descripton:
TCP sLA狀態超時.
timeout_listen:
descripton:
TCP sLI狀態超時.
timeout_synack:
descripton:
TCP sSA狀態超時.
timeout_synrecv:
descripton:
TCP sSR狀態超時.
timeout_synsent:
descripton:
TCP sSS狀態超時.
timeout_timewait:
descripton:
TCP sTW狀態超時.
timeout_udp:
descripton:
UDP超時.
/proc/sys/vm
block_dump : mm/page-writeback.c default 0
description:
表示是否打開Block Debug模式,用於記錄全部的讀寫及Dirty Block寫回動做.默認關閉
dirty_background_ratio : mm/page-writeback.c default 10
description:
表示髒數據到達系統總體內存的百分比,一旦超過就會觸發pdflush進程把髒數據寫回磁盤.
dirty_expire_centisecs : mm/page-writeback.c default 30 * HZ
description:
表示若是髒數據在內存中駐留時間超過該值,pdflush進程在將把這些數據寫回磁盤.
dirty_ratio : mm/page-writeback.c default 40
description:
表示若是進程產生的髒數據到達系統總體內存的百分比,此時進程自行把髒數據寫回磁盤.
dirty_writeback_centisecs : mm/page-writeback.c default 5 * HZ
description:
表示pdflush進程週期性間隔多久把髒數據寫回磁盤.
drop_caches : fs/drop_caches.c default 0
description:
寫這文件會讓kernel釋放或拋棄全部保存在內存中的可能有用,可是目前沒有用到的信息,包括高速緩存頁,目錄項和 i 節點.
當寫的值爲1時會釋放全部高速緩存頁,爲2時會釋放全部目錄項和 i 節點(緊縮 slab ?),爲3時釋放前面說的所有.
hugepages_treat_as_movable : default 0
description:
This parameter is only useful when kernelcore= is specified at boot time to
create ZONE_MOVABLE for pages that may be reclaimed or migrated. Huge pages
are not movable so are not normally allocated from ZONE_MOVABLE. A non-zero
value written to hugepages_treat_as_movable allows huge pages to be allocated from ZONE_MOVABLE.
Once enabled, the ZONE_MOVABLE is treated as an area of memory the huge
pages pool can easily grow or shrink within. Assuming that applications are
not running that mlock() a lot of memory, it is likely the huge pages pool
can grow to the size of ZONE_MOVABLE by repeatedly entering the desired value
into nr_hugepages and triggering page reclaim.
hugetlb_shm_group : fs/hugetlbfs/inode.c default 0
description:
表示容許使用hugetlb頁建立System VIPC共享內存段的系統組ID, 默認0只有root組能夠.
laptop_mode : mm/page-writeback.c default 0
description:
是否開啓膝上型電腦模式,默認關閉.
膝上型電腦模式的頁回寫行爲與傳統方式相比只有一處變化。除了當緩存中的頁面太舊時要執行回寫髒頁之外,pdflush還會找準磁盤運轉的時機,
把全部其餘的物理磁盤I/O、刷新髒緩衝等通通寫回到磁盤,以便保證不會專門爲了寫磁盤而去主動激活磁盤運行。
上述回寫行爲變化要求dirty_expire_centisecs和dirty_writeback_centisecs兩閾值必須設置的更大,好比10分鐘。由於磁盤運轉並不很頻繁,
因此用這樣長的回寫延遲才能保證膝上型電腦模式能夠等到磁盤運起色會寫入數據。 多數Linux發佈板會在電腦接上電池或拔掉電池時,
自動開啓或禁止膝上型電腦模式以及其餘須要的pdflush可調節開關。所以機器可在使用電池電源時自動進入膝上型電腦模式;
而在插上交流電源時恢復到常規的頁回寫模式.
legacy_va_layout : kernel/sysctl.c default 0
description:
選擇線性區佈局,佈局之間只在文件內存映射與匿名映射線性區的位置上有區別.
當內核能用過RLIMIT_STACK資源限制來限定用戶態堆棧的大小時,一般使用靈活佈局.這個空間不能小於128M或大於2.5G (是嗎?).
若是RLIMIT_STACK的資源設置爲無限,或將這個值設置爲1,內核沒法肯定用戶態堆棧的上限,就使用經典佈局.
0,使用靈活佈局,文件內存映射和匿名映射的線性區是緊接用戶態堆棧尾的.
1,使用經典佈局,這些區域從整個用戶態地址空間的1/3開始,一般在地址0x40000000.
lowmem_reserve_ratio : mm/page_alloc.c 256 256 32
description:
用於調節較低zone的保留頁數量對於較高zone,以防止頁在zone之間遷移.
第一個值:用於調節dma zone的最低內存保留對於更高一級的normal zone,在64位機器上是dma32 zone.
第二個值:用於調節dma32(64位機器)的最低內存保留對於更高一級的normal zone.
第三個值:用於調節normal的最低內存保留對於更高一級的highmem zone.
當在較低zone中分配內存以知足較高zone的分配請求時設置一個保留內存數量.這個參數在設置保留數量時對於相對的zone做除數.
例如:
當在DMA zone分配內存以知足NORMAL zone的分配請求時, 根據分配內存的權限取相應的zone->min,zone->low或zone->high值
在加上這個保留值,若是大於空閒內存數量那麼這個DMA zone的內存不能爲NORMAL zone分配.
max_map_count : mm/mmap.c default 65536
description:
進程能分配的最大虛擬內存域(struct vm_struct)的數量.
min_free_kbytes : default 1024
description:
表示強制Linux最低保留多少空閒內存,爲原子分配內存準備.
zone的pages_min存儲了zone內保留頁框的數目. pages_low被設爲pages_min值的5/4,而pages_high被設爲pages_min的3/2.
mmap_min_addr : default 0
description:
This file indicates the minimum address of address space which a user process will be restricted from mmaping.
Since kernel null dereference bugs could accidentally operate based on the information in the first couple of pages of memory userspace,
processes should not be allowed to write to them.
By default this value is set to 0 and no protections will be enforced by the security module.
Setting this value to something like 64k will allow the vast majority of applications to work correctly and
provide defense in depth against future potential kernel bugs.
nr_hugepages : mm/hugetlb.c default 0
description:
在Huge TLB Filesystem中,系統保留的huge page頁數.
nr_pdflush_threads : 只讀 default 2
description:
表示當前正在運行的pdflush進程數量,在I/O負載高的狀況下,內核會自動增長更多的pdflush進程.
overcommit_memory : mm/mmap.c default 0
description:
該文件指定了內核針對內存分配的策略,其值能夠是0、一、2。
0, 表示內核將檢查是否有足夠的可用內存供應用進程使用;若是有足夠的可用內存,內存申請容許;不然,內存申請失敗,並把錯誤返回給應用進程.
1, 表示內核容許內存分配時不作空間的檢查,也就是能夠分配超過實際現有空閒內存的大小.
2, 總的內存空間大小使用不能超過交換區大小加上物理內存的 %50(參照overcommit_ratio).
overcommit_ratio : mm/mmap.c default 50
description:
若是overcommit_memory=2,可使用內存的調節百分比,經過如下公式來計算系統總體可用內存.
系統可分配內存=交換空間+物理內存*overcommit_ratio/100
page-cluster : mm/swap.c default 3
description:
表示在寫一次到swap區的時候寫入的頁面數量,0表示1頁,1表示2頁,2表示4頁等.
panic_on_oom : mm/oom_kill.c default 0
description:
當系統內存十分緊缺時,kernel會kill一個進程來釋放一些內存.當這個值爲1時,kernel不會kill進程而是panic.
默認爲kill一個進程.
percpu_pagelist_fraction : mm/page_alloc.c default 0
description:
表示每cpu頁框高速緩存的高水位和批量調節因子.當每cpu頁框高速緩存的頁框數量高於高水位時就會向夥伴系統釋放批量指示的頁框數量.
默認是0,kernel在啓動時尚未用到這個值.
高水位的計算方法爲,單個zone擁有的頁框數除以這個變量值 : high = zone->present_pages / percpu_pagelist_fraction.(這個值最小是8)
批量的計算方法爲 : pcp->batch = max(1UL, high/4);
stat_interval : default 1
description:
With this tunable you can configure VM statistics update interval. The default value is 1. This tunable first appeared in 2.6.22 kernel.
swappiness : mm/vmscan.c default 60
description:
表示系統進行交換行爲的程度,數值(0-100)越高,越可能發生磁盤交換.
細節說明看《深刻理解linux內核》688頁.
swap_tendency = mapped_ratio / 2 + distress + sc->swappiness;
mapped_ratio : 用戶態地址空間全部內存管理區的頁佔全部可分配頁框數的百分比.
distress : 表示PFRA在管理區中回收頁框的效率.依據是上一次PFRA運行時管理區的掃描優先級.
vdso_enabled : arch/i386/kernel/sysenter.c default 1
description:
默認開啓kernel映射一個vDSO頁.這個映射的頁在進程發出execve()系統調用是會被自動的鏈接到進程的地址空間,以用來支持經過sysenter指令發出系統調用.
vDSO 是一個虛擬(dynamic shared object),它的目的是加速系統調用,這個映射的地址被固定在0xffffe000,可是從2.6.18開始這地址隨機化了.
(爲了安全問題和更容易幫助debugers)
vfs_cache_pressure : fs/dcache.c default 100
description:
該文件表示內核回收用於directory和inode 高速緩存的傾向;
缺省值100表示內核將根據pagecache和swapcache,把directory和inode高速緩存保持在一個合理的百分比;
下降該值低於100,將致使內核傾向於保留directory和inode 高速緩存;
增長該值超過100,將致使內核傾向於回收directory和inode 高速緩存;
pagecache: default 100
description:
若是文件高速緩存頁的數量超過了一個百分比那麼內核就會不在進行文件頁的高速緩存,當符合了必定的條件頁就會被換出。