當前位置:首頁 » 網路連接 » 計算機網路課件ppt謝希仁
擴展閱讀
手機寫字板熒光軟體 2024-11-25 17:14:49

計算機網路課件ppt謝希仁

發布時間: 2024-09-09 14:51:55

㈠ 謝希仁計算機網路答案

答:a=τ/T0=τC/L=100÷(2×108)×1×109/L=500/L,信道最大利用率Smax =1/(1+4.44a),最大吞吐量Tmax=Smax×1Gbit/s幀長512位元組時,a=500/(512×8)=0.122, Smax =0.6486,Tmax=648.6 Mbit/s幀長1500位元組時,a=500/(1500×8)=0.0417,Smax =0.8438 ,Tmax=843.8 Mbit/s幀長64000位元組時,a=500/(64000×8)=0.000977,Smax =0.9957,Tmax=995.7 Mbit/s可見,在端到端傳播時延和數據發送率一定的情況下,幀長度越大,信道利用率越大,信道的最大吞吐量月越大。

㈡ 計算機網路謝希仁編著的第六版第四章課後習題答案

第4 章 網路層
4-01網路層向上提供的服務有哪兩種?試比較其優缺點。
答案:虛電路服務和數據報服務。
虛電路的優點:虛電路服務是面向連接的,網路能夠保證分組總是按照發送順序到達目的站,且不丟失、不重復,提供可靠的端到端數據傳輸;目的站地址僅在連接建立階段使用,每個分組使用短的虛電路號,使分組的控制信息部分的比特數減少,減少了額外開銷;端到端的差錯處理和流量控制可以由分組交換網負責,也可以由用戶機負責。虛電路服務適用於通信信息量大、速率要求高、傳輸可靠性要求高的場合。
虛電路的缺點:虛電路服務必須建立連接;屬於同一條虛電路的分組總是按照同一路由進行轉發;當結點發生故障時,所有通過出故障的結點的虛電路均不能工作。
數據報的優點:數據報服務不需要建立連接;每個分組獨立選擇路由進行轉發,當某個結點發生故障時,後續的分組可以另選路由,因而提高了通信的可靠性。數據報服務的靈活性好,適用於傳輸可靠性要求不高、通信子網負載不均衡、需要選擇最佳路徑的場合。
數據報的缺點:數據報服務是面向無連接的,到達目的站時不一定按發送順序,傳輸中的分組可能丟失和重復,提供面向無連接的、不可靠的數據傳輸;每個分組都要有目的站的全地址;當網路發生故障是,出故障的結點可能會丟失數據,一些路由可能會發生變化;端到端的差錯處理和流量控制只由主機負責。

答案太多傳不上來,留下郵箱可以發給你..........

㈢ 哪有《計算機網路基礎》視頻教程

04謝希仁

鏈接:

提取碼:jfxc 復制這段內容後打開網路網盤手機APP,操作更方便哦!

若資源有問題歡迎追問~

㈣ 運輸層知識要點——謝希仁《計算機網路》

為了在計算機網路中有條不紊地交換數據,就必須遵守一些事先約定好的規則。這些規則明確規定了所 交換數據的格式 以及有關的 同步 問題。

同步的含義:在一定條件下應當發生什麼事件,因而含有時序的意思。

網路協議:為進行網路中的數據交換而建立的規則、標准或約定。

網路協議由以下三個要素組成:

   1)語法:即數據與控制信息的結構或格式

   2)語義:即需要發出何種控制信息,完成何種動作以及做出何種反應

   3)同步:即事件實現順序的詳細說明

一、運輸層協議的概述

   1.1 進程之間的通信

   1.2 運輸層的兩個主要協議

   1.3 運輸層的埠

二、用戶數據報協議UDP

   2.1 UDP概述

   2.2 UDP的首部格式

三、傳輸控制協議TCP概述

   3.1 TCP的最主要的特點

   3.2 TCP的連接

四、可靠傳輸的工作原理

   4.1 停止等待協議

   4.2 連續ARQ協議

