再看物理層協(xié)議

導(dǎo)讀

作為一名從事多年的軟件開發(fā)人員,還是對于網(wǎng)絡(luò)協(xié)議棧的理解太少。于是,最近抽空瞎鼓搗琢磨一番,重新理解一下網(wǎng)絡(luò)層協(xié)議,本篇主要是對于 OSI(Open System Interconnect) 七層協(xié)議中最底層(絕大多程序員不關(guān)心的一層,可能實(shí)際上也不會用得著)的物理層協(xié)議進(jìn)行一番理解后的梳理和總結(jié)。

(本篇不是嚴(yán)謹(jǐn)?shù)膶W(xué)術(shù)性的文章和探討,僅僅幫助理解。如有錯(cuò)誤,還請不吝賜教。)

通信的本質(zhì)

互聯(lián)網(wǎng)的本質(zhì)是將若干臺計(jì)算機(jī)組織在一起,組織在一起干嘛呢?當(dāng)然是通信啦。在分析計(jì)算機(jī)如何通過網(wǎng)絡(luò)協(xié)議通信之前,我們先通過人與人之間的交談這種最直觀的通信方式,來感受整個(gè)過程的要點(diǎn)。

人與人的交談過程

首先說話者經(jīng)過大腦處理信息,然后發(fā)送出去,通過神經(jīng)傳導(dǎo)到喉嚨,控制喉嚨震動、震動在空氣中進(jìn)行傳播、傳遞到耳膜后感受到震動、震動信息最后通過神經(jīng)傳入聽者大腦。

因?yàn)槲覀冎饕芯康氖俏锢韺拥耐ㄐ艆f(xié)議,對于說話本身內(nèi)容,我們并不討論和關(guān)注,因此,只考慮說話內(nèi)容如何傳遞。接下來從以上過程,我們來看看通信的要點(diǎn)有哪些:

1. 兩種角色? ? ?

這里有兩個(gè)角色,一個(gè)發(fā)送者(說話者)一個(gè)接收者(聽者)。這里分為了幾種類型:

【單工通信】比如一個(gè)聾子對一個(gè)啞巴說話,因?yàn)橹荒芤粋€(gè)說,一個(gè)人聽。

【半雙工通信】

?領(lǐng)導(dǎo)跟你說話的時(shí)候,你不準(zhǔn)打斷,你先聽,等領(lǐng)導(dǎo)問你問題后,你再回答領(lǐng)導(dǎo),此時(shí)領(lǐng)導(dǎo)聽你說。這種同一時(shí)間只能一個(gè)人說。?

【全雙工通信】

你說你的,我說我的,兩個(gè)人吵架的時(shí)候就是如此。


除了發(fā)送接收者分類,還有一種在通信里面是按照目的地范圍進(jìn)行分類:

【點(diǎn)對點(diǎn)】

你只跟一個(gè)人說悄悄話,不給其他人聽。

【廣播】

你在街上大喊,大家都能聽得到。

2. 信號規(guī)則

人與人說話是通過震動頻率這種方式來傳遞信息了,說話的通信是基于對震動頻率(音調(diào)高低)和振幅(音量大?。┻M(jìn)行有機(jī)排列組合來達(dá)成的,這種控制是人的本能,異常精妙。

大腦命令喉嚨準(zhǔn)備合適的震動方式,既不能不能尖叫,也也不能低鳴,否則聽不到或者聽的刺耳,更加也不能低于和超過人可接受到的震動頻率范圍,因?yàn)槿硕筛惺艿降恼饎宇l率是20赫玆到20,000赫玆。

3. 傳播介質(zhì)?

只有說話者的嘴巴和聽者的耳朵就能通信了嗎?除非你的嘴巴貼著人家的耳朵,否則,就像這里一樣,需要空氣這種介質(zhì)進(jìn)行傳導(dǎo)。


物理層協(xié)議

好了,到這里,我們基本上明白了通信的要點(diǎn),接下來回到本文的重點(diǎn),圈出來物理層的范圍。

人聯(lián)網(wǎng)中的物理層通信

然后,我們來總結(jié)一下,這個(gè)人聯(lián)網(wǎng)中的物理層協(xié)議,可以看出它關(guān)注什么:?

包括: 誰能發(fā)送; 什么時(shí)候可以發(fā)送;什么時(shí)候該閉嘴;誰能聽;什么時(shí)候該接收;不想聽了怎么屏蔽等。

