網(wǎng) 絡(luò) 通 信 協(xié) 議 概 述
網(wǎng)絡(luò)通信協(xié)議本質(zhì)上是由一組協(xié)議組成的,而協(xié)議的本質(zhì)則是一組規(guī)則和規(guī)范的組合體。舉個例子:兩個物流業(yè)務(wù)點在地域角度看是兩個獨立的整體,那么要何如對接才能把貨物從一點輸出到另一點呢?首先他們需要商定一個暗號,這個暗號的作用是可以證明貨物是輸出地發(fā)出來的,當前的站點可以進行接收,這個暗號可以任何形式:工牌、工服等,接下來還需要考慮用什么交通工具,可以是電車,也可以無人機等。
其中工服、工牌、電動車屬于一個一個規(guī)則和規(guī)范,而他們結(jié)合起來就形成了配送的協(xié)議,而站點按照這個協(xié)議最終就可以完成貨物的運輸和配送。
OSI七層模型、TCP/IP四層模型
隨著技術(shù)的發(fā)展,計算機的應(yīng)用越來越廣泛,計算機之間的通信開始了百花齊放的狀態(tài),每個具有獨立計算服務(wù)體系的信息技術(shù)公司都會建立自己的計算機通信規(guī)則,而這種情況會導致異構(gòu)計算機之間無法通信,極大的阻礙了網(wǎng)絡(luò)通信的發(fā)展,至此為了解決這個問題,國際標準化組織(ISO)制定了OSI模型,該模型定義了不同計算機互聯(lián)的標準,OSI模型把網(wǎng)絡(luò)通信的工作分為7層,分別是 物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會話層、表示層和應(yīng)用層 。
這七層模型是設(shè)計層面的概念,每一層都有固定要完成的職責和功能,分層的好處在于清晰和功能獨立性,但分層過多會使層次變的更加復雜,雖然不需要實現(xiàn)本層的功能,但是也需要構(gòu)造本層的上下文,空耗系統(tǒng)資源,所以在落地實施網(wǎng)絡(luò)通信模型的時候?qū)⑦@七層模型簡化合并為四層模型分別是 應(yīng)用層、傳輸層、網(wǎng)絡(luò)層、網(wǎng)絡(luò)接口層 (各層之間的模型、協(xié)議統(tǒng)稱為:TCP/IP協(xié)議簇)。
TCP/IP 分 層 解 析
一、網(wǎng)絡(luò)接口層:
TCP/IP的網(wǎng)絡(luò)接口層承接OSI七層模型中物理層和數(shù)據(jù)鏈路層的功能,對標物理層的部分完成的是將高低電壓轉(zhuǎn)換成傳輸信號(電信號、無線信號等)傳遞給目標方;對標數(shù)據(jù)鏈路層的部分則是規(guī)定了輸出信號組的規(guī)則及格式,統(tǒng)一標準后則為我們所知的以太網(wǎng)協(xié)議(ethernet),協(xié)議規(guī)定網(wǎng)絡(luò)接口層每一個信號數(shù)據(jù)包稱為一個數(shù)據(jù)幀,數(shù)據(jù)分為head和data兩部分,其中head部分包括:
- 發(fā)送者地址---6字節(jié)(mac地址)
- 目標地址---6字節(jié)(mac地址)
- 數(shù)據(jù)類型---6字節(jié)
mac地址釋義:以太網(wǎng)協(xié)議規(guī)定接入的網(wǎng)絡(luò)設(shè)備必須具備網(wǎng)卡,而網(wǎng)卡的標識就是mac地址,地址為6個字節(jié),前三個字節(jié)為標準化組織給廠商分配的編碼,后三個字節(jié)為廠商生產(chǎn)的序列號,由此保證地址唯一。
數(shù)據(jù)部分為上層需要向外發(fā)送的數(shù)據(jù),如下:
具有了上述規(guī)則,兩臺計算機就可以進行通訊了,而通訊的方式則為廣播,類比為通信的時候先問所有人”故宮”是誰家的地址,局域網(wǎng)內(nèi)地址是”故宮”的主機則會回復自己的mac地址,這個模式在小型的局域網(wǎng)主機數(shù)相對較少的情況下可以玩轉(zhuǎn),但整個世界數(shù)以億計的主機,如果一臺主機需要知道目標的地址就需要給世界上所有的主機都發(fā)一個廣播消息,那就成為災難了,故需要下一層設(shè)計解決這個問題。
二、網(wǎng)絡(luò)層:
由上層的遺留問題可知,必須找到一種方法,區(qū)分相同局域網(wǎng)內(nèi)的直播域,不是同域內(nèi)的請求需要進行轉(zhuǎn)發(fā)廣播,而網(wǎng)絡(luò)層就是解決這種問題而存在,它定義了一套地址稱之為ip地址,有讀者可能會有疑問:為什么不使用mac地址在上一層完成這個需求呢?這是因為mac地址只跟廠商有關(guān),不能標識局域網(wǎng)內(nèi)網(wǎng)規(guī)則,就類比筆者雖然身份證是黑龍江人但是人卻在北京飄,身份證類比mac地址,身份證是無法證明本人到底在哪也就無法做下一步驟了,這個網(wǎng)絡(luò)層的協(xié)議目前通常使用的是IPV4,協(xié)議規(guī)定地址為32位表示,通常大家看到ip地址都是以十進制展示,每8位以 . 號分割,例如:192.168.1.1,IP數(shù)據(jù)包同樣分為head和data兩部分:
接下來我們通過抓包的形式來看一下ip頭的主要字段:
至此網(wǎng)絡(luò)層幫我們定位目標網(wǎng)路,網(wǎng)絡(luò)接口層幫助我們鎖定目標主機,我們之間距離天涯海角的兩臺主機已經(jīng)可以完成通訊,但是每一臺機器上有好多服務(wù),比如郵件服務(wù)、微信、咚咚,如何定位是哪個應(yīng)用的數(shù)據(jù)包呢,這需要下層設(shè)計給予解決。
三、傳輸層:
由上層協(xié)議遺留問題可知,我們需要定位是哪個服務(wù)程序的數(shù)據(jù)包,不然會造成數(shù)據(jù)錯亂,而傳輸層正是解決此類問題,傳輸層依靠端口來唯一定位一個服務(wù),而發(fā)送端端口+接收端端口組成一組鏈接,傳輸層的作用總結(jié)為提供端口到端口的通信,傳輸層通常是指tcp(udp)協(xié)議,TCP協(xié)議提供可靠性傳輸能力、分包傳輸能力。tcp層數(shù)據(jù)包也分為head和data部分:
接下來讓我們通過抓包的方式來看一下tcp頭信息的主要字段:
至此兩臺主機已經(jīng)有可以完成指定服務(wù)信息傳輸?shù)哪芰Γ遣煌瑧?yīng)用程序所要應(yīng)用的場景不同,需要數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)也不盡相同,截止目前的能力無法為豐富多彩的應(yīng)用程序提供規(guī)范的數(shù)據(jù)信息,此問題需要由下層設(shè)計給予解決。
四、應(yīng)用層:
由上層協(xié)議遺留的問題可知,我們需要為豐富多彩的應(yīng)用程序?qū)?yīng)不同場景設(shè)計不同的數(shù)據(jù)結(jié)構(gòu)。而應(yīng)用層正是為了解決此問題而存在,所以需要應(yīng)用層定義豐富多彩的協(xié)議來對應(yīng)適配復雜場景所需的數(shù)據(jù)結(jié)構(gòu),故應(yīng)用層定義為規(guī)范了應(yīng)用層的數(shù)據(jù)結(jié)構(gòu),目前大家常用的應(yīng)用層協(xié)議有http、https、ssl、ftp等。
接下來讓我們通過抓包的形式,來看看應(yīng)用層(http)協(xié)議數(shù)據(jù)信息:
至此兩臺主機對等應(yīng)用程序信息傳輸?shù)臈l件都已具備,可以愉快的開始通信了。
-
TCP
+關(guān)注
關(guān)注
8文章
1351瀏覽量
78989 -
OSI
+關(guān)注
關(guān)注
0文章
81瀏覽量
15404 -
網(wǎng)絡(luò)通信協(xié)議
+關(guān)注
關(guān)注
0文章
10瀏覽量
6156
發(fā)布評論請先 登錄
相關(guān)推薦
評論