五、TCP報文段的首部格式

六、TCP可靠傳輸的實現

   6.1 以位元組為單位的滑動窗口

   6.2 超時重傳時間的選擇

   6.3 選擇確認SACK

七、TCP的流量控制

   7.1 利用滑動窗口實現流量控制

   7.2 必須考慮傳輸效率

八、TCP的擁塞控制

   8.1 擁塞控制的一般原理

   8.2 幾種擁塞控制方法

   8.3 隨機早期檢測RED

九、TCP的運輸連接管理

   9.1 TCP的連接建立

   9.2 TCP的連接釋放

   9.3 TCP的有限狀態機

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

1.1 進程之間的通信

1.只有主機的協議棧才有運輸層,而網路核心部分中的路由器在轉發分組時都只用到了下三層的功能

2.兩個主機進行通信就是兩個主機中的應用進程互相通信。從運輸層的角度看,通信的真正端點並不是主機而是主機中的進程。(IP協議能把分組送到目的主機)

網路層時為主機之間提供邏輯通信,而運輸層為應用進程之間提供端到端的邏輯通信。

3.運輸層一個重要功能——復用、分用。 (應用進程復用、分用運輸層)

1.2 運輸層的兩個主要協議

1.UDP—User Datagram Protocol 用戶數據報協議(無連接):DNS/RIP/DHCP/SNMP/NFS

TCP—Transmission Control Protocol 傳輸控制協議(面向連接):SMTP/TELNET/HTTP/ FTP

1.3 運輸層的埠

問題:為了使運行不同操作系統的計算機的應用進程能夠互相通信,就必須使用統一的方法(而這種方法必須與特定操作系統無關)對TCP/IP體系的應用進程進行標識。

為什麼不用進程號來區分?(第一,不同操作系統的進程標識符不同;第二,用功能來識別,而不是進程,例如郵件服務功能,而不管具體是哪個進程)

解決方案:在運輸層使用協議埠號,即埠。軟體埠是應用層的各種協議進程與運輸實體進行層間交互的一種地址。(埠號只具有本地意義,只是為了標識本計算機應用層中各個進程在和運輸層交互時的層間介面。)

埠分為兩大類:

1)伺服器使用的埠號:熟知埠號或系統埠號(0~1023);登記埠號(1024~49151)

2)客戶端使用的埠號:49152~65535

2.1 UDP概述

1.UDP只在IP的數據報服務至上增加了很少一點功能,就是復用、分用以及差錯檢測功能

2.特點

   1)無連接

   2)盡最大努力交付

   3)面向報文 (不合並、不拆分、保留這些報文的邊界)

   4)UDP沒有擁塞控制

   5)UDP支持一對一、一對多、多對一和多對多的交互通信

   6)UDP的首部開銷小,只有8位元組

應用進程本身可以在不影響應用的實時性的前提下,增加一些提高可靠性的措施,如採用前向糾錯或重傳已丟失的報文。

2.2 UDP的首部格式

1.traceroute 讓發送的UDP用戶數據報故意使用一個非法的UDP埠號,接收方丟棄報文,並由ICMP(網路控制報文協議)發送「埠不可達」差錯報文給發送方。

2.計算檢驗和。IP數據報的校驗和只檢驗IP數據報的首部,但UDP的校驗和是把首部和數據部分一起都檢驗。(12位元組的首部+真正的首部+數據來進行校驗和的計算)

   Q1.為什麼計算校驗和要加12位元組的偽首部

   Q2.計算校驗和的原理是什麼?

3.1 TCP的最主要的特點

1.面向連接的運輸層協議(建立連接、傳輸數據、釋放連接)

2.點對點,每一條TCP連接只能有兩個端點

3.可靠交付(無差錯、不丟失、不重復、並且按序到達)

4.全雙工通信。TCP連接的兩端都設有發送緩存和接收緩存。

