艾銻知識 |為什么 TCP/IP 協議會拆分數據
2020-02-19 15:48 作者:艾銻無限 瀏覽量:
疫情即將結束,如何提升企業工作效率
艾銻無限免費為企業提供IT服務
這幾天如果大家關注疫情數據的變化,可以看到湖北以外30個省區市新增確診病例12連降,這意味著疫情很快就會結束,大家再也不用在家辦公了,到不是在家工作不好,但人類發明工作不
簡簡單單只是為了實現結果的達成,還有一個非常重要的因素就是人與人之間的聯結,這是人類內在價值的需要,透過工作與人接觸,共同感受彼此的能量流動,從而達到自我價值的實現,這就像演員都渴望登上奧斯卡的舞臺,而實現自我角色的認可。
在家辦公,必盡是家,松、散、無所謂的態度會隨時產生,我相信不是每個人都會這樣,但大部分人會如此,接下來即將回到公司,回到自己的工作崗位,難免會把在家的狀態帶入工作中,如果
每個人都這是這樣的狀態,很快會讓企業限入新的窘境,那就是沒有狀態,也不會有好的結果,狀態就是一切。團隊的勢氣決定企業整體的戰斗力,那如何調整陸陸續續回來的團隊成員呢?
艾銻無限對中小企業有三條建議:
第一,重新梳理整個企業的戰略,疫情的發生,是否給你企業帶來了變化?如果有那是什么?是否需要調整自己原有的戰略方向來應對疫情發生后的影響?
第二,重新明確每個人的目標和目的,目標就是回來的人要干什么?干到什么程度?什么時間可以看到這個結果的發生?目的就是為什么要這個目標?這個目標與自己的意義是什么?與企業的意義是什么?達成了會怎么樣?達不成會怎么樣?一定要讓員工想清晰這些問題,只有想清晰了才會改變自己對待接下來工作的態度。
第三,企業高管與員工建立一對一對話機制,因疫情的影響,每個人心理或多或少都會產生一些內在的變化,做為企業的高層管理人員,最好與企業內部員工一對一的進行溝通,去了解在這個過程中員工受到的影響和產生的變化,以便接下來擁有更好的狀態投入工作中。以上三點做為每一家企業的管理者都有必要重視起來,因為這關系著企業接下來的生、死、存、亡,當然這只是我們一家之言,可根據自身的情況做出相應的調整和改變。
那為什么我們會有這樣的思考,因為艾銻無限是一家企業互聯網”云”解決方案服務平臺,企業在初創時經歷了2003年的非典,后來又經歷了2008年的經濟危機以及2016年互聯網創業大潮,生生死死,幾經沉浮,最終發現上述三點是生死線中最重要的,所以愿意分享給大家,期望這次疫情大家不僅能渡過難關,更能看見大家在這個過程中強而有力的領導力,讓自己企業力挽狂瀾,在2020年有一個更好的未來。
在這次疫情后各個企業恢復的過程中,艾銻無限還能為大家做的就是免費為中小企業提供相應的IT服務,以下是艾銻無限可以提供服務的內容,如果大家有相應的需求,可以打下面的電話與我們的企業相關人員聯系,我們一定會盡全力幫助大家渡過難關。

歷經10幾年,艾銻無限服務了5000多家中小企業并保障了幾十萬臺設備的正常運轉,積累了豐富的企業IT緊急問題和特殊故障的解決方案,我們為您的企業提供的IT服務分為三大版塊:
第一版塊是保障性IT外包服務:如電腦設備運維,辦公設備運維,網絡設備運維,服務器運維等綜合性企業IT設備運維服務。
第二版塊是功能性互聯網外包服務:如網站開發外包,小程序開發外包,APP開發外包,電商平臺開發外包,業務系統的開發外包和后期的運維外包服務。
第三版塊是增值性云服務外包:如企業郵箱上云,企業網站上云,企業存儲上云,企業APP小程序上云,企業業務系統上云,阿里云產品等后續的云運維外包服務。
更多服務也可以登錄艾銻無限的官網:
www.bjitwx.com 查看詳細說明。
每家企業都有著不同的人,每個人都有著不一樣的思考,所以企業不需要統一所有人的思維,企業只需要統一所有人的心,因為只要心在一起了,能量就會合一,能量合一企業將無所不能。
相信這次疫情帶給中國企業的不僅僅是災難,更有可能的是歷練,這些年中國的經濟發展非常快速,大部分中小企業的成長都是隨著國家政策及整個社會的大勢起來的,沒有經過挑戰和困難,所以存活周期也會很短,從2016年大眾創業,萬眾創新倡導下成立了上千萬家企業,但真正存活下來的就只有幾十萬家,這樣即不能給國家帶來更好的穩定持續的發展,也不能為社會創造更大的價值,反而讓更多的人投機取巧,心浮氣躁,沉不下來真正把一件事做好,做到極致。
所以這次疫情也會讓這些企業重新思考,問問自己,為什么要創造這家企業,想為這個國家和社會帶來的是什么?這家企業真正創造的是什么?如何做才能讓社會變得更好?等等.....
所以企業真正去思考,用心去創造價值的時候,也就是人們幸福快樂的時候,因為再也不用擔心假貨、次貨、買到不好的產品,所以疫情即是一場災難,又是成就我們中國的一次機會,讓我們全中國人覺醒。生命只有一次,做就做到最好。

