一定要懂的基礎 - 全圖解 Linux 網路原理實戰開發
袁菘華 著
相關主題
商品描述
網路程式設計真正的門檻,不只是會呼叫Socket API,而是理解一筆資料如何從應用程式進入Linux核心,經過TCP/IP協定堆疊、網路卡,再傳送到另一台主機。
本書從OSI參考模型、TCP/IP、ARP、IP、交換器與跨網段通訊出發,逐步深入Linux核心的網路封包收發流程,再延伸到TCP、UDP、I/O模型、select、poll、epoll、Raw Socket、Unix Domain Socket、群播、廣播、零複製與百萬連線。
書中涵蓋網路位元組序、Socket位址、TCP狀態機、TFO、SYN Cookies、UDP可靠性、io_uring、Socket選項、檔案描述元傳遞,以及Reactor架構等實務技術,將網路協定、系統呼叫、Linux核心機制與伺服器架構串成完整脈絡。
對想從一般Socket程式設計進一步理解Linux網路底層、高效能I/O與高併發伺服器設計的開發者而言,這是一本兼具底層原理與實作細節的網路程式設計參考書。
本書共分14章
◼第1章介紹OSI參考模型、TCP/IP、ARP、交換器與跨網段通訊
◼第2章介紹Socket概念及Linux核心的網路封包收發流程
◼第3章介紹網路位元組序、Socket位址、IP與網域名稱轉換及Socket核心函式
◼第4章介紹TCP狀態機、TCP程式設計、TFO與SYN Flood
◼第5章介紹UDP程式設計、掉封包、順序錯亂與可靠性處理
◼第6章介紹循環式伺服器、並行伺服器與I/O多工伺服器
◼第7章介紹阻塞、非阻塞、訊號驅動、非同步I/O與io_uring
◼第8章介紹select、poll與epoll
◼第9章介紹Socket選項與sysctl
◼第10章介紹網路層與資料連結層Raw Socket,以及使用者空間TCP/IP實作
◼第11章介紹Unix Domain Socket與檔案描述元傳遞
◼第12章介紹群播、IGMP與廣播
◼第13章介紹mmap、DMA、sendfile與splice等零複製技術
◼第14章介紹單機百萬連線、系統限制調整與Reactor架構
作者簡介
袁菘華
具有十餘年Linux研發經驗,曾就職於世界500強企業和中國某通訊公司。擅長以圖文的形式寫作技術文章,將複雜的技術知識講得通俗易懂。個人微信公眾號「物聯網心球」深受廣大讀者的喜歡。
目錄大綱
▍第1 章 電腦網路基礎
1.1 OSI 參考模型
1.2 TCP/IP
1.3 兩台主機直連
1.4 區域網路通訊
1.5 跨網段通訊
▍第2 章 認識通訊端
2.1 從不同角度看 Socket
2.2 從核心看Linux 接收資料
2.3 從核心看Linux 傳送資料
2.4 常見 Socket 介紹
▍第3 章 Socket 程式設計基礎
3.1 位元組序
3.2 Socket 位址
3.3 IP 位址轉換
3.4 網域名稱與 IP 位址的轉換
3.5 Socket核心函式
3.6 Socket 發送函式
3.7 Socket 接收函式
▍第4 章 TCP Socket 程式設計
4.1 TCP 程式設計基礎
4.2 TCP Socket 程式設計基礎
4.3 優雅關閉 Socket
4.4 TCP 連線快速開啟
4.5 SYN Flood 攻擊
▍第5 章 UDP Socket 程式設計
5.1 UDP 程式設計基礎
5.2 UDP 通訊端程式設計基礎
5.3 UDP 可靠性程式設計
▍第6 章 伺服器模型
6.1 迴圈伺服器
6.2 並行伺服器
6.3 I/O 多工伺服器
6.4 本章小結
▍第7 章 I/O 模型
7.1 同步I/O 和非同步I/O 的區別
7.2 阻塞I/O
7.3 非阻塞I/O
7.4 I/O 多工
7.5 訊號驅動I/O
7.6 非同步I/O
▍第8 章 I/O 多工
8.1 從核心看select
8.2 select 程式設計實戰
8.3 select 小結
8.4 從核心看poll
8.5 poll 程式實戰
8.6 poll 小結
8.7 從核心看epoll
8.8 epoll 程式設計實戰
8.9 epoll 小結
▍第9 章 通訊端選項
9.1 通訊端選項簡介
9.2 setsockopt 和getsockopt 函式
9.3 sysctl 相關知識
9.4 常用的通訊端選項
▍第10 章 原始通訊端
10.1 從核心看原始通訊端
10.2 網路層原始通訊端
10.3 鏈結層原始通訊端
10.4 使用者層TCP/IP 程式設計
▍第11 章 網域通訊端
11.1 網域通訊端基礎
11.2 SOCK_STREAM 網域通訊端
11.3 SOCK_DGRAM 網域通訊端
11.4 socketpair 網域通訊端
11.5 傳遞檔案描述子
▍第12 章 群播和廣播
12.1 群播
12.2 群播程式設計
12.3 廣播
12.4 廣播程式設計
▍第13 章 零複製
13.1 傳統檔案傳輸
13.2 零複製技術
13.3 零複製網路程式設計
▍第14 章 百萬高併發
14.1 開啟百萬個通訊端檔案
14.2 建立上百萬個網路連線
14.3 百萬高併發常見問題
14.4 Reactor 模型







