當前位置:首頁 » 服務存儲 » 存儲位元組要偏移
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

存儲位元組要偏移

發布時間: 2022-09-30 19:57:51

Ⅰ 什麼是分區的位元組偏移量

在網路分析領域,偏移量是一個頻繁出現的術語,如IP分段偏移量、TCP偏移量、位偏移,基於數據包偏移、基於協議偏移等等。那它們到底是什麼含義,有什麼區別呢?帶著這些疑問,我查閱了一些TCP/IP書籍,並對其有了一定的了解。下面我就將我的個人理解與大家一起共同分享。歡迎拍磚啊!:)
1IP分段偏移量
IP數據包在網路中進行傳輸,如果數據包的大小超過網路設備的MTU值,則需要進行分段傳輸。分段偏移量用來標識數據包在該數據流中的位置,也可以理解為使用同一個IP標識發送多個數據包時的順序號。發送主機給第一個分段數據包的偏移量賦值為0,對於其後的分段,該偏移量的值是MTU值減去上一個IP報頭的大小,所以我們也可以說IP分段偏移量是指數據包中某個分段相對與第一分段在數據包中的位置。
下面我們舉一個實例。我在我的機器(192.168.0.90)的CMD窗口中執行「ping 192.168.0.1 -l 3000 -n 1」命令,同時在科來網路分析系統中設定一個過濾器,只捕獲從192.168.0.90到192.168.0.1的單方向數據,由於3000遠遠大於了乙太網的MTU值,所以它會被分段傳輸。這時我們來看捕獲到的數據包,如圖1所示。

(圖1 IP分段偏移量)

從圖1可知中,共捕獲到了三個數據包,第一個協議是ICMP,後面兩個是IP Fragment,前面兩個數據包的大小是1518位元組,第三個是86位元組。第一個數據包的IP偏移量是0,第二個是185,第三個是370。
這三個數據包的詳細情況如下表:
數據包編號 IP分段標志 IP偏移量 傳輸數據
1 更多分段置1 00位元組 1518-14-20-8-4=1472
2 更多分段置1 1851480位元組 1518-14-20-4=1480
3 更多分段置0 3702960位元組 86-14-20-4=48
上表中,第1個數據包中,多了一個ICMP報頭,所以在計算傳輸的數據時,多減了8個位元組的ICMP報頭,而後面的兩個數據包由於存在ICMP的報頭開銷,所以不需要減去8位元組的ICMP報頭。將傳輸的數據加起來,1472+1480+48=3000,與測試的數據完全吻合。
注意:如果有更多的分段,按照此規則依次累加即可,同時所有分段數據包的IP標識都是相同的。
2TCP偏移量
TCP偏移量出現在TCP報頭里,它主要是指TCP報頭的長度。TCP偏移量欄位的長度是1位元組,以32比特(4個位元組)字長表示TCP報頭的長度。不包含選項的TCP報頭長為20個位元組,用TCP偏移量來表示就是5(5X4=20個位元組),如圖2所示。如果TCP報頭中有選項,TCP的報頭長度則會按照4的倍數進行累加,如有一個選項時,TCP報頭長度是24位元組,這時TCP偏移量是6,有兩個選項時,TCP報頭長度是28位元組,這時TCP偏移量是7。

(圖2 無選項情況下的TCP偏移量)

3位偏移量
有些報頭的某些欄位,每位都表示不同的含義,而一個數據包可同時有1位或多位置1,比如TCP標志欄位。簡單的說位偏移量是指欄位中某一位在該欄位中的位置。我們來看看TCP的標志欄位。如圖3所示。

(圖3 TCP標志欄位)

圖3中高亮顯示的是同步位置1時的情況,也就是說該數據包是一個TCP同步數據包。TCP同步數據包的值是TCP標志位的值是10(二進制)或02(16進制)或2(10進制,8進制)。同時我們從圖中可知,該欄位中的每一位都有不同的掩碼,我們在特定分析需要設定位偏移的過濾器時,即可通過設定該掩碼的值實現過濾。如只希望捕獲網路中的同步數據包,我們只需設定如圖4所示的過濾器並根據該過濾器捕獲數據即可。

