計算機網絡(三十一):總結

第一章、計算機網絡概念

  1. 從具體構成角度,網絡的具體構成包括構建網絡的硬件部分,包括端系統、通信鏈路和分組交換機,以及實現運行的軟件部分,端系統通過因特網服務提供商ISP接入因特網
  2. 從發送端系統到接收端系統,一個分組所經歷的一些列通信鏈路和分組交換機稱爲通過該網絡的路徑,而計算機網絡=端系統+通信鏈路+轉發設備(分組交換機),即通過交換網絡互連主機
  3. 從服務的角度,網絡是通信的基礎設施,將信息從一個端系統傳遞到另一個端系統。網絡可以爲不同的網絡的應用提供不同的網絡服務,注意,這些網絡應用程序不運行在網絡核心的分組交換機,而是請求的端系統
  4. 與因特網相連的端系統提供了一個應用程序編程接口(API),規定了運行在一個端系統上的軟件請求因特網基礎設施向運行在另一個端系統上的特定目的地軟件交付數據的方式。本質上上是一套發送軟件必須遵守的規則集合,使用網絡和從網絡接收消息的接口,是網絡嚮應用開放的接口。
  5. 協議的概念:網絡協議就是計算機網絡中數據交換必須遵守的規則,好比交通系統。報文的發送和接收,以及當這些報文發送和接收時所採取的一些列約定俗成的動作,就是網絡協議的核心
  6. 網絡分爲網絡邊緣(主機,網絡應用)、接入網絡(網絡傳輸介質,即有線無線通信鏈路)、網絡核心(互連的路由器和交換機)
  7. CS客戶機-服務器模式:客戶機只能發送請求,服務器只負責提供服務,客戶機與客戶機不能直接通信
  8. 對等P2P模式:兩者既可以提供服務又可以請求服務。微信、qq等。
  9. 接入網絡:實際上就是將端系統連接到其邊緣路由器的物理鏈路,邊緣路由器是端系統到任何其他遠程端系統的路徑上的第一臺路由器
  10. DSL:類似於撥號調制解調器,是一種新型調制解調器技術,通過限制用戶和ISP調制解調器之間的距離,可以以高得多的速率實現傳輸和接收數據
  11. HFC:與DSL類似,都需要特殊的調制解調器,即電纜調制解調器,是一種頻分多路複用(不同頻帶<載波>上傳輸不同頻道)
  12. FTTH:光纖接入,一類是有源的PON(接入到小區網絡,再與運營商對接);一類是無源的PAN(直接與運營商對接)
  13. 網絡核心就是互連的路由器網絡,關鍵功能是路由(確定分組從源到目的傳輸路徑)和轉發(將分組從路由器的輸入端口交換至正確的輸出端口)
  14. 傳輸方式主要有電路交換(傳統電話)和分組交換(計算機網絡)。路由器有一個路由轉發表(本地轉發表),規定了去目的地址需要走哪一條鏈路。簡單地講,就是兩家餐廳,一家需要預定,一家不需要預定但是不能保證可以進行安排
  15. 電路交換可以劃分爲三個階段:呼叫(電路)建立階段,建立連接;通信;電路拆除,釋放連接。注意鏈路與電路的區別,一條鏈路可以有很多條電路
  16. 頻分多路複用:鏈路的頻譜由跨越鏈路創建的所有連接所共享,特別是,該鏈路在鏈接期間爲每條連接(電路)專用一個頻段,改頻段的寬度被稱爲帶寬
  17. 時分多路複用:時間被劃分爲固定區間的幀,並且每幀又被劃分爲固定數量的時隙。一條電路的傳輸速率等於一個時隙中的比特數乘以該幀的速率
  18. 傳播延時:第一個字節從始點到終點所用的延時
  19. 傳輸延時:把數據放到鏈路所用的時間(格式轉換等)
  20. 分組交換資源利用率高,但不一定能夠保證服務質量。分組以鏈路的最大傳輸速率在通信鏈路上進行傳輸。分組交換的性能取決於當前用戶數。
  21. 如果分組到達交換機的速率超過了交換機跨越輸出鏈路轉發分組的速率,就會造成擁塞。
  22. 每個路由器具有一個轉發表,用於將目的地址(或者目的地址的一部分)映射到輸出鏈路。當分組到達一臺路由器時,該路由器檢查目的地址,並用這個目的地址搜索轉發表,以找到合適的輸出鏈路。並將該分組導向輸出鏈路。因特網具有一些特殊的選路協議,用於自動的設置轉發表。如可以決定從每臺路由器到每個目的地的最短路徑,並使用最短路徑進行配置。
  23. 吞吐量即每秒能夠傳輸的數據量
  24. 分組交換公式爲:所有分組下放到第一個路由器的時間+最後一個分組從第一個路由器到達目的地址所需要的時間
  25. 處理時延:當交換設備接收到設備時要檢查數據是否出錯,還要決定數據會被轉發到那條線路上,毫秒微秒級別
  26. 排隊時延:每個輸出上都有個緩衝的部分(隊列)
  27. 傳輸時延:將一個比特推送到鏈路上所花費的時間叫傳輸時延,傳輸時延和鏈路帶寬有關,也叫發送速率,毫秒微妙級別
  28. 傳播時延:將比特從線路的一端傳到另一端所需要花費的時間,與鏈路長度、速率有關,毫秒級別
  29. 最大吞吐量:一臺路由器能夠轉發分組的最大速率
  30. 協議分層:以分層的方式組織協議以及實現這些協議的網絡硬件和軟件。每個協議屬於一層。
  31. 協議棧:特定網絡系統的一系列協議,或者說各層的所有協議。因特網的協議棧由5個層次組成:物理層、鏈路層、網絡層、運輸層、應用層。
  32. ISO提出計算機網絡應組織爲大約七層,稱爲開放系統互聯模型OSI模型,即應用層、表示層、會話層、運輸層、網絡層、鏈路層、物理層。
  33. 對於一個信息,首先發送端的主機將信息經過五層(全部的因特網協議)進行一個封裝;然後到達交換機,交換機向上解析兩層,獲得鏈路層層次的目的地址,再重新封裝兩層的協議(這個時候協議中的目的地址可能已經發生了改變),然後進行傳輸;然後路由器向上解析三層,獲得網絡層層次的目的地址,再重新封裝三層的協議(這個時候協議中的目的地址可能已經發生了改變),然後進行傳輸;到達接收端的主機後,主機向上解析五層,獲得被封裝的信息。

