国产精品一久久香蕉产线看/亚洲图区欧美/亚洲国产精品电影人久久网站/欧美日韩在线视频一区

超值優(yōu)惠券
¥50
滿100可用 有效期2天

全場圖書通用(淘書團除外)

不再提示
關(guān)閉
圖書盲袋,以書為“藥”
歡迎光臨中圖網(wǎng) 請 | 注冊

LINUX網(wǎng)絡(luò)編程(第3版)

作者:宋敬彬
出版社:清華大學(xué)出版社出版時間:2024-04-01
開本: 其他 頁數(shù): 644
中 圖 價:¥111.3(7.0折) 定價  ¥159.0 登錄后可看到會員價
加入購物車 收藏
運費6元,滿39元免運費
?新疆、西藏除外
本類五星書更多>

LINUX網(wǎng)絡(luò)編程(第3版) 版權(quán)信息

LINUX網(wǎng)絡(luò)編程(第3版) 本書特色

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

LINUX網(wǎng)絡(luò)編程(第3版) 內(nèi)容簡介

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

LINUX網(wǎng)絡(luò)編程(第3版) 目錄

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

LINUX網(wǎng)絡(luò)編程(第3版) 作者簡介

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

商品評論(0條)
暫無評論……
書友推薦
本類暢銷
編輯推薦
返回頂部
中圖網(wǎng)
在線客服