1. 程式人生 > 其它 >資料通訊與網路技術之TCP/IP(上)

資料通訊與網路技術之TCP/IP(上)

資料通訊與網路技術之TCP/IP

前言

為了使全球範圍內的計算機可以進行開放式通訊,國際標準化組織(International Organization for Standardization,ISO)制定了實現網路互連的一個參考模型,即開放系統互連參考模型(Open System Internetwork Reference Model,OSI/RM)。該模型(體系結構標準)定義了網路互連的七層框架,即物理層、資料鏈路層、網路層、傳輸層、會話層、表示層和應用層。

網路模型 是對於網路互聯及其功能的的一個抽象概況。
他有兩種網路模型:
1) OSI參考模型 七層
應用層 表示層 會話層 傳輸層 網路層 資料鏈路層 物理層
2)TCP/IP協議模型(協議棧 ,協議簇) 四層
應用層 傳輸層 網路層 網路介面層
網路體系結構:網路模型各分層結構及各層協議的集合。

本文目標:

  • 理解計算機通訊為什麼需要協議。
  • 瞭解協議需要明確的要素。
  • 掌握TCP/IP協議分層和OSI參考模型。
  • 能夠使用抓包工具分析計算機通訊協議工作過程。
  • 掌握TCP/IP協議棧每一層實現功能。
  • 瞭解TCP/IP協議棧每一層包含的協議。

一、通訊基礎

1.網路通訊基本概念

何為通訊?通訊是指人與人,人與物...之間通過某種媒介和行為進行的資訊傳遞與交流。
網路通訊:終端裝置通過計算機網路進行資料傳遞的過程。

2.資訊傳遞過程:

基於網路模型通訊的過程:
源-資料封裝-轉發-解封裝-接收

封裝:資料在傳遞中基於網路模型的各層對資料進行的處理,即加入了一些控制資訊的過程,即為封裝。(資料形式發生了變化,這種變化就是在網路模型各層協議的作用下完成的,從形式上是資料前面不斷加上了各層的控制資訊)

3.通訊系統模型

信源-資訊-編碼-訊號-通道-訊號-解碼-信宿

通訊系統是指通訊中所需要的一切技術裝置和傳輸介質構成的總體。資訊在進入通道時通過傳送變換器變換為適合通道傳輸的形式,在進入信宿時通過接收變換器變換為適合信宿接收的形式。

4.通訊方式(從通訊過程的不同角度來進行分類)

1.單工、半雙工、全雙工傳輸(資料通訊雙方是否能實現雙向通訊及如何實現雙向通訊)

2.非同步、同步(資料通訊中採用的同步技術不同)

注意:有兩個區別點:
1)是否採用統一的主控時鐘
2)傳輸間隔是否固定
非同步傳輸如何讓接收方來明確接收呢?採用起止標誌!(開始傳輸及傳輸結束的標誌)

3 序列、並行傳輸(資料通訊中資料位的傳輸模式)

4 基帶、頻帶傳輸(傳輸訊號是否調製)

注意:
基帶:數字裝置產生的資料直接傳輸不經過任何調製。(數字訊號)
頻帶:數字裝置產生的資料經過調製(DA轉換 digital-analog)成為寬頻模擬訊號來傳輸。(模擬傳輸)

4 單播、組播、廣播傳輸(根據接收範圍)

注意:
區別就在於接收端的地址(是確定獨立的目的地址、組播地址還是廣播地址)

計算機網路中主要採用全雙工通訊、序列通訊、非同步傳輸,區域網中採用基帶傳輸,遠距離傳輸一般採用頻帶傳輸。

5.通訊規則

通訊規則的主要元素:

  • 標識出發送方和接收方
  • 雙方一致同意的通訊方法(面對面、電話、信件、照片)
  • 通用語言和語法
  • 傳遞的速度和時間
  • 證實或確認要求

二、協議概述

1.協議簡介

協議:通訊規則的集合,用於規範通訊過程。

協議三要素: 語法、語義、時序

例:IP首部(下圖是IP協議定義的需要填寫的表格也就是IPv4首部)

2.協議分層

1.
TCP/IPv4協議棧是目前結構最完整、使用最廣泛的通訊協議;以TCP/IP協議為例(四層結構),注意分層的協議(協議分層實現可以將複雜功能分解,每一層功能由相應層次協議完成)

2.
計算機通訊使用的協議按功能分層,分為:

應用層、傳輸層、網路層和資料鏈路層

  • 應用層協議的甲方、乙方是伺服器端程式和客戶端程式,實現應用程式的功能。

  • 傳輸層協議的甲方、乙方分別位於通訊的兩個計算機中,TCP為應用層協議實現可靠傳輸,UDP為應用層協議提供報文轉發服務。

  • 網路層協議中的IP為資料包跨網段轉發選擇路徑,IP是多方協議,包括通訊的兩臺計算機和沿途經過的路由器。

  • 資料鏈路層負責將網路層的資料包從鏈路的一端傳送到另一端,同一鏈路上的裝置是資料鏈路層協議的對等實體,資料鏈路層協議的作用範圍是一段鏈路,不同型別的鏈路有不同的資料鏈路層協議。

3.
協議分層優點:

(1)各層之間是獨立的。某一層並不需要知道它的下一層如何實現,而僅需知道該層通過層間介面所提供的服務。上層對下層來說就是要處理的資料。

(2)靈活性好。每一層有所改進和變化,不會影響其他層。

(3)各層都可以採用最合適的技術來實現。比如適合佈線的就使用雙絞線連線網路,有障礙物的就使用無線覆蓋。

