TCP/IP 詳解 (捲1):協議 (TCP/IP Illustrated, Volume 1 : The Protocols, 2/e)

凱文R.福爾

買這商品的人也買了...

商品描述

本書是TCP/IP領域的經典之作!書中主要講述TCP/IP協議,不僅僅講述RFC的標準協議,而且結合大量實例講述了TCP/IP協議族的定義原因,以及在各種不同的操作系統中的應用及工作方式,使讀者可以輕松掌握TCP/IP的知識。本書內容詳盡且具權威性,幾乎每章都提供精選的習題,並提供了部分習題的答案。本書適合任何希望理解TCP/IP協議如何實現的人閱讀,更是TCP/IP領域研究人員和開發人員的權威參考書。無論是初學者還是功底深厚的網絡領域高手,本書都是案頭必備。

作者簡介


 

目錄大綱


第2版前言
第1版前言(改編)

第1章概述1 
1.1體系結構原則2 
1.1.1分組、連接和數據報2 
1.1.2端到端論點和命運共享3 
1.1.3差錯控制和流量控制4 
1.2設計和實現5 
1.2.1分層5 
1.2.2分層實現中的複用、分解和封裝6 
1.3TCP/IP協議族結構和協議9 
1.3.1ARPANET參考模型9 
1.3.2TCP/IP中的複用、分解和封裝11 
1.3.3端口號12 
1.3.4名稱、地址和DNS12 
1.4Internet、內聯網和外聯網13 
1.5設計應用13 
1.5.1客戶機/服務器14 
1.5.2對等14 
1.5.3應用程序編程接口14 
1.6標準化進程15 
1.6.1RFC15 
1.6.2其他標準15 
1.7實現和軟件分發16 
1.8與Internet體系結構相關的攻擊17 
1.9總結17 
1.10參考文獻18 

第2章Internet地址結構21
2.1引言21 
2.2表示IP地址21 
2.3基本的IP地址結構23 
2.3.1分類尋址23 
2.3.2子網尋址24 
2.3.3子網掩碼26 
2.3.4可變長度子網掩碼27 
2.3 .5廣播地址28 
2.3.6IPv6地址和接口標識符29 
2.4CIDR和聚合31 
2.4.1前綴31 
2.4.2聚合32 
2.5特殊用途地址34 
2.5.1IPv4/IPv6地址轉換35 
2.5.2組播地址36 
2.5 .3IPv4組播地址36 
2.5.4IPv6組播地址38 
2.5.5任播地址41 
2.6分配42 
2.6.1單播42 
2.6.2組播44 
2.7單播地址分配44 
2.7.1單個供應商/無網絡/單個地址44 
2.7.2單個供應商/單個網絡/單個地址45 
2.7.3單個供應商/多個網絡/多個地址45 
2.7.4多個供應商/多個網絡/多個地址(多宿主)46 
2.8與IP地址相關的攻擊48 
2.9總結48 
2.10參考文獻49 

第3章鏈路層54 
3.1引言54
3.2以太網和IEEE802局域網/城域網標準54 
3.2.1IEEE802局域網/城域網標準56 
3.2.2以太網幀格式57 
3.2.3802.1p/q:虛擬局域網和QoS標籤60 
3.2.4802.1AX:鏈路聚合(以前的802.3ad)62 
3.3全雙工、省電、自動協商和802.1X流量控制64 
3.3.1雙工不匹配65 
3.3.2局域網喚醒(WoL)、省電和魔術分組65 
3.3.3鏈路層流量控制66 
3.4網橋和交換機67 
3.4.1生成樹協議70 
3.4.2802.1ak:多註冊協議76 
3.5無線局域網——IEEE802.11(Wi—Fi)76 
3.5.1802.11幀77 
3.5.2省電模式和時間同步功能81 
3.5.3802.11介質訪問控制82 
3.5.4物理層的細節:速率、信道和頻率84 
3.5.5Wi—Fi安全88 
3.5.6Wi—Fi網狀網(802.11s)89 
3.6點到點協議89 
3.6.1鏈路控制協議89 
3.6.2多鏈路PPP93 
3.6.3壓縮控制協議95 
3.6.4PPP認證95 
3.6.5網絡控制協議96 
3.6.6頭部壓縮96 
3.6.7例子97
3.7環回99 
3.8MTU和路徑MTU101 
3.9隧道基礎102 
3.9.1單向鏈路105 
3.10與鏈路層相關的攻擊106 
3.11總結107 
3.12參考文獻108 

