網絡基礎(概念/網絡協議/OSI七層模型/TCP/IP四(五)層模型)

目錄

計算機網絡

根據網絡覆蓋範圍的範圍分類

無線網絡

網絡協議

協議分層

OSI七層模型

TCP/IP四(五)層模型

數據包封裝和分用

網絡中的地址管理

認識IP地址

認識MAC地址


計算機網絡

在人們發明出了計算機之後, 並沒有隨之產生計算機網絡的概念, 在這段時間內, 人們只是獨立操作着一臺臺計算機, 並沒有實現各個計算機之間的信息交互. 隨着技術發展, 人們逐漸實現了計算機之間的通信, 數據處理, 傳輸與交換, 但也沒有計算機網絡的概念, 因爲它們之間有些情況下並沒有形成一個網絡, 而是一個從一端到另一端的通信系統. 而計算機網絡強調的是在網絡範圍內計算機資源共享, 是構建在計算機通信的基礎之上. 所以, 計算機網絡要具有互聯和共享的功能, 這就涉及三個方面的問題.

1. 兩臺或以上的計算機相互連接起來才能構成網絡, 達到資源共享的目的
2. 將兩臺或以上的計算機連接起來, 互相通信交換信息, 需要有一條通道. 這條通道的物理的, 由硬件實現, 這就是連接介質, 即可以是電纜, 光纖等 "有線" 介質, 也可以是各類電磁波, 如微波, 激光, 以及中國研究領先的量子通信等 "無線" 介質.
3.計算機之間要通信交換信息, 彼此就需要某些約定和規則, 這就是協議. (我們要學習的就是協議這一方面)

因此, 我們可以把計算機網絡定義爲: 把分佈在不同地點的且具有獨立功能的多個計算機, 通過通信設備和線路連接起來, 在功能完善的網絡軟件運行環境下, 以實現網絡功能共享爲目標的系統.

計算機網絡的組成

1. 終端系統

     終端系統由計算機, 終端控制器和計算機上所能提供共享的軟件資源和數據源 (如數據庫和應用程序) 構成.

2. 通信子網

    通信子網是有用作信息交換的網絡節點和通信線路組成的獨立的數據通信系統, 它承擔着全網的數據傳輸, 轉接, 加工和變換等通信處理工作. 網絡節點提供雙重作用: 它可以作終端系統的接口, 同時也可作爲對其他網絡節點的存儲轉發節點. 作爲網絡接口節點, 接口功能是按指定用戶的特定要求而編制的. 由於存儲轉發節點提供了交換功能, 故報文可在網絡中傳送到目的節點. 它同時由於網絡的其餘部分合作, 以避免擁塞並提高網絡資源的有效利用.

                                 


根據網絡覆蓋範圍的範圍分類

根據網絡覆蓋的地理範圍可以將計算機網絡分爲個人區域網, 局域網, 域域網, 廣域網 和 因特網

1. 個人區域網(Perdonal Area Network(PAN))

在個人工作區把使用的電子設備, 如手機,打印機等, 採用過無線技術連接起來的網絡, 作用範圍10m左右.

2. 局域網 (Local Area Network(LAN)) 

覆蓋範圍是地理位置上的某個區域, 如某所學校或某個企業, 把學校或企業內部的多個局域網互聯起來, 就構成了校園網或企業網. 目前局域網主要有以太網 (Ethernet) 和無線局域網 (Wireess Local Area Network (WLAN))等.

3. 域域網 (Metropolitan Area Network (MAN))

域域網一般來說實在一個城市, 但不在統一地理小區範圍內的計算機互聯. 連接距離可在10~100km, MAN與LAN相比距離更長, 連接的計算機數量更多. 在一個大型城市, 一個MAN網絡通常連接着多個LAN網 .

4. 廣域網 (Wide Area Network (WAN))

也稱之爲遠程網, 範圍比MAN更廣, 一般是在不同的城市之間的LAN或者MAN網絡互聯, 地理範圍乘客從幾百公里到幾千公里.因爲距離較遠, 信息衰減比較嚴重, 所以這種網絡一般是要租用專線, 通過IMP(接口信息處理)協議個傳輸介質連接起來, 構成網狀結構, 解決尋徑問題. 