5.面向位元組流。(流指的是流入到進程或從進程流出的位元組序列;面向位元組流:TCP把應用程序交下來的數據看成是一連串的無結構位元組流。 接收方的應用程序必須有能力識別接收到的位元組流,把它還原成有意義的應用層數據。 因此TCP可以根據窗口值和當前網路狀況調整發送的報文長度。劃分短一點,或者積累到足夠多再發送出去。)

3.2 TCP的連接

1.TCP把連接作為最基本的抽象。

2.每一條TCP連接有兩個端點。TCP連接的端點叫作套接字。

   套接字soket = (IP地址:埠號)

每一條TCP連接唯一地被通信兩端的兩個端點(即兩個套接字)所確定。

   TCP連接 ::= {socket1, socket2}

理想的傳輸條件有以下兩個特點:

   1)傳輸信道不產生差錯

   2)不管發送方以多快的速度發送數據,接收方總是來得及處理收到的數據

實際的網路並不具備,因此:

   1)出現差錯時,讓發送方重傳

   2)接收方來不及處理時,及時告訴發送方適當降低發送數據的速度

4.1 停止等待協議

1.「停止等待」就是沒發送完一個分組就停止發送,等待對方的確認,在收到確認後再發送下一個分組。

2.超時重傳。在每發完一個分組就設置一個超時計時器,如果在超時計時器之前收到對方的確認,就撤銷已設置的超時計時器。如果未收到,就認為剛才的分組丟失,並重傳。

3.三種情況:A發送的分組出錯、丟失;B發送的確認丟失;B發送的確認遲到

確認丟失:B丟棄重復的分組,向A重傳確認

確認遲到:A丟棄重復的確認,B丟棄重復分組,並向A重傳確認

4.常稱為自動重傳請求ARQ,重傳時自動進行的(超時即重傳)

5.缺點:信道利用率太低

   U=Td/(Td+RTT+Ta)

為了提高傳輸效率,發送方不使用停止等待協議,而是採用流水線傳輸。流水線傳輸就是發送發可連續發送多個分組,不必等每發完一個分組就停頓下來等待對方的確認。(連續ARQ協議和滑動窗口協議)

4.2 連續ARQ協議

1.位於發送窗口內的分組都可連續發送出去,而不需要等待對方的確認。

2.累積確認:接收方不必對收到的分組逐個發送確認,而是在收到幾個分組後,對按序到達的最後一個分組發送確認。

3.缺點:Go-back-N (發送前5個分組,第3個分組丟失,後面三個要重傳)

1.源埠和目的埠

2.序號。 每個位元組都按順序編號。

3.確認號。 期望收到對方下一個報文段的第一個數據位元組的序號。

若確認號=N,則表明:到序號N-1為止的所有數據都已正確收到。

4.數據偏移。 指出TCP報文段的數據起始處距離TCP報文段的起始處有多遠(也即TCP報文段首部長度)。由於首部中還有長度不確定的選項欄位,因此數據偏移欄位是必要的。

5.窗口。窗口欄位明確指出了現在允許對方發送的數據量。窗口值是經常在動態變化著。

6.1 以位元組為單位的滑動窗口

1.發送緩存用來暫存:

   1)發送應用程序傳送給發送方TCP准備發送的數據;

   2)TCP已發送但未收到確認德爾數據

2.接收緩存用來存放:

   1)按序到達的、但尚未被接收應收程序讀取的數據;

   2)未按序到達的數據

3.注意三點:

   1)A的發送窗口是根據B的接收窗口設置的,但是在同一時刻,由於網路傳輸的滯後,A的發送窗口並不總是B的接收窗口一樣大

   2)TCP通常對不按序到達的數據是先臨時存放在接收窗口中,等到位元組流中所缺少的位元組收到後,再按序交付上層的應用進程

   3)TCP接收方有累計確認功能(不能過分推遲發送確認,否則會導致發送方不必要的重傳)

6.2 超時重傳時間的選擇

1.超時重傳時間設置太短,會引起很多不必要的重傳;如果設置太長,使網路的空閑時間增大,降低傳輸效率。

