計算機網路之通訊編碼與網路通訊模型

2020-09-19 12:03:15

通訊編碼

眾所周知,計算機只能讀取二進位制的資料,而這些二進位制數位資訊在傳輸過程中可採用不同的程式碼,這些程式碼的抗噪性和定時能力各不相同。
● 最基本的數位編碼有單極性碼、極性碼、雙極性碼、歸零碼、不歸零碼、雙相碼六種。
● 常用於區域網的有曼徹斯特編碼、差分曼徹斯特編碼。
● 常用於廣域網的4B/5B碼、8B/10B碼。

一、基本編碼

1.極性編碼

極性編碼可以分為單極性碼,極性碼,雙極性碼。
極包括正極和負極。
● 單極性碼:只使用一個極性,再加零電平(正極表示0,零電平表示1);
● 極性碼使用了兩極(正極表示0,負極表示1) ;
● 雙極性碼則使用了正、負兩極和零電平(典型的雙極性碼是訊號交替反轉編碼AMI,它使用零電平表示0004則使電平在正、負極間交替翻轉)。

在極性編碼方案中,始終使用某一特定的電平來表示特定的數,因此當連續傳送多個"1」或"0」時, 將無法直接從訊號判斷出個數。要解決這個問題,就需要引入時鐘訊號。

2、歸零性編碼

歸零性指的是編碼號誌是否迴歸到零電平。
歸零碼就是指碼元中間的訊號要回歸到零電平。不歸零碼則不回。
歸零(而是當1時電平翻轉,0時不翻轉),也稱為差分機制。

3、雙相碼

通過不同方向的電平翻轉(低到高代表0,高到低代表1),這樣不僅可以提高抗干擾性,還可以實現自同步,這也是曼徹斯特編碼的基礎。

總結:

二、應用性編碼

1、曼徹斯特編碼