第二章、應用層

  1. 應用層只在端上存在,因此寫的時候只需在端上構建
  2. 應用層的功能是爲兩端系統中的應用程序交換報文。支持用戶通過用戶代理(如瀏覽器)或網絡接口使用網絡(服務)。實現應用於應用之間的規範,這個應用不在同一個端系統上。只需要規範傳輸到應用的信息。即宏觀上的兩個端系統上的應用的傳輸
  3. 第一個網絡應用程序是email
  4. CS結構:即客戶機/服務器體系結構。有一個總是打開的主機稱爲服務器,他服務於來自許多其他稱爲客戶機的主機請求,客戶機相互之間不直接通信。服務器有固定的、周知的地址,稱爲IP地址,且總是處於打開狀態,多個服務器共同對外提供服務(即主機羣集,有時候稱爲服務器場),構成一個抽象的虛擬服務器,以應對客戶端的規模性。
  5. P2P體系結構:即對等體系結構。對總是打開的基礎設施服務器有最小的依賴。任意簡短連接的主機(對等方)直接相互通信。
  6. 混合結構。即時信息系統:QQ、微信。進行用戶定位時用CS系統,當開始聊天時變爲P2P系統
  7. 套接字是同一臺主機內應用層與運輸層之間的接口。由於套接字是在網絡上建立網絡應用程序的可編程接口,因此也將套接字稱爲應用程序和網絡之間的應用程序編程接口。
  8. 套接字可以理解爲簡單地read和write函數,名稱不一定是read。
  9. 每一個進程一旦創建以後都要與一個套接字進行綁定,套接字類型與協議有關
  10. 傳輸層輔助將數據發送到對方傳輸層。服務器通過套接字從本地緩存中將數據取回去。
  11. 當進程想向位於另一臺主機的另一個進程發送報文時,他把報文推出門(套接字),該發送進程假定門到另一側之間有運輸的基礎設施,該設施將把報文傳送到目的進程的門口,一旦抵達,則通過報文接收進程的門(套接字)傳遞。
  12. 應用程序服務要求:可靠數據傳輸(丟包)、吞吐量()帶寬、定時(時延)和安全性(安全)
  13. TCP提供了可靠地端到端數據傳輸服務。目前的因特網運輸層沒有提供吞吐量和定時保證兩種服務。但是設計時盡最大可能彌補了這兩種服務。
  14. 進程尋址:爲了識別接收進程,需要定義兩種信息:①該主機的名稱或地址;②用來指定目的主機上接收進程的標識。主機用IP地址來進行標誌,IP地址是用來唯一標識主機的32比特數。目的地端口號標識了主機上的接收進程
  15. 應用層協議定義了運行在不同端系統上的應用程序進程如何相互傳遞報文
  16. web應用層協議是超文本傳輸協議HTTP,是web的核心。
  17. 對象:簡單來說就是文件,這些文件可通過一個URL地址尋址。
  18. web頁面(文檔):是由對象組成的,多數web頁面含有一個基本HTML文件以及幾個引用對象
  19. 基本HTML文件:在基本HTML文件中通過對象的URL地址對對象進行引用。
  20. URL地址:由兩部分組成:存放對象的服務主機名和對象的路徑名。例如URL地址http://www.somesc.edu/sd/pic.gif中的www.somesc.edu就是主機名(域名),而/sd/pic.gif就是路徑名。
  21. web瀏覽器:實現了HTTP的客戶機端
  22. web服務器:存儲web對象,對象由URL尋址,實現了HTTP的服務器端
  23. 分層結構最大的優點,即HTTP協議不用擔心數據丟失,也不用擔心TCP是如何從網絡的數據丟失和亂序故障中恢復的
  24. 一個HTTP服務器並不保存關於客戶機的任何信息,所以我們說HTTP是一個無狀態協議。
  25. 目的端口號爲80(80指向的就是一個web應用);
  26. 非持久連接:每個請求/響應對是經一個單獨的TCP連接發送。
  27. 往返時間RTT:一個小分組從客戶機到服務器再返回客戶機所需要的時間。包括分組傳播時延、分組在中間路由器和交換機上的排隊時延和分組處理時延。
  28. 三次握手:瀏覽器在瀏覽器和web服務器之間發起一個TCP連接,會有三次:
    ①、客戶機向服務器發送一個小TCP報文段
    ②、服務器用一個小TCP報文段做出確認和響應
    ③、客戶機向服務器返回確認
  29. 總的響應時間=兩個RTT+服務器傳輸HTML文件的時間。
  30. 持久連接:所有的請求及相應的響應經相同的TCP連接發送。如果一個連接經過一定時間間隔(一個可配置的超時間隔)仍未被使用,服務器就關閉該連接。
  31. HTTP報文有兩種:請求報文和響應報文
  32. GET產生1個TCP數據報,header與data一起發送(獲取data);POST會產生2個TCP數據包,先發送header再發送data(提交data)。
  33. 請求環境(即首部行形容的環境):請求時間+運行版本+請求對象最後的更新時間+內容長度+內容類型。
  34. 如果用戶在服務器進行了註冊,即提供了他的全名、郵箱地址、郵政地址和信號用卡賬號,則會在數據庫中記錄了這些信息,並將這些信息與識別碼關聯(以及過去訪問的所有頁面)。
  35. cookie可以用於標識客戶。用戶首次訪問站點時,可能需要提供一個用戶標識(可能是名字)。在後繼訪問中瀏覽器向服務器傳遞一個cookie首部,提供服務器識別該用戶。因此,cookie可以在無狀態的HTTP上建立一個用戶會話層。
  36. web緩存器也叫代理服務器,能夠代表初始web服務器來滿足HTTP請求的網絡實體。有自己的磁盤存儲空間,可以保留最近請求過的對象的拷貝。
  37. 通過代理服務器可以不訪問原始的服務器,而是從代理服務器上訪問。如果代理服務器上沒有這個頁面,那麼它會代替客戶機去訪問原始服務器。當代理服務器得到這個頁面後,首先將這個頁面緩存。
  38. HTTP和FTP都是文件傳輸協議,都運行在TCP上。但是FTP使用兩個並行的TCP連接來傳輸文件,一個是控制連接,一個是數據連接。
  39. FTP協議使用一個分離的控制連接,故也稱FTP的控制信息時帶外傳送的。同理可以說HTTP是帶內發送控制信息的。
  40. FTP的數據連接精確地傳送一個文件並關閉連接,如果在同一個會話期間想要傳送多個文件,需要打開多個數據連接,即控制連接貫穿了整個用戶會話期間,而針對會話中的每一個文件傳輸都要建立一個新的數據連接。
  41. FTP服務器必須在整個會話期間保留用戶的狀態信息,必須追中用戶在遠程目錄樹上的當前位置,而HTTP是無狀態的,不必對任何用戶狀態進行追蹤。
  42. 注意,只有指令和指令的回答是在控制連接上傳頌的,所有的文件,包括文件列表都是在數據連接上傳送的。
  43. internet電子郵件系統通常包括:用戶代理、郵件服務器、簡單郵件傳輸協議SMTP。
  44. 郵件服務器向客戶代理髮送時不能使用推協議,因爲客戶不是隨時都在線,所以SMTP只能用於發送,如果要接收需要使用POP3協議。
  45. SMTP一般不使用中間郵件服務器發送郵件,即使這兩個郵件服務器位於地球的兩端也是如此,即TCP連接是兩個郵件服務器之間的直接相連。
  46. 如果接收方的郵件服務器沒有開機,該報文會保留在發送方的郵件服務器上(報文發送隊列中)。
  47. SMTP是用的是持久連接,如果發送郵件服務器有幾個報文發往同一個接收郵件服務器,就可以通過同一個TCP連接發送所有的報文。握手中有HELO、MAL FROM、RCPT TO三條命令。對每一個報文,客戶機都用一個mall from:crepes.fr開始,以CRLF。CRLF結束。用一個獨立的句點表示該郵件的結束,並且當且僅當所有郵件發送完後才發送QUIT
  48. DNS是一種能夠進行主機名到IP地址轉換的目錄服務
  49. DNS通常是運行在BIND軟件的UNIX機器,DNS協議運行在UDP之上,使用53號端口。
  50. 在請求鏈中,當一個DNS服務器接收到一個DNS回答時,DNS服務器能將回答中的信息緩存在本地存儲器。這個緩存包含在回答中的任何信息,包括主機名/地址對。因爲主機和主機名與IP地址間的映射不是永久地,所以DNS服務器在一段時間後(通常爲兩天)將丟棄緩存的信息。
  51. 集中式索引(集中目錄分發):提供了一個集中式索引,由一臺大型服務器來提供索引服務。索引服務器從每個活動的對等方那裏收集IP地址和可供共享的文件名稱,從而建立一個集中式的動態索引,將每個文件拷貝映射到一個IP地址集合。實際上是一種P2P和CS混合體繫結構,文件分發是P2P的,搜索是CS的。
  52. 查詢洪泛(完全分佈式方法):建立在Gnutella協議基礎上的。在查詢洪泛中,索引全面地分佈在對等方的區域中,每個對等方索引可供共享的文件而不索引其他文件
  53. 網絡應用程序有兩類,一類是網絡應用程序,由RFC所定義的標準協議的實現。當客戶機程序或服務器程序實現了由某RFC定義的協議時,應該使用與協議相關的端口號;另一類是專用的網絡應用程序。客戶機程序和服務器程序使用的應用層協議不必符合任何現有RFC,不能使用已經在RFC中定義的周知端口號,服務器程序與客戶機程序的端口號必須相同。
  54. TCP服務器程序不能處於睡眠狀態,且必須先於客戶機程序運行;服務器程序必須有某種套接字來面對來自運行在任意機器上客戶機程序發起的連接。
  55. 當TCP客戶機創建他的套接字時,他指定服務器進程的地址,即服務器的IP地址和進程的端口號。
  56. TCP服務器將創建一個新的套接字,爲某個特定的客戶機程序服務,這個套接字與原套接字基本相同,只是目的地址確定,僅負責該目的地址的通信,通信結束,套接字被回收銷燬。
  57. TCP連接是客戶機套接字和服務器連接套接字之間的一個直接的虛擬管道,這個管道一直保持,直到某個進程將其關閉。客戶機進程可以向他的套接字發送任意字節的數據,TCP保證服務器進程能夠按發送的順序接收到每個字節的數據。TCP因此在客戶機進程和服務器進程之間提供了可靠字節流服務。
  58. 因爲UDP沒有管道,所以當發送數據的時候,發送進程需要爲這批字節附上目的進程地址,並且,該過程對於每批由發送進程所發送的字節都必須重複做。
  59. UDP可以先運行客戶機,再運行服務器,因爲客戶機進程沒有試圖和服務器建立起連接。

