Java基礎(34)——網絡編程相關知識詳解及示例分析一(計算機網絡基礎知識及ISO/OSI網絡參考模型)

Java基礎(34)——網絡編程相關知識詳解及示例分析一(計算機網絡基礎知識及ISO/OSI網絡參考模型)


版權聲明

  • 本文原創作者:清風不渡
  • 博客地址:https://blog.csdn.net/WXKKang

一、計算機網絡

1、計算機網絡

  把分佈在不同地理區域的計算機與專門的外部設備,用通信線路互連成一個規模大、功能強的網絡,使衆多的計算機可以方便地互相傳遞信息,共享硬件、軟件、數據信息等資源
  網絡中主要設備有計算機、路由器、交換機等等。路由器和交換機組成了核心的計算機網絡,計算機只是這個網絡上的節點

2、網絡通信協議

  計算機網絡中實現通信必須有一些約定,即通信協議,對速率、傳輸代碼、代碼結構、傳輸控制步驟、出錯控制等制定標準,而這個標準即所謂的網絡通信協議

3、ISO/OSI網絡參考模型

  ISO/OSI網絡七層模型是一個開放性的通信系統互連參考模型,它是網絡通信協議的國際標準

(1)模型背景

  OSI參考模型(Open System Interconnect)是ISO (國際標準化組織)組織在1985年研究的開放系統互連參考模型,定義了網絡互連的七層框架(物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層和應用層)
  在這個框架中詳細規定了每一層的功能,以實現開放系統環境中的互連性、互操作性和應用的可移植性

(2)參考模型

  ISO/OSI網絡參考模型則包括七個層次:應用層、表示層、會話層、傳輸層、網絡層、鏈路層、物理層,如下圖:
在這裏插入圖片描述
  1、物理層(Physical Layer)
  物理層是OSI參考模型的最低層,它利用傳輸介質爲數據鏈路層提供物理連接。它主要關心的是通過物理鏈路從一個節點向另一個節點傳送比特流,物理鏈路可能是銅線、衛星、微波或其他的通訊媒介
  它關心的問題有:多少伏電壓代表1?多少伏電壓代表0?時鐘速率是多少?採用全雙工還是半雙工傳輸?總的來說物理層關心的是鏈路的機械、電氣、功能和規程特性

  2、數據鏈路層(Data Link Layer)
  數據鏈路層是爲網絡層提供服務的,解決兩個相鄰結點之間的通信問題,傳送的協議數據單元稱爲數據幀。數據幀中包含物理地址(又稱MAC地址)、控制碼、數據及校驗碼等信息
  該層的主要作用是通過校驗、確認和反饋重發等手段,將不可靠的物理鏈路轉換成對網絡層來說無差錯的數據鏈路
  此外,數據鏈路層還要協調收發雙方的數據傳輸速率,即進行流量控制,以防止接收方因來不及處理髮送方來的高速數據而導致緩衝器溢出及線路阻塞

  3、網絡層(Network Layer)
  網絡層是爲傳輸層提供服務的,傳送的協議數據單元稱爲數據包或分組。該層的主要作用是解決如何使數據包通過各結點傳送的問題,即通過路徑選擇算法(路由)將數據包送到目的地
  爲避免通信子網中出現過多的數據包而造成網絡阻塞,需要對流入的數據包數量進行控制(擁塞控制)。當數據包要跨越多個通信子網才能到達目的地時,還要解決網際互連的問題

  4、傳輸層(Transport Layer)
  傳輸層的作用是爲上層協議提供端到端的可靠和透明的數據傳輸服務,包括處理差錯控制和流量控制等問題。該層向高層屏蔽了下層數據通信的細節,使高層用戶看到的只是在兩個傳輸實體間的一-條主機到主機的、可由用戶控制和設定的、可靠的數據通路
  傳輸層傳送的協議數據單元稱爲段或報文

  5、會話層(Session Layer)
  會話層主要功能是管理和協調不同主機上各種進程之間的通信(對話),即負責建立、管理和終止應用程序之間的會話
  會話層得名的原因是它很類似於兩個實體間的會話概念。例如,一個交互的用戶會話以登錄到計算機開始,以註銷結束

  6、表示層(Presentation Layer)
  表示層處理流經結點的數據編碼的表示方式問題,以保證一個系統應用層發出的信息可被另一系統的應用層讀出。如果必要,該層可提供一種標準表示形式,用於將計算機內部的多種數據表示格式轉換成網絡通信中採用的標準表示形式
  數據壓縮和加密也是表示層可提供的轉換功能之一

  7、應用層(Application Layer)
  應用層是OSI參考模型的最高層,是用戶與網絡的接口。該層通過應用程序來完成網絡用戶的應用需求,如文件傳輸、收發電子郵件等

(3)數據封裝過程

  1、數據封裝單元
  每層封裝後的數據單元的叫法不同:
  在應用層、表示層、會話層的協議數據單元統稱爲data ( 數據)
  在傳輸層協議數據單元稱爲segment(數據段)
  在網絡層稱爲packet (數據包)
  數據鏈路層協議數據單元稱爲frame(數據幀)
  在物理層叫做bits (比特流)

  2、數據發送過程(封裝)
  OSI參考模型中每個層次接收到上層傳遞過來的數據後都要將本層次的控制信息加入數據單元的頭部,一些層次還要將校驗和等信息附加到數據單元的尾部,這個過程叫做封裝

  3、數據接收過程(解封)
  當數據到達接收端時,每一層讀取相應的控制信息根據控制信息中的內容向.上層傳遞數據單元,在向上層傳遞之前去掉本層的控制頭部信息和尾部信息(如果有的話)。此過程叫做解封裝
  這個過程逐層執行直至將對端應用層產生的數據發送給本端的相應的應用進程。它和前面的封裝過程是剛好相反的

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