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