A. 計算機專用詞彙
計算機四級考試詞彙之一:
access 訪問、存取、通路、進入
adjacency list method 鄰接表表示法
adjacency matrix method 鄰接矩陣表示法
algorithm 演算法
array 數組
ATM(asynchronous transfer mode) 非同步傳輸模式
b.. real programs kernels 實程序 核心程序
b.. toy benchmark synthetic benchmark 簡單基準程序 復合基準程序
bandwidth 帶寬
benchmark 基準測試程序
best - fit algorithm 最佳適應演算法
BFS(breadth first search) 廣度優先搜索法
binary 二進制
binary relation 二元關系
binary tree 二叉樹
bit series 比特序列
black - box white - box 黑盒 白盒
block miss 塊失效
blocked 阻塞(等待狀態也稱阻塞或封鎖狀態)
boundary 界線 分界
bridge 網橋
bubble sort 冒泡排序
candidate key 候選鍵(輔鍵)
capacity 容量
cartesian proct 笛卡爾積
CASE(com.. aided sof.. engineering) 計算機輔助軟體工程
CCP(communication control processor) 通信控制處理機
cell 信元
characteristic 特徵 特性
circuit switching 線路交換
circular wait 循環等待
CISC(complex instruction set computer) 復雜指令集計算機
class 類
Client/Server 客戶機/伺服器
clock cycle/clock rate 時鍾周期/時鍾頻率
coaxial cable 同軸電纜
cohesion/coupling 內聚/耦合
coincidental logical proceral functional 偶然內聚 邏輯內聚 過程內聚 功能內聚
communication 通信
complement number 補碼
constrain 約束
contain 包含
correspond(corresponding) 相符合(相應的一致的)
CPETT 計算機性能評價工具與技術
CPI 每條指令需要的周期數
CSMA/CD 帶沖突檢測的載波監聽多路訪問
cursor 游標
cyclic rendancy check 循環冗餘檢驗
database: integrity consistency re story 完整性 一致性 可恢復性
database: security efficiency 資料庫設計的目標:安全性 效率
deadlock: mutual exclusion 死鎖條件:互斥
deadlock: circular wait no preemption 死鎖條件:循環等待 無優先權
decimal 十進位的
decision 決定 判斷
decomposition 雙重的 混合的
definition 定義
definition phase 定義階段
design phase 設計階段
DFS(depth first search) 深度優先搜索法
diagram 圖表
Difference Manchester 差分曼徹斯特
directed graph/undirected graph 有向圖/無向圖
distributed system 分布式系統
divide union intersection difference 除 並 交 差
document 文件 文檔
DQDB(distributed queue al bus) 分布隊列雙匯流排
al 二元的 雙的
dynamic design process 動態定義過程
element 元素 要素
elevator(scan) algorithm 電梯演算法(掃描演算法)
encapsulation inheritance 封裝(壓縮)繼承(遺傳)
entity 實體
entity integrity rule 實體完整性規則
equation 方程式 等式
Ethernet 乙太網
exchange sort 交換排序
exclusive locks 排它鎖(X鎖)
external(internal) fragmentation 外(內)碎片
fault page fault 中斷 過錯 頁中斷
FDDI(fiber distributed data interface) 光纖分布式數據介面
FDM(frequency division multiplexing) 頻分多路復用
fiber optic cable 光纜
FIFO replacement policy 先進先出替換演算法
figure 數字 圖形
first normal form 第一範式
floppy 活動碟片(軟盤)
foreign key domain tuple 外來鍵 值域 元組
formula 公式 表達式
frame page frame 幀 結構 頁結構
frequency 頻率
FTP 文件傳送服務
function 函數
functionally dependant 函數依賴
gateway 網間連接器
general - purpose registers 通用寄存器
generate 產生
grade 等級 標准
graph(graphic) 圖
Groper 將用戶的請求自動轉換成FTP
hash table/hash function/ collision 哈希表/哈希函數(散列函數)/碰撞
HDLC 面向比特型數據鏈路層協議
hit rate 命中率
host 主計算機
host language statement 主語言語句
hypertext 超級文本
index 索引
insertion sort 插入排序
instruction format 指令格式
instruction set 指令集
interface 介面 分界面 連接體
interrupt 中斷
IPC 工業過程式控制制
ISAM VSAM 索引順序存取方法 虛擬存儲存取方法
join/natural join/semi join 連接/自然連接/半連接
kernel executive supervisor user 核心 執行 管理 用戶
kernels 核心程序
key comparison 鍵(碼)值比較
LAN(local area network) 區域網
load 負載 載入
logical functional 邏輯內聚 功能內聚
longitudinal 水平的
maintenance phase 維護(保養)階段
MAN(metropolitan area network) 城域網
Manchester 曼徹斯特
map 地圖 映射圖
matrix 矩陣 點陣
memory reference 存儲器參量
message switching 報文交換
MFLOP(million floating point operate per second) 每秒百萬次浮點運算
MIPS(millions of instruction per second) 沒秒百萬條指令
mole 單位 基準
monitor(model benchmark physical) mothod 監視 (模型 基準 物理)法
multilevel data flow chart 多層數據流圖
multiple - term formula 多項式
multiplexing 多路復用技術
multiplication 乘法
mutual exclusion 互相 排斥
non - key attributes 非碼屬性
Nyquist 奈奎斯特
object oriented 對象 趨向的 使適應的
object oriented analysis 面向對象的分析
object oriented databases 面向對象資料庫
object oriented design 面向對象的設計
object oriented implementation 面向對象的實現
occurrence 事件
one - dimensional array 一維數組
OODB(object oriented data base) 面向對象資料庫
OOM(object oriented method) 面向對象的方法
oom: information object message class 信息 對象 消息 類
oom: instance method message passing 實例 方法消息傳遞
open system 開放系統
operand 操作數
overflow 溢出
overlapping register windows 重疊寄存器窗口
packet switching 報文分組交換
page fault 頁面失效
page replacement algorithm 頁替換演算法
paged segments 段頁式管理
PCB(process control block) 進程式控制制塊
peer entities 對等實體
period 時期 周期
phase 階段 局面 狀態
physical data link network layer 物理層 數據鏈路層 網路層
pipeline 管道
platter/track/cluster 面/磁軌/簇
predicate 謂語
preemption 有優先權的
prefix(Polish form) 前綴(波蘭表達式)
preorder/inorder/postorder 前序/中序/後序
presentation application layer 表示層 應用層
primary key attributes 主碼屬性
principle 原則 方法
proceral coincidental 過程內聚 偶然內聚
process 過程 加工 處理
program debugging 程序排錯
projection selection join 投影 選擇 連接
protocol 協議
prototype 原型 樣板
prototyping method(model) 原型化周期(模型)
pseudo - code 偽碼(程序設計語言PDL)
punctuation 標點
queue 隊列
ready/blocked/running 就緒/阻塞(等待)/運行
real page number 實頁數
real programs 實程序
redirected 重定向
rendancy 冗餘
reference integrity rule 引用完整性規則
register(registry) 寄存器 登記 注冊 掛號
relation 關系
relay 中繼
repeater 中繼器
replacement 替換
request indication response confirm 請求 指示 響應 確認
resource 資源
response 回答 響應
RISC(reced instruction set computer) 精簡指令集計算機
robustness 健壯性
router 路由器
scheme 計劃 圖表
sector head cylinder 扇區 磁頭 柱面
selection sort 選擇排序
semaphores 信號
sequence 序列 順序
Shanon 香農
share locks 共享鎖(S鎖)
short path critical path 最短路徑 關鍵路徑
signal 信號
signal - to - noise ratio 信噪比 B/N
similar 相似的
SISD SIMD MISD MIMD *指令流 *數據流
SMDS 交換多兆位數據服務
software development phase 軟體開發階段
software engineering 軟體工程
software portability 軟體可移植性
software requirements specification 軟體需求說明書
sort 種類 方式 分類 排序
spanning tree 跨越樹(生成樹)
speep 加速比
SSTF(shortest - seek - time - first) 最短尋道時間優先(磁碟調度演算法)
stack strategy non - stack strategy 堆棧型 非堆棧型
starvation 飢餓 匱乏
store proceres 存儲過程
subset 子集 子設備
superclass subclass abstract class 超類 子類 抽象類
synthetic benchmark 復合基準程序
system testing 系統測試
Systolic 脈動陣列
table 表 表格 桌子
TDM(time division multiplexing) 時分多路復用
terminal 終端
testing phase 測試階段
theta select/project/theta join θ選擇/投影/θ連接
time complexity 時間復雜度
timestamping 時標技術
Token Bus 令牌匯流排
Token Ring 令牌環
toy benchmark 簡單基準程序
transaction 事務 記錄
transmit 傳送
transport layer session layer 傳輸層 會話層
traversal method 遍歷方法
triggers/store proceres 觸發器/存儲過程(ORACLE系統)
unit system acceptance testing 單元測試 系統測試 確認測試
update 更新
value (數)值
variable 變數
vertice edge 頂點(節點)邊
virtual memory system 虛擬存儲系統
WAN(wide area network) 廣域網
waterfall model 瀑布模型
white noises 白雜訊
write - back( - back) 寫回法
write - through(store - through) 寫直達法
計算機四級考試詞彙之二:
access arm 磁頭臂,存取臂
access time 存取時間
adder 加法器
address 地址
alphanumeric 字母數字的
analog computer 模擬計算機
analyst 分析員
area 區域
array 數組,陣列
assembler 匯編程序
automation 自動化
band 區
batch processing 成批處理
binary code 二進制碼
binary digit 二進制位,二進制數字
bit 比特,二進制的一位
branch 分支,支線
brush 電刷
buffer storage 緩沖存儲器
calculator 計算器
call instruction 呼叫指令
card punch 卡片穿孔機
card reader 卡片閱讀機,讀卡機
cell 單元
channel 通道,信道
character 字元
check digit 校驗數位
circuit 電路,線路
to clear 清除,清零
clock 時鍾
code 代碼
to code 編碼
coder 編碼員,編碼器
command 指令,命令
compiler 編譯程序
computer language 計算機語言
console 控制台
control unit 控制部件,控制器
core storage, core store 磁心存儲器
counter 計數器
cybernetics 控制論
cycle 循環
data 數據
data processing 數據處理
debugging 調試
decision 制定
digit 數字,數位,位
digital computer 數字計算機
disc, disk 磁碟
display unit 顯示裝置
drum 磁鼓
to edit 編輯
electronics 電子學
emitter 發射器
to encode 編碼
to erase 擦除,清洗,抹除
feed 饋送,供給
to feed 饋送,供給
feedback 反饋
field 欄位,信息組,域
file 文件
floppy disk 軟磁碟
floppy disk drive 軟磁碟機
flow chart 流程圖
frame 幀
hardware 硬體
identifier 標識符
index 索引
information 信息
inline processing 內處理
input 輸入
inquiry 詢問
instruction 指令
integrated circuit 集成電路
to interpret 解釋
item 項目,項
jump 轉移
key 鍵,關鍵碼
keyboard 鍵盤
latency time 等待時間
library 庫,程序庫
linkage 連接
to load 裝入,寄存,寫入,載入
location 存儲單元
logger 登記器,記錄器
loop 循環
machine language 機器語言
magnetic storage 磁存儲器
magnetic tape 磁帶
matrix 矩陣
memory 存儲器
message 信息,報文
microcomputer 微型計算機
mole 組件,模塊
monitor 監視器,監督程序,管程
nanosecond 毫微秒
network 網路,網
numeric, numerical 數字的,數值的
octet 八位位組,八位位元組
operator 操作員
optical character reader 光符閱讀機
optical scanner 光掃描器
output 輸出
overflow 溢出,上溢
panel 平板
parameter 參數,參量
perforator 穿孔機
peripheral equipment 外圍設備,外部設備
personal computer 個人計算機
printed circuit 印製電路
printer 列印機
printout 列印輸出
to process 處理
processing unit 處理部件
program 程序
to program 程序編制
programmer 程序設計員
programming 程序設計,程序編制
pulse 脈沖
punch 穿孔
to punch 穿孔
punched card, punch card 穿孔卡片
punched tape, punch tape 穿孔紙帶
punch hole 孔,穿孔
random access 隨機存取
to read 讀
reader 閱讀程序
reading 閱讀
real time 實時
record, register 記錄
rendancy 冗餘
routine 例行程序
selector 選擇器,選擇符
sentinel 標記
sequence 序列,順序
sequential 順序的
serial 串列的.連續的
shift 移位,移數
signal 信號
simulation 模擬
simulator 模擬器,模擬程序
software 軟體,軟設備
sort 分類,排序
sorter 分類人員,分類機,分類程序,排序程序
storage 存儲器
to store 存儲
subroutine, subprogram 子程序
switch 開關
symbol 符號
symbolic language 符號語言
system 系統
tabulator 製表機
teleprinter 電傳打字機
terminal 終端
terminal unit 終端設備
timer 時鍾,精密計時器
time sharing 分時
timing 定時
track 磁軌
transcer 感測器,翻譯機
translator 翻譯程序,翻譯器
to update 更新
Winchester disk drive 溫徹斯特磁碟機,硬碟機
working storage 工作存儲器
B. 關於 Linux 網路,你必須知道這些
我們一起學習了文件系統和磁碟 I/O 的工作原理,以及相應的性能分析和優化方法。接下來,我們將進入下一個重要模塊—— Linux 的網路子系統。
由於網路處理的流程最復雜,跟我們前面講到的進程調度、中斷處理、內存管理以及 I/O 等都密不可分,所以,我把網路模塊作為最後一個資源模塊來講解。
同 CPU、內存以及 I/O 一樣,網路也是 Linux 系統最核心的功能。網路是一種把不同計算機或網路設備連接到一起的技術,它本質上是一種進程間通信方式,特別是跨系統的進程間通信,必須要通過網路才能進行。隨著高並發、分布式、雲計算、微服務等技術的普及,網路的性能也變得越來越重要。
說到網路,我想你肯定經常提起七層負載均衡、四層負載均衡,或者三層設備、二層設備等等。那麼,這里說的二層、三層、四層、七層又都是什麼意思呢?
實際上,這些層都來自國際標准化組織制定的開放式系統互聯通信參考模型(Open System Interconnection Reference Model),簡稱為 OSI 網路模型。
但是 OSI 模型還是太復雜了,也沒能提供一個可實現的方法。所以,在 Linux 中,我們實際上使用的是另一個更實用的四層模型,即 TCP/IP 網路模型。
TCP/IP 模型,把網路互聯的框架分為應用層、傳輸層、網路層、網路介面層等四層,其中,
為了幫你更形象理解 TCP/IP 與 OSI 模型的關系,我畫了一張圖,如下所示:
當然了,雖說 Linux 實際按照 TCP/IP 模型,實現了網路協議棧,但在平時的學習交流中,我們習慣上還是用 OSI 七層模型來描述。比如,說到七層和四層負載均衡,對應的分別是 OSI 模型中的應用層和傳輸層(而它們對應到 TCP/IP 模型中,實際上是四層和三層)。
OSI引入了服務、介面、協議、分層的概念,TCP/IP借鑒了OSI的這些概念建立TCP/IP模型。
OSI先有模型,後有協議,先有標准,後進行實踐;而TCP/IP則相反,先有協議和應用再提出了模型,且是參照的OSI模型。
OSI是一種理論下的模型,而TCP/IP已被廣泛使用,成為網路互聯事實上的標准。
有了 TCP/IP 模型後,在進行網路傳輸時,數據包就會按照協議棧,對上一層發來的數據進行逐層處理;然後封裝上該層的協議頭,再發送給下一層。
當然,網路包在每一層的處理邏輯,都取決於各層採用的網路協議。比如在應用層,一個提供 REST API 的應用,可以使用 HTTP 協議,把它需要傳輸的 JSON 數據封裝到 HTTP 協議中,然後向下傳遞給 TCP 層。
而封裝做的事情就很簡單了,只是在原來的負載前後,增加固定格式的元數據,原始的負載數據並不會被修改。
比如,以通過 TCP 協議通信的網路包為例,通過下面這張圖,我們可以看到,應用程序數據在每個層的封裝格式。
這些新增的頭部和尾部,增加了網路包的大小,但我們都知道,物理鏈路中並不能傳輸任意大小的數據包。網路介面配置的最大傳輸單元(MTU),就規定了最大的 IP 包大小。在我們最常用的乙太網中,MTU 默認值是 1500(這也是 Linux 的默認值)。
一旦網路包超過 MTU 的大小,就會在網路層分片,以保證分片後的 IP 包不大於 MTU 值。顯然,MTU 越大,需要的分包也就越少,自然,網路吞吐能力就越好。
理解了 TCP/IP 網路模型和網路包的封裝原理後,你很容易能想到,Linux 內核中的網路棧,其實也類似於 TCP/IP 的四層結構。如下圖所示,就是 Linux 通用 IP 網路棧的示意圖:
我們從上到下來看這個網路棧,你可以發現,
這里我簡單說一下網卡。網卡是發送和接收網路包的基本設備。在系統啟動過程中,網卡通過內核中的網卡驅動程序注冊到系統中。而在網路收發過程中,內核通過中斷跟網卡進行交互。
再結合前面提到的 Linux 網路棧,可以看出,網路包的處理非常復雜。所以,網卡硬中斷只處理最核心的網卡數據讀取或發送,而協議棧中的大部分邏輯,都會放到軟中斷中處理。
我們先來看網路包的接收流程。
當一個網路幀到達網卡後,網卡會通過 DMA 方式,把這個網路包放到收包隊列中;然後通過硬中斷,告訴中斷處理程序已經收到了網路包。
接著,網卡中斷處理程序會為網路幀分配內核數據結構(sk_buff),並將其拷貝到 sk_buff 緩沖區中;然後再通過軟中斷,通知內核收到了新的網路幀。
接下來,內核協議棧從緩沖區中取出網路幀,並通過網路協議棧,從下到上逐層處理這個網路幀。比如,
最後,應用程序就可以使用 Socket 介面,讀取到新接收到的數據了。
為了更清晰表示這個流程,我畫了一張圖,這張圖的左半部分表示接收流程,而圖中的粉色箭頭則表示網路包的處理路徑。
了解網路包的接收流程後,就很容易理解網路包的發送流程。網路包的發送流程就是上圖的右半部分,很容易發現,網路包的發送方向,正好跟接收方向相反。
首先,應用程序調用 Socket API(比如 sendmsg)發送網路包。
由於這是一個系統調用,所以會陷入到內核態的套接字層中。套接字層會把數據包放到 Socket 發送緩沖區中。
接下來,網路協議棧從 Socket 發送緩沖區中,取出數據包;再按照 TCP/IP 棧,從上到下逐層處理。比如,傳輸層和網路層,分別為其增加 TCP 頭和 IP 頭,執行路由查找確認下一跳的 IP,並按照 MTU 大小進行分片。
分片後的網路包,再送到網路介面層,進行物理地址定址,以找到下一跳的 MAC 地址。然後添加幀頭和幀尾,放到發包隊列中。這一切完成後,會有軟中斷通知驅動程序:發包隊列中有新的網路幀需要發送。
最後,驅動程序通過 DMA ,從發包隊列中讀出網路幀,並通過物理網卡把它發送出去。
多台伺服器通過網卡、交換機、路由器等網路設備連接到一起,構成了相互連接的網路。由於網路設備的異構性和網路協議的復雜性,國際標准化組織定義了一個七層的 OSI 網路模型,但是這個模型過於復雜,實際工作中的事實標准,是更為實用的 TCP/IP 模型。
TCP/IP 模型,把網路互聯的框架,分為應用層、傳輸層、網路層、網路介面層等四層,這也是 Linux 網路棧最核心的構成部分。
我結合網路上查閱的資料和文章中的內容,總結了下網卡收發報文的過程,不知道是否正確:
當發送數據包時,與上述相反。鏈路層將數據包封裝完畢後,放入網卡的DMA緩沖區,並調用系統硬中斷,通知網卡從緩沖區讀取並發送數據。
了解 Linux 網路的基本原理和收發流程後,你肯定迫不及待想知道,如何去觀察網路的性能情況。具體而言,哪些指標可以用來衡量 Linux 的網路性能呢?
實際上,我們通常用帶寬、吞吐量、延時、PPS(Packet Per Second)等指標衡量網路的性能。
除了這些指標,網路的可用性(網路能否正常通信)、並發連接數(TCP 連接數量)、丟包率(丟包百分比)、重傳率(重新傳輸的網路包比例)等也是常用的性能指標。
分析網路問題的第一步,通常是查看網路介面的配置和狀態。你可以使用 ifconfig 或者 ip 命令,來查看網路的配置。我個人更推薦使用 ip 工具,因為它提供了更豐富的功能和更易用的介面。
以網路介面 eth0 為例,你可以運行下面的兩個命令,查看它的配置和狀態:
你可以看到,ifconfig 和 ip 命令輸出的指標基本相同,只是顯示格式略微不同。比如,它們都包括了網路介面的狀態標志、MTU 大小、IP、子網、MAC 地址以及網路包收發的統計信息。
第一,網路介面的狀態標志。ifconfig 輸出中的 RUNNING ,或 ip 輸出中的 LOWER_UP ,都表示物理網路是連通的,即網卡已經連接到了交換機或者路由器中。如果你看不到它們,通常表示網線被拔掉了。
第二,MTU 的大小。MTU 默認大小是 1500,根據網路架構的不同(比如是否使用了 VXLAN 等疊加網路),你可能需要調大或者調小 MTU 的數值。
第三,網路介面的 IP 地址、子網以及 MAC 地址。這些都是保障網路功能正常工作所必需的,你需要確保配置正確。
第四,網路收發的位元組數、包數、錯誤數以及丟包情況,特別是 TX 和 RX 部分的 errors、dropped、overruns、carrier 以及 collisions 等指標不為 0 時,通常表示出現了網路 I/O 問題。其中:
ifconfig 和 ip 只顯示了網路介面收發數據包的統計信息,但在實際的性能問題中,網路協議棧中的統計信息,我們也必須關注。你可以用 netstat 或者 ss ,來查看套接字、網路棧、網路介面以及路由表的信息。
我個人更推薦,使用 ss 來查詢網路的連接信息,因為它比 netstat 提供了更好的性能(速度更快)。
比如,你可以執行下面的命令,查詢套接字信息:
netstat 和 ss 的輸出也是類似的,都展示了套接字的狀態、接收隊列、發送隊列、本地地址、遠端地址、進程 PID 和進程名稱等。
其中,接收隊列(Recv-Q)和發送隊列(Send-Q)需要你特別關注,它們通常應該是 0。當你發現它們不是 0 時,說明有網路包的堆積發生。當然還要注意,在不同套接字狀態下,它們的含義不同。
當套接字處於連接狀態(Established)時,
當套接字處於監聽狀態(Listening)時,
所謂全連接,是指伺服器收到了客戶端的 ACK,完成了 TCP 三次握手,然後就會把這個連接挪到全連接隊列中。這些全連接中的套接字,還需要被 accept() 系統調用取走,伺服器才可以開始真正處理客戶端的請求。
與全連接隊列相對應的,還有一個半連接隊列。所謂半連接是指還沒有完成 TCP 三次握手的連接,連接只進行了一半。伺服器收到了客戶端的 SYN 包後,就會把這個連接放到半連接隊列中,然後再向客戶端發送 SYN+ACK 包。
類似的,使用 netstat 或 ss ,也可以查看協議棧的信息:
這些協議棧的統計信息都很直觀。ss 只顯示已經連接、關閉、孤兒套接字等簡要統計,而 netstat 則提供的是更詳細的網路協議棧信息。
比如,上面 netstat 的輸出示例,就展示了 TCP 協議的主動連接、被動連接、失敗重試、發送和接收的分段數量等各種信息。
接下來,我們再來看看,如何查看系統當前的網路吞吐量和 PPS。在這里,我推薦使用我們的老朋友 sar,在前面的 CPU、內存和 I/O 模塊中,我們已經多次用到它。
給 sar 增加 -n 參數就可以查看網路的統計信息,比如網路介面(DEV)、網路介面錯誤(EDEV)、TCP、UDP、ICMP 等等。執行下面的命令,你就可以得到網路介面統計信息:
這兒輸出的指標比較多,我來簡單解釋下它們的含義。
其中,Bandwidth 可以用 ethtool 來查詢,它的單位通常是 Gb/s 或者 Mb/s,不過注意這里小寫字母 b ,表示比特而不是位元組。我們通常提到的千兆網卡、萬兆網卡等,單位也都是比特。如下你可以看到,我的 eth0 網卡就是一個千兆網卡:
其中,Bandwidth 可以用 ethtool 來查詢,它的單位通常是 Gb/s 或者 Mb/s,不過注意這里小寫字母 b ,表示比特而不是位元組。我們通常提到的千兆網卡、萬兆網卡等,單位也都是比特。如下你可以看到,我的 eth0 網卡就是一個千兆網卡:
我們通常使用帶寬、吞吐量、延時等指標,來衡量網路的性能;相應的,你可以用 ifconfig、netstat、ss、sar、ping 等工具,來查看這些網路的性能指標。
小狗同學問到: 老師,您好 ss —lntp 這個 當session處於listening中 rec-q 確定是 syn的backlog嗎?
A: Recv-Q為全連接隊列當前使用了多少。 中文資料里這個問題講得最明白的文章: https://mp.weixin.qq.com/s/yH3PzGEFopbpA-jw4MythQ
看了源碼發現,這個地方講的有問題.關於ss輸出中listen狀態套接字的Recv-Q表示全連接隊列當前使用了多少,也就是全連接隊列的當前長度,而Send-Q表示全連接隊列的最大長度