當前位置:學問谷 >

行業範例 >互聯網 >

數據包是什麼-介紹&具體運用及應用實例

數據包是什麼-介紹&具體運用及應用實例

互聯網時代,我們經常會聽到數據包的字眼。那麼,數據包到底是什麼呢?又該如何運用呢?以下是本站小編整理的數據包基本介紹、具體運用及應用實例,歡迎閲讀參考!

數據包是什麼-介紹&具體運用及應用實例
數據包是什麼-介紹&具體運用及應用實例

基本介紹

包(Packet)是TCP/IP協議通信傳輸中的數據單位,一般也稱"數據包"。

TCP/IP協議是工作在OSI模型第三層(網絡層)、第四層(傳輸層)上的,幀工作在第二層(數據鏈路層)。上一層的內容由下一層的內容來傳輸,所以在局域網中,"包"是包含在"幀"裏的。

OSI(Open System Interconnection,開放系統互聯)模型是由國際標準化組織(ISO)定義的標準,它定義了一種分層體系結構,在其中的每一層定義了針對不同通信級別的協議。OSI模型有7層,1到7層分別是:物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用層。OSI模型在邏輯上可分為兩個部分:低層的1至4層關注的是原始數據的傳輸;高層的5至7層關注的是網絡下的應用程序。 我們可以用一個形象一些的例子對數據包的概念加以説明:我們在郵局郵寄產品時,雖然產品本身帶有自己的包裝盒,但是在郵寄的時候只用產品原包裝盒來包裝顯然是不行的。

必須把內裝產品的包裝盒放到一個郵局指定的專用紙箱裏,這樣才能夠郵寄。這裏,產品包裝盒相當於數據包,裏面放着的產品相當於可用的數據,而專用紙箱就相當於幀,且一個幀中只有一個數據包。 “包”聽起來非常抽象,那麼是不是不可見的呢?通過一定技術手段,是可以感知到數據包的存在的。比如在Windows 2000 Server中,把鼠標移動到任務欄右下角的網卡圖標上(網卡需要接好雙絞線、連入網絡),就可以看到“發送:××包,收到:××包”的提示。通過數據包捕獲軟件,也可以將數據包捕獲並加以分析。 就是用數據包捕獲軟件Iris捕獲到的數據包的界面圖,在此,大家可以很清楚地看到捕獲到的數據包的MAC地址、IP地址、協議類型端口號等細節。通過分析這些數據,網管員就可以知道網絡中到底有什麼樣的數據包在活動了。

具體運用

簡單的説,你上網打開網頁,這個簡單的動作,就是你先發送數據包給網站,它接收到了之後,根據你發送的數據包的IP地址,返回給你網頁的數據包,也就是説,網頁的瀏覽,實際上就是數據包的交換。

1、數據鏈路層對數據幀的長度都有一個限制,也就是鏈路層所能承受的最大數據長度,這個值稱為最大傳輸單元,即MTU。以以太網為例,這個值通常是1500字節。

2、對於IP數據包來講,也有一個長度,在IP包頭中,以16位來描述IP包的長度。一個IP包,最長可能是65535字節。

3、結合以上兩個概念,第一個重要的結論就出來了,如果IP包的大小,超過了MTU值,那麼就需要

分片,也就是把一個IP包分為多個,這個概念非常容易理解,一個載重5T的卡車,要拉10T的貨,它

當然就得分幾次來拉了。

應用實例

5、到了傳輸層,也會有一個最大值的限制,當然,對於只管發,其它都不管的UDP來説,不在我們討論之列。這裏説的是TCP協議。説到大小,或許會讓人想到TCP著名的滑動窗口的窗口大小,它跟收發兩端的緩存有關,這裏討論的是傳輸的最大數據包大小,所以,它也不在討論之列。

TCP的選項字段中,有一個最大報文段長度(MSS),表示了TCP傳往另一端的最大數據的長度,當一個連接建立時,連接的.雙方都要通告各自的MSS,也就是説,它是與TCP的SYN標誌在一起的。當然,對於傳輸來講,總是希望MSS越大越好,現在超載這麼嚴重,誰家不希望多拉點貨……但是,MSS總是有個限制的,也就是它的值=MTU-IP頭長度-TCP頭長度,對於以太網來講它通常是1500-20-20=1460,雖然總是希望它能很大(如1460),但是大多數BSD實現,它都是512的倍數,如1024……

6、回到分片上來,例如,在Win2000下執行如下命令:

"ping -l 1473

按剛才的説法,1473+20(ip頭)+8(icmp頭)=1501,則好大於1500,它會被分片,但是,我們關心的是:

這個數據包會被怎麼樣分法?

可以猜想,第一個包是

以太頭+IP頭+ICMP頭+1472的數據;

那第二個分片包呢?

它可以是:

以太頭+IP頭+ICMP頭+1個字節的數據

或者是:

以太頭+IP頭+1個字節的數據"(引號內的內容可否在這裏不詳細闡述,對於1473的數據如何被分為1472和1不是很清楚2010.01.15 13:50)也就是省去ICMP頭的封裝,當然,IP頭是不可以省的,否則怎麼傳輸了……

事實上,TCP/IP協議採用的是後一種封裝方式,這樣,一次可以節約8個字節的空間。IP包頭中,用了三個標誌來描述一個分片包:

1、分片標誌:如果一個包被分片了,分片標誌這個字段被置於1,最後一個分片除外;——這樣,對於接收端來講,可以根據這個標誌位做為重組的重要依據之一;

2、分片偏移標誌:光有一個標誌位説明“自己是不是分片包”是不夠的,偏移標誌位説明了自己這個分片位於原始數據報的什麼位置。很明顯,這兩個標誌一結合,就很容易重組分片包了。

3、不允許分片標誌:如果數據包強行設置了這個標誌,那麼在應該分片的時候,…… err,剛才已經説過了。

標籤: 數據包 實例
  • 文章版權屬於文章作者所有,轉載請註明 https://xuewengu.com/flhy/hulian/141d67.html