2.新的RTTs = (1-a)x(舊的RTTs) + ax(新的RTT樣本),其中RTT樣本的時間為:記錄一個報文段發出的時間,以及收到相應的確認時間,時間差就是報文段的往返時間RTT。

3.RTO = RTTs + 4 x RTTd,其中RTO為超時重傳時間,RTTd是RTT的偏差的加權平均值。

新的RTTd = (1-b) x (舊的RTTd)+ b x |RTTs - 新的RTT樣本|

4.一個問題:發送一個報文段,設定的重傳時間到了,還沒有收到確認。於是重傳報文段。經過一段時間,收到了確認報文段。現在的問題是:如何判定此確認報文段是對先發送的報文段的確認,還是對後來重傳的報文段的確認?

1)解決方法1,在計算加權平均值RTTs時,只要報文段重傳了,就不採用其往返時間樣本。

引入的問題:報文段的時延突然增大的情況

2)解決方法2,報文段每重傳一次,就把超時重傳時間RTO增大一些(一般是2倍)。當不在發生報文段的重傳時,再根據加權平均計算。

6.3 選擇確認SACK

SACK文檔並沒有指明發送發應當怎樣響應SACK。因此大多數的實現還是重傳所有未被確認的數據塊。

7.1 利用滑動窗口實現流量控制

1.流量控制:就是讓發送方的發送速率不要太快,要讓接收方來得及接收。

2.利用滑動窗口機制可很方便地在TCP連接上實現對發送方的流量控制。發送方的發送窗口不能超過接收方給出的接收窗口的數值。

3.死鎖情況:B向A發送了零窗口的報文段後不久,B又有了一些緩存空間,因此B向A發送rwnd = 400.然而該報文段在傳送過程中丟失。A一直等待B發送的非零窗口的通知,B也一直等待A發送的數據。( 窗口通知不超時重傳?為什麼? )

解決方法:TCP為每個連接設有一個持續計時器。只要一方收到對方的零窗口通知,就啟動計時器。計時器到期後,發送一個零窗口探測報文段,而對方就在確認這個探測報文段時給出了現在的窗口值。若仍為零,收到報文段的一方重新設置持續計時器。

7.2 必須考慮傳輸效率

1.應用程序把數據傳送到TCP的發送緩存後,剩下的發送任務就由TCP來控制了。

2.三種不同的機制來控制TCP報文段的發送時機:

   1)TCP維持一個變數,它等於最大報文段長度MSS,只要緩存中的存放的數據達到MSS,就組裝成一個TCP報文段發送出去

   2)由發送方的應用進程指明要求發送報文段,即TCP支持推送操作

   3)發送方設置一個定時器

3.問題一、若用戶只發送一個位元組,則非常浪費帶寬。

解決方法:若發送應用程序把要發送的數據逐個位元組地送到TCP的發送緩存,則發送方就把第一個數據位元組先發送出去,把後面到達的數據位元組都緩存起來。當發送方收到對第一個數據字元的確認後,再把發送緩存中的所有數據組裝成一個報文段發送出去。(採用收到確認就發送+並開始緩存的方式;同時當到達的數據已達到發送窗口大小的一半或已達到報文段的最大長度時,就立即發送一個報文段。)

4.問題二、糊塗窗口綜合症。接收緩存已滿,應用程序一次只讀取一個位元組,然後向發送方發送確認。

解決方法:讓接收方等待一段時間,使得接收緩存已有足夠空間容納一個最長的報文段,或者等到接收緩存已有一半空閑的空間。則接收方就發出確認報文。

8.1 擁塞控制的一般原理

1.擁塞的定義:對資源的需求 > 可用資源。 在計算機網路中的鏈路帶寬、交換結點中的緩存和處理機等,都是網路中的資源。

2.擁塞解決不能靠解決某一個部分的問題。因為這會將瓶頸轉移到其他地方。問題的實質往往是整個系統的各個部分不匹配。只有所有部分都平衡了,問題才會得到解決。

