日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

计算机网络 | 网络基础 :网络协议,协议分层,数据封装与分用,地址管理,字节序

發布時間:2024/4/11 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算机网络 | 网络基础 :网络协议,协议分层,数据封装与分用,地址管理,字节序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

    • 網絡協議
      • 網絡協議的概念
      • 網絡協議的組成
    • 協議分層
      • OSI七層模型
      • TCP/IP五層模型(四層模型)
    • 數據封裝與分用
      • 封裝
      • 分用
    • 地址管理
      • IP地址與端口
      • MAC地址
      • 網絡字節序與主機字節序


網絡協議

網絡協議的概念

協議,即是約定,是計算機網絡中進行數據交換而建立的規則、標準或約定的集合。

若是通信雙方的數據格式,傳輸方式,字符集不一樣,那么兩者之間很難進行通信,因為雙方都不認識對方的標準,要想傳遞不同的信息,雙方就得約定好一個協議,按照這個協議的規定,雙方統一好數據的格式,這樣就可以完成通信。打個比方,你在網上與一個日本網友交流,你講中文,他講日語,誰都聽不懂對方的語言。但是如果雙方約定好一起講英語,這樣兩者就可以進行正常的交流。


網絡協議的組成

網絡協議由三部分組成,語義,語法,時序。
1. 語義
語義是解釋控制信息每個部分的意義。它規定了需要發出何種控制信息,以及完成的動作與做出什么樣的響應。
(即要做什么)
2. 語法
語法是用戶數據與控制信息的結構與格式,以及數據出現的順序。(即要怎么做)
3. 時序
時序是對事件發生順序的詳細說明。(即做的順序)


協議分層

在網絡通信中,因為通信是個極為復雜的過程,它包含了很多步驟,各個步驟之間又存在著許多關聯。
所以為了將問題簡單化,按照服務、協議、接口等將復雜的通信劃分成層次結構,通過封裝的方式,將底層的實現封裝為接口提供給上層,上層也不關心底層的實現,只管去用。把原來的一個大問題,劃分為一個一個的小問題,每一層分工明確,形成標準化的結構。這樣不僅靈活性高,之間的耦合度也降低了,可維護性和實現的難度也得到了優化。

常見的層次模型有兩種,一種是OSI七層模型,一種是TCP/IP五層模型(四層模型)。

這里可以學習一下這篇文章,寫的非常好
TCP/IP四層模型和OSI七層模型的概念


OSI七層模型

  • OSI(Open System Interconnection,開放系統互連)七層網絡模型稱為開放式系統互聯參考模型, 是一個邏輯上的定義和規范**
  • OSI 七層模型是一種框架性的設計方法,其最主要的功能使就是幫助不同類型的主機實現數據傳輸; 它的最大優點是將服務、接口和協議這三個概念明確地區分開來,概念清楚,理論也比較完整. 通過七個層次化的結構模型使不同的系統不同的網絡之間實現可靠的通訊

OSI七層模型自上而下分別是:應用層、表示層、會話層、傳輸層、網絡層、數據鏈路層、物理層

應用層:網絡服務與最終用戶的一個接口
表示層:數據的表示、安全、壓縮
會話層:建立、管理、終止會話
傳輸層:負責進程之間的數據傳輸
網絡層:負責地址管理和路由選擇
數據鏈路層:負責相鄰設備之間的數據傳輸
物理層:負責物理光電信號的傳輸

但是這種模型既復雜又不實用,因為他把功能相近的應用層,表示層和會話層分開實現,所以現在大部分都使用將這三層合為一體的TCP/IP五層模型。


TCP/IP五層模型(四層模型)

物理層一般考慮較少,有時候也會稱為四層模型

TCP/IP是一組協議的代名詞,它還包括許多協議,組成了TCP/IP協議簇.
TCP/IP通訊協議采用了5層的層級結構,每一層都呼叫它的下一層所提供的網絡來完成自己的需求

這也是如今常用的分層模型


在TCP/IP五層模型中,他將功能相近的應用層,表示層和會話層合并為應用層。

應用層:負責應用程序之間的數據溝通 ——(常用協議:HTTP、FTP、DNS、DHCP)
傳輸層:負責進程之間的數據傳輸 ——(常用協議:TCP、UDP)
網絡層:負責終端節點之間的通信(點對點),具體包括地址管理和路由選擇等 ——(常用協議與設備:IP、ICMP、IGMP、路由器)
數據鏈路層:負責相鄰設備之間的數據傳輸 ——(常用協議與設備:以太網協議、交換機)
物理層:負責物理光電信號的傳輸 ——(常用協議與設備:以太網協議、集線器)