第4章地址解析協議113 
4.1引言113 
4.2一個例子113 
4.2.1直接交付和ARP114 
4.3ARP緩存115 
4.4ARP幀格式116 
4.5ARP例子117 
4.5.1正常的例子117 
4.5.2對一個不存在主機的ARP請求118 
4.6ARP緩存超時119 
4.7代理ARP119 
4.8免費ARP和地址衝突檢測120 
4.9arp命令121 
4.10使用ARP設置一台嵌入式設備的IPv4地址121 
4.11與ARP相關的攻擊122 
4.12總結122 
4.13參考文獻123 

第5章Internet協議124 
5.1引言124 
5.2IPv4頭部和IPv6頭部125 
5.2.1IP頭部字段125 
5.2.2Internet校驗和127 
5.2.3DS字段和ECN(以前稱為ToS字節或IPv6流量類別)129
5.2.4IP選項131 
5.3IPv6擴展頭部133 
5.3.1IPv6選項134 
5.3.2路由頭部137 
5.3.3分片頭部139 
5.4IP轉發143 
5.4.1轉發表144 
5.4.2IP轉發行動144 
5.4.3例子145 
5.4.4討論148 
5.5移動IP149 
5.5.1基本模型:雙向隧道149 
5.5.2路由優化150 
5.5.3討論152 
5.6IP數據報的主機處理152 
5.6.1主機模式152 
5.6.2地址選擇153 
5.7與IP相關的攻擊156 
5.8總結156 
5.9參考文獻157 

第6章系統配置:DHCP和自動配置161 
6.1引言161 
6.2動態主機配置協議161 
6.2.1地址池和租用162 
6.2.2DHCP和BOOTP消息格式163 
6.2.3DHCP和BOOTP選項164 
6.2.4DHCP協議操作165 
6.2.5DHCPv6174 
6.2.6使用DHCP中繼185 
6.2.7DHCP認證188 
6.2.8重新配置擴展189
6.2.9快速確認189 
6.2.10位置信息(LCI和LoST)190 
6.2.11移動和切換信息(MoS和ANDSF)190 
6.2.12DHCP嗅探191 
6.3無狀態地址自動配置191 
6.3.1IPv4鏈路本地地址的動態配置191 
6.3.2鏈路本地地址的IPv6SLAAC192 
6.4DHCP和DNS交互198 
6.5以太網上的PPP199 
6.6與系統配置相關的攻擊201 
6.7總結203 
6.8參考文獻204 

第7章防火牆和網絡地址轉換209 
7.1引言209 
7.2防火牆209 
7.2.1包過濾防火牆209 
7.2.2代理防火牆210 
7.3網絡地址轉換212 
7.3.1傳統的NAT:基本NAT和NAPT213 
7.3.2地址和端口轉換行為217 
7.3.3過濾行為219 
7.3. 4位於NAT之後的服務器219 
7.3.5髮夾和NAT環回220 
7.3.6NAT編輯器220 
7.3.7服務提供者NAT和服務提供者IPv6轉換220 
7.4NAT穿越221 
7.4.1針孔和打孔221 
7.4.2單邊的自地址確定222
7.4.3NAT的會話穿越工具223 
7.4.4利用NAT中繼的穿越228 
7.4.5交互連接建立233 
7.5配置包過濾防火牆和NAT235 
7.5.1防火牆規則235 
7.5.2NAT規則236 
7.5.3與NAT和防火牆的直接交互:UPnP、NAT—PMP和PCP237 
7.6IPv4/IPv6共存和過渡中的NAT238 
7.6.1雙協議棧精簡版239 
7.6.2使用NAT和ALG的IPv4/IPv6轉換239 
7.7與防火牆和NAT相關的攻擊243 
7.8總結243 
7.9參考文獻244 