3.擁塞控制與流量控制的比較。

   1)擁塞控制:防止過多的數據注入到網路中,這樣可以使網路中的路由器或鏈路不致過載。

   擁塞控制有個前提:網路能夠承受現有的網路負荷

   擁塞控制是一個全局性過程。(發送擁塞時,不知道在某處、什麼原因造成的)

   2)流量控制:點對點通信量的控制,是個端到端的問題

   流量控制:抑制發送端發送數據的速率,以便使接收端來得及接收。

4.尋找擁塞控制的方案無非就是使不等式 「對資源的需求 > 可用資源 」不再成立的條件。但是必須考慮該措施帶來的其他影響。

5.計算機網路是個復雜的系統。從控制理論的角度來看擁塞控制,可以分為開環控制和閉環控制兩種方法。

   1)開環控制:設計網路時事先將有關發生擁塞的因素考慮周到,力求網路在工作時不產生擁塞。但一旦系統運行起來,就不再中途改正。

   2)閉環控制:基於反饋環路。

   步驟一、監測網路系統以便檢測到擁塞在何時、何處發生;

   步驟二、把擁塞發生的信息傳送到可採取行動的地方

   步驟三、調整網路系統的運行以解決出現的問題

8.2 幾種擁塞控制方法(只考慮網路擁塞程度,即假設接收方總是有足夠大的緩存空間)

1.慢開始和擁塞避免

1)發送方維持一個擁塞窗口。

   擁塞窗口的大小取決於網路的擁塞程度,並且動態地在變化。

   控制擁塞窗口的原則是:只要網路沒有出現擁塞,擁塞窗口增大;如果網路出現擁塞,則減小。

2)慢開始的思路:由小到大逐漸增大擁塞窗口數值。每收到一個對新的報文段的確認,把擁塞窗口增加至多一個MSS的數值。(沒經過一個傳輸輪次,擁塞窗口cwnd就加倍)

輪次:把擁塞窗口所允許發送的報文段都連續發送出去,並收到了對已發送的最後一位元組的確認。

慢開始的「慢」並不是指cwnd的增長速率慢,而是指TCP開始發送報文段時先設置cwnd=1(一個MSS數值)。

3)慢開始門限ssthresh

   為防止擁塞窗口增長過大,引入一個慢開始門限ssthresh。

   當cwnd < ssthresh時,使用上述的慢開始演算法

   當cwnd > ssthresh時,停止使用慢開始演算法而改用擁塞避免演算法

4)擁塞避免演算法

思路:讓擁塞窗口cwnd緩慢增大,即沒經過一個往返時間RTT就把發送方的擁塞窗口cwnd增加1,而不是加倍。

5)慢開始門限的設置

只要發送方判斷網路出現擁塞(沒有按時收到確認),就把慢開始門限ssthresh設置為出現擁塞時發送方窗口值的一半,然後把擁塞窗口cwnd重置為1,執行慢開始演算法。

6)乘法減小和加法增大

乘法減小:網路出現擁塞時,把慢開始門限ssthresh減半(當前的ssthresh的一半),並執行慢開始演算法。

加法增大:執行擁塞避免方法

2.快重傳和快恢復

1)快重傳(盡快重傳未被確認的報文段)

首先,要求接收方每收到一個失序的報文段後就立即發出重復確認。(如接收方收到了M1和M2後都分別發出了確認,但接收方沒有收到M3但接著收到了M4。此時接收方立即發送對M2的重復確認。)

其次,發送方只要一連收到三個重復確認,就應當立即重傳對方尚未收到的報文段M3.

2)快恢復

要點一、當發送方連續收到三個重復確認,就執行「乘法減小」演算法,把慢開始門限ssthresh減半。

要點二、由於發送方認為網路很可能沒有發生擁塞(因為收到了連續的重復確認),把cwnd設置為慢開始門限ssthresh減半後的值,然後開始執行擁塞避免演算法

