中图网(原中国图书网):网上书店,尾货特色书店,30万种特价书低至2折!

歡迎光臨中圖網 請 | 注冊

包郵 LINUX網絡編程(第3版)

作者:宋敬彬
出版社:清華大學出版社出版時間:2024-04-01
開本: 其他 頁數: 644
中 圖 價:¥116.1(7.3折) 定價  ¥159.0 登錄后可看到會員價
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>

LINUX網絡編程(第3版) 版權信息

LINUX網絡編程(第3版) 本書特色

“Linux典藏大系”暢銷15年,經久不衰,累計銷售30萬余冊。 廣受好評的Linux經典暢銷書全新改版,ChinaUnix社區力薦。 資深工程師25年開發經驗的總結,深入剖析用戶層和內核層網絡編程。 詳細展現Web服務器、網絡協議棧和防火墻3個經典案例的實現。 內容全面:涵蓋Linux網絡編程從基礎知識到高級技術的大部分重要知識點。 內容深入:重點講解技術性較強的Linux用戶空間網絡編程和內核網絡編程。 注重原理:從基本概念和原理兩個維度對每個知識點進行詳細和透徹的分析。 插圖豐富:繪制220余幅原理圖,以直觀的方式剖析復雜度和難度較高的知識點。 代碼典型:書中的示例代碼大多是從實際項目中總結而來,有很強的實用性。 注重實踐:結合500多個典型示例和3個綜合案例講透核心知識點。 視頻講解:專門為重點內容錄制多媒體教學視頻,高效、直觀。 提供習題:每章都提供習題,幫助讀者鞏固和自測重點內容的掌握情況。 叢書15年經久不衰,暢銷30萬冊,全新改版,前版暢銷2.5萬冊,視頻+導圖+PPT…

LINUX網絡編程(第3版) 內容簡介

本書是獲得大量讀者好評的“Linux典藏大系”中的《Linux網絡編程》第3版!禠inux網絡編程》第1、2版出版后得到了大量讀者的好評,曾經多次印刷并得到了ChinaUnix技術社區的推薦!禠inux網絡編程(第3版)》全面、系統、深入地介紹Linux網絡編程的相關知識,涉及面很廣,從編程工具和環境搭建,到高級技術和核心原理,再到項目實戰,幾乎涵蓋Linux網絡編程的所有重要知識點。《Linux網絡編程(第3版)》提供教學視頻、思維導圖、教學PPT和習題參考答案等超值配套資料,可以幫助讀者高效、直觀地學習。 《Linux網絡編程(第3版)》共20章,分為4篇。第1篇“Linux網絡開發基礎知識”,涵蓋Linux操作系統概述、Linux編程環境、文件系統概述,以及程序、進程和線程等相關知識;第2篇“Linux用戶層網絡編程”,涵蓋TCP/IP族概述、應用層網絡服務程序概述、TCP網絡編程基礎知識、服務器和客戶端信息獲取、數據的I/O及其復用、基于UDP接收和發送數據、高級套接字、套接字選項、原始套接字、服務器模型、IPv6基礎知識等;第3篇“Linux內核網絡編程”,涵蓋Linux內核層網絡架構和netfilter框架的報文處理;第4篇“綜合案例”,介紹3個網絡編程綜合案例的實現,包括一個簡單的Web服務器SHTTPD的實現、一個簡單的網絡協議棧SIP的實現和一個簡單的防火墻SIPFW的實現。 《Linux網絡編程(第3版)》內容豐富,講解深入,適合想全面、系統、深入學習Linux網絡編程的人員閱讀,尤其適合Linux網絡開發工程技術人員和基于Linux平臺的網絡程序設計人員作為參考讀物。

LINUX網絡編程(第3版) 目錄

