⑴ 請問「數據包」和「數據報」有什麼區別
分類: 電腦/網路 >> 互聯網
問題描述:
書上同時出現了這兩個詞,又沒給具體的解釋。最好說的詳細一點。
解析:
什麼是數據包
「包」(Packet)是TCP/IP協議通信傳輸中的數據單位,一般也稱「數據包」。有人說,區域網中傳輸的不是「幀」(Frame)嗎?沒錯,但是TCP/IP協議是工作在OSI模型第三層(網路層)、第四層(傳輸層)上的,而幀是工作在第二層(數據鏈路層)。上一層的內容由下一層的內容來傳輸,所以在區域網中,「包」是包含在「幀」里的。
我們可以用一個形象一些的例子對數據包的概念加以說明:我們在郵局郵寄產品時,雖然產品本身帶有自己的包裝盒,但是在郵寄的時候只用產品原包裝盒來包裝顯然是不行的。必須把內裝產品的包裝盒放到一個郵局指定的專用紙箱里,這樣才能夠沖昌郵寄。這里,產品包裝盒相當於數據包,裡面放著的產品相當於可用的數據,而專用紙箱就相當於幀,且一個幀中只有一個數據包。
數據包的結構
數據包的結構非常復雜,不是三言兩語能夠說清的,在這里我們主要了解一下它的關鍵構成就可以了,這對於理解TCP/IP協議的通信原理是非常重要的。數據包主要由「目的IP地址」、「源IP地址」、「凈載數據」等部分構成。
數據包的結構與我們平常寫信非常類似,目的IP地址是說明這個數據包是要發給誰的,相當於收信人地址;源IP地址是說明這個數據包是發自哪裡的,相當於發信人地址;而凈載數據相當於信件的內容。
正是因為數據包具有這樣的結構,安裝了TCP/IP協議的計算機之間才能相互通信。我們在使用基於TCP/IP協議的網路時,網路中其實傳遞的就是數據包。
********************************************
lxshhh.blogbus/files/***********
摘自《TCP-IP詳解卷1:協議》
4個位元組的32 bit值以下面的次序傳輸:首先是0~7 bit,其次8~15 bit,然後1 6~23 bit,
最後是24~31 bit。這種傳輸次序稱作big endian位元組序。由於T C P / I P首部中所有的二進制整數
在網路中傳輸時都要求以這種次序,因此它又稱作網路位元組序。以其他形式存儲二進制整數
的機器,如little endian格式,則必須在傳輸數據之前把首部轉換成網路字租判磨節序。
目前的協議版本號是4,因此I P有時也稱作I P v 4。3 . 1 0節將對一種新版的I P協議進行討論。
首部長度指的是首部佔32 bit字的數目,包括任何選項。由於它是一個4比特欄位,因此首部最長為6 0個位元組。在第8章中,我們將看到這種限制使某些選項如路由記錄選項在當今已沒有什麼用處。普通I P數據報(沒有任何選擇項)欄位的值是5。
服務類型(TO S)欄位包括一個3 bit的優先權子欄位(現在已被忽略),4 bit的TO S子欄位和1 bit未用位但必須置0。4 bit的TO S分別代表:最小時延、最大吞吐量、最高可靠性和最小費用。4 bit中只能置其中1 bit。如果所有4 bit均為0,那麼就意味著是一般服務。總長度欄位是指整個I P數據報的長度,以位元組為單位。利用首部長度欄位和總長度欄位,就可以知道I P數據報中數據內容的起始位置和長度。由於該欄位長1 6比特,所以I P數據報最長可達6 5 5 3 5位元組(回憶圖2 - 5,超級通道的M T U為6 5 5 3 5。它的意思其實不是一個真正的M T U—它使用了最長的I P數據報)。當數據報被分片時,該欄位的值也隨著變化,這一點將在11 . 5節中進一步描述。
盡管可以傳送一個長達6 5 5 3 5位元組的I P數據報,但是大多數的鏈路層都會對它進行分片。而且,主機也要求不能接收超過5 7 6位元組的數據報。由於T C P把用戶數據分成若乾片,因此一般來說這個限制不會影響T C P。在後面的章節中將遇到大量使用U D P的應用弊斗( R I P,T F T P,B O O T P,D N S,以及S N M P),它們都限制用戶數據報長度為5 1 2位元組,小於5 7 6位元組。但是,事實上現在大多數的實現(特別是那些支持網路文件系統N F S的實現)允許超過8 1 9 2位元組的I P數據報。
總長度欄位是I P首部中必要的內容,因為一些數據鏈路(如乙太網)需要填充一些數據以達到最小長度。盡管乙太網的最小幀長為4 6位元組,但是I P數據可能會更短。如
果沒有總長度欄位,那麼I P層就不知道4 6位元組中有多少是I P數據報的內容。
標識欄位唯一地標識主機發送的每一份數據報。通常每發送一份報文它的值就會加1。在11 . 5節介紹分片和重組時再詳細討論它。同樣,在討論分片時再來分析標志欄位和片偏移欄位。
RFC 791 [Postel 1981a]認為標識欄位應該由讓IP發送數據報的上層來選擇。假設有兩個連續的I P數據報,其中一個是由T C P生成的,而另一個是由U D P生成的,那麼它們
可能具有相同的標識欄位。盡管這也可以照常工作(由重組演算法來處理),但是在大多數從伯克利派生出來的系統中,每發送一個I P數據報,I P層都要把一個內核變數的值加1,不管交給IP的數據來自哪一層。內核變數的初始值根據系統引導時的時間來設置。
T T L(t i m e - t o - l i v e)生存時間欄位設置了數據報可以經過的最多路由器數。它指定了數據報的生存時間。T T L的初始值由源主機設置(通常為3 2或6 4),一旦經過一個處理它的路由器,它的值就減去1。當該欄位的值為0時,數據報就被丟棄,並發送I C M P報文通知源主機。第8
章我們討論Tr a c e r o u t e程序時將再回來討論該欄位。
我們已經在第1章討論了協議欄位,並在圖1 - 8中示出了它如何被I P用來對數據報進行分用。根據它可以識別是哪個協議向I P傳送數據。
首部檢驗和欄位是根據I P首部計算的檢驗和碼。它不對首部後面的數據進行計算。I C M P、I G M P、U D P和T C P在它們各自的首部中均含有同時覆蓋首部和數據檢驗和碼。
為了計算一份數據報的I P檢驗和,首先把檢驗和欄位置為0。然後,對首部中每個16 bit進行二進制反碼求和(整個首部看成是由一串16 bit的字組成),結果存在檢驗和欄位中。當收到一份I P數據報後,同樣對首部中每個16 bit進行二進制反碼的求和。由於接收方在計算過程中包含了發送方存在首部中的檢驗和,因此,如果首部在傳輸過程中沒有發生任何差錯,那麼接收方計算的結果應該為全1。如果結果不是全1(即檢驗和錯誤),那麼I P就丟棄收到的
數據報。但是不生成差錯報文,由上層去發現丟失的數據報並進行重傳。
I C M P、I G M P、U D P和T C P都採用相同的檢驗和演算法,盡管T C P和U D P除了本身的首部和數據外,在I P首部中還包含不同的欄位。在RFC 1071[Braden, Borman and Patridge 1988]中有關於如何計算I n t e r n e t檢驗和的實現技術。由於路由器經常只修改T T L欄位(減1),因此當路
由器轉發一份報文時可以增加它的檢驗和,而不需要對I P整個首部進行重新計算。R F C1141[Mallory and Kullberg 1990]為此給出了一個很有效的方法。
但是,標準的BSD實現在轉發數據報時並不是採用這種增加的辦法。每一份I P數據報都包含源I P地址和目的I P地址。我們在1 . 4節中說過,它們都是32 bit的值。
最後一個欄位是任選項,是數據報中的一個可變長的可選信息。目前,這些任選項定義如下:
• 安全和處理限制(用於軍事領域,詳細內容參見RFC 1108[Kent 1991])
• 記錄路徑(讓每個路由器都記下它的I P地址,見7 . 3節)
• 時間戳(讓每個路由器都記下它的I P地址和時間,見7 . 4節)
• 寬松的源站選路(為數據報指定一系列必須經過的I P地址,見8 . 5節)
• 嚴格的源站選路(與寬松的源站選路類似,但是要求只能經過指定的這些地址,不能
經過其他的地址)。
這些選項很少被使用,並非所有的主機和路由器都支持這些選項。
選項欄位一直都是以32 bit作為界限,在必要的時候插入值為0的填充位元組。這樣就保證
I P首部始終是32 bit的整數倍(這是首部長度欄位所要求的)。
⑵ 數據包和數據幀分別代表什麼
1,包(Packet)是TCP/IP協議通信傳輸中的數據單位,一般也稱「數據包」。
TCP/IP協議是工作在OSI模型第三層(網路層)、第四層(傳輸層)上的,幀工作在第二層(數據鏈路層)。上一層的內容由下一層的內容來傳輸,所以在區域網中,「包」是包含在「幀」里的。
2,所謂數據幀(Data frame),就是數據鏈路層的協議數據單元,它包括三部分:幀頭,數據部分,幀尾。其中,幀頭和幀尾包含一些必要的控制信息,比如同步信息、地址信息、差錯控制信息等;數據部分則包含網路層傳下來的數據,比如IP數據包,等等。
(2)數據包是什麼技術的詞彙擴展閱讀
數據包在傳輸過程中是以數據幀的形式傳輸的,數據幀由幀頭+IP頭+TCP/UDP頭+數據+幀校驗組成;
在每一個路由器上幀頭與幀校驗都會變化以適應不同的鏈路,其他內容基本不變;
所有數據都是以二進制數據進行編碼的,根據各個鏈路類型在不同的物理鏈路上編碼傳輸。
⑶ 分組、數據包、幀、報文的概念分別是什麼,它們之間有什麼區別啊
以下是我自己總結的,應該差不多,如果實在那裡你感覺不太准確,那你再查一查。
分組:大多數計算機網路都不能連續地傳送任意長的數據,所以實際上網路系統把數據分割成小塊,然後逐塊地發送,這種小塊就稱作分組
數據包(Packet):是TCP/IP協議通訊傳輸中的數據單元,是在三、四層之上的。
數據報(Datagram):是一種特定的數據包,主要指網路層的傳輸單元。
幀(Frame):是工作在第二層的,「包」是包含在「幀」裡面的。
⑷ 什麼是數據接收包
什麼是數據包?
您在互聯網上做的一切都涉及到數據包。例如,您接收的每個網頁都以一系列數據包的形式傳入,您發送的每封電子郵件都以一系列數據包的形式傳出。以小型數據包傳輸數據的網路稱為數據包交換網路。
在互聯網上,網路以位元組為單位將電子郵件分割為多個大小固定的部分。這些部分就是數據包。每個數據包都承載著引導它到達目的地的信息——發件人的IP地址、目標收件人的IP地址以及其他一些信息,以告訴網路此電子郵件分割成了多少個數據包和這些數據包的編號。數據包根據互聯網所用的協議承載數據:傳數控制協議/互聯網協議(TCP/IP)。每個數據包都包含郵件正文的一部分。典型的數據包可能包含1,000或1,500位元組。
然後每個數據包通過最佳可用路由發送到目的地——要麼郵件的所有其他數據包都採用該路由,要麼所有其他數據包都不採用。這使得網路的效率更高。首先,網路可以平衡每毫秒內各個設備間的負載。其次,如果傳輸郵件時網路中的一件設備出現故障,數據包也可以經路由繞過故障,確保整封郵件的傳遞成功。
根據網路類型的不同,數據包可能使用其他名字:
幀
塊
單元
段
大部分數據包分為三個部分:
報頭——報頭包含對數據包所承載數據的說明。這些說明可包括: 數據包長度(一些網路使用固定長度的數據包,而一些則依賴報頭來包含此信息)
同步(若干位元組的數據,用於幫助數據包匹配網路)
數據包編號(表示這是數據包序列中的第幾個)
協議(在傳輸多種類型信息的網路上,協議定義所要傳輸數據包的類型:電子郵件、網頁或流視頻等)
目標地址(數據包的目的地)
發出地址(數據包的來源)
負載——也稱為數據包正文或數據。這是數據包向目的地發送的實際數據。如果數據包的長度固定,則負載可能以空白信息填補以達到正確的長度。
報尾——報尾有時也稱為頁腳,通常包含幾個位元組的數據,用於通知接收設備該處已是數據包的末尾。它還可能具有某種類型的錯誤檢查功能,其中最常見的是循環冗餘碼校驗(CRC)。CRC非常簡潔。它在某些計算機網路中的工作方式是,先取出負載中所有的1並相加,然後將結果以十六進制的形式保存在報尾中。接收設備將負載中的1值相加,並與報尾中保存的值比較。如果兩值相同,則證明數據包是完好的;如果兩值不同,接收設備就會向發出設備發送請求,請其重新發送數據包。
讓我們來看看電子郵件是怎樣分割為若干數據包的。假設您向朋友發送一封電子郵件,大小約為3,500 位元組(3.5KB)。用來發送郵件的網路使用固定長度為1,024位元組(1KB)的數據包。每個數據包的報頭長度為96位元組,報尾為32位元組,剩下的896位元組分配給負載。要將3,500位元組的郵件分割,您需要4個數據包(3,500除以896)。三個數據包包含896位元組負載,第四個包含812位元組。下面是其中一個數據包的內容:
每個數據包的報頭都包含相應的協議、發出地址(您的計算機的IP地址)、目標地址(接收電子郵件的計算機的IP地址)和數據包編號(1、2、3或4,因為一共有4個數據包)。網路中的路由器將查看報頭中的目標地址,並將其與查詢表中的內容進行比較,以確定數據包的發送目的地。當數據包到達目的地後,您朋友的計算機將從每個數據包中剔除報頭和報尾,並按照數據包的編號順序重新組合電子郵件。
⑸ 數據包什麼意思
包(Packet):在包交換網路里,單個消息被劃分為多個數據塊,這些數據塊稱為包,它包含發送者和接收者的地址信息。這些包然後沿著不同的路徑在一個或多個網路中傳輸,並且在目的地重新組合。
名詞解釋:OSI(Open System Interconnection,開放系統互聯)模型是由國際標准化組織(ISO)定義的標准,它定義了一種分層體系結構,在其中的每一層定義了針對不同通信級別的協議。OSI模型有7層,1到7層分別是:物理層、數據鏈路層、網路層、傳輸層、會話層、表示層、應用層。OSI模型在邏輯上可分為兩個部分:低層的1至3層關注的是原始數據的傳輸;高層的4至7層關注的是網路下的應用程序。
⑹ TCP數據包是什麼
因為迅雷有一個加速程序,TCP/ip協議,主要功能就是加快網路數據流下載速度,寫入緩沖文件,都被你攔截掉,那就等於沒有啟動加速程序.