第8章ICMPv4和ICMPv6:Internet控制報文協議248 
8.1引言248 
8.1.1在IPv4和IPv6中的封裝248 
8.2ICMP報文249 
8.2.1ICMPv4報文250 
8.2.2ICMPv6報文251 
8.2.3處理ICMP報文253 
8.3ICMP差錯報文253 
8.3.1擴展的ICMP和多部報文254 
8.3.2目的不可達(ICMPv4類型3,ICMPv6類型1)和數據包太大( ICMPv6類型2)255 
8.3.3重定向(ICMPv4類型5,ICMPv6類型137)261
8.3.4ICMP超時(ICMPv4類型11,ICMPv6類型3)263 
8.3.5參數問題(ICMPv4類型12,ICMPv6類型4)266 
8.4ICMP查詢/信息類報文267 
8.4.1回顯請求/應答(ping)( ICMPv4類型0/8,ICMPv6類型129/128)268 
8.4.2路由器發現:路由器請求和通告(ICMPv4類型9,10)269 
8.4.3本地代理地址發現請求/應答(ICMPv6類型144/145)271 
8.4 .4移動前綴請求/通告(ICMPv6類型146/147)272 
8.4.5移動IPv6快速切換報文(ICMPv6類型154)273 
8.4.6組播偵聽查詢/報告/完成(ICMPv6類型130/131/132 )273 
8.4.7版本2組播偵聽發現(ICMPv6類型143)274 
8.4.8組播路由器發現(IGMP類型48/49/50,ICMPv6類型151/152/153)278 
8.5IPv6中的鄰居發現278 
8.5.1ICMPv6路由器請求和通告(ICMPv6類型133,134)279 
8.5.2ICMPv6鄰居請求和通告(ICMPv6類型135,136)280 
8.5.3ICMPv6反向鄰居發現請求/通告(ICMPv6類型141/142)283 
8.5. 4鄰居不可達檢測283 
8.5.5安全 鄰居發現284 
8.5.6ICMPv6鄰居發現選項287
8.6ICMPv4和ICMPv6轉換298 
8.6.1從ICMPv4轉換到ICMPv6299 
8.6.2從ICMPv6轉換到ICMPv4300 
8.7與ICMP相關的攻擊301 
8.8總結303 
8.9參考文獻303 

第9章廣播和本地組播(IGMP和MLD)307 
9.1引言307 
9.2廣播308 
9.2.1使用廣播地址308 
9.2.2發送廣播數據報310 
9.3組播311 
9.3.1將IP組播地址轉換為802MAC/以太網地址312 
9.3.2例子313 
9.3.3發送組播數據報314 
9.3.4接收組播數據報316 
9.3.5主機地址過濾317 
9.4互聯網組管理協議和組播偵聽發現協議318 
9.4.1組成員的IGMP和MLD處理(“組成員部分” )321 
9.4.2組播路由器的IGMP和MLD處理(“組播路由器部分”)323 
9.4.3例子324 
9.4.4輕量級IGMPv3和MLDv2328 
9.4.5IGMP和MLD健壯性329 
9.4.6IGMP和MLD計數器和變量330 
9.4.7IGMP和MLD探聽331 
9.5與IGMP和MLD相關的攻擊332 
9.6總結332
9.7參考文獻333 

第10章用戶數據報協議和IP分片335 
10.1引言335 
10.2UDP頭部335 
10.3UDP校驗和336 
10.4例子338 
10.5UDP和IPv6340 
10.5.1Teredo:通過IPv4網絡隧道傳輸IPv6341 
10.6UDP— Lite345 
10.7IP分片345 
10.7.1例子:UDP?/IPv4分片346 
10.7.2重組超時348 
10.8採用UDP的路徑MTU發現349 
10.8.1例子349 
10.9IP分片和ARP/ND之間的交互351 
10.10最大UDP數據報長度352 
10.10.1實現限制352 
10.10.2數據報截斷353 
10.11UDP服務器的設計353 
10.11.1IP地址和UDP端口號353 
10.11.2限製本地IP地址354 
10.11.3使用多地址355 
10.11.4限制遠端IP地址356 
10.11.5每端口多服務器的使用357 
10.11.6跨越地址族:IPv4和IPv6357 
10.11.7流量和擁塞控制的缺失357 
10.12UDP/IPv4和UDP/IPv6數據報的轉換358
10.13互聯網中的UDP358 
10.14與UDP和IP分片相關的攻擊359 
10.15總結360 
10.16參考文獻360 

