電腦間資料通訊——OSI協議簡述版

二十三歲的有德發表於2021-03-06

OSI簡介

OSI只是計算機網路中的一種協議名稱縮寫,它只是電腦間傳輸資料的協議,並不代表具體的物理裝置,並且這種協議,只是被人為的劃分為五層:物理層、資料鏈路層、網路層、傳輸層、應用層。記住,它只是協議,因此它被劃分為五層後,那五層也都只是協議,並不是五層物理裝置,爸爸決定了兒子。

物理層

再次強調,OSI只是協議,而物理層屬於OSI,那麼也就決定了物理層也只是一個協議而已,畢竟爸爸決定了兒子。也就是說物理層並不是你腦子裡yy的電線、光纜巴拉巴拉的。

那他是什麼呢?他是基於電器特性傳送高低電壓,高電壓可以對應1、低電壓可以對應0。簡而言之,物理層 = 物理層協議規定了 = 物理裝置基於電氣特性傳送高低壓電壓,再次強調,物理層不等同於物理裝置,事不過三,下次不強調了。

資料鏈路層

說到資料鏈路層,不得不搬出OSI協議的一個特點——OSI協議的五層是一層一層遞進的,也就是上一層決定了下一層。既然物理層負責傳送0和1,那麼資料鏈路層對應的就會接收到物理層發來的0和1。現在假設資料鏈路層收到了100個0和1組成的一串字元,例如00111100……。我們說到,OSI協議是用來傳送資料的,此刻你看到這一串0和1,內心一定100頭草泥馬飄過,但是你又沒辦法。

所以,為了讓你看得懂這串字元,資料鏈路層做了一個規定,這個規定就是對這串字元分組。分組的意義就是讓這一串字元變得有意義,例如8個字元1組,10個字元一組,再通過編碼學的知識,這些0和1就變得生龍活虎了,例如4個字元一組,我們可以把0000看成a,0001看成c,0010看成y,0011看成d……也就是說0001 0010 0011的編碼結果就是cyd。

但是每個電腦廠家都會生產自己的電腦,總不能你把8個字元看做一組、他把80個字元看做一組、我為了方便把無窮大個字元看做一組吧,那不就亂了套嗎?因此就出現了一個乙太網協議ethernet,記住了,他也只是一個協議,不過他好認領,因為他就是乙太網協議。

乙太網協議規定了,全世界的所有電腦都必須用一組電訊號也就是一個分組構成一個資料包,這個資料包叫做幀,每一幀分為報頭head和資料data兩個部分,head包含18個位元組——源地址6個位元組、目標地址6個位元組、傳輸的資料型別6個位元組;data包含最短46個位元組最長1500個位元組,就看你一次能逼逼多少啦,如果逼多了那就多分一組咯。這段資料為了講解方便有時也可稱為乙太網頭。

現在會有人好奇源地址和目標地址到底是啥,其實很簡單,就好比寄快遞,這源地址和目標地址就是你家和她家。但在計算機眼中,就是mac地址,而mac地址就是你家電腦中網路卡的地址,而這個網路卡的地址又很特殊——在計算機出廠的時候,計算機的網路卡上就燒了一個世界唯一的mac地址,這樣媽媽再也不怕我串門了。

有了mac地址,一個區域網內的電腦就可以通訊了,我們簡單講講區域網通訊的原理。現在在一個小黑吧裡,由於老闆太摳,就買了一個交換機,沒有開通網路到網咖外面。交換機幹啥的呢?交換機就是把網咖所有的電腦連在一起,這些連在一起的電腦可以接收到對方電腦發出的訊息。因此小黑吧裡的電腦就可以互通,但是由於老闆太摳,你在小黑吧裡無法與外面的紅燈酒綠的世界聯絡。可能你會好奇,為什麼多了一個交換機我就能和小黑吧的其他電腦交流了呢?

