什麼是數據包

您在互聯網上做的一切都涉及到數據包。例如,您接收的每個網頁都以一系列數據包的形式傳入,您發送的每封電子郵件都以一系列數據包的形式傳出。以小型數據包傳輸數據的網絡稱爲數據包交換網絡

在互聯網上,網絡以字節爲單位將電子郵件分割爲多個大小固定的部分。這些部分就是數據包。每個數據包都承載着引導它到達目的地的信息——發件人的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個數據包)。網絡中的路由器將查看報頭中的目標地址,並將其與查詢表中的內容進行比較,以確定數據包的發送目的地。當數據包到達目的地後,您朋友的計算機將從每個數據包中剔除報頭和報尾,並按照數據包的編號順序重新組合電子郵件。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章