第三章、運輸層

  1. 運輸層協議爲運行在不同主機牛的應用進程之間提供了邏輯通信功能。
  2. 運輸層實現進程與進程之間的傳輸,這個進程不在同一個端系統上。只是規範傳輸到進程的信息。即宏觀上的兩個端系統上的應用所產生的進程之間的信息傳輸。運輸層實際上就是將數據傳輸到相應的進程,並有一個將報文劃分爲分組(運輸層分組稱爲報文段)的過程。類似於交通工具。
  3. 運輸層協議只工作在端系統中 在端系統中,運輸層協議將來自應用進程的報文移動到網絡邊緣(即網絡層)
  4. 兩種運輸層協議分別是UDP (用戶數據報協議) ,它爲調用它的應用程序提供一種不可靠、無連接的服務。另一種是 TCP (傳輸控制協議) ,它爲調用它的應用程序提供了一種可靠的、面向連接的服務。
  5. UDP TCP 最基本的責任是,將兩個端系統間IP的交付服務擴展爲運行在端系統上的兩個進程之間的交付服務。將主機間交付擴展到進程間交付被稱爲運輸層的多路複用與多路分解。
  6. UDP TCP還可以通過在其報文段首部中包括差錯檢查字段而提供完整性檢查。進程到進程的數據交付和差錯檢查是兩種最低限度的運輸層服務,也是UDP 所能提供的僅有的兩種服務。
  7. 將運輸層報文段中的數據交付到正確的套接字的工作稱爲多路分解。在源主機從不同套接字中收集數據塊,併爲每個數據塊封裝上首部信息從而生成報文段,然後將報文段傳遞到網絡層,所有這些工作稱爲多路複用。
  8. 運輸層是怎樣實現分解服務:在主機上的每個套接字能夠分配一個端口號,當報文段到達主機時,運輸層檢查報文段中的目的端口號,並將其定向到相應的套接字。然後報文段中的數據通過套接字進入其所連接的進程。
  9. TCP套接字是由一個四元組(源IP地址,源端口號,目的IP地址,目的端口號)來標識的。這樣,當TCP報文段從網絡到達一臺主機時,該主機使用全部4個值來將報文段定向(分解)到相應的套接字。特別與UDP不同的是,兩個具有不同源IP地址或源端口號的到達TCP報文段將被定向到兩個不同的套接字。
  10. 服務器主機可以支持很多並行的TCP套接字,每個套接字與一個進程相聯繫,並由其四元組來標識每個套接字。當一個TCP報文段到達主機時,所有4個字段(源IP地址,源端口,目的IP地址,目的端口)被用來將報文段定向(分解)到相應的套接字。
  11. 當一臺主機中的DNS應用程序想要進行一次查詢時,它構造了DNS查詢報文並將其交給 UDP。無須執行任何與運行在目的端系統中的UDP實體之間的握手,主機端的UDP爲此報文添加首部字段,然後將形成的報文段交給網絡層。
  12. TCP的擁塞控制會導致如因特網電話、視頻會議之類的實時應用性能變得很差。而UDP中缺乏擁塞控制能夠導致UDP發送方和接收方之間的高丟包率。
  13. UDP檢驗和:由於0xFFFF+0xFFFF最大值也只能是0x1FFFE,所以不會出現無限循環的情況。之所以使用反碼是爲了解決不同操作系統大小端的計算情況,使用反碼即便字節的順序調換,其結果也僅是字節順序同步調換。
  14. TCP在不可靠的(IP)端到端網絡層之上實現的可靠數據傳輸協議。
  15. 可以讓發送方負責檢測和恢復丟包工作。假定發送方傳輸一個數據分組,該分組或接收方對該分組的ACK發生了丟失,在這兩種情況下,發送方都收不到應當到來的接收方的響應。如果發送方願意等待足夠長的時間以便確定分組已丟失,則它只需重傳該數據分組即可。
  16. 流水線可靠數據傳輸系協議:不使用停等方式運行,允許發送方發送多個分組而無需等待確認。因爲許多從發送方向接收方輸送的分組可以被看成是填充到一條流水線巾,故這種技術被稱爲流水線。
  17. 在回退N步協議中,允許發送方發送多個分組(當有多個分組可用時)而不需等待確認,但它也受限於在流水線中未確認的分組數不能超過某個最大允許數。
  18. 那些已被髮送但還未被確認的分組的許可序號範圍可以被看成是一個在序號範圍內長度爲N的窗口。隨着協議的運行,該窗口在序號空間向前滑動。因此N常被稱爲窗口長度,GBN協議也常被稱爲滑動窗口協議。
  19. 選擇重傳:GBN 協議潛在地允許發送方用多個分組"填充流水線",因此避免了停等協議中所提到的信道利用率問題。選擇重傳(SR)協議通過讓發送方僅重傳那些它懷疑在接收方出錯(即丟失或受損)的分組而避免了不必要的重傳。
  20. 簡單地講,無論GBN和SR都是爲了在不可靠的傳輸(網絡層)的情況下,通過運輸層協議的方式來實現一個可靠地傳輸。GBN傳輸協議就是流水線傳輸,但是隻要有一個未成功或者出現了亂序,就將目前已經收到的分組(亂序部分)全部丟去,然後重新傳輸;而SR是爲了提高效率,在一個未成功的時候,不會全部丟棄,而是先進行緩存,直到未成功的到達,並形成了有序的隊列就進行向上傳輸,然後才向後移動窗口。
  21. TCP是面向連接的,因爲在一個應用程可以開始向另一個應用進程發送數據之前,這兩個進程必須先相互"握手",即它們必須相互發送某些預備報文段,以建立確保數據傳輸的參數。
  22. 三次握手:客戶首先發送一個特殊的TCP報文段,服務器用另一個特殊的TCP報文段來響應,最後,客戶再用第三個特殊報文段作爲響應。前兩個報文段不承載“有效載荷”,也就是不包含應用層數據;而第三個報文段可以承載有效載荷。
  23. TCP可從緩存中取出並放入報文段中的數據數量受限於最大報文段長度 MSS。MSS通常根據最初確定的由本地發送主機發送的最大鏈路層幀長度(即所謂的最大傳輸單元MTU)來設置。
  24. TCP 連接的組成包括:一臺主機上的緩存、變量和與進程連接的套接字,以及另一臺主機上的另一組緩存、變量和與進程連接的套接字。
  25. 簡單地講,TCP的雙方都是可以通信的,發送方可以接受到接收方提示的需要哪一個字節(特指是字節,而不是哪一個報文段),而接收方也可以接收到發送方發送的數據。
  26. 定時器過期很可能是由網絡擁塞引起的,即太多的分組到達源與目的地之間路徑上的一臺(或多臺)路由器的隊列中,造成分組丟失或長時間的排隊時延。在擁塞的時候,如果源持續重傳分組,會使擁塞更加嚴重。相反,TCP使用更文雅的方式,每個發送方的重傳都是經過越來越長的時間間隔後進行的。
  27. 比期望序號大的失序報文段到達,檢測出了間隔,即可能發生了報文段丟失,就會立刻發送冗餘ACK,用來指示下一個期待字節的序號。如假如我要傳送1.2.3.4,現在接收到了1.3,2可能發生了丟失,那麼就發送對1的ACK信號,指示我想要2。
  28. 快速重傳:簡單地講,就是在重複接收到3個某一個報文段的冗餘ACK的時候,就認爲他之後的報文段發生了丟失,不管有沒有發生超時,立刻進行重傳。
  29. 即使流量控制和擁塞控制採取的動作非常相似(對發送方的遏制),但是它們顯然是針對完全不同的原因而採取的措施。
  30. 流量控制是因爲網絡太好,導致發送方發送太快,接收方的緩存空間不夠而導致出錯或者丟失的控制,是一個發送方與接收方的速度匹配問題,是在端上的控制。擁塞控制是因爲網絡不好,導致路由器發生了排隊,導致丟包,是在網絡核心上的控制。
  31. TCP必須使用端到端擁塞控制而不是使網絡輔助的擁塞控制,因爲IP層不向端系統提供顯式的網絡擁塞反饋。
  32. TCP發送方的行爲類似於要求越來越多糖果的孩子,直到最後告知他/她"不行!",孩子後退一點,然後過一會兒再次開始提出請求。
  33. TCP擁塞控制算法有三個部分,即慢啓動、擁塞避免、快速恢復。其中慢啓動和擁塞避免是強制的,而快速恢復是可選的。
  34. 慢啓動簡單地講,就是每當正常傳輸的時候,就在下次發送兩倍的分組,直到發生了超時然後重新開始,或者達到了一個閾值。
  35. 擁塞避免:一旦進入擁塞避免狀態,cwnd的值大約是上次遇到擁塞時的值的一半,而此時無法在通過對每一個RTT再將cwnd的值翻番,於是選擇每個RTT只將cwnd的值增加一個MSS。即更加精確,更加靠近最大的窗口數。
  36. 快速恢復:如果出現超時事件,快速恢復在執行如同在慢啓動和擁塞避免中相同的動作後,遷移到慢啓動狀態:當丟包事件出現時,cwnd 的值被設置爲1MSS,並且ssthresh(即擁塞窗口閾值)的值設置爲cwnd值的一半。
  37. 可以看出來,TCP的主要思路是通過“重啓”的思路進行控制,通過一次一次的重啓,來得到最接近於最大擁塞窗口的一個參數,而這個參數就代表了我們的流水線傳輸中可以在鏈路上可以傳輸的最大分組數目,然後在這個參數下進行傳輸
  38. TCP的擁塞控制是:首先通過慢啓動得到比較接近最大擁塞窗口的數值(每個RTT內cwnd翻番,但最後只能取到閾值),然後每個RTT內cwnd線性(加性)增加1MSS,然後出現3個冗餘ACK 事件時,cwnd 減半(乘性減)。
  39. Tahoe版本的TCP在每次出現封包丟失的時候都重新開始執行Slow-Start算法,這樣使得網絡的吞吐率並不高,即不管是冗餘ACK造成的丟失還是超時造成的丟失,都會重新慢啓動,將當前cwnd設爲1。
  40. 但Reno版本出現冗餘ACK的時候,並不是把當前cwnd設爲1,而是設爲出現封包丟失時的1/2+3(注意,一般的快速恢復是1/2,但Reno版本修改爲了1/2+3)但閾值仍是1/2。所以Reno版本的TCP的平均吞吐率較Tahoe更高。