目錄 第1篇 Linux網絡開發基礎知識 第1章 Linux操作系統概述 2 1.1 Linux的發展歷史 2 1.1.1 Linux的誕生和發展 2 1.1.2 Linux名稱的由來 2 1.2 Linux的發展要素 3 1.2.1 UNIX操作系統 3 1.2.2 Minix操作系統 3 1.2.3 POSIX標準 3 1.3 Linux與UNIX的異同 3 1.4 常見的Linux發行版本和內核版本的選擇 4 1.4.1 常見的Linux發行版本 4 1.4.2 內核版本的選擇 5 1.5 Linux系統架構 5 1.5.1 Linux內核的主要模塊 5 1.5.2 Linux的文件結構 7 1.6 GNU通用公共許可證 7 1.6.1 GPL許可證的發展歷史 8 1.6.2 GPL的自由理念 8 1.6.3 GPL的基本條款 8 1.6.4 關于GPL許可證的爭議 9 1.7 Linux軟件開發的可借鑒之處 9 1.8 小結 9 1.9 習題 10 第2章 Linux編程環境 11 2.1 編輯器 11 2.1.1 Vim簡介 11 2.1.2 使用Vim建立文件 12 2.1.3 使用Vim編輯文本 13 2.1.4 Vim的格式設置 14 2.1.5 Vim的配置文件.vimrc 15 2.1.6 使用其他編輯器 15 2.2 GCC編譯器工具集 16 2.2.1 GCC簡介 16 2.2.2 編譯程序基礎知識 16 2.2.3 將單個文件編譯成可執行文件 17 2.2.4 生成目標文件 18 2.2.5 多文件編譯 18 2.2.6 預處理 19 2.2.7 編譯成匯編語言 20 2.2.8 生成并使用靜態鏈接庫 21 2.2.9 生成動態鏈接庫 22 2.2.10 動態加載庫 24 2.2.11 GCC的常用選項 26 2.2.12 搭建編譯環境 27 2.3 Makefile文件簡介 27 2.3.1 多文件工程實例 27 2.3.2 多文件工程的編譯 29 2.3.3 Makefile的規則 31 2.3.4 在Makefile中使用變量 33 2.3.5 搜索路徑 36 2.3.6 自動推導規則 37 2.3.7 遞歸調用 37 2.3.8 Makefile中的函數 39 2.4 GDB調試工具 40 2.4.1 編譯可調試程序 40 2.4.2 使用GDB調試程序 42 2.4.3 GDB的常用命令 45 2.4.4 其他GDB程序 52 2.5 小結 52 2.6 習題 53 第3章 文件系統概述 54 3.1 Linux文件系統簡介 54 3.1.1 Linux的文件分類 54 3.1.2 創建文件系統 55 3.1.3 掛載文件系統 58 3.1.4 索引節點 59 3.1.5 普通文件 59 3.1.6 設備文件 60 3.1.7 虛擬文件系統 61 3.2 文件的通用操作方法 64 3.2.1 文件描述符 64 3.2.2 打開文件函數open() 64 3.2.3 關閉文件函數close() 66 3.2.4 讀取文件函數read() 67 3.2.5 寫文件函數write() 69 3.2.6 文件偏移函數lseek() 70 3.2.7 獲得文件狀態 73 3.2.8 文件空間映射函數mmap()和munmap() 74 3.2.9 文件屬性函數fcntl() 77 3.2.10 文件輸入/輸出控制函數ioctl() 81 3.3 socket文件類型 82 3.4 小結 82 3.5 習題 82 第4章 程序、進程和線程 84 4.1 程序、進程和線程的概念 84 4.1.1 程序和進程的區別 84 4.1.2 Linux環境中的進程 84 4.1.3 進程和線程 85 4.2 進程產生的方式 85 4.2.1 進程號 86 4.2.2 fork()函數 86 4.2.3 system()函數 87 4.2.4 exec()族函數 88 4.2.5 所有用戶態進程的產生進程systemd 89 4.3 進程間通信和同步 90 4.3.1 半雙工管道 90 4.3.2 命名管道 95 4.3.3 消息隊列 96 4.3.4 消息隊列實例 100 4.3.5 信號量 103 4.3.6 共享內存 107 4.3.7 信號 110 4.4 Linux線程 111 4.4.1 多線程編程實例 112 4.4.2 線程創建函數pthread_create() 113 4.4.3 線程結束函數pthread_join()和pthread_exit() 114 4.4.4 線程的屬性 115 4.4.5 線程間的互斥 116 4.4.6 線程的信號量函數 118 4.5 小結 120 4.6 習題 121 第2篇 Linux用戶層網絡編程 第5章 TCP/IP族概述 124 5.1 OSI網絡分層簡介 124 5.1.1 OSI網絡分層結構 124 5.1.2 OSI模型的7層結構 125 5.1.3 OSI模型的數據傳輸 125 5.2 TCP/IP棧簡介 126 5.2.1 TCP/IP棧參考模型 126 5.2.2 主機到網絡層協議 128 5.2.3 IP簡介 129 5.2.4 互聯網控制報文協議 131 5.2.5 傳輸控制協議 135 5.2.6 用戶數據報文協議 138 5.2.7 地址解析協議 140 5.3 IP地址分類與TCP/UDP端口 142 5.3.1 因特網中的IP地址分類 142 5.3.2 子網掩碼 144 5.3.3 IP地址的配置 145 5.3.4 端口 146 5.4 主機字節序和網絡字節序 146 5.4.1 字節序的含義 147 5.4.2 網絡字節序的轉換 147 5.5 小結 149 5.6 習題 149 第6章 應用層網絡服務程序概述 151 6.1 HTTP及其服務 151 6.1.1 HTTP簡介 151 6.1.2 HTTP實現的基本通信過程 151 6.2 FTP及其服務 153 6.2.1 FTP簡介 153 6.2.2 FTP的工作模式 154 6.2.3 FTP的傳輸方式 155 6.2.4 一個簡單的FTP下載過程 155 6.2.5 常用的FTP工具 156 6.3 TELNET協議及其服務 156 6.3.1 遠程登錄簡介 156 6.3.2 使用TELNET協議進行遠程登錄 156 6.3.3 TELNET協議簡介 157 6.4 NFS協議及其服務 158 6.4.1 安裝NFS服務器和客戶端 158 6.4.2 服務器端的設定 158 6.4.3 客戶端操作 158 6.4.4 showmount命令 159 6.5 自定義網絡服務 159 6.5.1 xinetd簡介 159 6.5.2 xinetd配置方式 159 6.5.3 自定義網絡服務 161 6.6 小結 162 6.7 習題 162 第7章 TCP網絡編程基礎知識 163 7.1 套接字編程基礎知識 163 7.1.1 套接字地址結構 163 7.1.2 用戶層和內核的交互過程 164 7.2 TCP網絡編程流程 165 7.2.1 TCP網絡編程架構 165 7.2.2 創建網絡插口函數socket() 167 7.2.3 綁定一個地址端口 169 7.2.4 監聽本地端口函數listen() 172 7.2.5 接收一個網絡請求函數accept() 175 7.2.6 連接目標網絡服務器函數connect() 178 7.2.7 寫入數據函數write() 179 7.2.8 讀取數據函數read() 180 7.2.9 關閉套接字函數shutdown() 180 7.3 服務器/客戶端實例 180 7.3.1 功能描述 181 7.3.2 服務器網絡程序 181 7.3.3 服務器端和客戶端的連接 183 7.3.4 客戶端網絡程序 183 7.3.5 客戶端讀取和顯示字符串 184 7.3.6 編譯運行程序 184 7.4 截取信號實例 185 7.4.1 信號處理 185 7.4.2 SIGPIPE信號 186 7.4.3 SIGINT信號 186 7.5 小結 186 7.6 習題 187 第8章 服務器和客戶端信息獲取 188 8.1 字節序 188 8.1.1 大端字節序和小端字節序 188 8.1.2 字節序轉換函數 190 8.1.3 字節序轉換實例 192 8.2 字符串IP地址和二進制IP地址的轉換 194 8.2.1 inet_xxx()函數 195 8.2.2 inet_pton()和inet_ntop()函數 197 8.2.3 地址轉換實例 197 8.2.4 inet_pton()和inet_ntop()函數實例 200 8.3 套接字描述符判定函數issockettype() 200 8.3.1 issockettype()函數 201 8.3.2 main()函數 201 8.4 IP地址與域名的相互轉換 201 8.4.1 DNS原理 202 8.4.2 獲取主機信息的函數 203 8.4.3 通過主機名獲取主機信息實例 205 8.4.4 gethostbyname()函數不可重入實例 206 8.5 協議名稱處理函數 208 8.5.1 xxxprotoxxx()函數 208 8.5.2 使用協議族函數實例 209 8.6 小結 212 8.7 習題 213 第9章 數據的I/O及其復用 214 9.1 I/O函數 214 9.1.1 使用recv()函數接收數據 214 9.1.2 使用send()函數發送數據 215 9.1.3 使用readv()函數接收數據 215 9.1.4 使用writev()函數發送數據 216 9.1.5 使用recvmsg()函數接收數據 216 9.1.6 使用sendmsg()函數發送數據 218 9.1.7 I/O函數的比較 220 9.2 I/O函數使用實例 220 9.2.1 客戶端的處理流程 220 9.2.2 服務器端的處理流程 222 9.2.3 recv()和send()函數 223 9.2.4 readv()和write()函數 225 9.2.5 recvmsg()和sendmsg()函數 227 9.3 I/O模型 230 9.3.1 阻塞I/O模型 230 9.3.2 非阻塞I/O模型 231 9.3.3 I/O復用模型 231 9.3.4 信號驅動I/O模型 231 9.3.5 異步I/O模型 232 9.4 select()和pselect()函數 232 9.4.1 select()函數 233 9.4.2 pselect()函數 234 9.5 poll()和ppoll()函數 236 9.5.1 poll()函數 236 9.5.2 ppoll()函數 237 9.6 非阻塞編程 237 9.6.1 非阻塞方式程序設計簡介 238 9.6.2 非阻塞程序設計實例 238 9.7 小結 239 9.8 習題 239 第10章 基于UDP接收和發送數據 241 10.1 UDP程序設計簡介 241 10.1.1 UDP編程框架 241 10.1.2 UDP服務器端編程框架 242 10.1.3 UDP客戶端編程框架 243 10.2 UDP程序設計的常用函數 243 10.2.1 建立套接字函數socket()和綁定套接字函數bind() 243 10.2.2 接收數據函數recvfrom()和recv() 244 10.2.3 發送數據函數sendto()和send() 247 10.3 UDP接收和發送數據實例 251 10.3.1 UDP服務器端 251 10.3.2 UDP服務器端數據處理 252 10.3.3 UDP客戶端 252 10.3.4 UDP客戶端數據處理 253 10.3.5 測試UDP程序 253 10.4 UDP程序設計的常見問題 253 10.4.1 UDP報文丟失數據 254 10.4.2 UDP數據發送亂序 256 10.4.3 在UDP中使用connect()函數的副作用 257 10.4.4 UDP缺乏流量控制 258 10.4.5 UDP的外出網絡接口 260 10.4.6 UDP的數據報文截斷 261 10.5 小結 262 10.6 習題 262 第11章 高級套接字 263 11.1 UNIX域函數 263 11.1.1 UNIX域函數的地址結構 263 11.1.2 套接字函數 263 11.1.3 使用UNIX域函數進行套接字編程 264 11.1.4 傳遞文件描述符 266 11.1.5 socketpair()函數 266 11.1.6 傳遞文件描述符實例 267 11.2 廣播 271 11.2.1 廣播的IP地址 271 11.2.2 廣播與單播比較 272 11.2.3 廣播實例 274 11.3 多播 279 11.3.1 多播的概念 279 11.3.2 廣域網的多播 279 11.3.3 多播編程 279 11.3.4 內核中的多播 281 11.3.5 多播服務器端實例 285 11.3.6 多播客戶端實例 286 11.4 數據鏈路層訪問 287 11.4.1 SOCK_PACKET類型 287 11.4.2 設置套接口捕獲鏈路幀的編程方法 288 11.4.3 從套接口讀取鏈路幀的編程方法 289 11.4.4 定位IP報頭的編程方法 290 11.4.5 定位TCP報頭的編程方法 291 11.4.6 定位UDP報頭的編程方法 292 11.4.7 定位應用層報文數據的編程方法 293 11.4.8 使用SOCK_PACKET編寫ARP請求程序實例 294 11.5 小結 297 11.6 習題 297 第12章 套接字選項 299 12.1 獲取和設置套接字選項 299 12.1.1 getsockopt()和setsocketopt()函數 299 12.1.2 套接字選項 300 12.1.3 套接字選項的簡單示例 300 12.2 SOL_SOCKET協議族選項 303 12.2.1 廣播選項SO_BROADCAST 304 12.2.2 調試選項SO_DEBUG 304 12.2.3 不經過路由選項SO_DONTROUTE 304 12.2.4 錯誤選項SO_ERROR 304 12.2.5 保持連接選項SO_KEEPALIVE 305 12.2.6 緩沖區處理方式選項SO_LINGER 306 12.2.7 帶外數據處理方式選項SO_OOBINLINE 308 12.2.8 緩沖區大小選項SO_RCVBUF和SO_SNDBUF 309 12.2.9 緩沖區下限選項SO_RCVLOWAT和SO_SNDLOWAT 309 12.2.10 收發超時選項SO_RCVTIMEO和SO_SNDTIMEO 309 12.2.11 地址重用選項SO_REUSERADDR 310 12.2.12 端口獨占選項SO_EXCLUSIVEADDRUSE 310 12.2.13 套接字類型選項SO_TYPE 310 12.2.14 是否與BSD套接字兼容選項SO_BSDCOMPAT 310 12.2.15 套接字網絡接口綁定選項SO_BINDTODEVICE 311 12.2.16 套接字優先級選項SO_PRIORITY 312 12.3 IPPROTO_IP選項 312 12.3.1 IP_HDRINCL選項 312 12.3.2 IP_OPTIONS選項 312 12.3.3 IP_TOS選項 312 12.3.4 IP_TTL選項 313 12.4 IPPROTO_TCP選項 313 12.4.1 TCP_KEEPALIVE選項 313 12.4.2 TCP_MAXRT選項 313 12.4.3 TCP_MAXSEG選項 314 12.4.4 TCP_NODELAY和TCP_CORK選項 314 12.5 套接字選項使用實例 316 12.5.1 設置和獲取緩沖區大小 316 12.5.2 獲取套接字的類型 320 12.5.3 套接字選項綜合實例 321 12.6 ioctl()函數 325 12.6.1 ioctl()函數的選項 325 12.6.2 ioctl()函數的I/O請求 326 12.6.3 ioctl()函數的文件請求 328 12.6.4 ioctl()函數的網絡接口請求 328 12.6.5 使用ioctl()函數對ARP高速緩存進行操作 335 12.6.6 使用ioctl()函數發送路由表請求 337 12.7 fcntl()函數 337 12.7.1 fcntl()函數的命令選項 337 12.7.2 使用fcntl()函數修改套接字非阻塞屬性 337 12.7.3 使用fcntl()函數設置信號屬主 338 12.8 小結 338 12.9 習題 338 第13章 原始套接字 340 13.1 原始套接字概述 340 13.2 創建原始套接字 341 13.2.1 SOCK_RAW選項 341 13.2.2 IP_HDRINCL套接字選項 342 13.2.3 不需要bind()函數 342 13.3 使用原始套接字發送報文 342 13.4 使用原始套接字接收報文 343 13.5 原始套接字報文處理的結構 343 13.5.1 IP的頭部結構 343 13.5.2 ICMP的頭部結構 344 13.5.3 UDP的頭部結構 347 13.5.4 TCP的頭部結構 348 13.6 ping命令使用實例 350 13.6.1 協議格式 350 13.6.2 校驗和函數 351 13.6.3 設置ICMP發送報文的頭部 352 13.6.4 剝離ICMP接收報文的頭部 353 13.6.5 計算時間差 354 13.6.6 發送報文 355 13.6.7 接收報文 356 13.6.8 主函數實現過程 357 13.6.9 主函數main() 359 13.6.10 編譯測試 362 13.7 洪水攻擊 362 13.8 ICMP洪水攻擊 362 13.8.1 ICMP洪水攻擊的原理 362 13.8.2 ICMP洪水攻擊實例 364 13.9 UDP洪水攻擊 367 13.10 SYN洪水攻擊 370 13.10.1 SYN洪水攻擊的原理 370 13.10.2 SYN洪水攻擊實例 371 13.11 小結 374 13.12 習題 374 第14章 服務器模型 376 14.1 循環服務器 376 14.1.1 UDP循環服務器 376 14.1.2 TCP循環服務器 378 14.2 并發服務器 381 14.2.1 簡單的并發服務器模型 381 14.2.2 UDP并發服務器 382 14.2.3 TCP并發服務器 384 14.3 TCP的高級并發服務器模型 387 14.3.1 單客戶端單進程統一接收請求 387 14.3.2 單客戶端單線程統一接收請求 390 14.3.3 單客戶端單線程獨自接收請求 392 14.4 I/O復用循環服務器 395 14.4.1 I/O復用循環服務器模型簡介 395 14.4.2 I/O復用循環服務器模型實例 396 14.5 小結 400 14.6 習題 400 第15章 IPv6基礎知識 402 15.1 IPv4的缺陷 402 15.2 IPv6的特點 403 15.3 IPv6的地址 403 15.3.1 IPv6的單播地址 404 15.3.2 可聚集全球單播地址 404 15.3.3 本地單播地址 405 15.3.4 兼容性地址 405 15.3.5 IPv6的多播地址 406 15.3.6 IPv6的任播地址 407 15.3.7 主機的多個IPv6地址 407 15.4 IPv6的頭部 407 15.4.1 IPv6的頭部結構 407 15.4.2 IPv6的頭部結構與IPv4的頭部結構對比 408 15.4.3 IPv6的TCP頭部結構 409 15.4.4 IPv6的UDP頭部結構 409 15.4.5 IPv6的ICMP頭部結構 409 15.5 IPv6運行環境 410 15.5.1 加載IPv6模塊 411 15.5.2 查看是否支持IPv6 411 15.6 IPv6的結構定義 412 15.6.1 IPv6的地址族和協議族 412 15.6.2 套接字地址結構 412 15.6.3 地址兼容考慮 413 15.6.4 IPv6的通用地址 413 15.7 IPv6的套接字函數 414 15.7.1 socket()函數 414 15.7.2 沒有改變的函數 414 15.7.3 改變的函數 415 15.8 IPv6的套接字選項與控制命令 415 15.8.1 IPv6的套接字選項 415 15.8.2 單播跳限IPV6_UNICAST_HOPS 416 15.8.3 發送和接收多播包 416 15.8.4 在IPv6中獲得時間戳的ioctl命令 417 15.9 IPv6的庫函數 417 15.9.1 地址轉換函數的差異 417 15.9.2 域名解析函數的差異 417 15.9.3 測試宏 419 15.10 IPv6編程實例 419 15.10.1 服務器程序 419 15.10.2 客戶端程序 421 15.10.3 編譯程序 422 15.11 小結 423 15.12 習題 423 第3篇 Linux內核網絡編程 第16章 Linux內核層網絡架構 426 16.1 Linux網絡協議棧概述 426 16.1.1 代碼目錄分布 426 16.1.2 網絡數據在內核中的處理過程 427 16.1.3 修改內核層的網絡數據 429 16.1.4 sk_buff結構 429 16.1.5 網絡協議數據結構inet_protosw 434 16.2 軟中斷CPU報文隊列及其處理 435 16.2.1 軟中斷簡介 435 16.2.2 網絡收發處理軟中斷的實現機制 436 16.3 如何在內核中接收和發送socket數據 437 16.3.1 初始化函數socket() 437 16.3.2 接收網絡數據函數recv() 437 16.3.3 發送網絡數據函數send() 438 16.4 小結 439 16.5 習題 439 第17章 netfilter框架的報文處理 440 17.1 netfilter框架概述 440 17.1.1 netfilter框架簡介 440 17.1.2 在IPv4棧上實現netfilter框架 440 17.1.3 netfilter框架的檢查 441 17.1.4 netfilter框架的規則 442 17.2 iptables和netfilter 442 17.2.1 iptables簡介 442 17.2.2 iptables的表和鏈 443 17.2.3 使用iptables設置過濾規則 444 17.3 內核模塊編程 446 17.3.1 內核層的Hello World程序 446 17.3.2 內核模塊的基本架構 448 17.3.3 內核模塊的加載和卸載過程 450 17.3.4 內核模塊的初始化和清理函數 450 17.3.5 內核模塊的初始化和清理過程的容錯處理 451 17.3.6 編譯內核模塊所需的Makefile 452 17.4 5個鉤子 453 17.4.1 netfilter框架的5個鉤子 453 17.4.2 NF_HOOK()宏函數 454 17.4.3 鉤子的處理規則 454 17.5 注冊和注銷鉤子 455 17.5.1 nf_hook_ops結構 455 17.5.2 注冊鉤子 455 17.5.3 注銷鉤子 456 17.5.4 注冊和注銷函數 456 17.6 鉤子處理實例 457 17.6.1 功能描述 457 17.6.2 需求分析 458 17.6.3 ping回顯屏蔽 458 17.6.4 禁止向目的IP地址發送數據 458 17.6.5 端口關閉 458 17.6.6 動態配置 459 17.6.7 可加載內核代碼 460 17.6.8 應用層測試代碼 467 17.6.9 編譯和測試 467 17.7 多個鉤子的優先級設置 467 17.8 校驗和問題 468 17.9 小結 469 17.10 習題 469 第4篇 綜合案例 第18章 一個簡單的Web服務器SHTTPD的實現 472 18.1 SHTTPD的需求分析 472 18.1.1 啟動參數可動態配置 473 18.1.2 多客戶端支持 475 18.1.3 支持的方法 475 18.1.4 支持的HTTP版本 476 18.1.5 支持的頭域 476 18.1.6 URI定位 476 18.1.7 支持的CGI 477 18.1.8 錯誤代碼 478 18.2 SHTTPD的模塊分析和設計 478 18.2.1 主函數 478 18.2.2 命令行解析模塊 479 18.2.3 文件配置解析模塊 481 18.2.4 多客戶端支持模塊 481 18.2.5 頭部解析模塊 483 18.2.6 URI解析模塊 484 18.2.7 請求方法解析模塊 484 18.2.8 支持的CGI模塊 485 18.2.9 錯誤處理模塊 487 18.3 SHTTPD各模塊的實現 489 18.3.1 命令行解析模塊的實現 489 18.3.2 文件配置解析模塊的實現 491 18.3.3 多客戶端支持模塊的實現 493 18.3.4 URI解析模塊的實現 496 18.3.5 請求方法解析模塊的實現 497 18.3.6 響應方法模塊的實現 498 18.3.7 CGI模塊的實現 501 18.3.8 支持的HTTP版本的實現 504 18.3.9 支持的內容類型模塊的實現 504 18.3.10 錯誤處理模塊的實現 506 18.3.11 返回目錄文件列表模塊的實現 508 18.3.12 主函數的實現 510 18.4 程序的編譯和測試 511 18.4.1 建立源文件 511 18.4.2 制作Makefile和執行文件 511 18.4.3 使用不同的瀏覽器測試服務器程序 512 18.5 小結 512 18.6 習題 513 第19章 一個簡單的網絡協議棧SIP的實現 514 19.1 功能描述 514 19.1.1 基本功能描述 514 19.1.2 分層功能描述 515 19.1.3 用戶接口功能描述 515 19.2 基本架構 516 19.3 SIP網絡協議棧的存儲區緩存 517 19.3.1 SIP存儲緩沖結構定義 517 19.3.2 SIP存儲緩沖的處理函數 520 19.4 SIP網絡協議棧的網絡接口層 522 19.4.1 網絡接口層架構 523 19.4.2 網絡接口層的數據結構 523 19.4.3 網絡接口層的初始化函數 525 19.4.4 網絡接口層的輸入函數 526 19.4.5 網絡接口層的輸出函數 529 19.5 SIP網絡協議棧的ARP層 531 19.5.1 ARP層的架構 531 19.5.2 ARP層的數據結構 532 19.5.3 ARP層的映射表 533 19.5.4 ARP層的映射表維護函數 533 19.5.5 ARP層的網絡報文構建函數 535 19.5.6 ARP層的網絡報文收發處理函數 537 19.6 SIP網絡協議棧的IP層 539 19.6.1 IP層的架構 540 19.6.2 IP層的數據結構 540 19.6.3 IP層的輸入函數 542 19.6.4 IP層的輸出函數 546 19.6.5 IP層的分片函數 546 19.6.6 IP層的分片組裝函數 548 19.7 SIP網絡協議棧的ICMP層 551 19.7.1 ICMP層的數據結構 552 19.7.2 ICMP層的協議支持 552 19.7.3 ICMP層的輸入函數 554 19.7.4 ICMP層的回顯應答函數 555 19.8 SIP網絡協議棧的UDP層 556 19.8.1 UDP層的數據結構 556 19.8.2 UDP層的控制單元 556 19.8.3 UDP層的數據輸入函數 557 19.8.4 UDP層的數據輸出函數 558 19.8.5 UDP層的創建函數 558 19.8.6 UDP層的釋放函數 559 19.8.7 UDP層的綁定函數 559 19.8.8 UDP層的發送數據函數 560 19.8.9 UDP層的校驗和計算 561 19.9 SIP網絡協議棧的協議無關層 562 19.9.1 協議無關層的系統架構 562 19.9.2 協議無關層的函數形式 563 19.9.3 協議無關層的接收數據函數 563 19.10 SIP網絡協議棧的BSD接口層 564 19.10.1 BSD接口層的架構 565 19.10.2 BSD接口層的套接字創建函數 565 19.10.3 BSD接口層的套接字關閉函數 566 19.10.4 BSD接口層的套接字綁定函數 566 19.10.5 BSD接口層的套接字連接函數 567 19.10.6 BSD接口層的套接字接收數據函數 567 19.10.7 BSD接口層的發送數據函數 568 19.11 SIP網絡協議棧的編譯 569 19.11.1 SIP的文件結構 569 19.11.2 SIP的Makefile 569 19.11.3 SIP的編譯運行 570 19.12 小結 570 19.13 習題 571 第20章 一個簡單的防火墻SIPFW的實現 572 20.1 SIPFW防火墻功能描述 572 20.1.1 網絡數據過濾功能描述 572 20.1.2 防火墻規則設置功能描述 573 20.1.3 附加功能描述 573 20.2 SIPFW防火墻需求分析 573 20.2.1 SIPFW防火墻的條件和動作 573 20.2.2 支持的過濾類型 574 20.2.3 過濾方式 575 20.2.4 基本配置文件 576 20.2.5 命令行配置格式 576 20.2.6 防火墻規則配置文件 577 20.2.7 防火墻日志文件 578 20.2.8 構建防火墻采用的技術方案 579 20.3 使用netlink機制進行用戶空間和內核空間的數據交互 579 20.3.1 用戶空間程序設計 580 20.3.2 內核空間的netlink API 582 20.4 使用proc實現內核空間和用戶空間通信 584 20.4.1 proc虛擬文件系統的結構 584 20.4.2 創建proc虛擬文件 584 20.4.3 刪除proc虛擬文件 585 20.5 內核空間的文件操作函數 585 20.5.1 內核空間的文件結構 585 20.5.2 內核空間的文件建立操作 586 20.5.3 內核空間的文件讀寫操作 586 20.5.4 內核空間的文件關閉操作 587 20.6 SIPFW防火墻的模塊設計和分析 587 20.6.1 總體架構 588 20.6.2 用戶命令解析模塊 590 20.6.3 用戶空間與內核空間的交互模塊 593 20.6.4 內核鏈的規則處理模塊 596 20.6.5 proc虛擬文件系統模塊 598 20.6.6 配置文件和日志文件處理模塊 598 20.6.7 過濾模塊 600 20.7 SIPFW防火墻各模塊的實現 603 20.7.1 用戶命令解析模塊的實現 603 20.7.2 過濾規則解析模塊的實現 607 20.7.3 網絡數據攔截模塊的實現 609 20.7.4 proc虛擬文件系統模塊的實現 610 20.7.5 配置文件解析模塊的實現 612 20.7.6 內核模塊初始化和退出的實現 613 20.7.7 用戶空間處理主函數的實現 614 20.8 程序的編譯和測試 615 20.8.1 用戶程序和內核程序的Makefile 615 20.8.2 編譯并運行程序 616 20.8.3 過濾測試 616 20.9 小結 618 20.10 習題 619
展開全部