慢開始演算法只在TCP連接建立時和網路出現超時才使用。

3.發送方的窗口

發送方窗口的上限值 = Min [rwnd, cwnd]

8.3 隨機早期檢測RED(IP層影響TCP層的擁塞控制)

1.網路層的分組丟棄策略

網路層的策略對TCP擁塞控制影響最大的就是路由器的分組丟棄策略。

如果路由器隊列已滿,則後續到達的分組將都被丟棄。這就叫做尾部丟棄策略。

2.全局同步

由於TCP復用IP,若發生路由器中的尾部丟棄,就可能會同時影響到很多條TCP連接,結果就使許多TCP連接在同一時間突然都進入到慢開始狀態。全局同步使得全網的通信量突然下降了很多,網路恢復正常後,其通信量又突然增大很多。

3.隨機早期檢測RED

使路由器的隊列維持兩個參數,即隊列長度最小門限THmin和最大門限THmax。當每一個分組到達時,RED就先計算平均隊列長度Lav。RED演算法是:

1)若平均隊列長度小於最小門限THmin,則把新到達的分組放入隊列進行排隊

2)若平均隊列長度超過最大門限THmax,則把新到達的分組丟棄

3)若平均隊列長度在最小門限THmin和最大門限THmax之間,則按照某一概率p將新到達的分組丟棄。

隨機體現在3),在檢測到網路擁塞的早期徵兆時(即路由器的平均隊列長度超過一定的門限值時),就先以概率p隨機丟棄個別的分組,讓擁塞控制只在個別的TCP連接上進行,因而避免發生全局性的擁塞控制。

4.平均隊列長度Lav和分組丟棄概率p

Lav = (1-d) x (舊的Lav) +d x (當前的隊列長度樣本)

p = ptemp / (1- count x ptemp)

ptemp = pmax x (Lav - THmin) / (THmax - THmin)

TCP時面向連接的協議。

運輸連接就有三個階段:連接建立、數據傳送和連接釋放

運輸連接的管理:使運輸連接的建立和釋放都能正常地進行。

在TCP連接建立過程中要解決以下三個問題:

   1)要使每一方能夠確知對方的存在

   2)要允許雙方協商一些參數(如最大窗口值、是否使用窗口擴大選項和時間戳等等)

   3)能夠對運輸實體資源(如緩存大小、連接表中的項目等)進行分配

9.1 TCP的連接建立

1.TCP規定,SYN=1報文段不能攜帶數據,但消耗一個序號

2.TCP規定,ACK=1報文段可以攜帶數據,如果不攜帶數據則不消耗序號

3.為什麼A還要發送一次確認?為了防止已失效的連接請求報文突然又傳送到B,因而產生錯誤。

「已失效的連接請求報文段」

A發出第一個連接請求報文段,在網路中滯留超時,又發出了第二個連接請求。但B收到第一個延遲的失效的連接請求報文段後,就誤認為是A又發出了一次新的連接請求。於是就向A發出確認報文段,同意建立連接。假定不採用三次握手,那麼只要B發出確認,新的連接就建立。此時A不會理睬B的確認,也不會發數據,但B一直等A發送數據,B的許多資源就浪費了。

採用三次握手,A不會向B發送確認,因此B就知道A並沒有要求建立確認。

9.2 TCP的連接釋放

1.TCP規定,FIN報文段基石不攜帶數據,也消耗一個序號

2.第二次握手後,TCP通知高層應用程序,因而從A到B這個方向的連接就釋放,TCP連接處於半關閉狀態

3.為什麼A在TIME-WAIT狀態必須等待2MSL的時間

  1)為了保證A發送的最後一個ACK報文段能夠到達B。因為ACK可能丟失,此時B可能會超時重傳,然後A重傳確認,並重新啟動2MSL計時器

  2)防止「已失效的連接請求報文段」出現在本連接中。可以使本連接持續時間內所產生的所有報文段都從網路中消失。

9.3 TCP的有限狀態機