既然是物理層,我們必須從生理上(物理硬件)支持這種能力,比如我們可以想象有一根神經(jīng)控制喉嚨此時(shí)是否該震動,另外一根神經(jīng)控制喉嚨震動多少頻率,還有一根神經(jīng)控制振幅多大。再有一根神經(jīng),控制耳朵打開和關(guān)閉(實(shí)際上人做不到,但計(jì)算機(jī)可以做到)


計(jì)算機(jī)中的物理層協(xié)議

此前,我們已經(jīng)通過人與人的交談來理解物理層,接下來,我們看看計(jì)算機(jī)中的物理層是如何的通信的。

【物理介質(zhì)】

現(xiàn)代計(jì)算機(jī)體系基本都是采用馮諾依曼體系,以二機(jī)制為計(jì)算基礎(chǔ),計(jì)算機(jī)只能處理0/1。這里只討論主流的電子計(jì)算機(jī),在計(jì)算機(jī)內(nèi)部,0/1是通過可區(qū)別的電信號來識別,比如某個(gè)電壓范圍為0,謂之低電平,某個(gè)電壓范圍為1,稱之為高電平。以上,是電子計(jì)算機(jī)內(nèi)部的信號處理方式,那計(jì)算機(jī)之間呢?用什么介質(zhì)來進(jìn)行傳導(dǎo)信號呢?

說到這里,大家基本上都知道,有電線(網(wǎng)線),空氣(4g、wifi、藍(lán)牙),光導(dǎo)纖維(光信號)。

當(dāng)然,這里涉及到一些轉(zhuǎn)換,外部信號不一定直接能被內(nèi)部使用,比如光信號,需要轉(zhuǎn)換為內(nèi)部電信號,這就需要調(diào)制解調(diào)器了,如光貓(光電轉(zhuǎn)換)。

【通信規(guī)則】

我們以最簡單的 “網(wǎng)線” 為例,傳遞的實(shí)際還是0/1電平,但不要以為兩臺計(jì)算機(jī)之間,只有”一根線“連接,那只是外部絕緣包裹看起來是一根,但內(nèi)部是有多條線(芯)的。為什么需要這么多線,首先,一臺計(jì)算機(jī)要支持全雙工的方式,就至少要有兩根線,一根發(fā)送0/1,一根接收0/1,夠了嗎?顯然不夠,就像上文講的,我們還需要更多的線來控制 “允許接受”,“允許發(fā)送” 等行為。

另外,不光是規(guī)定一臺計(jì)算機(jī)需要連接幾根線,還需要明確兩臺計(jì)算機(jī)之間的這多根線互相之間怎么。比如,a計(jì)算機(jī)的發(fā)送線需要連到b計(jì)算機(jī)的接收線上等等。

最后,我們來總結(jié)一下,看看這里的物理層協(xié)議它定義了什么:

1. 有幾根線,每根線有什么作用(比如同軸電纜)

2. 兩臺計(jì)算機(jī)之間的線(觸點(diǎn))該怎么連。(實(shí)際是定義了插頭和插座的規(guī)范,畢竟線不是直接扭在一起)

3. 輸出電壓是多少,不能爆炸了呀

4. 對上提供流程控制邏輯接口(暫定接收、允許發(fā)送,發(fā)送等,發(fā)送和接收微電路控制)

5. 最終發(fā)送的是 0/1 流

6. 一些數(shù)據(jù)校驗(yàn)(容錯(cuò))

【點(diǎn)對點(diǎn)和廣播】

要能實(shí)現(xiàn)點(diǎn)對點(diǎn),很容易想象直接用網(wǎng)線把兩臺電腦一連即可,如果需要廣播呢?除了我們知道無線電波這種直觀的廣播方式,還能使用集線器、路由器這種設(shè)備,可以支持相當(dāng)于將一臺計(jì)算機(jī)的網(wǎng)線連入多臺計(jì)算機(jī),從而實(shí)現(xiàn)廣播。


寫在最后

以上是基于個(gè)人理解的一點(diǎn)總結(jié),有興趣的同學(xué)可以選一種早期簡單的物理層協(xié)議進(jìn)行深入研究,加深理解。

另外拋出一個(gè)話題,物理層實(shí)際上是解決建立好了0/1的比特流通道,支持點(diǎn)對點(diǎn)和廣播的方式,但一般計(jì)算機(jī)都是處在網(wǎng)絡(luò)中(廣播)。因此,它并沒有解決在廣播網(wǎng)絡(luò)中,想要明確指向發(fā)給誰的能力。而這,便是由更上層協(xié)議數(shù)據(jù)鏈路層和網(wǎng)絡(luò)層協(xié)議來解決,有興趣的可以深入了解,后續(xù)有空也會補(bǔ)上相應(yīng)內(nèi)容。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容