LINUX網絡編程(第3版) 作者簡介

宋敬彬,海信集團國家重點實驗室高級工程師,海信數字家庭原型系統的主要設計和實現人。有25年的編程經驗,對Linux內核和網絡協議棧十分熟悉。長期從事嵌入式Linux設備、機頂盒產品和IGRS設備互聯的研究和開發工作。目前主要從事數字家庭系統的設計和實現。曾經在技術期刊上發表了多篇論文,并參與國家863高性能集群服務器和電子發展基金的IPv6等項目。

商品評論(0條)
暫無評論……
書友推薦
本類暢銷
編輯推薦
返回頂部
中圖網
在線客服
主站蜘蛛池模板: 私人别墅家庭影院系统_家庭影院音响_家庭影院装修设计公司-邦牛影音 | 不锈钢闸阀_球阀_蝶阀_止回阀_调节阀_截止阀-可拉伐阀门(上海)有限公司 | 不锈钢搅拌罐_高速搅拌罐厂家-无锡市凡格德化工装备科技有限公司 | 雪花制冰机(实验室雪花制冰机)百科 | 防水套管-柔性防水套管-刚性防水套管-上海执品管件有限公司 | 杭州双螺杆挤出机-百科 | 玉米深加工设备|玉米加工机械|玉米加工设备|玉米深加工机械-河南成立粮油机械有限公司 | 北京晚会活动策划|北京节目录制后期剪辑|北京演播厅出租租赁-北京龙视星光文化传媒有限公司 | 水冷散热器_水冷电子散热器_大功率散热器_水冷板散热器厂家-河源市恒光辉散热器有限公司 | 烟雾净化器-滤筒除尘器-防爆除尘器-除尘器厂家-东莞执信环保科技有限公司 | 志高装潢官网-苏州老房旧房装修改造-二手房装修翻新 | 纯化水设备-纯水设备-超纯水设备-[大鹏水处理]纯水设备一站式服务商-东莞市大鹏水处理科技有限公司 | 电脑刺绣_绣花厂家_绣花章仔_织唛厂家-[源欣刺绣]潮牌刺绣打版定制绣花加工厂家 | 喷砂机厂家_自动喷砂机生产_新瑞自动化喷砂除锈设备 | 氢氧化钙设备, 氢氧化钙生产线-淄博惠琛工贸有限公司 | 粘度计维修,在线粘度计,二手博勒飞粘度计维修|收购-天津市祥睿科技有限公司 | 无线讲解器-导游讲解器-自助讲解器-分区讲解系统 品牌生产厂家[鹰米讲解-合肥市徽马信息科技有限公司] | 电动葫芦|防爆钢丝绳电动葫芦|手拉葫芦-保定大力起重葫芦有限公司 | 防火阀、排烟防火阀、电动防火阀产品生产销售商-德州凯亿空调设备有限公司 | 河南橡胶接头厂家,河南波纹补偿器厂家,河南可曲挠橡胶软连接,河南套筒补偿器厂家-河南正大阀门 | 分子精馏/精馏设备生产厂家-分子蒸馏工艺实验-新诺舜尧(天津)化工设备有限公司 | Brotu | 关注AI,Web3.0,VR/AR,GPT,元宇宙区块链数字产业 | [官网]叛逆孩子管教_戒网瘾学校_全封闭问题青少年素质教育_新起点青少年特训学校 | 微型气泵-真空-蠕动-水泵-厂家-深圳市品亚科技有限公司 | 热缩管切管机-超声波切带机-织带切带机-无纺布切布机-深圳市宸兴业科技有限公司 | 天津仓储物流-天津电商云仓-天津云仓一件代发-博程云仓官网 | 免联考国际MBA_在职MBA报考条件/科目/排名-MBA信息网 | 西安文都考研官网_西安考研辅导班_考研培训机构_西安在职考研培训 | 上海电子秤厂家,电子秤厂家价格,上海吊秤厂家,吊秤供应价格-上海佳宜电子科技有限公司 | 重庆波纹管|重庆钢带管|重庆塑钢管|重庆联进管道有限公司 | 膜片万向弹性联轴器-冲压铸造模具「沧州昌运模具」 | 立式矫直机_卧式矫直机-无锡金矫机械制造有限公司 | 广州展览制作工厂—[优简]直营展台制作工厂_展会搭建资质齐全 | 小型玉石雕刻机_家用玉雕机_小型万能雕刻机_凡刻雕刻机官网 | 诺冠气动元件,诺冠电磁阀,海隆防爆阀,norgren气缸-山东锦隆自动化科技有限公司 | 全自动过滤器_反冲洗过滤器_自清洗过滤器_量子除垢环_量子环除垢_量子除垢 - 安士睿(北京)过滤设备有限公司 | 创富网-B2B网站|供求信息网|b2b平台|专业电子商务网站 | 天空彩票天下彩,天空彩天空彩票免费资料,天空彩票与你同行开奖,天下彩正版资料大全 | 烘箱-工业烘箱-工业电炉-实验室干燥箱 - 苏州华洁烘箱制造有限公司 | 石磨面粉机|石磨面粉机械|石磨面粉机组|石磨面粉成套设备-河南成立粮油机械有限公司 | 干粉砂浆设备-干粉砂浆生产线-干混-石膏-保温砂浆设备生产线-腻子粉设备厂家-国恒机械 |