ref: https://www.hwchiu.com/ping-implementation.html
本篇文章是難得的自產文章,該文章分享一下自己觀察不同 ping 指令與不同發行版本下的實作方式,主要探討的點是 ICMP 封包是如何產生的。
就我目前認知,目前至少有三種常見方式來設定 ping 指令讓其能夠順利收送 ICMP 封包。
常見的 TCP/UDP 應用程式實際上都是讓 Kernel 幫忙處理底層的 L3/L4 封包,使用者的應用程式則是專注於資料的交換與處理,簡單的說法就是專心處理 L7 資料。
但是 ICMP 封包不同於上述的 TCP/UDP 封包,一種方式就是透過 RAW Socket 的形式自行去拼湊組裝 ICMP 格式,自行處理一切封包的處理。
RAW Socket 本身也不允許每個使用者都能輕易開啟,必須要有相關的權限才可以執行,因此一種 PING 的實作方式就是透過 SetUID 的方式,讓所有能夠執行 ping 指令的使用者會短暫瞬間提權變成 Root 的身份
也因為是 Root 就可以順利的開啟 RAW Socket。
SetUID 強大且方便,簡簡單單就可以讓使用者瞬間變成 Root,但是也因為簡單好像就安全角度來看會覺得不太嚴謹,畢竟我想要的只是一個能夠開啟 RAW Socket 的權限,你去把整個 Root 都送給我。
因此第二種實作方式就是透過 Linux Capability 來達到更細緻化的權限控管,讓任何可以執行 ping 指令的使用者都可以短暫獲得 cap_net_raw 的權限,最終順利的開啟 RAW Socket
而第三種方式則是跳脫的權限的概念,與其透過 RAW Socket 來自行打造 ICMP 封包,不如讓 Linux Kernel 幫忙處理 ICMP 封包,ping 的程式只要跟 Kernel 要求建立一個基於 ICMP 協定的 socket 即可。
透過第三種方式最終可以達到 setuid-less 的架構,ping 的應用程式再也不需要任何的特殊權限,每個使用者都可以順利執行來收送 ICMP 封包。
文章內會針對三種方式進行實驗跟觀察,對 PING 指令有興趣別忘了參考看看
同時也有6部Youtube影片,追蹤數超過14萬的網紅RagaFinance財經台,也在其Youtube影片中提到,Raga Finance:「金融案內所」 第八集: 第二節: 主持人提問市場對(7XXX)槓桿及反向系列產品的迷思:莊家如何造市(Market Making)、當中風險、條款、回報與預期不符的原因等 主持:Danny、小兵 嘉賓: 南方東英 銷售及產品策略部 財富管理銷售 李雪恒 (Kennet...
「linux kernel」的推薦目錄:
- 關於linux kernel 在 矽谷牛的耕田筆記 Facebook 的最佳解答
- 關於linux kernel 在 矽谷牛的耕田筆記 Facebook 的最佳貼文
- 關於linux kernel 在 GIGAZINE Facebook 的最佳解答
- 關於linux kernel 在 RagaFinance財經台 Youtube 的精選貼文
- 關於linux kernel 在 RagaFinance財經台 Youtube 的最佳解答
- 關於linux kernel 在 RagaFinance財經台 Youtube 的精選貼文
- 關於linux kernel 在 torvalds/linux: Linux kernel source tree - GitHub 的評價
- 關於linux kernel 在 Taiwan Linux Kernel Hackers | Facebook 的評價
- 關於linux kernel 在 Category: Linux Kernel 的評價
- 關於linux kernel 在 Where to download Linux Kernel source code of a specific ... 的評價
- 關於linux kernel 在 Read/write files within a Linux kernel module - Stack Overflow 的評價
linux kernel 在 矽谷牛的耕田筆記 Facebook 的最佳貼文
ref: https://lwn.net/Articles/853637/
如果對 SO_REUSEPORT 這個能夠提供網路服務吞吐量的 socket options 不陌生的話,那這篇文章強烈推薦看看。
本篇文章是從討論開啟 SO_REUSEPORT 這個選項會出現的一些行為以及可能可以怎麼做
最直得看的應該是留言區本身,有很多不同層級的討論,大家最愛講的 Google SRE 人也都出來分享自己的經驗了。
正常情況下,每個 TCP Port 只能被一個 process 給使用來聽取封包,但是對於一些網路重度使用的系統來說,就算讓該 process 將連線給分散到其他的 process 去處理,該 process 依然可能是系統的效能瓶頸。
Linux Kernel 3.9 後引入的 SO_REUSEPORT 參數就是為了解決這個效能問題而來的,這個參數允許多個 Process 同時使用一個 TCP Port,每當底層有一條新的連線請求時, Kernel 會從眾多的候選人之一中挑選一個可用來處理。
這種情況下,網路應用程式就可以專心處理連線工作,然後實務上同時執行多個 Process 即可。底層的 Kernel 會幫忙做連線的負載分配。
當眾多候選 process 其中之一掛掉了(可能是 crash,也有可能是有意的重啟), kernel 會注意到這個候選人要說掰掰,這候選人處理的所有 connection 都會被移除,比較糟糕的是其他待在 Accept-Queue 那些還沒被建立連線的連線請求也會一併被移除。
作者認為 Kernel 應該要有能力可以轉移那些 Accept-queue 中的連線到其他還工作的候選 process 下去處理,這樣使用者/Client 的連線就不會需要處理太多重連的問題。
文章後面都在探討可行的做法以及這個問題可能會導致什麼問題。
留言區滿熱鬧的,譬如說
1. 有人認為 server 重啟的情況實在太少見,有需要為這麽少見的情況導入這麼複雜的修改到 Kernel 中?
a. 有人回答使用 Let's Encrypt 你可能每幾週就要重啟一次。
b. Google SRE 回答其內部因為調整設定的緣由,幾乎無時無刻都需要重啟服務,不過這問題已經從別的層級去處理掉,所以修改 Kernel 對他們的用途不太大。
2. 有人提出 Nginx 本身有 live migration 的功能,可以將 fd 給轉移到其他的 process 去處理。
a. 有人提出這邊談的是 socket/connection 的層級,這些東西都還沒發生到 userspace process 同時也不是 userspace 應用程式可以接觸處理的。
b. 本文探討的是 bind(), accept(), listen() 這類型 function call 之間 kernel 會幫忙做的事情。
有興趣的別忘了閱讀留言區
linux kernel 在 GIGAZINE Facebook 的最佳解答
2万7000行ものコードをひとつのファイルに書いたLinuxカーネルパッチが送りつけられる(2020)
https://gigazine.net/news/20200825-paragon-ntfs-kernel-patch/
linux kernel 在 RagaFinance財經台 Youtube 的精選貼文
Raga Finance:「金融案內所」 第八集: 第二節: 主持人提問市場對(7XXX)槓桿及反向系列產品的迷思:莊家如何造市(Market Making)、當中風險、條款、回報與預期不符的原因等
主持:Danny、小兵
嘉賓: 南方東英 銷售及產品策略部 財富管理銷售 李雪恒 (Kenneth)
◎◎◎訂閱 ◎◎◎
▶
Ragazine : https://www.youtube.com/channel/UC5DWcqCjBne2-wRnrjxkuHQ
▶
Raga Finance: https://www.youtube.com/c/RagazineFinanceVideo
▶
Giggs.hk: https://www.youtube.com/channel/UCVZTkv6LM-_xWUM9t-jS5JA
***推介影片***
Raga Finance:「金融案內所」 第六集:芬蘭出口、進口貨品、經濟情況、工會、歐資公司、諾基亞的興起 (第一節)
https://youtu.be/wBIkEtEYjm0
※※※想知道我們每天的動向※※※
▶
Web http://www.ragazine.com.hk/
▶
Web http://www.ragafinance.com/
▶
Web http://www.giggs.hk
▶
FB (Ragazine) : https://www.facebook.com/www.ragazine.com.hk/
▶
FB (Raga Finance) : https://www.facebook.com/ragafin/
▶
FB (Giggs,hk) : https://www.facebook.com/www.giggs.hk
▶
IG ( https://www.instagram.com/ragazinehk/
◆◆◆工 商 聯 絡 ◆◆◆
▶
E-MAIL : ragazine@ragazine.com.hk
#逆向ETF莊家 #反向ETF表現 #逆向ETF回報
![post-title](https://i.ytimg.com/vi/mfZTj-URiVU/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLDYSG2l2OB1DjvCTyTr2hV3niec7A)
linux kernel 在 RagaFinance財經台 Youtube 的最佳解答
Raga Finance:「金融案內所」 第八集: 第一節 解構(7XXX)槓桿及反向系列產品之謎,比較相關產品的回報表現
主持:Danny、小兵
嘉賓: 南方東英 銷售及產品策略部 財富管理銷售 李雪恒 (Kenneth)
◎◎◎訂閱 ◎◎◎
▶
Ragazine : https://www.youtube.com/channel/UC5DWcqCjBne2-wRnrjxkuHQ
▶
Raga Finance: https://www.youtube.com/c/RagazineFinanceVideo
▶
Giggs.hk: https://www.youtube.com/channel/UCVZTkv6LM-_xWUM9t-jS5JA
***推介影片***
Raga Finance:「金融案內所」 第六集:芬蘭出口、進口貨品、經濟情況、工會、歐資公司、諾基亞的興起 (第一節)
https://youtu.be/wBIkEtEYjm0
※※※想知道我們每天的動向※※※
▶
Web http://www.ragazine.com.hk/
▶
Web http://www.ragafinance.com/
▶
Web http://www.giggs.hk
▶
FB (Ragazine) : https://www.facebook.com/www.ragazine.com.hk/
▶
FB (Raga Finance) : https://www.facebook.com/ragafin/
▶
FB (Giggs,hk) : https://www.facebook.com/www.giggs.hk
▶
IG ( https://www.instagram.com/ragazinehk/
◆◆◆工 商 聯 絡 ◆◆◆
▶
E-MAIL : ragazine@ragazine.com.hk
#逆向ETF #反向ETF表現 #睇淡工具
![post-title](https://i.ytimg.com/vi/jVPCqyzJngk/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBYqIv8BAGabz1AKWkdzrfOIz783Q)
linux kernel 在 RagaFinance財經台 Youtube 的精選貼文
Raga Finance:「金融案內所」 第七集:第二節 (加長版) 華為與5G、針對華為的目的、中美科技戰高下立見?安卓系統、晶片如何影響華為?預測華為的對策、自發系統能否取代ANDROID
主持:Danny、小兵
嘉賓:Howard
◎◎◎訂閱 ◎◎◎
▶
Ragazine : https://www.youtube.com/channel/UC5DWcqCjBne2-wRnrjxkuHQ
▶
Raga Finance: https://www.youtube.com/c/RagazineFinanceVideo
▶
Giggs.hk: https://www.youtube.com/channel/UCVZTkv6LM-_xWUM9t-jS5JA
***推介影片***
Raga Finance:「金融案內所」 第六集:芬蘭出口、進口貨品、經濟情況、工會、歐資公司、諾基亞的興起 (第一節)
https://youtu.be/wBIkEtEYjm0
※※※想知道我們每天的動向※※※
▶
Web http://www.ragazine.com.hk/
▶
Web http://www.ragafinance.com/
▶
Web http://www.giggs.hk
▶
FB (Ragazine) : https://www.facebook.com/www.ragazine.com.hk/
▶
FB (Raga Finance) : https://www.facebook.com/ragafin/
▶
FB (Giggs,hk) : https://www.facebook.com/www.giggs.hk
▶
IG ( https://www.instagram.com/ragazinehk/
◆◆◆工 商 聯 絡 ◆◆◆
▶
E-MAIL : ragazine@ragazine.com.hk
#中美展開科技戰 #美國封殺華為 #華為安卓系統
![post-title](https://i.ytimg.com/vi/aGiBVfwSK38/hqdefault.jpg)
linux kernel 在 Taiwan Linux Kernel Hackers | Facebook 的推薦與評價
有鑑於Linux Kernel 的高度複雜。本討論區提供從業人員,或有興趣的開發者以開放的心胸,盡興的交換知識,增長知識。 由於Facebook 的瀏覽模式,無法做很有系統的知識 ... ... <看更多>
linux kernel 在 Category: Linux Kernel 的推薦與評價
Linux Kernel Pratice 0.5: 使用gdb 加Qemu Trace Linux Kernel Runtime 行為. Oct 31 2016 posted in arm, gdb, linux kernel, qemu ... ... <看更多>
linux kernel 在 torvalds/linux: Linux kernel source tree - GitHub 的推薦與評價
Linux kernel source tree. Contribute to torvalds/linux development by creating an account on GitHub. ... <看更多>