第11章名稱解析和域名系統362 
11.1引言362 
11.2DNS名稱空間362 
11.2.1DNS命名語法365 
11.3名稱服務器和區域366 
11.4緩存366 
11.5DNS協議367 
11.5.1DNS消息格式369 
11.5.2DNS擴展格式(EDNS0)372 
11.5.3UDP或TCP372 
11.5.4問題(查詢)和區域區段格式373 
11.5.5回答、授權和額外信息區段格式373 
11.5.6資源記錄類型374 
11.5.7動態更新(DNSUPDATE)394 
11.5.8區域傳輸和DNS通知397 
11.6排序列表、循環和分離DNS402 
11.7開放DNS服務器和DynDNS403 
11.8透明度和擴展性404 
11.9從IPv4向IPv6轉換DNS404 
11.10LLMNR和mDNS405 
11.11LDAP406 
11.12與DNS相關的攻擊406 
11.13總結407 
11.14參考文獻408

第12章TCP:傳輸控制協議(初步)412 
12.1引言412 
12.1.1ARQ和重傳412 
12.1.2分組窗口和滑動窗口413 
12.1.3變量窗口:流量控制和擁塞控制414 
12.1.4設置重傳超時415 
12.2TCP的引入415 
12.2.1TCP服務模型416 
12.2.2TCP中的可靠性416 
12.3TCP頭部和封裝418 
12.4總結420 
12.5參考文獻421 

第13章TCP連接管理423 
13.1引言423 
13.2TCP連接的建立與終止423 
13.2.1TCP半關閉425 
13.2.2同時打開與關閉426 
13.2.3初始序列號427 
13.2.4例子428 
13.2.5連接建立超時429 
13.2.6連接與轉換器430 
13.3TCP選項431 
13.3.1最大段大小選項431 
13.3.2選擇確認選項432 
13.3.3窗口縮放選項433 
13.3.4時間戳選項與防迴繞序列號433 
13.3.5用戶超時選項435 
13.3.6認證選項436 
13.4TCP的路徑最大傳輸單元發現436
13.4.1例子437 
13.5TCP狀態轉換439 
13.5.1TCP狀態轉換圖440 
13.5.2TIME_WAIT狀態442 
13.5.3靜默時間的概念446 
13.5.4FIN_WAIT_2狀態446 
13.5.5同時打開與關閉的轉換446 
13.6重置報文段447 
13.6.1針對不存在端口的連接請求447 
13.6.2終止一條連接447 
13.6.3半開連接449 
13.6.4時間等待錯誤451 
13.7TCP服務器選項451 
13.7.1TCP端口號452 
13.7.2限製本地IP地址453 
13.7.3限制外部節點454 
13.7.4進入連接隊列455 
13.8與TCP連接管理相關的攻擊458 
13.9總結459 
13.10參考文獻460 

第14章TCP超時與重傳462 
14.1引言462 
14.2簡單的超時與重傳舉例462 
14.3設置重傳超時464 
14.3.1經典方法465 
14.3.2標準方法465 
14.3.3Linux採用的方法468 
14.3.4RTT估計器行為471 
14.3.5RTTM對丟包和失序的魯棒性472
14.4基於計時器的重傳473 
14.4.1例子473 
14.5快速重傳475 
14.5.1例子475 
14.6帶選擇確認的重傳478 
14.6.1SACK接收端行為479 
14.6.2SACK發送端行為479 
14.6.3例子480 
14.7偽超時與重傳482 
14.7.1重複SACK(DSACK)擴展482 
14.7.2Eifel檢測算法483 
14.7.3前移RTO恢復(F—RTO)484 
14.7.4Eifel響應算法484 
14.8包失序與包重複485 
14.8 .1失序486 
14.8.2重複487 
14.9目的度量487 
14.10重新組包488 
14.11與TCP重傳相關的攻擊489 
14.12總結489 
14.13參考文獻490 

第15章TCP數據流與窗口管理492 
15.1引言492 
15.2交互式通信492 
15.3延時確認494 
15.4Nagle算法495 
15.4.1延時ACK與Nagle算法結合497 
15.4.2禁用Nagle算法498 
15.5流量控制與窗口管理498
15.5.1滑動窗口499 
15.5.2零窗口與TCP持續計時器501 
15.5.3糊塗窗口綜合徵503 
15.5.4大容量緩存與自動調優509 
15.6緊急機制512 
15.6.1例子512 
15.7與窗口管理相關的攻擊514 
15.8總結515 
15.9參考文獻515 

