主頁 > 前端設計 > 計算機網路之通信編碼與網路通信模型

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

2020-09-20 03:51:02 前端設計

通信編碼

眾所周知,計算機只能讀取二進制的資料,而這些二進制數字資訊在傳輸程序中可采用不同的代碼,這些代碼的抗噪性和定時能力各不相同,
● 最基本的數字編碼有單極性碼、極性碼、雙極性碼、歸零碼、不歸零碼、雙相碼六種,
● 常用于局域網的有曼徹斯特編碼、差分曼徹斯特編碼,
● 常用于廣域網的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地址和子網掩碼做與操作,就可得到網路地址)

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/85641.html

標籤:其他

上一篇:能不能在瀏覽器建檔案夾

下一篇:vue.js找不到inquirer

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • vue移動端上拉加載

    可能做得過于簡單或者比較low,請各位大佬留情,一起探討技術 ......

    uj5u.com 2020-09-10 04:38:07 more
  • 優美網站首頁,頂部多層導航

    一個個人用的瀏覽器首頁,可以把一下常用的網站放在這里,平常打開會比較方便。 第一步,HTML代碼 <script src=https://www.cnblogs.com/szharf/p/"js/jquery-3.4.1.min.js"></script> <div id="navigate"> <ul> <li class="labels labels_1"> ......

    uj5u.com 2020-09-10 04:38:47 more
  • 頁面為要加<!DOCTYPE html>

    最近因為寫一個js函式,需要用到$(window).height(); 由于手寫demo的時候,過于自信,其實對前端方面的認識也不夠體系,用文本檔案直接敲出來的html代碼,第一行沒有加上<!DOCTYPE html> 導致了$(window).height();的結果直接是整個document的高 ......

    uj5u.com 2020-09-10 04:38:52 more
  • WordPress網站程式手動升級要做好資料備份

    WordPress博客網站程式在進行升級前,必須要做好網站資料的備份,這個問題良家佐言是遇見過的;在剛開始接觸WordPress博客程式的時候,因為升級問題和博客網站的修改的一些嘗試,良家佐言是吃盡了苦頭。因為購買的是西部數碼的空間和域名,每當佐言把自己的WordPress博客網站搞到一塌糊涂的時候 ......

    uj5u.com 2020-09-10 04:39:30 more
  • WordPress程式不能升級為5.4.2版本的原因

    WordPress是一款個人博客系統,受到英文博客愛好者和中文博客愛好者的追捧,并逐步演化成一款內容管理系統軟體;它是使用PHP語言和MySQL資料庫開發的,用戶可以在支持PHP和MySQL資料庫的服務器上使用自己的博客。每一次WordPress程式的更新,就會牽動無數WordPress愛好者的心, ......

    uj5u.com 2020-09-10 04:39:49 more
  • 使用CSS3的偽元素進行首字母下沉和首行改變樣式

    網頁中常見的一種效果,首字改變樣式或者首行改變樣式,效果如下圖。 代碼: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, ......

    uj5u.com 2020-09-10 04:40:09 more
  • 關于a標簽的講解

    什么是a標簽? <a> 標簽定義超鏈接,用于從一個頁面鏈接到另一個頁面。 <a> 元素最重要的屬性是 href 屬性,它指定鏈接的目標。 a標簽的語法格式:<a href=https://www.cnblogs.com/summerxbc/p/"指定要跳轉的目標界面的鏈接">需要展示給用戶看見的內容</a> a標簽 在所有瀏覽器中,鏈接的默認外觀如下: 未被訪問的鏈接帶 ......

    uj5u.com 2020-09-10 04:40:11 more
  • 前端輪播圖

    在需要輪播的頁面是引入swiper.min.js和swiper.min.css swiper.min.js地址: 鏈接:https://pan.baidu.com/s/15Uh516YHa4CV3X-RyjEIWw 提取碼:4aks swiper.min.css地址 鏈接:https://pan.b ......

    uj5u.com 2020-09-10 04:40:13 more
  • 如何設定html中的背景圖片(全屏顯示,且不拉伸)

    1 <style>2 body{background-image:url(https://uploadbeta.com/api/pictures/random/?key=BingEverydayWallpaperPicture); 3 background-size:cover;background ......

    uj5u.com 2020-09-10 04:40:16 more
  • Java學習——HTML詳解(上)

    HTML詳解 初識HTML Hyper Text Markup Language(超文本標記語言) 1 <!--DOCTYPE:告訴瀏覽器我們要使用什么規范--> 2 <!DOCTYPE html> 3 <html lang="en"> 4 <head> 5 <!--meta 描述性的標簽,描述一些 ......

    uj5u.com 2020-09-10 04:40:33 more
最新发布
  • 我的第一個NPM包:panghu-planebattle-esm(胖虎飛機大戰)使用說明

    好家伙,我的包終于開發完啦 歡迎使用胖虎的飛機大戰包!! 為你的主頁添加色彩 這是一個有趣的網頁小游戲包,使用canvas和js開發 使用ES6模塊化開發 效果圖如下: (覺得圖片太sb的可以自己改) 代碼已開源!! Git: https://gitee.com/tang-and-han-dynas ......

    uj5u.com 2023-04-20 07:59:23 more
  • 生產事故-走近科學之消失的JWT

    入職多年,面對生產環境,盡管都是小心翼翼,慎之又慎,還是難免捅出簍子。輕則滿頭大汗,面紅耳赤。重則系統停擺,損失資金。每一個生產事故的背后,都是寶貴的經驗和教訓,都是專案成員的血淚史。為了更好地防范和遏制今后的各類事故,特開此專題,長期更新和記錄大大小小的各類事故。有些是親身經歷,有些是經人耳傳口授 ......

    uj5u.com 2023-04-18 07:55:04 more
  • 記錄--Canvas實作打飛字游戲

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 打開游戲界面,看到一個畫面簡潔、卻又富有挑戰性的游戲。螢屏上,有一個白色的矩形框,里面不斷下落著各種單詞,而我需要迅速地輸入這些單詞。如果我輸入的單詞與螢屏上的單詞匹配,那么我就可以獲得得分;如果我輸入的單詞錯誤或者時間過長,那么我就會輸 ......

    uj5u.com 2023-04-04 08:35:30 more
  • 了解 HTTP 看這一篇就夠

    在學習網路之前,了解它的歷史能夠幫助我們明白為何它會發展為如今這個樣子,引發探究網路的興趣。下面的這張圖片就展示了“互聯網”誕生至今的發展歷程。 ......

    uj5u.com 2023-03-16 11:00:15 more
  • 藍牙-低功耗中心設備

    //11.開啟藍牙配接器 openBluetoothAdapter //21.開始搜索藍牙設備 startBluetoothDevicesDiscovery //31.開啟監聽搜索藍牙設備 onBluetoothDeviceFound //30.停止監聽搜索藍牙設備 offBluetoothDevi ......

    uj5u.com 2023-03-15 09:06:45 more
  • canvas畫板(滑鼠和觸摸)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>canves</title> <style> #canvas { cursor:url(../images/pen.png),crosshair; } #canvasdiv{ bo ......

    uj5u.com 2023-02-15 08:56:31 more
  • 手機端H5 實作自定義拍照界面

    手機端 H5 實作自定義拍照界面也可以使用 MediaDevices API 和 <video> 標簽來實作,和在桌面端做法基本一致。 首先,使用 MediaDevices.getUserMedia() 方法獲取攝像頭媒體流,并將其傳遞給 <video> 標簽進行渲染。 接著,使用 HTML 的 < ......

    uj5u.com 2023-01-12 07:58:22 more
  • 記錄--短視頻滑動播放在 H5 下的實作

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 短視頻已經無數不在了,但是主體還是使用 app 來承載的。本文講述 H5 如何實作 app 的視頻滑動體驗。 無聲勝有聲,一圖頂百辯,且看下圖: 網址鏈接(需在微信或者手Q中瀏覽) 從上圖可以看到,我們主要實作的功能也是本文要講解的有: ......

    uj5u.com 2023-01-04 07:29:05 more
  • 一文讀懂 HTTP/1 HTTP/2 HTTP/3

    從 1989 年萬維網(www)誕生,HTTP(HyperText Transfer Protocol)經歷了眾多版本迭代,WebSocket 也在期間萌芽。1991 年 HTTP0.9 被發明。1996 年出現了 HTTP1.0。2015 年 HTTP2 正式發布。2020 年 HTTP3 或能正... ......

    uj5u.com 2022-12-24 06:56:02 more
  • 【HTML基礎篇002】HTML之form表單超詳解

    ??一、form表單是什么

    ??二、form表單的屬性

    ??三、input中的各種Type屬性值

    ??四、標簽 ......

    uj5u.com 2022-12-18 07:17:06 more