內容簡介
《TCP/IP詳解卷1:協定》是網路構建原型——4.4BSD的建造者的傾力之作,《TCP/IP解析》中的第1卷,主要講述TCP/IP協定方面的內容。與其他的TCP/IP書藉的最大不同在於,本書不僅僅講述了RFCS的標準協定,而且結合大量實例講述了TCP/IP協定包的定義原因及在各種不同的作業系統中(如Sunos4.1.3、Soloris2.2、AIX3.2.2)的套用與工作方式,這樣可以以動態方式講述TCP/IP的知識,使讀者可以輕鬆掌握TCP/IP的知識:路由協定、定址協定、組控制協定、簡單郵件傳輸協定等。全書內容實用性強,是在校生學習TCP/IP知識的良師益友。編輯推薦
《TCP/IP詳解卷1:協定》是一本完整而詳細的TCP/IP協定指南。 《TCP/IP詳解卷1:協定》適合作為計算機專業學生學習網路的教材和教師參考書。也適用於研究網路的技術人員。媒體推薦
書評
作者簡介
W.Richard Stevens(1951-1999)是一位非常受人尊敬的專家,除了《TCP/IP詳解》三卷本外,他還有其他兩部最為暢銷的作品:《UNIX環境高級編程》和《UNIX網路編程》(兩卷本)。目錄
譯者序前言
第1章 概述1
1.1 引言1
1.2 分層1
1.3 TCP/IP的分層4
1.4 網際網路的地址5
1.5 域名系統6
1.6 封裝6
1.7 分用8
1.8 客戶-伺服器模型8
1.9 連線埠號9
1.10 標準化過程10
1.11 RFC10
1.12 標準的簡單服務11
1.13 網際網路12
1.14 實現12
1.15 套用編程接口12
1.16 測試網路13
1.17 小結13
第2章 鏈路層15
2.1 引言15
2.2 乙太網和IEEE 802封裝15
2.3 尾部封裝17
2.4 SLIP:串列線路IP17
2.5 壓縮的SLIP18
2.6 PPP:點對點協定18
2.7 環回接口20
2.8 最大傳輸單元MTU21
2.9 路徑MTU21
2.10 串列線路吞吐量計算21
2.11 小結22
第3章 IP:網際協定24
3.1 引言24
3.2 IP首部24
3.3 IP路由選擇27
3.4 子網定址30
3.5 子網掩碼32
3.6 特殊情況的IP位址33
3.7 一個子網的例子33
3.8 ifconfig命令35
3.9 netstat命令36
3.10 IP的未來36
3.11 小結37
第4章 ARP:地址解析協定38
4.1 引言38
4.2 一個例子38
4.3 ARP高速快取40
4.4 ARP的分組格式40
4.5 ARP舉例41
4.5.1 一般的例子41
4.5.2 對不存在主機的ARP請求42
4.5.3 ARP高速快取逾時設定43
4.6 ARP代理43
4.7 免費ARP45
4.8 arp命令45
4.9 小結46
第5章 RARP:逆地址解析協定47
5.1 引言47
5.2 RARP的分組格式47
5.3 RARP舉例47
5.4 RARP伺服器的設計48
5.4.1 作為用戶進程的RARP伺服器49
5.4.2 每個網路有多個RARP伺服器49
5.5 小結49
第6章 ICMP:Internet控制報文協定50
6.1 引言50
6.2 ICMP報文的類型50
6.3 ICMP地址掩碼請求與應答52
6.4 ICMP時間戳請求與應答53
6.4.1 舉例54
6.4.2 另一種方法55
6.5 ICMP連線埠不可達差錯56
6.6 ICMP報文的4.4BSD處理59
6.7 小結60
第7章 Ping程式61
7.1 引言61
7.2 Ping程式61
7.2.1 LAN輸出62
7.2.2 WAN輸出63
7.2.3 線路SLIP連結64
7.2.4 撥號SLIP鏈路65
7.3 IP記錄路由選項65
7.3.1 通常的例子66
7.3.2 異常的輸出68
7.4 IP時間戳選項69
7.5 小結70
第8章 Traceroute程式71
8.1 引言71
8.2 Traceroute 程式的操作71
8.3 區域網路輸出72
8.4 廣域網輸出75
8.5 IP源站選路選項76
8.5.1 寬鬆的源站選路的traceroute
程式示例78
8.5.2 嚴格的源站選路的traceroute
程式示例79
8.5.3 寬鬆的源站選路traceroute程式
的往返路由80
8.6 小結81
第9章 IP選路83
9.1 引言83
9.2 選路的原理84
9.2.1 簡單路由表84
9.2.2 初始化路由表86
9.2.3 較複雜的路由表87
9.2.4 沒有到達目的地的路由87
9.3 ICMP主機與網路不可達差錯88
9.4 轉發或不轉發89
9.5 ICMP重定向差錯89
9.5.1 一個例子90
9.5.2 更多的細節91
9.6 ICMP路由器發現報文92
9.6.1 路由器操作93
9.6.2 主機操作93
9.6.3 實現93
9.7 小結94
第10章 動態選路協定95
10.1 引言95
10.2 動態選路95
10.3 Unix選路守護程式96
10.4 RIP:選路信息協定96
10.4.1 報文格式96
10.4.2 正常運行97
10.4.3 度量98
10.4.4 問題98
10.4.5 舉例98
10.4.6 另一個例子100
10.5 RIP版本2102
10.6 OSPF:開放最短路徑優先102
10.7 BGP:邊界網關協定103
10.8 CIDR:無類型域間選路104
10.9 小結105
第11章 UDP:用戶數據報協定107
11.1 引言107
11.2 UDP首部107
11.3 UDP檢驗和108
11.3.1 tcpdump輸出109
11.3.2 一些統計結果109
11.4 一個簡單的例子110
11.5 IP分片111
11.6 ICMP不可達差錯(需要分片)113
11.7 用Traceroute確定路徑MTU114
11.8 採用UDP的路徑MTU發現116
11.9 UDP和ARP之間的互動作用118
11.10 最大UDP數據報長度119
11.11 ICMP源站抑制差錯120
11.12 UDP伺服器的設計122
11.12.1 客戶IP位址及連線埠號122
11.12.2 目標IP位址122
11.12.3 UDP輸入佇列122
11.12.4 限制本地IP位址124
11.12.5 限制遠端IP位址125
11.12.6 每個連線埠有多個接收者125
11.13 小結126
第12章 廣播和多播128
12.1 引言128
12.2 廣播129
12.2.1 受限的廣播129
12.2.2 指向網路的廣播129
12.2.3 指向子網的廣播129
12.2.4 指向所有子網的廣播130
12.3 廣播的例子130
12.4 多播132
12.4.1 多播組地址133
12.4.2 多播組地址到乙太網地址的轉換133
12.4.3 FDDI和令牌環網路中的多播134
12.5 小結134
第13章 IGMP:Internet組管理協定136
13.1 引言136
13.2 IGMP報文136
13.3 IGMP協定136
13.3.1 加入一個多播組136
13.3.2 IGMP報告和查詢137
13.3.3 實現細節137
13.3.4 生存時間欄位138
13.3.5 所有主機組138
13.4 一個例子138
13.5 小結141
第14章 DNS:域名系統142
14.1 引言142
14.2 DNS基礎142
14.3 DNS的報文格式144
14.3.1 DNS查詢報文中的問題部分146
14.3.2 DNS回響報文中的資源記錄部分147
14.4 一個簡單的例子147
14.5 指針查詢150
14.5.1 舉例151
14.5.2 主機名檢查151
14.6 資源記錄152
14.7 高速快取153
14.8 用UDP還是用TCP156
14.9 另一個例子156
14.10 小結157
第15章 TFTP:簡單檔案傳送協定159
15.1 引言159
15.2 協定159
15.3 一個例子160
15.4 安全性161
15.5 小結162
第16章 BOOTP: 引導程式協定163
16.1 引言163
16.2 BOOTP的分組格式163
16.3 一個例子164
16.4 BOOTP伺服器的設計165
16.5 BOOTP穿越路由器167
16.6 特定廠商信息167
16.7 小結168
第17章 TCP:傳輸控制協定170
17.1 引言170
17.2 TCP的服務170
17.3 TCP的首部171
17.4 小結173
第18章 TCP連線的建立與終止174
18.1 引言174
18.2 連線的建立與終止174
18.2.1 tcpdump的輸出174
18.2.2 時間系列175
18.2.3 建立連線協定175
18.2.4 連線終止協定177
18.2.5 正常的tcpdump輸出177
18.3 連線建立的逾時178
18.3.1 第一次逾時時間178
18.3.2 服務類型欄位179
18.4 最大報文段長度179
18.5 TCP的半關閉180
18.6 TCP的狀態變遷圖182
18.6.1 2MSL等待狀態183
18.6.2 平靜時間的概念186
18.6.3 FIN_WAIT_2狀態186
18.7 復位報文段186
18.7.1 到不存在的連線埠的連線請求187
18.7.2 異常終止一個連線187
18.7.3 檢測半打開連線188
18.8 同時打開189
18.9 同時關閉191
18.10 TCP選項191
18.11 TCP伺服器的設計192
18.11.1 TCP伺服器連線埠號193
18.11.2 限定的本地IP位址194
18.11.3 限定的遠端IP位址195
18.11.4 呼入連線請求佇列195
18.12 小結197
第19章 TCP的互動數據流200
19.1 引言200
19.2 互動式輸入200
19.3 經受時延的確認201
19.4 Nagle算法203
19.4.1 關閉Nagle算法204
19.4.2 一個例子205
19.5 視窗大小通告207
19.6 小結208
第20章 TCP的成塊數據流209
20.1 引言209
20.2 正常數據流209
20.3 滑動視窗212
20.4 視窗大小214
20.5 PUSH標誌215
20.6 慢啟動216
20.7 成塊數據的吞吐量218
20.7.1 頻寬時延乘積220
20.7.2 擁塞220
20.8 緊急方式221
20.9 小結224
第21章 TCP的逾時與重傳226
21.1 引言226
21.2 逾時與重傳的簡單例子226
21.3 往返時間測量227
21.4 往返時間RTT的例子229
21.4.1 往返時間RTT的測量229
21.4.2 RTT估計器的計算231
21.4.3 慢啟動233
21.5 擁塞舉例233
21.6 擁塞避免算法235
21.7 快速重傳與快速恢復算法236
21.8 擁塞舉例(續)237
21.9 按每條路由進行度量240
21.10 ICMP的差錯240
21.11 重新分組243
21.12 小結243
第22章 TCP的堅持定時器245
22.1 引言245
22.2 一個例子245
22.3 糊塗視窗綜合症246
22.4 小結250
第23章 TCP的保活定時器251
23.1 引言251
23.2 描述252
23.3 保活舉例253
23.3.1 另一端崩潰253
23.3.2 另一端崩潰並重新啟動254
23.3.3 另一端不可達254
23.4 小結255
第24章 TCP的未來和性能256
24.1 引言256
24.2 路徑MTU發現256
24.2.1 一個例子257
24.2.2 大分組還是小分組258
24.3 長肥管道259
24.4 視窗擴大選項262
24.5 時間戳選項263
24.6 PAWS:防止迴繞的序號265
24.7 T/TCP:為事務用的TCP擴展265
24.8 TCP的性能267
24.9 小結268
第25章 SNMP:簡單網路管理協定270
25.1 引言270
25.2 協定270
25.3 管理信息結構272
25.4 對象標識符274
25.5 管理信息庫介紹274
25.6 實例標識276
25.6.1 簡單變數276
25.6.2 表格276
25.6.3 字典式排序277
25.7 一些簡單的例子277
25.7.1 簡單變數278
25.7.2 get-next操作278
25.7.3 表格的訪問279
25.8 管理信息庫(續)279
25.8.1 system組279
25.8.2 interface組280
25.8.3 at組281
25.8.4 ip組282
25.8.5 icmp組285
25.8.6 tcp組285
25.9 其他一些例子288
25.9.1 接口MTU288
25.9.2 路由表288
25.10 trap290
25.11 ASN.1和BER291
25.12 SNMPv2292
25.13 小結292
第26章 Telnet和Rlogin:遠程登錄293
26.1 引言293
26.2 Rlogin協定294
26.2.1 套用進程的啟動295
26.2.2 流量控制295
26.2.3 客戶的中斷鍵296
26.2.4 視窗大小的改變296
26.2.5 伺服器到客戶的命令296
26.2.6 客戶到伺服器的命令297
26.2.7 客戶的轉義符298
26.3 Rlogin的例子298
26.3.1 初始的客戶-伺服器協定298
26.3.2 客戶中斷鍵299
26.4 Telnet協定302
26.4.1 NVT ASCII302
26.4.2 Telnet命令302
26.4.3 選項協商303
26.4.4 子選項協商304
26.4.5 半雙工、一次一字元、一次
一行或行方式304
26.4.6 同步信號306
26.4.7 客戶的轉義符306
26.5 Telnet舉例306
26.5.1 單字元方式306
26.5.2 行方式310
26.5.3 一次一行方式(準行方式)312
26.5.4 行方式:客戶中斷鍵313
26.6 小結314
第27章 FTP:檔案傳送協定316
27.1 引言316
27.2 FTP協定316
27.2.1 數據表示316
27.2.2 FTP命令318
27.2.3 FTP應答319
27.2.4 連線管理320
27.3 FTP的例子321
27.3.1 連線管理:臨時數據連線埠321
27.3.2 連線管理:默認數據連線埠323
27.3.3 文本檔案傳輸:NVT ASCII
表示還是圖像表示325
27.3.4 異常中止一個檔案的傳輸:
Telnet同步信號326
27.3.5 匿名FTP329
27.3.6 來自一個未知IP位址的匿名FTP330
27.4 小結331
第28章 SMTP:簡單郵件傳送協定332
28.1 引言332
28.2 SMTP協定332
28.2.1 簡單例子332
28.2.2 SMTP命令334
28.2.3 信封、首部和正文335
28.2.4 中繼代理335
28.2.5 NVT ASCII337
28.2.6 重試間隔337
28.3 SMTP的例子337
28.3.1 MX記錄:主機非直接連到
Internet337
28.3.2 MX記錄:主機出故障339
28.3.3 VRFY和EXPN命令340
28.4 SMTP的未來340
28.4.1 信封的變化:擴充的SMTP341
28.4.2 首部變化:非ASCII字元342
28.4.3 正文變化:通用Internet郵件
擴充343
28.5 小結346
第29章 網路檔案系統347
29.1 引言347
29.2 Sun遠程過程調用347
29.3 XDR:外部數據表示349
29.4 連線埠映射器349
29.5 NFS協定351
29.5.1 檔案句柄353
29.5.2 安裝協定353
29.5.3 NFS過程354
29.5.4 UDP還是TCP355
29.5.5 TCP上的NFS355
29.6 NFS實例356
29.6.1 簡單的例子:讀一個檔案356
29.6.2 簡單的例子:創建一個目錄357
29.6.3 無狀態358
29.6.4 例子:伺服器崩潰358
29.6.5 等冪過程360
29.7 第3版的NFS360
29.8 小結361
第30章 其他的TCP/IP應用程式363
30.1 引言363
30.2 Finger協定363
30.3 Whois協定364
30.4 Archie、WAIS、Gopher、Veronica
和WWW366
30.4.1 Archie366
30.4.2 WAIS366
30.4.3 Gopher366
30.4.4 Veronica366
30.4.5 全球資訊網WWW367
30.5 X視窗系統367
30.5.1 Xscope程式368
30.5.2 LBX: 低頻寬X370
30.6 小結370
附錄A tcpdump程式371
附錄B 計算機時鐘376
附錄C sock程式378
附錄D 部分習題的解答381
附錄E 配置選項395
附錄F 可以免費獲得的原始碼406
參考文獻409
縮略語420