第四章、網絡層

  1. 網絡層實現主機與主機之間(不同網絡)的傳輸,有路由器,選擇路由器(路由路徑和轉發規則)。只要規範傳輸到主機的信息。即宏觀上的兩個端系統之間的信息傳輸。邏輯尋址:全局唯一邏輯地址,確保數據分組被送達目的主機,即IP地址。路由:路由器互聯網絡,負責路徑選擇
  2. 僅在網絡層提供連接服務的計算機網絡稱爲虛電路網絡(虛擬了一條不存在的電路連接);僅在網絡層提供無連接服務的計算機網絡稱爲數據報網絡(通過直接發送數據報文實現通信)
  3. 簡單地講,就是說每當建立一條虛電路時,會對虛電路上所需要經過的鏈路進行一次編號,然後在每個鏈路交界處的路由器中的轉發表中,按照入VC和出VC的形式進行存儲。即便是同一條鏈路,在不同的虛電路中的VC號是不同的。
  4. 簡單地講就是可以讓同一條鏈路在兩端的路由器中具有完全不同的vc號,比方說在R1中是出鏈路,出VC號爲1,而在R2中是入鏈路,入VC號爲任意一個數字,不一定非是1。
  5. 網絡層還可以預留該虛電路路徑上的資源(如帶寬)。即確認發送方與接收方主機,確認路徑(鏈路+路由器,通過最短路徑算法確定),修改轉發表。
  6. 對於虛電路網絡,簡單地講,就是說運輸層只需要調用網絡層的服務,給定一個發送方和一個接收方,就可以搭建一條連接。而網絡層需要在給定的發送方和接收方的基礎上,計算出這條路徑上所需要的鏈路和路由器,然後告知這些路由器,由此建立一條虛擬電路。
  7. 在數據報網絡中,每當一個端系統要發送分組,它就爲該分組加上目的端系統的地址,然後將分組推進網絡中。無需建立任何虛電路,路由器不維護任何虛電路的狀態信息。
  8. 在路由器的轉發表中就沒有必要有40億表項(全部表項),因爲針對一個路由器,其能夠到達的目的地址是有限的,而且不同分支能夠到達的目的地址可以有明顯的相似性。
  9. 由於數據報網路不需要實時的建立連接,在創建實體網絡的時候,其轉發就相對固定,所以不需要經常修改轉發表。
  10. 在虛電路網絡中,通過路由器建立一條新的連接,或通過路由器拆除一條現有的連接,路由器中的轉發表就被更新。對一臺第一層主幹路由器而言,這很容易以微秒的時間尺度進行更新。即由於每次建立連接都要新的鏈路連接,所以需要實時對轉發表進行更新,表更新更頻繁。
  11. 因爲在數據報網絡中的轉發表能夠在任何時刻修改,從一個端系統到另一個端系統發送一系列分組可能在通過網絡時走不同的路徑,並可能無序到達。即由於轉發表的轉換和分組並無太大關聯,並不是同步的,所以可能一系列分組沒有傳輸完,而轉發表就發生了改變。
  12. 簡單地講,輸入輸出端口就是接口,交換結構是芯片,路由選擇處理器是運行在芯片上的選擇代碼。
  13. 簡單地講,通過路由選擇器建立路徑,併產生轉發表,然後在輸入端口中根據轉發表選擇相對應的輸出端口,在交換結構中根據產生的轉發表進行硬件的搭建,依靠硬件可以在極短的時間內實現傳輸。
  14. 通過輸入端口的查找功能(在轉發表副本中查找)可以確定某分組的輸出端口,此時該分組就能發送進入交換結構(交換結構負責連接輸入端口和相對應的輸出端口,將分組按照轉發表指定的地址進行轉發)
  15. 總的來說,輸入端口有以下操作:
    ①、查找輸出端口(轉發表副本)
    ②、出現鏈路層和物理層處理
    ③、檢查分組的版本號、檢驗和以及壽命字段,並重寫檢驗和以及壽命字段
    ④、更新用於網絡管理的計數器(如接收到的IP數據報的數目,避免攻擊)
  16. 內存式交換結構:簡單地講,就是根據輸入端口從轉發表得到的輸出端口號,直接寫到對應輸出端口的緩存中。
  17. 總線式交換結構:簡單地講就是加上一個標籤(如輸出端口號),然後向總線發送分組,此時所有輸出端口都接收到,但只有與標籤相匹配的輸出端口才開放緩存進行存儲。
  18. 縱橫式交換結構:簡單地講,就是多條總線的交叉,雖然不再需要標籤,但需要一個總線開關控制的過程。
  19. 輸出端口:簡單地講,就是一個寄存器加一個輸出線路。
  20. 當處理速度是輸入速度*端口個數(輸入=輸出)的時候,最壞情況就是同一時間所有輸入端口都接受到了一個分組,並且這個分組想要發送給同一個輸出端口。此時只要能夠在下一個輸入端口的分組到來前,將這些分組給到相應的輸出端口,就不會在輸入端口發生排隊
  21. 由於交換的速率超過了輸出端口能夠發送的速率,導致輸出端口會發生排隊,最終導致丟包。
  22. 個人理解,輸出端口的排隊基本上是不可避免的,所以問題就是如何處理排隊問題和減輕排隊問題。處理排隊問題的方法要麼是丟棄到達的分組,要麼刪除已經在隊列中的分組。於是便有了主動隊列管理算法,並且最出名的就是隨機早期檢測RED算法。就是有一個上下限,低於下限時可以直接加入隊列,高於上限時丟棄到達的分組或者標記,當在上下限之間時,將會有一定概率標記或丟棄分組。這個概率隨着隊列長度的變化而變化
  23. 線路前部HOL阻塞:簡單地講,就是輸入端口爭奪輸出端口,而交換結構的交換速率較低,導致在下一批分組到來前,當前輸入端口的分組沒有完全通過交換結構,有剩餘,此時輸入端口就會產生等待隊列。
  24. 一個鏈路層幀能承載的最大數據量叫做最大傳送單元MTU。因爲每個據報封裝在鏈路層幀中從一臺路由器傳輸到下一臺路由器,故鏈路層協議的MTU嚴格地限制着IP數據報的長度。
  25. 分片:簡單地講,就是把一個大的IP數據報切分爲符合當前協議的MTU的數據報,並且數據報的標誌除了最後一個爲0,其餘都是1。其中首部字節爲20,其餘的MTU-20字節均爲數據字節。偏移量爲字節數/8。
  26. 主機與鏈路一般只有一個接口,所以一個主機一般只有一個IP地址作爲索引;而一臺路由器與多個鏈路相連作爲十字路口,所以每一個接口對應一個IP地址作爲索引。
  27. IP地址中每一個字節可以代表一個分支,不同的分支構成了一顆四層的樹,而每一個分支可以看做一個小的子網,一般是最左邊最大,越往右越下層。子網中無需通過路由器就能夠物理上互相到達。
  28. 當子網掩碼爲20的時候,外界只需要知道他的前20位,即他能轉發到符合前20位的IP地址,而不需要關心後12位的具體內容,即不需要知道他能轉發到的具體地址。
  29. 動態主機配置協議DHCP:簡單地講,就是定義了一個ip地址池,其前綴與子網掩碼相同,後綴隨機進行分配。每當一個主機進入時,自動給予一個IP地址;當一個主機離開時,回收該IP地址。可分配IP地址範圍是:子網地址-廣播地址。
  30. 簡單地講,就是首先客戶機廣播發送發現報文,企圖發現服務器。在發現報文的傳播範圍內,所有的服務器產生迴應,廣播發送提供報文。在客戶機接收到不同的提供報文後,選擇最優併發送請求報文,基於參數,請求建立連接。然後服務器用ACK報文產生迴應,證實已收到參數。
  31. 網絡地址轉換NAT:即把內部私有網絡地址翻譯成合法網絡IP地址的技術。能夠改變本地網絡中的設備地址,而不必通知外部。本地網絡中的設備不顯式地可尋址、由外部所見 (增強安全性)。簡單地講,就是把一個家庭網絡的對外IP進行了改變。從本質上講,NAT使能路由器對外界隱藏了家庭網絡的細節。
  32. 全局式路由選擇算法:用完整的、全局性的網絡知識計算出從源到目的地之間的最低費用路徑。通常被稱作鏈路狀態LS算法。
  33. 分散式路由選擇算法:以迭代、分佈式的方式計算出最低費用路徑。
  34. 靜態路由選擇算法中,隨着時間的流逝,路由的變化是非常緩慢的,通常是人工干預進行調整(如人爲手工編輯一臺路由器的轉發表)
  35. 動態路由選擇算法能夠當網絡流量負載或拓撲發生變化時改變路由選擇路徑。一個動態算法可週期性地運行或直接響應拓撲或鏈路費用的變化而運行。
  36. 鏈路狀態路由選擇算法LS:網絡拓撲和所有的鏈路開銷都是已知的,是一種使用全局信息的、集中式的算法。實踐中通過讓每個節點向網絡中所有其他節點廣播鏈路狀態分組來完成,其中每個鏈路狀態分組包含它所連接的鏈路的標識和開銷。
  37. 振盪:當兩條路徑上的費用僅在兩條道路上的負載相等時才相等,則可能出現第一次LS算法,所有分組集中於其中一條路,第二次LS算法,所以分組集中於另一條路,第三次又回到第一條路,以此類推。
  38. 距離向量路由選擇算法DV:一種迭代的、異步的和分佈式的算法。當遇到路由選擇環路的時候可能會產生無窮計數的問題
  39. 互聯網按組織邊界劃分爲多個自治系統。每個自治系統由運行相同路由協議和路由選擇算法的路由器組成
  40. 在相同的 AS 中的路由器都全部運行同樣的路由選擇算法(如一種LS或DV算法),且擁有彼此的信息
  41. 簡單地講,RIP就是DV算法在因特網使用中的具體化。通過將每個子網之間的跳轉次數作爲費用,來計算費用向量,並得到RIP表指導路由選擇。
  42. 簡單地講,OSPF是LS算法在因特網使用中的具體化。通過不斷週期性的廣播得到整張圖的拓撲結構,然後根據dijkstra算法計算得到以路由器自身爲根節點的到所有子網的最短路徑。