數據封裝與分用

數據包利用網絡在不同設備之間傳輸時,為了可靠和準確地發送到目的地,并且高效地利用傳輸資源(傳輸設備和傳輸線路),事先要對數據包進行拆分和打包,在所發送的數據包上附加上目標地址,本地地址,以及一些用于糾錯的字節,安全性和可靠性較高時,還要進行加密處理等等。這些操作就叫數據封裝。而對數據包進行處理時通信雙方所遵循和協商好的規則就是協議。與郵寄物品相比,數據包本身就如同物品,而封裝就如同填寫各種郵寄信息,協議就是如何填寫信息的規定。

  • 不同的協議層對數據包有不同的稱謂,在傳輸層叫做段(segment),在網絡層叫做數據報 (datagram),在鏈 路層叫做幀(frame)
  • 應用層數據通過協議棧發到網絡上時,每層協議都要加上一個數據首部(header),稱為封裝 (Encapsulation)
  • 首部信息中包含了一些類似于首部有多長, 載荷(payload)有多長, 上層協議是什么等信息
  • 數據封裝成幀后發到傳輸介質上,到達目的主機后每層協議再剝掉相應的首部, 根據首部中的 “上層協議 字段” 將數據交給對應的上層協議處理

封裝

這里我就簡要的畫一個圖

1.用戶信息轉換為數據,以便在網絡上傳輸
2.數據轉換為數據段,并在發送方和接收方主機之間建立一條可靠的連接
3.數據段轉換為數據包或數據報,并在報頭中放上邏輯地址,這樣每一個數據包都可以通過互聯網絡進行傳輸
4.數據包或數據報轉換為幀,以便在本地網絡中傳輸。在本地網段上,使用硬件地址唯一標識每一臺主機。
5.幀轉換為比特流,并采用數字編碼和時鐘方案


分用

同樣也是畫一個圖

分用很簡單,就是按照直接封裝的順序,將封裝的首部和尾部去掉,恢復成原來的數據。其實就是封裝的反操作,又稱為解封裝


地址管理

在網絡通信中,每臺通信的主機之間都應該有屬于自己的標志,就如同名字一樣,只有擁有這種標志,才能夠進行交流。就好比你想要在茫茫人海中找到一個人,就得知道他的名字,才能找到這個人。
而在網絡通信中,也不例外。


IP地址與端口

IP地址
IP地址就是網絡中主機的唯一標識,無論哪個主機與哪個主機之間進行通信,都需要用到IP地址來進行定位。并且在通信時,每條數據中都會包含源端地址和對端地址,他們指定了通信的兩個對象
對于我們常用的IPV4來說,IP地址是一個uint32_t類型的數據,也就是無符號32位的整數。
我們通常也采用點分十進制的字符串來表示IP地址,如192.168.0.1。每一個字節的范圍是0-255

端口號:
端口號則是主機上進程的唯一標識,在編寫程序時,需要告知計算機應該處理發往哪個端口的數據。
一個端口只能被一個進程占用,但是一個進程可以同時使用多個端口。 并且在通信時,每條數據也都會包含源端端口和對端端口,來指定從哪個進程發送數據,交給哪個進程進行處理
端口號是uint16_t,也就是無符號16位的整數。


MAC地址

MAC地址用來識別數據鏈路層中相連的節點,通常也可以認為是物理地址。在網卡出廠時就確定了, 不能被修改,mac地址通常是唯一的。
MAC地址由48位組成,一般是16進制數字加上分割符:,如08:00:27:03:fb:19。


網絡字節序與主機字節序

在網絡通信時,還需要注意字節序的問題。
字節序就是CPU對數據再內存中以字節為單位的存取順序也就是我們通常所說的大端小端問題。
關于大小端的問題我之前有寫過一篇博客
大端小端存儲解析

這里就簡要說一下
大端存儲模式:是指數據的低位保存在內存的高地址中,而數據的高位,保存在內存的低地址中。
小端存儲模式:是指數據的低位保存在內存的低地址中,而數據的高位,保存在內存的高地址中。

在網絡通信中,網絡字節序采用大端的存儲模式,而主機字節序根據主機不同也不一樣,我們現在的家用機一般都是小端,但網絡上的通信不能確保主機字節序的唯一性,因為受眾是整個網絡,而一旦通信的雙方主機字節序不同,就會造成通信時的數據二義,所以需要確保字節序相同,就需要在通信時將主機字節序轉換為通用的網絡字節序。

總結

以上是生活随笔為你收集整理的计算机网络 | 网络基础 :网络协议,协议分层,数据封装与分用,地址管理,字节序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。