㈤ 計算機網路

入門:《網路是怎麼連接的》、《圖解 TCP/IP 》、《圖解 HTTP 》.

深入學習:
《 計算機網路:自頂向下 》
https://gaia.cs.umass.e/kurose_ross/wireshark.htm
https://media.pearsoncmg.com/ph/esm/ecs_kurose_compnetwork_8/cw/

《計算機網路》謝希仁的 ( 這個評價倒是還好,

《TCP/IP 詳解 卷一:協議》

《 Computer Networks: A Systems Approach 》Larry L Peterson

《 Computer Networks 》 Andrew S.Tanenbaum ( 雖然是 AST 的, 但是好像不適合初學

《 Elements of Computer Networking: An Integrated Approach (Concepts, Problems and Interview Questions) 》 ( ? )

https://www.hu.com/question/19718686
https://www.hu.com/question/19774914
https://www.hu.com/question/22354846
我的東西主要是英文的 , 當然, 我也需要買中文, 但我的渠道英文電子書方便
" 其實覺得cs144的公開視頻講得挺一般的,但是cs144新的lab真的很棒 "

https://online.stanford.e/lagunita-learning-platform

https://www.hu.com/question/63658105

《圖解 HTTP》

如果要入門 TCP/IP 網路模型,我推薦的是《圖解 TCP/IP》
另外,你想了解網路是怎麼傳輸,那我推薦《網路是怎樣連接的》
入門:《網路是怎麼連接的》、《圖解 TCP/IP 》《圖解 HTTP 》.

2.深入學習:《計算機網路:自頂向下》、《TCP/IP 卷一》
對於 TCP/IP 網路模型深入學習的話,推薦《計算機網路 - 自頂向下方法》,這本書是從我們最熟悉 HTTP 開始說起,一層一層的說到最後物理層的,有種挖地洞的感覺,這樣的內容編排順序相對是比較合理的。

但如果要深入 TCP,前面的這些書還遠遠不夠,賦有計算機網路聖經的之說的《TCP/IP 詳解 卷一:協議》這本書,

要說我看過最好的 TCP 資料,那必定是《The TCP/IP GUIDE》這本書了,目前只有英文版本的,而且有個專門的網址可以白嫖看這本書的內容,圖片都是彩色,看起來很舒服很鮮明,小林之前寫的 TCP 文章不少案例和圖片都是參考這里的,這本書精華部分就是把 TCP 滑動窗口和流量控制說的超級明白,很可惜擁塞控制部分說的不多。

Wireshark

當然,計算機網路最牛逼的資料,那必定 RFC 文檔,它可以稱為計算機網路世界的「法規」,也是最新、最權威和最正確的地方了,困惑大家的 TCP 為什麼三次握手和四次揮手,其實在 RFC 文檔幾句話就說明白了。

小白讀 《網路是怎樣鏈接的》,然後 《圖解 HTTP 》 《圖解 TCP/IP 》。如果想學術一點,《計算機網路:自頂向下方法 中文第六版》或者 (Computer Networking: A top-down Approach 7th)。再難點,T 大佬的 《計算機網路》(Computer Networks)

在計算機網路的學習中為大家推薦《計算機科學導論》。這本書用大量的篇幅介紹了計算機網路的內容,還詳細地介紹了計算機科學目前發展的特點和現狀,適合想要學習計算機網路的同學打基礎使用。

https://book.douban.com/review/7443456/#comments

自頂向下方法有兩本:Computer Networking: A Top-Down ApproachbyJames F. Kurose, Keith W. Ross 中文翻譯: 計算機網路:自頂向下方法(樓主提到的是這個)

Computer Networks: A Top-Down ApproachbyBehrouz A. Forouzan, Firouz Mosharraf 中文翻譯:計算機網路教程:自頂向下方法

思科實驗模擬器EVE的安裝與使用 https://zhuanlan.hu.com/p/166295824
思科CCNA命令大全 https://zhuanlan.hu.com/p/259820495