其實很簡單,當你需要把你的資料傳送給另外一臺電腦的時候,吼一嗓子就行了。當然,不是讓你真正吼一嗓子,那怕是網管直接揍你一頓,然後讓你捲鋪蓋滾。當你需要傳送資料的時候,你只需要通過電腦的傳送按鈕,此時此刻,電腦便會自動幫你把你的資料通過資料鏈路層打包成另外一段資料,也就是乙太網協議規定的那些內容。可能有人好奇,我怎麼知道我要把我的資料傳送給誰,如果他把我珍藏已久的美國大片婦聯2發給其他人了怎麼辦,其實很簡單,但我不想深入,因為你可能聽不懂,你只需要知道https://www.cnblogs.com/nickchen121/其實就相當於mac地址,不嚴謹但很容易理解,想深入瞭解為什麼url網址等同於mac地址的同學,可以去了解ARP協議。電腦把你的資料打包之後,會通過物理層轉化為0和1然後傳送給交換機。前面說到,交換機把所有電腦連在一起了,此時交換機收到你的訊息,他會吼一嗓子——來訊息了,只要是連在這臺交換機上的電腦,都會收到訊息然後拆開看看,如果目標地址和自己的mac地址吻合,那麼吻合的電腦就會能把這個資料拆開,而不吻合的就會把這個資料丟掉。可能有人又yy了,我收到訊息,我強行拆開不行嗎?我就想說一句,都說了是協議了,你不按照協議做事,你能用這個協議嗎?

會有聰明的同學想到,如果我們讓全世界的電腦連在一臺交換機上,這樣我就不能直接和川普聊天了嗎?你太聰明瞭,但是如果全世界上百億臺電腦連在一起,可能等川普收到你的訊息的時候,拆開一看,有人給我發訊息了,那時候可能你就不在人世間了。

網路層

為了回答資料鏈路層遺留的一個問題,區域網只能保證我在小黑吧裡和小夥伴們愉快的玩耍,但不能讓我發訊息給川普,而網路層卻很好的解決了這個問題。

為了解決世界網路通訊的問題,網路層應運而生,讓一個區域網可以和另外一個區域網可以通訊,並且因此定義了一個IP協議,這個ip協議都規定了啥呢,說出來你可能不信,ip協議除了和乙太網協議名字不同,內容形式基本一模一樣。

上面說到小黑吧的例子,在這裡進行深入擴充,現在小黑吧的老闆靠你們這群韭菜狠賺了一筆,他就去電信公司開通了網路,這個網路是幹嘛的呢?就是為了讓你和川普聊天的。具體是怎麼樣的呢?其實很簡單,就是當小黑吧老闆在電信公司開通網路的時候,電信公司會給小黑吧一個ip地址,記住這個ip地址是屬於小黑吧的,前面說過爸爸決定兒子,小黑吧的電腦屬於小黑吧,因此小黑吧的電腦上也會擁有這個ip地址,也就是說mac地址是每臺電腦各一個,然而ip地址可能多臺電腦共一個。

有了ip地址,那麼如何去和川普聊天呢?毫無疑問,你想和川普聊天,一定也擁有川普的ip地址,重新說一遍,https://www.cnblogs.com/nickchen121/其實就相當於ip地址和mac地址,雖然有問題,但很容易理解,此處網址可隨時替換,歡迎付錢改成你的網址幫你打廣告。

現在你有了自己的ip地址,又有了川普的ip地址,聰明的同學一定想到了乙太網協議,對的,ip協議規定了,如果你想發訊息給區域網之外的電腦,你必須得按照這種形式傳送資料——自己的ip地址+對方的ip地址+資料,這種形式的資料為了下面講解的方便暫時叫做ip頭。