5. 因特網 (Internet)

從地理範圍還是從網絡閨蜜來講, 因特網都是最大的一種網絡, 這種網絡最大的特點就是不定性, 整個網絡的拓撲時刻隨着網絡的接入在不斷地變化. 當一臺計算機連接到因特網上時, 該計算機就成了因特網的一部分, 一旦斷開與因特網的連接, 此計算機就不屬於因特網了 .

無線網絡

無線網絡與有線網絡最大的不同是傳輸介質不同. 無線通信時利用電磁波在空中傳播實現信息的交換. 與有線網累死, 也可以按網絡覆蓋的範圍大小, 將無線網劃分爲 : 無線個域網, 無線局域網, 無線域域網 和 無線廣域網 .


網絡協議

計算機之間的傳輸介質是光信號或電信號, 通過頻率和強弱來標識0 和 1這樣的信息, 想要傳遞各種不同的信息, 就需要約定好雙方的數據格式 .

問 : 是不是隻要通信的兩臺主機約定好協議就可以了?

答 : 不是的. 計算機生產廠家有很多, 操作系統有很多, 計算機的網絡硬件也有很多. 如何讓這些不同的計算機通信, 就需要有人站出來, 制定一個協議, 讓大家都來遵守, 這就是網絡協議

協議分層

網絡通信協議的特點是層次性, 可靠性和有效性. 

採用層次化方法的優點是: 各層之間相互獨立, 既不需要底層的結構, 只要知道是通過層間接口提供的服務; 靈活性好, 是指只要接口不變就不會因層的變化(甚至取消該層)而變化; 各層之間不影響; 有利於促進標準化.

                                    

如上圖中信件通信的過程, 這和我們網絡分層協議很是相似, 是一個層層封裝, 再層層分用的過程

OSI七層模型

七層模型,亦稱OSI(Open System Interconnection, 開放系統互聯)。參考模型是國際標準化組織(ISO)制定的一個用於計算機或通信系統間互聯的標準體系,一般稱爲OSI參考模型或七層模型

                               

  • 把網絡從邏輯上分爲七層, 每一層都有其性對應的物理設備, 比如路由器. 交換機等.
  • OSI七層模型是一種框架性的設計方法, 其最主要的功能是幫助不同類型的主機實現數據傳輸.
  • 最大優點是將服務, 接口和協議三個概念明確的區分開來.
  • 但問題是, 它即複雜又不實用, 所以我們按TCP/IP四(五)層模型來學習

TCP/IP四(五)層模型

TCP/IP是一組協議的代名詞, 它還包括許多協議, 組成了TCP/IP協議簇(或協議棧)

TCP/IP通訊協議採用了五層的結構, 每一層都呼叫它的下一層來完成自己的需求.

物理層我們考慮較少, 因此很多時候我們也稱TCP/IP四層模型

具體來看各層 :

應用層 : 負責應用程序間的數據溝通. 典型協議 : HTTP

QQ是一個應用程序, QQ之間的通信使用的協議就是QQ的協議. 應用程序是程序員編寫的, 因此應用層的協議也是程序員自己定義的

傳輸層 : 負責應用程序之間的數據傳輸. 典型協議 : TCP 和 UDP

QQ發送的數據保證是發給QQ的, 而不會被微信給接收.  引入概念: 端口. 傳輸層的協議都會包含有端口信息

網絡層 : 負責地址管理與路由選擇. 典型協議 : IP. 典型設備 : 路由器

在IP協議中, 通過IP地址來標識唯一主機, 並通過路由表的方式來規劃兩臺主機間數據傳輸路線.引入概念:IP地址. 網絡層的協議都會包含地址信息

數據鏈路層 :負責相鄰設備間的數據幀傳輸與識別. 典型協議: Ethernet(以太網協議). 典型設備 : 交換機 : 實現數據的交換轉發

定義瞭如何讓格式化數據以進行傳輸,以及如何讓控制對物理介質的訪問。這一層通常還提供錯誤檢測和糾正,以確保數據的可靠傳輸。引入概念 : MAC地址 : 網絡硬件(如網卡)的唯一標識

物理層 : 負責物理光電信號的傳輸 . 典型協議 : 以太網協議. 典型設備 : 集線器等