第16章TCP擁塞控制517 
16.1引言517 
16.1.1TCP擁塞檢測517 
16.1.2減緩TCP發送518 
16.2一些經典算法519 
16.2.1慢啟動520 
16.2.2擁塞避免521 
16.2.3慢啟動和擁塞避免的選擇523 
16.2.4Tahoe、Reno以及快速恢復算法523 
16.2.5標準TCP524 
16.3對標準算法的改進524 
16.3.1NewReno525 
16.3.2採用選擇確認機制的TCP擁塞控制525 
16.3. 3轉發確認(FACK)和速率減半526 
16.3.4限制傳輸527 
16.3.5擁塞窗口校驗527 
16.4偽RTO處理——Eifel響應算法528 
16.5擴展舉例528 
16.5.1慢啟動行為531
16.5.2發送暫停和本地擁塞(事件1)532 
16.5.3延伸ACK和本地擁塞恢復535 
16.5.4快速重傳和SACK恢復(事件2)538 
16.5.5其他本地擁塞和快速重傳事件539 
16.5 .6超時、重傳和撤銷cwnd修改542 
16.5.7連接結束545 
16.6共享擁塞狀態信息545 
16.7TCP友好性546 
16.8高速環境下的TCP547 
16.8.1高速TCP與受限的慢啟動547 
16.8.2二進制增長擁塞控制(BIC和CUBIC)549 
16.9基於延遲的擁塞控制算法552 
16.9.1Vegas算法552 
16.9.2FAST算法553 
16.9.3TCPWestwood算法和Westwood+算法553 
16.9.4複合TCP553 
16.10緩衝區膨脹555 
16.11積極隊列管理和ECN556 
16.12與TCP擁塞控制相關的攻擊557 
16.13總結558 
16.14參考文獻560 

第17章TCP保活機制563 
17.1引言563 
17.2描述564 
17.2.1保活功能舉例565 
17.3與TCP保活機制相關的攻擊569 
17.4總結570
17.5參考文獻570 

第18章安全:可擴展身份認證協議、IP安全協議、傳輸層安全、DNS安全、域名密鑰識別郵件571 
18.1引言571 
18.2信息安全的基本原則572 
18.3網絡通信的威脅572 
18.4基礎的加密與安全機制573 
18.4.1密碼系統573 
18.4.2RSA公鑰密碼算法575 
18.4.3Diff?ie—Hellman—Merkle密鑰協商協議576 
18.4.4簽密與橢圓曲線密碼577 
18.4.5密鑰派生與完全正向保密577 
18.4.6偽隨機數、生成器與函數族578 
18.4.7隨機數與混淆值578 
18.4.8加密散列函數與消息摘要578 
18.4.9消息認證碼579 
18.4.10加密套件與密碼套件580 
18.5證書、證書頒發機構與公鑰基礎設施582 
18.5.1公鑰證書、證書頒發機構與X.509標準583 
18.5.2驗證與撤銷證書587 
18.5.3屬性證書589 
18.6TCP/IP安全協議與分層590 
18.7網絡訪問控制:802.1X,802.1AE,EAP,PANA591 
18.7.1EAP方法與密鑰派生594 
18.7.2EAP重新認證協議595 
18.7.3網絡接入認證信息承載協議595
18.8第3層IP安全(IPsec)596 
18.8.1Internet密鑰交換協議(IKEv2)597 
18.8.2認證頭部606 
18.8.3封裝安全負載609 
18.8.4組播612 
18.8.5L2TP/IPsec613 
18.8.6IPsecNAT穿越613 
18.8.7例子614 
18.9傳輸層安全(TLS和DTLS)622 
18.9.1TLS1.2623 
18.9.2DTLS633 
18.10DNS安全(DNSSEC)636 
18.10.1DNSSEC資源記錄637 
18.10.2DNSSEC運行642 
18.10.3事務認證(TSIG, TKEY,SIG(0))648 
18.10.4帶有DNS64的DNSSEC652 
18.11域名密鑰識別郵件652 
18.11.1DKIM簽名652 
18.11.2例子653 
18.12與安全協議相關的攻擊654 
18.13總結655 
18.14參考文獻657 
縮略語666