現在你想好了給川普傳送的資料,你就寫了一段話發給了川普。我們來詳解下這個世界通訊的這個過程,其實能看到這,下面就特簡單了。你寫了一段話,點選了傳送,此時你的電腦會把你的ip地址+老特的ip地址+你寫的話通過ip協議+網路層協議打包成ip頭,然後這個ip頭會通過資料鏈路層協議打包成一幀資料,記住,上述過程都是你的電腦幫你完成的。現在你的電腦把這一幀資料通過物理層轉換為0和1傳送出去了,由於你是發給川普的,就不經過交換機了,就通過電信公司開始往外發了,這個發的過程和交換機同理,當你把資料發給電信公司時,電信公司會幫你吼一嗓子,在電信公司旗下的所有擁有ip網的使用者都會收到你的訊息,雖然有問題,但利於理解,當然了,川普一定是沒有購買中國電信公司的ip網的,因此聰明的你一定會想到國家與國家層面一定還會有一層資料傳送的協議,如果國家層面封死了這種協議,你也就無法和國外通訊了,就是這樣。當然,這裡我們假設川普購買了電信公司的ip網路,因此我、他、她和川普都收到了你傳送的訊息,但是我、他、她的ip網址和你傳送的ip網址對應不上,因此我們就把你發的資料丟掉了,但是川普發現你的資料的目標ip網址就是他的,他就會拆開ip頭,然後又一次驚喜的發現你的資料的mac地址是他的電腦的mac地址,他就會收到你的訊息了,當然川普同事如果和他在同一個ip地址的網路下,也能拆開ip頭,但是會因為mac地址不對,還是會把這個資料丟掉。

此時此刻,你就能全球互聯了,但是還有沒有結束,沒有。

傳輸層

當你使用的電腦的時候,你總不能只想著發訊息給川普吧!一定還想著通過xx遊戲平臺玩玩鬥地主,時不時開啟xx視訊網看個小電影,此處暫留廣告位。那麼問題來了,例如我和我朋友三個人通過電腦玩鬥地主,現在我一上來就出了一個王炸,並且這個資料傳送給了我兩個朋友的電腦,他們的電腦接收到了這串資料後,馬上就就炸毛了,王炸什麼鬼?這串資料我該發給xx遊戲平臺,還是發給xx視訊網。

為了解決上面這個問題,傳輸層應運而生,傳輸層的作用很簡單,就是規定了每臺電腦都會有很多埠,例如一臺電腦20000個埠,這些埠乾啥用的呢?很簡單,就是每一個埠對應一個應用程式,例如xx遊戲平臺對應1、xx視訊網對應2。

有了這個埠,終於可以開心的和我朋友玩鬥地主了,當然,此時我傳送給我朋友電腦的資料不僅有ip頭、乙太網頭、還會有埠,ip頭確定了我朋友的ip地址也就是在哪裡、乙太網頭確定了我朋友電腦的mac地址、埠確定了我朋友電腦上的哪個程式,因此我們可以得出一個結論——ip頭+乙太網頭+埠 = 全世界獨一無二的電腦上的獨一無二的某個應用程式。

你以為傳輸層就這麼簡單嗎?沒有如果詳解還會有tcp和udp兩種應用程式間傳輸資料的協議,但是過於複雜,不詳解,其實只要記住tcp穩定、udp不穩定即可。還是略解下,前面說到tcp和udp是兩種傳輸資料的協議,其實簡單點說就是啥呢?就是udp就是規定了電腦a發資料給電腦b後,就不負責電腦b有沒有收到資料,反正發完了就絕交;tcp就是規定了電腦a發資料給電腦b後,還得讓電腦b發一條訊息給電腦a告訴它我已經收到了你傳送的資料,有問題,但方便理解,總不能說3次握手4次揮手讓你看不懂吧?

應用層

其實到這真的結束了,應用層很簡單了,無非就是規定了不同型別應用程式之間的資料組織格式。簡單點說無非就是相同的內容不同應用程式規定了不同的寫法罷了。

總結

網路通訊不嚴謹且易懂的講無非就是這些,但你要記住,並不嚴謹,一門深奧的學科能這樣講解出來,一定是漏洞百出的,而且只供消遣,真想學些什麼東西,零碎化就能學的那應該都不是什麼好東西。

相關文章