數據包封裝和分用

  • 不同的協議層對數據包有不同的稱謂, 在傳輸層叫做段(segment), 在網絡層叫數據包(datagram), 在鏈路層叫做幀(frame)
  • 應用層數據通過協議簇發到網絡上時, 每層協議都要加上一個數據首部(header), 稱之爲封裝.
  • 首部信息中包含一些類似於首部有多長, 載荷有多長, 上層協議是什麼等信息
  • 數據封裝成幀後發送到傳輸介質上, 到達目的主機後每層協議再解析掉相應的首部, 根據首部中描述的上層協議字段, 將數據交給對應的上層協議處理, 這個過程稱之爲分用.

以QQ聊天爲例, 簡單的看一下網絡通信中數據傳輸流程


網絡中的地址管理

認識IP地址

IP協議有兩個版本, IPv4和IPv6. 

  • IP地址是在IP協議中, 用來標識網絡中不同主機的IP.
  • 對於IPv4來說, IP地址是一個4字節, 32位的無符號整數.
  • 我們通常使用 "點分十進制" 的字符串標識IP地址, 例如192.168.0.1. 用點分割的每一個數字表示一個字節, 範圍0~ 255

其實IPv4的地址是不夠用的, 截止2020年03月18日, 全球人口總數爲75億多人, 我們每個人不止一臺上網設備, 一些企業機構則更多, 所以, iPv4的地址是不夠用的, 但人們還是有辦法緩解的. 具體爲 DHCP : 動態地址分配技術; NAT : 網絡地址轉換技術. 

但在2019年11月26日15時35分, 位於荷蘭阿姆斯特丹的IP地址管理機構正式宣佈, 全球43億(具體是2^32)個 IPV4網址已經全部分配完畢. 但也不慌, 人們也早就在進行IPv6的建設了, 如今已經投入使用. 

IPv6 : 128位也就是16字節, 2^128個ipv6地址, 目前來看, 我們是永遠也用不完的. 但IPv6不向前兼容IPv4.

網絡通信中的每條數據都必須包含兩條信息 : 源IP地址和目的IP地址 -- 即標識從哪來, 到哪去.


那麼當一臺主機接收到一條網絡數據後, 操作系統該如何知道這條網絡數據是哪個進程的呢?

我們說, 在操作系統中進程都有其唯一標識的進程的進程id, 那操作系統是不是可以用進程id來判斷需要哪個進程接收數據呢?

這是不可以的, 因爲進程id不是確定的, 就比如我們正在用QQ聊天, 當我們發送消息後, 我們在等待對方回消息. 這時我們關閉了QQ客戶端, 再重啓, 這樣的話, QQ接收消息的進程id可能已經變了, 那麼操作系統接受的消息數據, 就給不到QQ的進程. 所以我們不能用進程id來標識哪個進程接收數據, 這時就引入端口的概念. 

端口 : 在一臺主機上唯一標識一個進程, 當操作系統接收到一條數據能夠知道應該交給哪個進程處理.

          類型 : 無符號16位整數, 0~ 65536
          特性 : 一個端口只能被一個進程佔用, 一個進程可以使用多個端口

就上面例子來說, 當網絡中的數據根據IP找到目的主機後, 再根據端口號, 找到接收的進程, 就算進程退出後重啓, 進程id發生變化, 但端口號還是未變, 所以操作系統還是能知道這個網絡數據是要給哪個進程 .

所以網絡通信中的每條數據中除了要有源IP和目的IP外, 還要有源端口和目的端口.


認識MAC地址

  • MAC地址用來識別數據鏈路層中相連的節點;
  • 長度爲48位, 及6個字節. 一般用16進制數字加上冒號的形式來表示(例如: 08:00:27:03:fb:19)
  • 拿網卡來說, 一般在網卡出廠時就確定了, 不能修改. mac地址通常是唯一的(虛擬機中的mac地址不是真實的mac地址, 可能會衝突; 也有些網卡支持用戶配置mac地址).

相關博客 : 戳鏈接( ̄︶ ̄)↗ : Linux 網絡編程套接字(socket) (網絡字節序/UDP/TCP) 

 

 

 

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