4基於數據包偏移和基於協議偏移
偏移量的計算一般按兩種類型:基於數據包類型和基於協議偏移。
4.1基於數據包偏移
基於數據包偏移的偏移量演算法,是從乙太網報頭作為基準點,向後開始計算特定欄位的偏移量,這里我仍然以TCP標志欄位為例,說明基於數據包偏移的偏移量計算方法。圖5所示的是一個TCP確認數據包,我們藉助圖5查看TCP標志位的偏移量。

(圖5 按數據包類型)

由於是以乙太網報頭作基準,所以這個數據包中的TCP標志位偏移量應該是以下報頭的相加的總和:
Ethernet II報頭14,IP報頭20,TCP源埠2,TCP目標埠2,TCP序列號4,TCP確認號4,TCP偏移量1。
所以,在基於數據包偏移的情況下,該數據包的TCP標志欄位偏移量是14+20+2+2+4+4+1=47。
4.2基於協議偏移
基於協議偏移的偏移量演算法,是以某種協議為基準點,向後開始計算特定欄位的偏移量,而並非從乙太網報頭開始。我們還是以圖5中TCP標志位偏移量來舉例。
在這種情況下,這個數據包如果按照TCP協議進行偏移,那麼TCP標志位的偏移量應該是以下欄位的相加總和:
TCP源埠2,TCP目標埠2,TCP序列號4,TCP確認號4,TCP偏移量1。
所以,TCP標志欄位在這個數據包的偏移量是2+2+4+4+1=13。
注意:
基於數據包的偏移,只匹配了偏移值,沒有進行協議匹配,可能出現誤差。所以,在精確度較高,且分析軟體支持的情況下,應盡量使用基於協議偏移的偏移量計算方法,這樣的分析結果可能更准確。

Ⅱ 什麼叫位元組偏移

計算機的處理信息的最小單位,計算機中的數據都是以0和1來表示的,其中一個0或者一個1稱之為一位,8位稱為一個位元組(byte),兩個位元組稱為一個字(word),4個位元組稱為雙字(dword)。

存儲器地址的段地址、偏移地址和物理地址

1、(1)段地址:2314H,偏移地址:0035H,物理地址:23175H
(2)
段地址:1FD0H,偏移地址:00A0H,物理地址:1FDA0H2、依次為85H~8CH,計算公式:有效地址=物理地址-DS*16。由於是16位機,一次處理數據16位,即2位元組,這里有8個位元組,所以,要訪問4次。

Ⅳ 存儲空間大小跟偏移地址什麼關系

個操作系統都有自己的默認內存對齊系數內存對齊可以用一句話來概括:「數據項只能存儲在地址是數據項大小的整數倍的內存位置上」例如int類型佔用4個位元組,地址只能在0,4,8等位置上。 同樣的:double類型只能在 0 8 16等位置上。 char 0 int 8 double 16 char 24 size=24 struct xx{ char b; 0 char d; 1 int a; 4 double c; 16};size=16

Ⅳ 存儲器地址的段地址、偏移地址和物理地址

1、(1)段地址:2314H,偏移地址:0035H,物理地址:23175H (2) 段地址:1FD0H,偏移地址:00A0H,物理地址:1FDA0H2、依次為85H~8CH,計算公式:有效地址=物理地址-DS*16。由於是16位機,一次處理數據16位,即2位元組,這里有8個位元組,所以,要訪問4次。

Ⅵ uint8 和 uint16差8個位元組,為什麼FLASH寫入uint16類型只要偏移4個位元組

首先,uint8類型的數據位元組大小是1位元組,uint16類型的數據位元組大小是2位元組,所以兩者相差的是1位元組。

其次,flash在存儲數據是以32bit(4位元組)為單位進行的,所以在存儲數據時,偏移量是以4位元組為單位進行的。

Ⅶ 什麼是分區的位元組偏移量

