計算機網絡查漏補缺

這篇文章相對來說就是自己複習總結了,可能知識點就不是特別成體系,想到哪補哪吧。

  • 協議相關

  • 應用層協議
  1. HTTP/HTTPS協議:前者佔用的80端口,後者是443端口;後者採用SSL(安全套接字層),以及加密算法/證書來保護安全性,相對來說在傳輸上花費的時間更長。SSL能用於所有基於TCP的應用上,因此二者都採用了TCP作爲支撐。 
  2. SMTP協議:(1)端口號:25 (2)用途:7位ASCII碼,用於郵件傳輸 (3)SMTP協議是一個推協議,即專注於傳輸,而取回郵件需要靠POP3(第三版郵局協議-Post Office Protocol-Version 3)
  3. FTP協議: (1)端口號:21  (2)用途:文件傳輸 (3)特點:帶外傳輸,即有兩條並行的TCP連接,一條是控制連接用於傳輸在主機間傳輸控制信息;另一條是數據連接,用於實際傳輸一個文件的數據信息。
  4. HTTP協議: (1)HTTP還是一個無狀態協議。 (2)可以選擇持續連接和非持續連接;持續連接可以一個接一個的發送請求而不必等待回答。 (3)是帶內控制協議,因爲它不像FTP有一條獨立的控制連接用於傳輸控制信息。 (4)HTTP是拉協議
  5. HTTPS建立過程:1)客戶端發起 https 請求(就是用戶在瀏覽器裏輸入一個 https 網址,然後連接到 server的 443 端口)   2)服務端的配置(採用 https 協議的服務器必須要有一塔數字證書,可以自己製作,也可以向組織申請,這套證書就是一對公鑰和私鑰)。    3)傳輸證書(這個證書就是公鑰,只是包含了很多信息)      4)客戶端解析證書(由客戶端 tls 完成,首先驗證公鑰是否有效,若發現異常,則彈出一個警示框,提示證書存在問題,若無問題,則生成一個隨機值,然後用證書對隨機值進行加密)    5)傳輸加密信息(這裏傳輸的是加密後的隨機值,目的是讓服務端得到這個隨機值,以後客戶端和服務端的通信就可以通過這個隨機值來進行加密了)      6)服務端解密信息(服務端用私鑰解密後得到了客戶端傳來的隨機值,then 把內容通過該值進行對稱加密。所謂對稱加密就是,將信息和私鑰通過某種算法混在一起,這樣除非知道私鑰,不然無法獲取內容,而正好客戶端和服務端都知道這個私鑰,所以只要加密算法夠彪悍,私鑰夠複雜,數據就夠安全)     7)傳輸加密的信息8)客戶端解密信息,用隨機數來解。

  • 傳輸層協議

  • TCP協議和UDP協議的區別
  1. TCP提供可靠傳輸服務;UDP不提供不必要的服務
  2. TCP提供吞吐量(最小傳輸帶寬)/定時服務(遊戲方面),流控制(即發送方不會淹沒接收方)
  3. 安全性,如前面提到的SSL,就是運行在TCP上面的。
  4. TCP報頭固定長度爲20字節,UDP報頭爲8字節(源/目的端口號、長度、檢驗和)
  5. TCP提供流量控制,通過滑動窗口協議對雙方維護一個接收窗口,使得發送方同時發送的分組數量受限於窗口 大小,而窗口大小受限於接收方緩存大小;這種傳遞依賴關係使得發送方不會淹沒接收方。
  6. TCP提供擁塞控制,是端到端擁塞控制。有兩個主要版本Tahoe/Reno;共同點是它們在遇到超時的情況下都是將窗口大小置爲1,閾值置爲1/2;區別是Reno在冗餘ACK的情況下,將窗口大小置爲窗口大小的一半+3MSS,即CWND=SSh/2+3mss。
  7. UDP提供差錯檢驗但不提供差錯恢復。
  8. 傳輸層是端到端傳輸,即比如我上百度,是我的端系統(主機),到百度服務器之一的端,忽略了中途經過的其他路由啊,CDN啥的,是一種邏輯抽象。端到端是建立在網絡層點到點上面的。

  • TCP協議三次握手
  1. 爲啥不是兩次?TCP是可靠傳輸,而且是全雙工的。兩次只能保證客戶端到服務端是通的,但不能保證服務端到客戶端是可靠的。形象化就是:客戶端:你好了沒;服務端:我好了,你好了沒。——此時客戶端因爲只有兩次握手,所以不會應答,則不能保證是通的。
  2. 爲啥不是四次? 因爲三次就能保證,在兩次的基礎上是全雙工而且是可靠的,多來一次純屬浪費- -
  3. ACK和Seq,ACK是確認號,發過去就是下一次握手Seq號,同時也是上一次傳過來的Seq+1;Seq=ACK。
  • TCP協議四次揮手:
  1. 同樣的,因爲是全雙工,所以要兩條路徑的傳輸都關閉;客戶機和服務機都可以提出關閉請求。
  2. 開始是一方提出關閉,發出Fin,另一方回傳ack,表示收到關閉請求,這時候發送方到接收方的路徑已經關閉不再傳輸資源;這已經是兩次握手了。接下來是繼續由接收方傳送未傳輸完的數據,在傳輸完成後,接收方向發送方發出FIN,表示我這裏傳完了;發送方發出ACK,表示收到,並會定時等待2個MSS(最大報文長度)的時間,到時間後如果沒有重傳要求,那麼TCP連接就在經歷四次握手後順利關閉。
  3. 定時關閉:爲什麼要等待2個MSS?因爲TCP有差錯恢復,就是回退N步和選擇重傳的結合;一個MSS是最壞情況(超時),那麼重新發送;這一來一回就需要兩個MSS保證ACK被對方正確收到,這樣才能完全關閉。
  • 網絡層協議
  1. 主要就是和IP相關的,比如IP/IPX/ICMP等等。。。
  2. IP協議:盡力而爲的服務,實際上還是不可靠的。
  3. 子網劃分:這個基本都是一些計算題,就不單列出來了。有幾個子網,看向主機位借了幾位,比如是一個C類地址,/28,那就是28-24=4位,借來了4位主機位;子網=2^4=16個子網,主機數=256/16-2=14個主機地址(廣播不能用)。
  4. NAT協議,從私有地址轉換爲公網地址;DHCP動態主機配置,這個不用多說。
  5. ICMP,控制報文協議,主要用於差錯報告和回顯請求。
  • 鏈路層協議
  1. MAC協議:注意以太網幀是含有目的MAC地址的
  2. 多路訪問協議:(1)信道劃分協議 (2)隨機接入協議 (3)輪流協議
  3. 信道劃分協議:(1)頻分多路複用 (2)時分多路複用 (3)CDMA 碼分多址 信道劃分協議的前兩者的缺點是:受限於R/N的平均速率,還有就是假設多個節點中僅有少量一兩個節點需要傳輸分組,表現很差。  優點:避免了衝突碰撞
  4. 隨機接入協議:(1)純ALOHA協議 (2)時隙ALOHA (3)載波偵聽 CSMA (4)帶碰撞檢測的載波偵聽 (CSMA/CD)最常用  優點:單點通信效果好,多了就效率下降。
  5. 時隙ALOHA和純ALOHA的區別:(1)純ALOHA是有幀就傳,碰撞就重傳,說白了就剛。 (2)時隙ALOHA比較文雅,有幀先不急着傳,等下一幀開始傳;如果下一幀沒有碰撞,就成功傳出去;否則繼續等待下一幀,以概率p進行重傳。  (3)共同點:對信道劃分協議不擅長的——單點通信情況表現良好。
  6. CSMA/CD:特點,更加文雅,傳之前先偵聽信道,有沒有要傳的,沒有的情況再傳。如果傳到一半,發現誒,有其他人要傳,立即停止傳輸。
  7. 輪流協議:(1)輪詢協議  (2)令牌傳遞協議
  8. 輪詢協議:指定一個爲主節點,由主節點輪詢其他節點,它能傳輸的最大幀數量。消除了隨機接入協議的碰撞和空時隙;缺點是如果出現主節點單點故障,全部拉閘,還有就是單點通信性能不行。
  9. 令牌協議:誰拿到令牌(虎符),誰就能調兵遣將。

  • 算法相關

  • 可靠傳輸RDT3.0流水線協議:
  1. 流水線差錯恢復兩種基本方法:回退N步和選擇重傳
  2. 個人覺得這種區別有些像串中的普通解法和KMP算法的區別,一個是會回溯,另外一個是會利用已知條件,總是在增長。
  3. 回退N步:又被稱爲“滑動窗口協議”,即限制已發送和未發送的分組數量爲N,原因之一是TCP還提供流量控制,發送方不會淹沒接收方。 從失序後的分組全部會被丟棄並重新發送。
  4. 選擇重傳:並不是萬金油,如果窗口長度太大,在某些失序情況下,不能判斷究竟是重傳還是後面分組的初次傳輸。
  5. TCP採用的是回退N步和選擇重傳的混合。
  6. 觸發重傳有兩種可能:超時、觸發三個冗餘ACK;前者性質更惡劣一些。
  • 擁塞控制原理
  1. 擁塞控制有兩種方法:端到端擁塞控制、網絡輔助的擁塞控制(異步傳輸方式ATM中的可用比特率(ABR))

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章