曼徹斯特編碼(簡稱"曼碼」)是一種雙相碼,用低到高的電平轉換表示0,用高到低的電平轉換表示1(有些教學描述正好相反,即用低到高的電平轉換表示1,用高到低的電平轉換表示0),它可以實現自同步,常用於802.3 10Mbps乙太網。

2、差分曼徹斯特編碼

差分曼徹斯特編碼(簡稱差分曼碼)是在曼徹斯特編碼的基礎上加上了翻轉特性,遇1翻轉,遇0不變,常用於令牌環網。使用曼徹斯特編碼和差分曼徹斯特編碼時,每傳輸1bit的資訊,就要求線路上有2次電平狀態變化(2波特),因此要實現100Mbps的傳輸速率,就需要有200MHz的頻寬,即編碼效率只有50%。

3、4B/5B編碼、 8B/6T編碼和8B/10B編碼

正是因為曼碼的編碼效率不高,所以在頻寬資源寶貴的廣域網和速度要求更高的區域網中,就面臨困難。因此就出現了mbnb編碼,也就是將m位元位編碼成為n波特(程式碼位)的編碼。

提高了頻帶的利用率,但抗噪性較差。

網路架構

一、網路的分類

不同傳輸距離的網路可以分為
●區域網
●都會網路
●廣域網

1.區域網(LAN)

區域網中常見的傳輸媒介有雙絞線、細同軸電纜、微波、射頻訊號和紅外線等。主要特點:
(1)距離短
(2)速度快
(3)高可靠性
(4)成本較低

2.廣域網(WAN)

廣域網是在傳輸距離較長的前提下所發展的相關技術的集合,用於將大區域範圍內的各種計算機裝置和通訊裝置互聯在一起組成一個資源共用的通訊網路。其主要特點:
(1)長距離
(2)低速率
(3)高成本
WAN由通訊子網與資源子網兩部分組成

3.都會網路(MAN)

域域網的覆蓋範圍介於區域網和廣域網之間。
都會網路的主要技術是DQDB(分散式佇列雙匯流排),即1EEE802.6。DQDB是由雙匯流排構成的,所有的計算機都連線在上面。

二、網路互聯模型

1.物理層;2.資料鏈路層;3.網路層;4.傳輸層;5.對談層;6.表示層;7.應用層;

OSI是一種分層的體系結構,每一層中由一些實體(包括軟體元素和硬體元素)組成。
它的基本想法是每一層都在它的下層提供的服務的基礎上提供更高階的增值服務,而每一層是通過服務存取點(SAP)來向上一層提供服務的。
在OSI分層結構中,其目標是保持層次之間的獨立性,也就是第N層實體只能夠使用(N-1)層實體通過SAP提供的服務,並且只能夠向(N+1)層提供服務,實體間不能夠跨層使用,也不能夠同層呼叫。

1、物理層

是OSI參考模型的最低層或第一層。物理層協定要解決的是主機、工作站等資料終端裝置與通訊線路上通訊裝置之間的介面問題。國際電報電話諮詢委員會(CCITT)和ISO用4個技術特性來描述:●機械特性●電氣特性●功能特性●規程特性

(1)機械特性
規定了DTE和DCE之間的聯結器形式,包括聯結器形狀、幾何尺寸、引線數目和排列方式等。
(2)電氣特性
規定了傳送器和接收器的電氣引數及其他有關電路的特徵。如1和0的各自電壓的大小,每位元持續多少微秒等。電氣特性決定了傳送速率和傳輸距離。
(3)功能特性
介面訊號分為資料訊號、控制訊號和時鐘訊號。功能特性對介面各訊號線的功能給出確切的定義,說明某些連線上出現的某一電壓表示的意義。
(4)規程特性
規定了DTE和DCE之間各介面訊號線實現資料傳輸的操作過程(操作順序)。

我們首先要解決兩臺物理機的通訊需求,具體就是機器A往機器B傳送bit流,怎麼接受bit流,這便是物理層做的事情,定義物理裝置的標準,如網線的型別,光纖介面型別他的主要作用是傳輸bit流,也就是0101二進位制資料,數模轉換,如網路卡。

2、資料鏈路層(DataLink)

建立、維持和釋放網路實體之間的資料鏈路,這種資料鏈路對網路層表現為一條無差錯的通道。
它通常把流量控制和差錯控制合併在一起。資料鏈路層可以分為MAC(媒介存取控制層)和LLC(邏輯鏈路控制層)

在傳輸bit流的過程中,會產生錯傳,資料傳輸不完整的可能,定義如何格式化資料以進行傳輸,控制如何對物理媒介的存取,通常提供錯誤檢測和糾正,以確保資料傳輸的可靠性,本層將bit資料組成了幀,其中交換機工作在本層,對幀解碼,並根據幀中的資訊傳送到接收方,隨著網路節點的不斷增加,對等通訊的時候是需要多個節點的,那麼如何找到目標節點,如何選擇最佳路徑?

3、 網路層(Network)

屬於通訊子網,通過網路連線交換傳輸層實體發出的資料。網路解決的問題是路由選擇、網路擁塞、異構網路互聯等問題,其服務存取點為邏輯地址(網路地址)。代表性協定有IP,IPx協定等。網路層解決點到點。

其重要功能是將網路地址翻譯成對應的實體地址,並決定如何將資料傳送方路由到接收方,網路層通過綜合考慮傳送優先權、網路品質、優先程度等,從一個網路節點A到另一個網路節點B的最佳路徑,路由器屬於網路層,此時資料稱之為封包,本層我們需要關注的協定是IP協定,因為隨著網路通訊需求的進一步擴大,通訊過程中需要傳送大量的資料,需要海量檔案傳輸的需要很長一段時間,而網路在通訊過程中,會中斷好多次,為了保證大量檔案的準確性,需要對發出去的資料進行切分,切割一個一個的segment,其中一個段落丟失了怎麼辦?要不要重傳?每個段落要按照順序到達嗎?這個便是傳輸層需要考慮的問題。

4、傳輸層(Transport)

實現傳送端和接收端的端到端的資料分組傳送,負責保證實現封包無差錯、按順序、無丟失和無冗餘的傳輸。服務存取點為埠。代表性協定有TCP,UDP,SPX協定等。

傳輸層解決了主機間的資料傳輸,資料間的傳輸可以是不同網路的,傳輸層解決了傳輸品質的問題,該層被稱之為OSI協定最重要的一層,傳輸層協定同時進行流量控制,可根據接收方接受的快慢控制速度,它可以將資料分割成較小的資料片,同時對每一資料片安排一序列號,以便資料到達接收方時,能以正確的順序重組,該過程即稱為排序,傳輸層需要我們關注的TCP/IP協定有的TCP協定和UDP協定。

5、對談層( Session)

對談層主要功能是管理和協調不同主機上各種程序之間的通訊(對話)。即負責建立、管理和終止應用程式之間的對談。

現在我們已經保證給正確的計算機傳送正確的封裝過後的資訊了,但是使用者級別的體驗好不好,難道我每次都要去掉用肢體去打包,然後呼叫IP協定去找路由自己去發,當然不行,所以我們要建立一個自動收發包自動定址的功能,於是發明了對談層,作用就是建立和管理應用程式之間的通訊,現在我能保證應用程式自動收發和自動定址。

6、表示層(Prsentation)

表示層處理流經結點的資料編碼的表示方式問題,以保證一個系統應用層發出的資訊可被另一系統的應用層讀出。應用層可以根據其服務解釋資料的含義。通常包括資料編碼的約定、本地句法的轉換、資料壓縮與解壓縮。例如,JPEG, ASCI,GIF, DES,po MPEG等。

但我要用LinuxWindows發包兩個系統民法不一致,就像安裝包一樣exe不能在Linux下面去執行,elfwindows下也是不能直接執行的,於是需要幫我們解決不同系統之間的通訊語法的問題,在表示層資料將按照網路能理解的方案進行格式化,這種格式化也因所使用網路的型別不同而不同。

7、應用層(Application)

直接為端使用者服務,提供各類應用程式的介面和使用者介面。例如,HTTP, Telnet, FTP, SMTP等。

此時雖然傳送方知道自己傳送的是什麼東西轉化成位元組陣列後有多長,但接收方肯定不知道,所以應用層的網路協定達成了,他規定傳送方和接收方必須使用一個固定長度的訊息頭,訊息頭必須使用某種固定的組成,而且訊息頭裡需記錄訊息的長度等一系列資訊,以方便接收方能夠正確的解析傳送方傳送的資料應用層旨在讓你更方便的應用從網路接收到的資料,該層需要我們重點去關注的是與之相對應的tcp/ip協定中的HTTP協定以上就是關於osi各層次的劃分

從應用層開始都會對需要傳輸的資料頭部進行處理,加上分層,而一些資訊最終由物理層通過乙太網電纜等媒介將資料解析成位元流在網路中傳輸資料,傳遞到目標地址,並自底而上的將先前對應成的頭部給解析分離出來,這個就是我們的網路資料處理的整個流程。

OSI是一個定義良好的協定規範機制並有許多可選部分完成類似的任務,它定義了開放系統的層次結構,層次之間的相互關係以及各層所包括的可能的任務是作為一個框架來協調和組織各層所提供的服務,但是OSI參考模型並沒有提供一個可以實現的方法,而是描述了一些概念,用來協調程序間通訊標準的制定及OSI參考模型並不是一個標準,而是一個在制定標準時所使用的概念性框架。

常用的網路協定

事實上的標準是TCP/IP四層架構參考模型,首先是使用的網路體系結構,後來改結構被美國國防部用來作為計算機網路的標誌。由於領頭大哥的推動,市面上絕大多數廠商也已該標準為主用於商用,雖然tcpip協定並不完全符合osi的七層參考模型,但我們依然可以理解為他是OSI的一種實現,接下來咱們來講講這個主流的協定,

從字面上講,有人可能會認為tcpip。確實TCP和IP這兩種協定實際生活當中,有時也確實就是指這兩種協定,然後在很多情況下,他只是利用IP進行通訊時所必須用到的協定群的統稱,具體來說,ST或者STMP的TCP或者udptelnet或者FTP這些干擾以及HTTP,都屬於tcpip協定,他們與TCP或IP的關係緊密是網際網路必不可少的組成部分,Tcpip泛指這些協定,因此有時也稱tcpip為網際協定群從,tcpip協定拿與osi在分層模組上稍有區別。

TCP/IP協定簇分為應用層、傳輸層、網際層和網路接層四層

1.應用層

TCP/IP的應用層對應於OSI模型的應用層和表示層,應用程式通過本層協定利用網路。協定主要有FTP、TFTP、 HTTP、 SMTP、DHCP、NFS、 Telnet、 DNS和SNMP等。

2.傳輸層

TCP/IP的傳輸層大致對應於OS1模型的對談層和傳輸層,主要包括TCP和UDP,這些協定負責提供流控制、錯誤校驗和排序服務。
●TCP是整個TCP/IP協定族中最重要的協定,它在IP協定提供的不可靠資料服務的基礎上,採用了重發技術,為應用程式提供了一個可靠的、面向連線的、全雙工的資料傳輸服務。TCP協定用於傳輸資料量比較少,且對可靠性要求高的場合。
●UDP是一種不可靠的、無連線的協定,它的錯誤檢測功能要弱得多,一般用於傳輸資料量大,對可靠性要求不是很高,但要求速度快的場合。
●TCP有助於提供可靠性,UDP有助於 提高傳輸的速率。

3.網際層

TCP/IP的網際層對應於OSI模型的網路層,包括IP、ICMP ( 網際控制報文協定)、IGMP(網際組管理協定),以及ARP(址解析協定)和RARP(向地址解析協定)。
這些協定處理資訊的路由及主機地址解析。IP所提供的服務是無連線的和不可靠的,因此把差錯檢測和流量控制功能交給其它層來完成。

4.網路介面層

TCP/IP協定不包含具體的物理層和資料鏈路層,只定義了網路介面層作為物理層的介面規範。
網路接層處在TCP/IP協定的最底層,在傳送端將上層的IP資料包封裝成幀後傳送到網路上;資料框通過網路到達接收端時,該結點的網路介面層對資料框拆封,並檢查幀中包含的MAC地址。

5.埠

埠號使一個接收端計算機系統能夠確定它所收到的IP包型別,並把它交給合適的高層軟體。
埠號的範圍從0到65535,從0-1023是知名埠號,固定分配給一些服務,從1024-49151叫已註冊埠號,被一些公司用於自己的某種協定。
●SMTP埠號是25
●POP3埠號是110
●DNS埠號力53
●HTTP埠號為80
●FTP資料埠20,控制埠21。

網路地址及子網掩碼

1. IP地址結構及類別

IP地址是由32位元二進位制數,即4個位元組組成的(由四組十進位制數,組成,零到255),由網路號和主機號兩個欄位組成。


網路號的位數決定了可以分配的網路數(2n);
主機號的位數決定了網路中最大主機個數(2m-2)

為了便於對IP地址進行管理,把IP地址分成為5類,即A類到E類,目前大量使用的是A,B,C三類。

2.特殊IP地址

IP定義了一套特殊地址格式,稱為保留地址。
(1)網路地址。主機號全0表示網路地址
(2)廣播地址。主機號全1表示廣播地址
(3)子網掩碼。網路號部分全為1,主機號部分全為0;用於計算網路地址用(只需將IP地址和子網掩碼做與操作,就可得到網路地址)