報文、幀、分組、段、資料包,這些術語是同一個東西嗎?
報文
是一種相對寬泛和通用的說法,基本上每一層都可以用。
比如,在應用層,你可以說“HTTP報文”;
在傳輸層,你可以說“TCP報文”;
同樣的,在網路層,當然就是“IP報文了”。
事實上,網路層也是“報文”一詞被使用最多的場景了。
資料包也是類似的,可以在很多場景下通用。
我們再稍微考究一下語法。packet這個詞的字尾是et。
而在英文中,以et結尾的很多詞 表示某一個小小的東西。
比如功能完備的一小段程式碼,叫 code snippet,一小段內嵌在html 中的java前端程式碼,叫applet。
自然的,packet就是一個小的pack(包裹)。
然而,另外幾個術語在用的時候,就需要講究一點了,因為它們並不是通用詞,而是特定 層的專有詞彙。
幀(frame)
是二層也就是資料鏈路層的概念,代表了二層報文,它包含幀頭、載荷、幀尾。
注意,幀是有尾部的,而其他像 IP、TCP、HTTP 等層級的報文,都沒有尾部。我們
不可以說“TCP 幀”或者“IP 幀”,雖然也許對方也明白你的意思,但我們都想做得專業一點,不是嘛。
這裡還有個小知識點:HTTP/2 實現了多路複用,其中也有幀的概念,
不過那個幀,跟這裡網路二層的幀,除了名稱相同以外,就沒有別的聯絡了。
分組是 IP 層報文,也就是狹義的 packet。
段特指 TCP segment,也就是 TCP 報文。
既然 segment 是“部分”的意思,那這個“整體”又是什麼呢?它就是在應用層交付給傳輸層的訊息(message)。
當 message被交付給傳輸層時,如果這個 message 的原始尺寸,
超出了傳輸層資料單元的限制(比如超出了 TCP 的 MSS),
它就會被劃分為多個 segment。
這個過程就是分段(segmentation),也是 TCP 層的一個很重要的職責。
說到 segmentation,你可能也會想到 fragmentation(分片)。
這倆是同一個東西嗎?
這方面的知識點也不少,我在這裡就不具體展開了。不過彆著急,我會在第 8 講裡,幫你
把這兩個東西梳理清楚。
另外,這裡還要提一下,Datagram 的中文叫“資料包”,但不是“資料包”。
讀音類似,但意思並不完全相同。
前面說過,“資料包”是一個通用詞,所以用“UDP 資料包”指代“UDP 資料包”並沒有問題。
但反過來,非 UDP 協議的資料包,比如 TCP 段,
就不能叫“TCP 資料包”了,因為 TCP 不是 Datagram。
最後,你可以再來看下這張層級和術語對應關係的示意圖:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29990276/viewspace-2917373/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- opacity這個小東西
- 這是什麼東西呢?
- env 是個好東西
- 抓包概念大比較:資料包、資料包、分組
- 來聊聊,這個Java到底是什麼東西?Java
- 框架是個什麼東西?框架
- 夢是個神奇的東西
- 腦子是個好東西
- 挖一挖@Bean這個東西Bean
- 防騙大資料,朋友圈裡賣的這些東西...不是坑人就是害命!大資料
- TCP 的 Keepalive 和 HTTP 的 Keep-Alive 是一個東西嗎?TCPHTTPKeep-Alive
- 談談術語表、資料字典、資料目錄分別是什麼
- 有點東西,template可以直接使用setup語法糖中的變數原來是因為這個變數
- js中的arguments是一個好東西JS
- 大資料學習路線,一共分為這幾個階段大資料
- 我在阿里工作的這段時間裡,都學到了哪些東西阿里
- 近期做的一些東西
- 我是一個Dubbo資料包...
- 你知道這些遊戲行業常見術語與縮寫嗎?遊戲行業
- 25個大資料術語大資料
- 原來 GitHub 不僅能學程式碼,還有這些東西Github
- “新怪談”到底是個什麼東西?
- 資料庫的這些效能優化,你做了嗎?資料庫優化
- C#中的 Attribute 與 Python/TypeScript 中的裝飾器是同個東西嗎C#PythonTypeScript
- 【純乾貨分享】網路安全這些專業“術語”你瞭解嗎?
- Python爬蟲需要學哪些東西?這些知識點必須掌握!Python爬蟲
- 沒想到 Python 中竟然還藏著這些稀奇古怪的東西...Python
- SQLAlchemy Join Query 得到的不同資料行相同資料是同一個例項SQL
- 語音處理加窗分幀
- 這些年,我是如何當好一個技術支援的
- 計組那些容易搞混的東西
- 分組資料
- 是按技術職責還是按領域職責劃分模組包? - Reddit
- 省時省力更精準!資料監控是個好東西,我們應該怎麼做?
- Vue 3 的 setup語法糖到底是什麼東西?Vue
- Javascript是個好東西(廣大人民的智慧是無窮的):JavaScript
- SSL連線分為兩個階段:握手和資料傳輸階段
- 淺談c語言程式碼段 資料段 bss段C語言