(4)促進標準化工作。路由器實現網路層功能,交換機實現資料鏈路層功能,不同廠家的路由器和交換機能夠相互連線實現計算機通訊,就是因為有了網路層標準和資料鏈路層標準。

(5)分層後有助於將複雜的計算機通訊問題拆分成多個簡單的問題,有助於排除網路故障。

3.OSI七層模型與TCP/IP協議模型

a. OSI七層模型


--OSI參考模型(ISO提出的一種網路分層模型)

層次結構(七層)

應用層: 網路的服務(不同的服務由不同應用程式在具體應用協議下實現)

應用層協議用於實現應用程式的功能,將實現方法標準化就可以形成應用層協議。網際網路中的應用有很多,比如訪問網站、收發電子郵件、訪問檔案伺服器等,因此,應用層協議也很多。

應用層協議應該包含的內容有客戶端能夠向伺服器傳送哪些請求(命令)、伺服器能夠向客戶端返回哪些響應、用到的報文格式、命令的互動順序等。

表示層:實現資料的表示(比如字元、圖文資料的表示,以及資料的壓縮,加密)

為應用層傳送的資訊提供表示方法。如果應用層傳輸的是字元檔案,則要使用字符集將其轉換成資料。如果是圖片檔案或是應用程式的二進位制檔案,則要通過編碼將其轉換成資料。資料在傳輸前是否壓縮、是否加密處理都是表示層要解決的問題。

會話層 session :實現通訊雙方會話的管理、跟蹤

會話層為通訊的客戶端和服務端程式建立會話、保持會話和斷開會話。

傳輸層transport: 實現通訊應用程序之間的通訊,及資料傳輸的可靠性等方面工作

傳輸層主要為主機之間通訊的程序提供端到端(End-to-End)服務,處理資料報錯誤、資料報次序錯誤等傳輸問題。

網路層 network:實現網路中源裝置與目的裝置之間的通訊,路徑選擇及分組轉發。

網路層負責資料包從源網路傳輸到目標網路過程中的路由選擇工作。

資料鏈路層 data link:實現每一段鏈路的資料傳輸,及傳輸的差錯及流量控制等工作。

資料鏈路層負責將資料從鏈路的一端傳到另一端,傳輸的基本單位為“幀”,併為網路層提供差錯控制和流量控制服務。

物理層 physical:實現底層的一些規範工作,包括電氣、機械、功能及規程(過程操作)等方面的規定,實現物理連線。

物理層是OSI參考模型中的最底層,主要定義了系統的電氣、機械、過程和功能標準,如電壓、頻寬、最大傳輸距離和其他的類似特性。

資訊傳遞

每一層有每一層的功能,每一層的功能由該層的協議來實現,協議完成功能之後每一層的協議資料單元發生了變化,形成了新的資料單元。

每一層收到上一層的協議資料單元作為其輸入資料,作為本層的資料荷載,在本層協議的封裝下,形成本層的協議資料單元,即輸出,又作為下一層的輸入資料。

網路通訊中,每一層處理的資料,成為PDU協議資料單元,每一層的PDU不同,不同的PDU是在每一層的協議作用下發生的變化,這個過程就是資料封裝;在接收時,接收方再對接收的資料按照模型的逆過程來提供解封裝。

OSI模型中:應用層,表示層、會話層的PDU:資料 data

  • 傳輸層的PDU: 資料分段 segment
  • 網路層的PDU: 資料包 packet
  • 資料鏈路層PDU: 幀 frame
  • 物理層的PDU: 位元流 bits

注意:物理層不是傳輸媒介,傳輸媒介是在物理層之下。

b. TCP/IP協議模型

層次結構(四層)

1) 每一層的功能
2) 資訊傳遞:封裝-解封裝
3) 每一層已經有具體的協議來支援,所以TCP/IP是目前的實際應用的通訊協議。

如:

應用層:
HTTP、FTP、DNS、Telnet(遠端登入)
SMTP(發郵件)、POP(收郵件) (用於電子郵件傳輸)
DHCP(用於動態分配IP地址及其他地址資源的協議)

傳輸層:
TCP(提供可靠傳輸)
UDP(實現快速的盡力傳輸)

網路層:
ARP(地址解析,實現IP地址與MAC地址之間的對映)
IP(網路分組轉發)
ICMP(網路控制報文協議,傳送訊息)
IGMP(網路組播管理,實現組播傳送)

網路介面層:
實現鏈路層傳輸及物理層規範。其中包括在不同鏈路段的具體技術如區域網中的CSMA/CD,廣域網中的PPP、HDLC、幀中繼

c.OSI參考模型與TCP/IP協議模型的對比:

相同點:
② OSI 參考模型與 TCP/IP 參考模型都採用了層次結構。
② 都能夠提供面向連線和無連線兩種通訊服務機制。
③ 都是對網路互聯的結構及網路通訊過程進行描述。

不同點:
① OSI 採用的七層模型; TCP/IP 是四層結構。
② TCP/IP 參考模型沒有對網路介面層進行細分,只是一些概念性的描述; OSI 參考模型對服務和協議做了明確的區分。
③ OSI 先有模型,後有協議規範(但沒有具體協議),適合於描述各種網路;TCP/IP 是先有協議集然後建立模型,不適用於非 TCP/IP 網路。
④ TCP/IP 一開始就提出面向連線和無連線服務,而 OSI 一開始只強調面向連線服務,直到很晚才開始制定無連線的服務標準。
⑤ OSI 參考模型雖然被看好,但將網路劃分為七層,實現起來較困難;相反,TCP/IP 參考模型作為一種簡化的分層結構且有實際協議的支援應用很成功。

一些常見術語