第五章、鏈路層

  1. 鏈路層實現相鄰節點(同一網絡)之間的傳輸,未經過路由器。只要規範在同一個網絡之間的信息。即宏觀上每兩個相鄰節點(一條通信鏈路)之間的信息傳輸。物理尋址:在幀頭中增加發送端和/或接收端的物理地址表示數據幀的發送端和/或接收端。有流量控制(避免淹沒接收端)、差錯控制(檢測並重傳損壞或丟失幀,並避免重複幀)、訪問控制(在任意給定時刻決定哪個設備擁有鏈路控制使用權)
  2. 一個遊客好比一個數據報,每個運輸區段好比一條鏈路,每種運輸方式好比一種鏈路層協議,而旅行社好比一個路由選擇協議。
  3. 鏈路層提供的服務:即封裝成幀、輸入鏈路、鏈路傳輸、幀糾錯四步
  4. 鏈路層在何處實現:儘管大部分鏈路層是在硬件中實現的,但部分鏈路層是在運行於主機 CPU 上的軟件中實現的。鏈路層的軟件組件實現了高層鏈路層功能,如組裝鏈路層尋址信息和激活控制器硬件。在接收端,鏈路層軟件響應控制器中斷,處理差錯條件和將數據報向上傳遞給網絡層。所以,鏈路層是硬件和軟件的結合體,即此處是協議棧中軟件與硬件交接的地方
  5. 差錯檢測和糾正技術使接收方有時但並不總是檢測出已經出現的比特差錯。即使採用差錯檢測比特,也還是可能有未檢出比特差錯。即判定是否出錯,以及一定程度上的對錯誤進行改正。
  6. 檢錯碼:如果編碼集的漢明距離(任意編碼之間相差比特位的最小值)ds=r+1,則該差錯編碼可以檢測r位的差錯。例如,編碼集{0000,0101,1010,1111}的漢明距離 ds=2,可以100%檢測1比特差錯。
    這裏是0000與0101相差2,與1010相差2,與1111相差4,以此類推,得到最小的相差值爲2,所以當這四個四比特段中出現1比特的差錯,可以找出。
  7. 糾錯碼:如果編碼集的漢明距離ds=2r+1,則該差錯碼可以糾正r位的差錯。例如,編碼集{000000,010101,101010,111111}的漢明距離 ds=3,可以糾正 1 比特差錯,如 100010 糾正爲 101010。
    這裏是00000000與010101相差3,以此類推得到最小相差3,所以當這四個字節段中出現1比特的差錯,可以糾正。
  8. 奇偶校驗:簡單地講,如果字節中有奇數個1,則爲1,否則爲0(偶校驗)
  9. 單比特奇偶校驗的一種二維一般化方案:簡單地講,就是針對每一行每一列的奇偶校驗
  10. CRC循環冗餘檢測
    在這裏插入圖片描述
    以上圖爲例,給定的數據段D=101110,給定的G爲1001,然後用G對D的每一位進行異或操作,直到沒有餘數。圖中由於加入3比特後可以整除,所以r爲3,得到的R=011。即r=G-1,是G的位數-1。
  11. 點對點鏈路:由鏈路一端的單個發送方和鏈路另一端的單個接收方組成。很多鏈路層協議都是爲點對點鏈路涉及的,如點對點協議(PPP)和高級數據鏈路控制(HDLC)
  12. 廣播鏈路:能夠讓多個發送和接收結點都連接到相同的、單一的、共享的廣播信道上。這裏使用的“廣播”是因爲當任何一個結點傳輸一個幀時,信道廣播該幀,每個其他結點都收到一個副本。以太網和無線局域網是廣播鏈路層技術的例子。
  13. 簡單地講,就是一個是兩人交談,一個是一人演講,但這裏是不同的物理鏈路,而不是不同的方式。
  14. 多路訪問問題:如何協調多個發送和接收結點對一個共享廣播信道的訪問。簡單地講,就是如何把兩人式的網絡與廣播式的網絡連接起來。
  15. TDMA:“週期性”接入信道。每個站點在每個週期,佔用固定長度的時隙(長度=分組傳輸時間)。
  16. FDMA:信道頻譜劃分爲若干頻帶。每個站點分配一個固定的頻帶。無傳輸頻帶空閒。
  17. CDMA:對每個結點分配一種不同的編碼,然後每個結點用它唯一的編碼來對它發送的數據進行編碼。
  18. 即時間分段(流水交通)、頻率(信道)分段(多車道)和編碼分段(限號)。
  19. 隨機接入協議:信道不劃分,允許衝突,爲解決衝突採用衝突“恢復”機制。 即隨便發送,當阻塞或衝突的時候,隨機選擇其中一個停下,再進行傳輸。
  20. 時隙 ALOHA: 簡單地講,就是每隔一定時間,嘗試發送一個幀,如果沒有碰撞,則傳輸下一個;如果有碰撞,則在後續的時隙中,首先判斷是否重傳(概率p),直到該幀被傳輸成功。
  21. ALOHA 協議:簡單地講,就是將判斷是否重傳放在了發送新幀的後面。
  22. 載波偵聽多路訪問協議CSMA:簡單地講,就是等待信道空閒的時候爭奪信道資源。
  23. 具有碰撞檢測的載披偵聽多路訪問 (CSMA/CD):簡單地講,就是不再時時刻刻監聽信道資源,而是僅在想要發送幀的時候監聽信道,當信道空閒的時候,爭奪信道資源。
  24. CSMA/CD效率:假設T=LAN中兩個結點間的最大傳播延遲,t=最長幀傳輸延遲。效率=1/(1+5*T/t),當T接近於0或t趨近於無窮大時,效率趨近於1。
  25. 輪詢協議:主結點輪流“邀請”從屬結點發送數據,典型應用:“啞”從屬設備。問題:輪詢開銷、等待延遲、單點故障
  26. 令牌傳遞協議:該協議中無主結點。控制令牌一次從一個結點傳遞到寫一個結點,令牌指的是一個特殊幀。問題:令牌開銷、等待延遲、單點故障。
  27. 即一個是主節點(請求節點)不斷地依次詢問發送方,一個是有一個令牌,令牌不斷地在結點間傳輸。
  28. MAC地址:簡單地講,就是給路由器的每一個接口一個MAC地址,和IP地址很像,基本上一個IP地址對應於一個MAC地址?。
  29. 地址解析協議ARP:地址解析協議(ARP)的基本思想:在每一臺主機中設置專用內存區域,稱爲ARP高速緩存(也稱爲ARP表)。存儲該主機所在局域網中其他主機和路由器的IP地址與MAC地址的映射關係。
    地址解析協議(ARP)的基本步驟:
    • ARP查詢分組:通過一個廣播幀發送的
    • ARP響應分組:通過一個單播幀發送的
    • ARP是即插即用的:一個ARP表是自動建立的,不需要系統管理員來配置。
    即在每一臺主機中都有一個本地局域網的ARP表,通過這個表在已知主機IP地址的情況下可以得到局域網內其他主機或路由器的MAC地址。
  30. 在報文中,IP地址是目的主機的IP地址,但MAC地址並不是,是下一個跳轉路由器接口的MAC地址,而每到一個路由器,都會對MAC地址進行更新,直到最後一個路由器轉接點時,將MAC地址更新爲目的主機的MAC地址。所有的MAC地址都是通過ABP獲得的。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章