談到硬碟邏輯鎖加鎖原理,就不得不提到硬碟分區表的結構。硬碟分區表位於硬碟的 0 磁軌 0 柱面第1扇區(即0區)(注意:該扇區為隱含扇區,0道0面的全部扇區均為隱含扇區,普通的磁碟訪問命令無法直接訪問,同時該磁軌的其他62個扇區也是隱含的,因此有引多系統引導程序就把自己的程序代碼放在其他隱含扇區,有些引導區病毒也把自己的代碼放在其他隱含扇區。)。在該扇區512位元組中,硬碟的主引導記錄區MBR (Main Boot Record)只佔用了前 446 個位元組(偏移 000H-- 偏移 1BDH ),另外的 64個位元組(偏移 1BEH-- 偏移 1FDH )是硬碟分區表DPT(Disk Partition Table ) , 最後兩個位元組 "55 AA" (偏移 1FEH-偏移 1FFH )是分區結束標志。

MBR,全稱為Master Boot Record,即硬碟的主引導記錄。

引導扇區是每個分區(Partition)的第一扇區,而主引導扇區是硬碟的第一扇區。它由三個部分組成,主引導記錄MBR、硬碟分區表DPT和硬碟有效標志。在總共512位元組的主引導扇區里MBR佔446個位元組(偏移0--偏移1BDH),DPT佔64個位元組(偏移1BEH--偏移1FDH),最後兩個位元組「55AA」(偏移1FEH--偏移1FFH)是硬碟有效標志。

偏移代表 從 0 磁軌 0 柱面第1扇區(即0區開始計算的

什麼分區工具:
CMD下,最好用PQ DM等軟體.那個不支持大硬碟的.

Ⅷ 什麼是位元組偏移量j計算機組成中

偏移量有8位的、16位的等等,位元組偏移量就是8位的偏移量

Ⅸ 給整形變數地址加1,為什麼不是偏移了1個位元組

因為在聲明變數時,編譯器會記錄這個變數的類型,你聲明了整型變數後,取得的整型變數地址的類型是整型指針,因此加1時,編譯程序會按照整型變數的位元組數進行地址調整,會指向這個整型存儲區下一個整型變數位置,從而完全跳過當前整型變數存儲區

Ⅹ 設置文本顯示向導時提示「將存儲塊偏移量設置為VW0嗎」是什麼意思

第一步:分配存儲區圖1.分配數據存儲區分配向導所使用的V存儲區地址在畫面上方會根據用戶的配置顯示所需的不同的V存儲區的大小。用戶的配置不同,所需的存儲區大小也不同。用戶可以自己分配一個程序中未用過的V存儲區,也可以點擊「建議地址」按鈕讓向導自動分配一個程序中未用過的V存儲區地址。為不同的TD400C設置不同的參數塊地址,允許你將多個TD400C連接到同一CPU上(它們顯示和控制的內容不同)。如果為連接到同一個CPU上的TD400C的參數塊地址設置為相同的,則它們顯示和控制的內容相同。注意:本例中在此處設定的參數塊起始地址為VB512,則從VB512開始的兩個位元組將保存英文字母'td'的ASCII碼,作為TD參數塊起始地址的標志。這時如果把TD400C的設置菜單中中的「參數塊偏移地址」設定為512(TD的出廠默認設置為0,即參數塊偏移地址為VB0),TD就能正常工作。CPU中的其他用戶程序絕對不能佔用這個區域的地址,否則會引起無參數塊錯誤、亂碼或數據錯誤。如果在a.中設置的數據區不是以VB0開始(正如本例),按「下一步」按鈕會出現此消息框。選擇是否將參數塊的偏移地址放到VW0中如果選「Yes」,向導會自動將參數塊偏移地址(此處是512)放到VW0中,也就是VW0成為了參數塊地址的指針。此時TD400C硬體中的設置菜單中的「參數塊偏移地址」既可以設成它的實際參數塊地址512(指向VB512),也可以設成默認的0(指向VB0)。一定要保證程序中其它地方不要用到這些數據存儲區,包括VW0,否則會引起無參數塊錯誤、亂碼或數據錯誤。這意味著用戶自行更換TD400C時,不必進入TD400C的診斷菜單重新設置參數塊地址出廠值。如果選「No」,參數塊地址還是設定的存儲區起始地址VB512。按照上面的配置,TD400C硬體中設置菜單中的「參數塊偏移地址必須設為512(指向VB512),VW0中不會保存與TD配置有關的信息。