1、爲什麼ip數據包的頭部要記錄數據包(包括頭部在內)的長度?
主要原因是一些攜帶IPv4數據包的底層協議無法準確描述自己的載荷長度
比如以太網mac幀的長度爲頭部(14B)+數據(46-1500B)+校驗和(4B)其最小長度爲64字節。如果頭部+載荷<64字節,這個時候會對其進行填充至最小長度的操作。
而如果IPv4數據包頭部不指定其長度的話,將無法區分一個數據包是否進行過填充。
主要原因是一些攜帶IPv4數據包的底層協議無法準確描述自己的載荷長度
比如以太網mac幀的長度爲頭部(14B)+數據(46-1500B)+校驗和(4B)其最小長度爲64字節。如果頭部+載荷<64字節,這個時候會對其進行填充至最小長度的操作。
而如果IPv4數據包頭部不指定其長度的話,將無法區分一個數據包是否進行過填充。
import sys sys.path.append('../..') sys.path.append('.') sys.path.append('./') 把這些路徑都加入sys.path就找到了.