《網絡協議從入門到底層原理》筆記(一)基本概念、通信基礎

第一章 前言

網絡協議

數據是如何從一個設備傳遞到另一個設備的?
答:網絡協議

互聯網、移動互聯網、物聯網,都離不開網絡協議:

  • 最熟悉的網絡協議:HTTP
  • 爲了滿足各種需求,有各式各樣的網絡協議(HTTPS、SMTP、MQTT、RTMP等)

網絡協議方面的面試題目近年來要求提高了:

  •  TCP和UDP的區別?說一下它們的報文格式?
  •  TCP的流量控制和和擁塞控制?TCP如何實現可靠性傳輸?
  •  爲什麼連接是3次握手,關閉是4次揮手?
  •  7層模型與4層模型的區別?每一層的作用是什麼?
  •   交換機與路由器的區別?

客戶端—服務器

跨平臺的原理

Java跨平臺的原理:

 解釋型語言跨平臺的原理與 Java 類似:例如 JavaScript,甚至不需要經過編譯,有瀏覽器即可解析。


 

C++跨平臺的原理:使用平臺相關的編譯器生成對應平臺的可執行文件

網絡互連模型(OSI參考模型)

什麼是協議?爲什麼要有協議?

    協議就是通用的標準。
    如果沒有一個國際通用的標準,那麼各大公司按照自己的標準來,相互之間的交互就會很麻煩。比如我編寫的代碼在微軟的服務器可以運行,但是要在蘋果的服務器運行又需要重新編寫…

爲了更好地促進互聯網絡的研究和發展,國際標準化組織 ISO 在 1985 年制定了網絡互連模型 OSI 參考模型(Open System Interconnect Reference Model),具有7層結構。

實際上 OSI參考模型(7層) 更偏理論,而 TCP/IP 協議(4層) 在纔是在實際中使用的協議,而爲了研究和學習計算機網絡,又常將之劃分爲 5層。

 

 請求過程:不管什麼協議都是經過下列的 包裝 + 解包 的過程。

網絡分層

第二章 通信基礎

1、需要得知對方的 IP地址

2、最終是根據 MAC地址(網卡地址),輸送數據到網卡,被網卡接收

  • 如果網卡發現數據的目標MAC地址是自己,就會將數據傳遞給上一層進行處理
  • 如果網卡發現數據的目標MAC地址不是自己,就會將數據丟棄,不會傳遞給上一層

網線直連

需要用 交叉線(不是直通線)

  • ping命令使用的是ICMP協議,前提是需要知道對方的ip地址,最終是根據MAC地址輸送數據到網卡,被網卡接收。
  • 當不知道對方MAC地址時,使用ARP協議,進行廣播。ARP協議的作用:已知 IP地址,通過 廣播 獲取 MAC地址。
  • 廣播只在同一個網段中傳播,目的是獲取MAC地址,給所有連接設備發廣播,詢問對應ip地址下的MAC地址。
  • ARP協議的廣播中,目標MAC地址爲FFFF.FFFF.FFFF。即16進制MAC地址,換算二進制全是1。
  • 全是1的MAC地址,代表廣播,表示在同一個網段的所有連接設備都能接收。
  • ARP協議是有緩存的,當下次在ping的時候,就不需要再去獲取ip地址了,而是直接執行ICMP協議。

地址解析協議,即ARP(Address Resolution Protocol),是根據IP地址獲取物理地址的一個TCP/IP協議

ICMP(Internet Control Message Protocol)Internet控制報文協議。它是TCP/IP協議簇的一個子協議,用於在IP主機路由器之間傳遞控制消息。

爲什麼下邊出現3個ARP包,實際上是 一次完整的發送請求,接收響應的過程

同軸電纜(Coaxial)

  • 半雙工通信
    • 同一時間,單向通信
  • 容易衝突
    • 電纜兩個方向同時有數據匯入時,會發生衝突。
  • 不安全
    • 數據不會單向走入對應的計算機,而是向所有設備發送數據。
  • 中間斷了, 整個就癱了
    • 失去了終止電阻

集線器(Hub)

集線器相比同軸電纜唯一的優點就是:哪怕連着集線器的某一個設備中間線路出問題,不會影響到連着集線器的其他設備。

  • 優點:
    • 某兩條線路發生衝突,其他線路任可通信
  • 缺點:
    • 如果連接了1000臺設備, ARP協議就會發送1000條數據。即使知道對方MAC地址,發送數據仍然需要同時發送給1000臺設備。
    • 半雙工通信
    • 容易衝突
    • 不安全

網橋(Bridge)

 能夠通過自學習得知每個結構那側的MAC地址,從而起到隔絕衝突域的作用。

  • 通過MAC地址表
  • 當數據通過網橋MAC地址表確定目標MAC地址不在另一側時,就不會繼續向另一側發送數據了。
  • 如果左右兩側數據可以被網橋分隔,那麼左右兩側可以同時進行通信。

例如,6向7發數據包,
當6發出請求ARP廣播時,網橋會記錄6的MAC地址在左;
當7發出響應ARP廣播時,網橋會記錄7的MAC地址在左。

交換機(Switch)

  • 相當於接口更多的網橋全雙工通信,雙向通信
    • 學習能力,能記住每個接口對應的MAC地址
  • 比集線器安全
  • 區域網最終方案

全球所有設備都用交換機連接會是什麼情況?

  • 他們必然處於同一網段(交換機上連接的主機要求是同一網段),因此 IP地址可能會不夠用
  • 即使使用交換機,第一次發送數據包仍然需要ARP廣播,耗費大量時間。
  • 形成廣播風暴,只要有一個設備發送ARP廣播,全球設備都能收到

路由器(Router)

可以在不同網段之間轉發數據

  • 隔絕廣播域

不同網段之間的廣播是發不過去的

不同網段如何通信?

主機發數據之前先判斷目標IP地址與主機是否在相同網段
  • 在同一個網段,發送ARP,通過交換機集線器傳遞數據。
  • 不在同一個網段
    • 主機先發送ARP到路由器網關,確定網關MAC地址
    • 主機發送數據給網關網關再決定出口是哪個網關
    • 出口網關發送ARP,以確認接收方MAC地址
    • 最後出口網關將數據發送給接收方。

總結

  • 網線直連, 同軸電纜, 集線器, 網橋, 交換機
    • 連接的設備必須在同一網段
    • 連接的設備處在同一廣播域
  • 路由器
    • 可以在不同網段之間轉發數據
    • 隔絕廣播域
      • 不同網段之間的廣播是發不過去的
  • 主機發數據之前, 首先會判斷目標主機的ip地址跟它是否在同一個網段
    • 在同一個網段: ARP
    • 不在同一個網段: 通過路由器轉發數據


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