你對世界微笑,世界絕不會對你哭,希望大家都能樂觀起來,讓自己、自己的家人、自己的企業、還有自己的國家都快樂起來,把焦點放在我們想要什么上,而不是不要的事情上,我相信,就在不久的將來,我們一定會看到一個富強、文明、健康的中國以及中國人。
萬物同體,能量合一,最后無論你是中小企業,還是大型國有企業,只要你選擇艾銻無限,我們就一定全力以赴幫助大家渡過難關,服務有限,信息無限,透過全體艾銻人的努力,為您收集最有效的IT技術信息,讓您企業更快速解決遇到的IT問題:
艾銻知識 |為什么 TCP/IP 協議會拆分數據
TCP/IP 協議簇建立了互聯網通信協議的概念模型,該協議簇的兩個主要協議就是 TCP 和 IP 協議。這兩個協議不僅能夠保證數據會從源機器的源進程發送到目標機器的目標進程中,還能保證數據的不重不漏以及發送的順序。
圖 1 - TCP/IP 協議簇
當應用層協議使用 TCP/IP 協議傳輸數據時,TCP/IP 協議簇可能會將應用層發送的數據分成多個包依次發送,而數據的接收方收到的數據可能是分段的或者拼接的,所以它需要對接收的數據進行拆分或者重組。本文會分別從 IP 協議和 TCP 協議兩個角度出發分析為什么應用層寫入的數據包會被 TCP/IP 協議拆分發送:
-
IP 協議會分片傳輸過大的數據包(Packet)避免物理設備的限制;
-
TCP 協議會分段傳輸過大的數據段(Segment)保證傳輸的可靠性和順序;
最大傳輸單元
IP 協議是用于傳輸數據包的協議,作為網絡層協議,它能提供數據的路由和尋址功能,讓數據通過網絡到達目的地。不同設備之間傳輸數據前,需要先確定一個 IP 數據包的大小上限,即最大傳輸單元(Maximum transmission unit,即 MTU),MTU 是 IP 數據包能夠傳輸的數據上限。
MTU 的值不是越大越好,更大的 MTU 意味著更低的額外開銷,更小的 MTU 意味著更低的網絡延遲。每一個物理設備都有自己的 MTU,兩個主機之間的 MTU 依賴于底層的網絡能力,它由整個鏈路上 MTU 最小的物理設備決定[^3],如下圖所示,網絡路徑的 MTU 由 MTU 最小的紅色物理設備決定,即 1000:
圖 2 - 路徑最大傳輸單元發現
路徑最大傳輸單元發現(Path MTU Discovery,PMTUD)是用來確定兩個主機傳輸路徑 MTU 的機制,它的工作原理如下[^4]:
(1) 向目的主機發送 IP 頭中 DF 控制位為 1 的數據包,DF 是不分片(Don't Fragment,DF)的縮寫;
(2) 路徑上的網絡設備根據數據包的大小和自己的 MTU 做出不同的決定:
-
如果數據包大于設備的 MTU,就會丟棄數據包并發回一個包含該設備 MTU 的 ICMP 消息;
-
如果數據包小于設備的 MTU,就會繼續向目的主機傳遞數據包;
(3) 源主機收到 ICMP 消息后,會不斷使用新的 MTU 發送 IP 數據包,直到 IP 數據包達到目的主機;
ICMP 是互聯網控制消息協議(Internet Control Message Protocol,ICMP),它能在 IP 主機之間傳遞控制消息。
以太網對數據幀的限制一般都是 1500 字節[^6],在一般情況下,IP 主機的路徑 MTU 都是 1500,去掉 IP 首部的 20 字節,如果待傳輸的數據大于 1480 節,那么該 IP 協議就會將數據包分片傳輸。
IP 協議數據分片對傳輸層協議是透明的,假設我們使用 UDP 協議傳輸 2000 字節的數據,加上 UDP 8 字節的協議頭],IP 協議需要傳輸 2008 字節的數據。如下圖所示,當 IP 協議發現待傳輸的數據大于 1480 字節,就會將數據分成下面的兩個數據包:
圖 3 - 分片傳輸的 UDP 數據
-
20 字節 IP 協議頭 + 8 字節 UDP 協議頭 + 1472 字節數據;
-
20 字節 IP 協議頭 + 528 字節數據;
數據的接收方在收到數據包時會對分片的數據進行重組,不過因為第二個數據包中不包含 UDP 協議的相關信息,一旦發生丟包,整個 UDP 數據報就無法重新拼裝。如果 UDP 數據報需要傳輸的數據過多,那么 IP 協議就會大量分片,增加了不穩定性。
如果 IP 協議沒有數據包大小的限制,那么上層可以以消息為單位傳輸數據,自然就不存在分片和組裝的需求,不過因為物理設備的 MTU 限制,想要保證數據傳輸的可靠性和穩定性還需要傳輸層的配合。
最大分段大小
TCP 協議是面向字節流的協議,應用層交給 TCP 協議的數據并不會以消息為單位向目的主機發送,應用層交給 TCP 協議發送的數據可能會被拆分到多個數據段中。
TCP 協議引入了最大分段大小(Maximum segment size,MSS)這一概念,它是 TCP 數據段能夠攜帶的數據上限[^8]。在正常情況下,TCP 連接的 MSS 是 MTU - 40 字節[^9],即 1460 字節;不過如果通信雙方沒有指定 MSS 的話,在默認情況下 MSS 的大小是 536 字節[^10]。
IP 協議的 MTU 是物理設備上的限制,它限制了路徑能夠發送數據包的上限,而 TCP 協議的 MSS 是操作系統內核層面的限制,通信雙方會在三次握手[^11]時確定這次連接的 MSS。一旦確定了 MSS,TCP 協議就會對應用層交給 TCP 協議發送的數據進行拆分,構成多個數據段。
需要注意的是,IP 協議和 TCP 協議雖然都會對數據進行拆分,但是 IP 協議以數據包(Package)為單位組織數據,而 TCP 協議以數據段(Segment)為單位組織數據。
如下圖所示,如果 TCP 連接的 MSS 是 1460 字節,應用層想要通過 TCP 協議傳輸 2000 字節的數據,那么 TCP 協議會根據 MSS 將 2000 字節的數據拆分到兩個數據段中:
圖 4 - 分段傳輸的 TCP 數據
-
20 字節 IP 頭 + 20 字節 TCP 頭 + 1460 字節數據;
-
20 字節 IP 頭 + 20 字節 TCP 頭 + 540 字節數據;
從應用層的角度來看,兩個數據段中 2000 字節的數據構成了發送方想要發送的消息,但是 TCP 協議是面向字節流的,向協議寫入的數據會以流的形式傳遞到對端。
TCP 協議為了保證可靠性,會通過 IP 協議的 MTU 計算出 MSS 并根據 MSS 分段避免 IP 協議對數據包進行分片。因為 IP 協議對數據包的分片對上層是透明的,如果協議不根據 MTU 做一些限制,那么 IP 協議的分片會導致部分數據包失去傳輸層協議頭,一旦數據包發生丟失就只能丟棄全部數據。
我們可以通過一個例子分析 MSS 存在的必要性。如下圖所示,假設 TCP 協議中不存在 MSS 的概念,因為每個數據段的大小沒有上限,當 TCP 協議交給 IP 層發送兩個 1600 字節(包括 IP 和 TCP 協議頭)的數據包時,由于物理設備的限制,IP 協議的路徑 MTU 為 1500 字節,所以 IP 協議會對數據包分片:
圖 4 - 分片傳輸的 TCP 數據
四個數據包中只有兩個會包含 TCP 協議頭,即控制位、序列號等信息,剩下的兩個數據包中不包含任何信息。因為網絡無法保證數據包的送達順序,所以當上述四個數據包亂序到達目的主機時,因為數據包中 TCP 協議頭的缺失,所以接收方沒有辦法對數據包進行重組,自然也就無法保證可靠性和順序了。
總結
數據拆分的根本原因說到底還是物理設備的限制,不過每一層協議都受限于下一層協議做出的決定,并依賴下層協議重新決定設計和實現的方法。雖然 TCP/IP 協議在傳輸數據時都需要對數據進行拆分,但是它們做出拆分數據的設計基于不同的上下文,也有著不同的目的,我們在這里總結一下兩個網絡協議做出類似決定的原因:
-
IP 協議拆分數據是因為物理設備的限制,一次能夠傳輸的數據由路徑上 MTU 最小的設備決定,一旦 IP 協議傳輸的數據包超過 MTU 的限制就會發生丟包,所以我們需要通過路徑 MTU 發現獲取傳輸路徑上的 MTU 限制;
-
TCP 協議拆分數據是為了保證傳輸的可靠性和順序,作為可靠的傳輸協議,為了保證數據的傳輸順序,它需要為每一個數據段增加包含序列號的 TCP 協議頭,如果數據段大小超過了 IP 協議的 MTU 限制,接收方就無法按順序對數據包進行重組,TCP 協議也就無法提供可靠性和順序的保證;
通過本文的分析,相信各位讀者不僅了解了為什么 TCP/IP 協議會拆分數據,也了解了為什么 UDP 協議的數據報不應該超過 MTU - 28 字節,一旦超過該限制,IP 協議的分片機制會增加 UDP 數據報無法重組的可能性]。