精選分類 書庫 完本 排行 原創專區
欣可小說 > 曆史 > 迅雷 > ◎第三章 OSI模型 數據包

迅雷 ◎第三章 OSI模型 數據包

作者:陳飛 分類:曆史 更新時間:2026-08-04 22:06:23

{

\"code\": 200,

\"title\": \"\",

\"content\": \"包(Packet)是TCP\\/IP協議通訊傳輸中的數據單位,一般也稱“數據包”。有人說,局域網中傳輸的不是“幀”(Frame)嗎?冇錯,但是TCP\\/IP協議是工作在OSI模型第三層(網絡層)、第四層(傳輸層)上的,而幀是工作在第二層(數據鏈路層)。上一層的內容由下一層的內容來傳輸,所以在局域網中,“包”是包含在“幀”裡的。\\n\\n名詞解釋:OSI(OpenSystemInterconnection,開放係統互聯)模型是由國際標準化組織(ISO)定義的標準,它定義了一種分層體繫結構,在其中的每一層定義了針對不同通訊級彆的協議。OSI模型有7層,1到7層分彆是:物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用層。OSI模型在邏輯上可分為兩個部分:低層的1至3層關注的是原始數據的傳輸;高層的4至7層關注的是網絡下的應用程式。我們可以用一個形象一些的例子對數據包的概念加以說明:我們在郵局郵寄產品時,雖然產品本身帶有自己的包裝盒,但是在郵寄的時候隻用產品原包裝盒來包裝顯然是不行的。\\n\\n概述\\n\\n必須把內裝產品的包裝盒放到一個郵局指定的專用紙箱裡,這樣才能夠郵寄。這裡,產品包裝盒相當於數據包,裡麵放著的產品相當於可用的數據,而專用紙箱就相當於幀,且一個幀中隻有一個數據包。“包”聽起來非常抽象,那麼是不是不可見的呢?通過一定技術手段,是可以感知到數據包的存在的。比如在Windows2000Server中,把鼠標移動到任務欄右下角的網卡圖標上(網卡需要接好雙絞線、連入網絡),就可以看到“發送:××包,收到:××包”的提示。通過數據包捕獲軟件,也可以將數據包捕獲並加以分析。就是用數據包捕獲軟件Iris捕獲到的數據包的介麵圖,在此,大家可以很清楚地看到捕獲到的數據包的MAC地址、IP地址、協議類型號等細節。通過分析這些數據,網管員就可以知道網絡中到底有什麼樣的數據包在活動了。\\n\\n實例\\n\\n附:數據包的結構數據包的結構非常複雜,不是三言兩語能夠說清的,在這裡主要瞭解一下它的關鍵構成就可以了,這對於理解TCP\\/IP協議的通訊原理是非常重要的。數據包主要由“目的IP地址”、“源IP地址”、“淨載數據”等部分構成。數據包的結構與我們平常寫信非常類似,目的IP地址是說明這個數據包是要發給誰的,相當於收信人地址;源IP地址是說明這個數據包是發自哪裡的,相當於發信人地址;而淨載數據相當於信件的內容。正是因為數據包具有這樣的結構,安裝了TCP\\/IP協議的計算機之間才能相互通訊。我們在使用基於TCP\\/IP協議的網絡時,網絡中其實傳遞的就是數據包。理解數據包,對於網絡管理的網絡安全具有至關重要的意義。\\n\\n運用\\n\\n簡單的說,你上網打開網頁,這個簡單的動作,就是你先發送數據包給網站,它接收到了之後,根據你發送的數據包的IP地址,返回給你網頁的數據包,也就是說,網頁的瀏覽,實際上就是數據包的交換。\\n\\n1、數據鏈路層對數據幀的長度都有一個限製,也就是鏈路層所能承受的最大數據長度,這個值\\n\\n稱為最大傳輸單元,即MTU。以以太網為例,這個值通常是1500字節。\\n\\n2、對於IP數據包來講,也有一個長度,在IP包頭中,以16位來描述IP包的長度,也就是說,\\n\\n一個IP包,最長可能是65535字節。\\n\\n3、結合以上兩個概念,第一個重要的結論就出來了,如果IP包的大小,超過了MTU值,那麼就需要\\n\\n分片,也就是把一個IP包分為多個,這個概念非常容易理解,一個載重5T的卡車,要拉10T的貨,它\\n\\n當然就得分幾次來拉了。\\n\\n辨析\\n\\n4、IP分片是很多資料常講的內容,但是我倒是覺得分不分片其實不重要,重要的是另一個東西。一個\\n\\n數據包穿過一個大的網絡,它其間會穿過多個網絡,每個網絡的MTU值是不同的。我們可以設想,如果\\n\\n接受\\/發送端都是以太網,它們的MTU都是1500,我們假設發送的時候,數據包會以1500來封裝,然而,\\n\\n不幸的是,傳輸中有一段X.25網,它的MTU是576,這會發生什麼呢?我想,這個纔是我們所關心的。\\n\\n當然,結論是顯而易見的,這個數據包會被再次分片,咱開始用火車拉,到了半路,不通火車,隻通汽車,\\n\\n那一車貨會被分為很多車……僅此而已,更重要的是,這種情況下,如果IP包被設置了“不允許分片標誌”,那\\n\\n會發生些什麼呢?對,數據包將被丟棄,然後收到一份ICMP不可達差錯,告訴你,需要分片!\\n\\n這個網絡中最小的MTU值,被稱為路徑MTU,我們應該有一種有效的手段,來發現這個值,最笨的方法或許是先\\n\\n用traceroute檢視所有節點,然後一個個ping……\\n\\n舉例\\n\\n5、到了傳輸層,也會有一個最大值的限製,當然,對於隻管發,其它都不管的UDP來說,不在我們討論之列。這裡說的是TCP協議。說到大小,或許會讓人想到TCP著名的滑動視窗的視窗大小,它跟收發兩端的緩存有關,這裡討論的是傳輸的最大數據包大小,所以,它也不在討論之列。\\n\\nTCP的選項欄位中,有一個最大報文段長度(MSS),表示了TCP傳往另一端的最大數據的長度,當一個連接建立時,連接的雙方都要通告各自的MSS,也就是說,它是與TCP的SYN標誌在一起的。當然,對於傳輸來講,總是希望MSS越大越好,現在超載這麼嚴重,誰家不希望多拉點貨……但是,MSS總是有個限製的,也就是它的值=MTU-IP頭長度-TCP頭長度,對於以太網來講它通常是1500-20-20=1460,雖然總是希望它能很大(如1460),但是大多數BSD實現,它都是512的倍數,如1024……\\n\\n6、回到分片上來,例如,在Win2000下執行如下命令:\\n\\n\\\"ping192.168.0.1-l1473\\n\\n按剛纔的說法,1473 20(ip頭) 8(icmp頭)=1501,則好大於1500,它會被分片,但是,我們關心的是:\\n\\n這個數據包會被怎麼樣分法?\\n\\n可以猜想,第一個包是\\n\\n以太頭 IP頭 ICMP頭 1472的數據;\\n\\n那第二個分片包呢?\\n\\n它可以是:\\n\\n以太頭 IP頭 ICMP頭 1個字節的數據\\n\\n或者是:\\n\\n以太頭 IP頭 1個字節的數據\\\"(引號內的內容可否在這裡不詳細闡述,對於1473的數據如何被分為1472和1不是很清楚2010.01.1513:50)也就是省去ICMP頭的封裝,當然,IP頭是不可以省的,否則怎麼傳輸了……\\n\\n事實上,TCP\\/IP協議采用的是後一種封裝方式,這樣,一次可以節約8個字節的空間。IP包頭中,用了三個標誌來描述一個分片包:\\n\\n1、分片標誌:如果一個包被分片了,分片標誌這個欄位被置於1,最後一個分片除外;——這樣,對於接收端來講,可以根據這個標誌位做為重組的重要依據之一;\\n\\n2、分片偏移標誌:光有一個標誌位說明“自己是不是分片包”是不夠的,偏移標誌位說明瞭自己這個分片位於原始數據報的什麼位置。很明顯,這兩個標誌一結合,就很容易重組分片包了。\\n\\n3、不允許分片標誌:如果數據包強行設置了這個標誌,那麼在應該分片的時候,……err,剛纔已經說過了。\\n\\n\"

}

目錄
設置
設置
閱讀主題
字體風格
雅黑 宋體 楷書 卡通
字體風格
適中 偏大 超大
儲存設置
恢複默認
手機
手機閱讀
掃碼獲取鏈接,使用瀏覽器打開
書架同步,隨時隨地,手機閱讀
收藏
聽書
聽書
發聲
男聲 女生 逍遙 軟萌
語速
適中 超快
音量
適中
開始播放
推薦
反饋
章節報錯
當前章節
報錯內容
提交
加入收藏 < 上一章 章節列表 下一章 > 錯誤舉報