計算機中“位”是什么意思?


在計算機內部,數據都是以二進制的形式存儲和運算的。

位,二進制數據中的一個位(bit)簡寫為b,音譯為比特,是計算機存儲數據的最小單位。一個二進制位只能表示0或1兩種狀態,要表示更多的信息,就要把多個位組合成一個整體,一般以8位二進制組成一個基本單位,即字節。

8位能表示多少種組合?2的8次方,如果用來表示數字,從0開始,那8位最大能表示255。

這樣就可以理解IP地址中所說的多少位。
◆ IP地址長度為32位,常分成4個8位
◆ IP地址常使用點分十進制來表示(0255.0255.0255.0255)

還有IP協議中的多少位。

源端口、目標端口:計算機上的進程要和其他進程通信是要通過計算機端口的,而一個計算機端口某個時刻只能被一個進程占用,所以通過指定源端口和目標端口,就可以知道是哪兩個進程需要通信。源端口、目標端口是用16位表示的,可推算計算機的端口個數為2^16個

序列號:表示本報文段所發送數據的第一個字節的編號。在TCP連接中所傳送的字節流的每一個字節都會按順序編號。由於序列號由32位表示,所以每2^32個字節,就會出現序列號回繞,再次從 0 開始

確認號:表示接收方期望收到發送方下一個報文段的第一個字節數據的編號。也就是告訴發送方:我希望你(指發送方)下次發送的數據的第一個字節數據的編號為此確認號

數據偏移:表示TCP報文段的首部長度,共4位,由於TCP首部包含一個長度可變的選項部分,需要指定這個TCP報文段到底有多長。它指出 TCP 報文段的數據起始處距離 TCP 報文段的起始處有多遠。該字段的單位是32位(即4個字節為計算單位),4位二進制最大表示15,所以數據偏移也就是TCP首部最大60字節

URG:表示本報文段中發送的數據是否包含緊急數據。后面的緊急指針字段(urgent pointer)只有當URG=1時才有效

ACK:表示是否前面確認號字段是否有效。只有當ACK=1時,前面的確認號字段才有效。TCP規定,連接建立后,ACK必須為1,帶ACK標志的TCP報文段稱為確認報文段

PSH:提示接收端應用程序應該立即從TCP接收緩沖區中讀走數據,為接收后續數據騰出空間。如果為1,則表示對方應當立即把數據提交給上層應用,而不是緩存起來,如果應用程序不將接收到的數據讀走,就會一直停留在TCP接收緩沖區中

RST:如果收到一個RST=1的報文,說明與主機的連接出現了嚴重錯誤(如主機崩潰),必須釋放連接,然后再重新建立連接。或者說明上次發送給主機的數據有問題,主機拒絕響應,帶RST標志的TCP報文段稱為復位報文段

SYN:在建立連接時使用,用來同步序號。當SYN=1,ACK=0時,表示這是一個請求建立連接的報文段;當SYN=1,ACK=1時,表示對方同意建立連接。SYN=1,說明這是一個請求
建立連接或同意建立連接的報文。只有在前兩次握手中SYN才置為1,帶SYN標志的TCP報文段稱為同步報文段

FIN:表示通知對方本端要關閉連接了,標記數據是否發送完畢。如果FIN=1,即告訴對方:“我的數據已經發送完畢,你可以釋放連接了”,帶FIN標志的TCP報文段稱為結束報文段

窗口大小:表示現在允許對方發送的數據量,也就是告訴對方,從本報文段的確認號開始允許對方發送的數據量,達到此值,需要ACK確認后才能再繼續傳送后面數據,由Window size value * Window size scaling factor(此值在三次握手階段TCP選項Window scale協商得到)得出此值

校驗和:提供額外的可靠性

緊急指針:標記緊急數據在數據字段中的位置

選項部分:其最大長度可根據TCP首部長度進行推算。TCP首部長度用4位表示,選項部分最長為:(2^4-1)*4-20=40字節
常見選項:
   最大報文段長度:Maxium Segment Size,MSS,通常1460字節
   窗口擴大:Window Scale
   時間戳: Timestamps

1 最大報文段長度MSS(Maximum Segment Size)
指明自己期望對方發送TCP報文段時那個數據字段的長度。比如:1460字節。數據字段的長度加上TCP首部的長度才等於整個TCP報文段的長度。MSS不宜設的太大也不宜設的太小。若選擇太小,極端情況下,TCP報文段只含有1字節數據,在IP層傳輸的數據報的開銷至少有40字節(包括TCP報文段的首部和IP數據報的首部)。這樣,網絡的利用率就不會超過1/41。若TCP報文段非常長,那么在IP層傳輸時就有可能要分解成多個短數據報片。在終點要把收到的各個短數據報片裝配成原來的TCP報文段。當傳輸出錯時還要進行重傳,這些也都會使開銷增大。因此MSS應盡可能大,只要在IP層傳輸時不需要再分片就行。在連接建立過程中,雙方都把自己能夠支持的MSS寫入這一字段。 MSS只出現在SYN報文中。即:MSS出現在SYN=1的報文段中
MTU和MSS值的關系:MTU=MSS+IP Header+TCP Header
通信雙方最終的MSS值=較小MTU-IP Header-TCP Header

2 窗口擴大
為了擴大窗口,由於TCP首部的窗口大小字段長度是16位,所以其表示的最大數是65535。但是隨着時延和帶寬比較大的通信產生(如衛星通信),需要更大的窗口來滿足性能和吞吐率,所以產生了這個窗口擴大選項

3 時間戳
可以用來計算RTT(往返時間),發送方發送TCP報文時,把當前的時間值放入時間
戳字段,接收方收到后發送確認報文時,把這個時間戳字段的值復制到確認報文中,當發送方收到確認報文后即可計算出RTT。也可以用來防止回繞序號PAWS,也可以說可以用來區分相同序列號的不同報文。因為序列號用32為表示,每2^32個序列號就會產生回繞,那么使用時間戳字段就很容易區分相同序列號的不同報文。

字節

字節是計算機數據處理的最基本單位,並主要以字節為單位解釋信息。字節(Byte)簡記為B,規定一個字節為8位,即1B=8bit。每個字節由8個二進制位組成。一般情況下,一個ASCII碼占用一個字節,一個漢字國際碼占用兩個字節。

一個字通常由一個或若干個字節組成。字(Word)是計算機進行數據處理時,一次存取、加工和傳送的數據長度。由於字長是計算機一次所能處理信息的實際位數,所以,它決定了計算機數據處理的速度,是衡量計算機性能的一個重要指標,字長越長,性能越好。
是不是可以這樣理解,平時說的“字符”就是由若干字節組成,不同編碼格式的字符所占字節是不同的。

數據的換算關系

1Byte=8bit,1KB=1024B,1MB=1024KB,1GB=1024MB。
計算機型號不同,其字長是不同的,常用的字長有8、16、32和64位。一般情況下,IBM PC/XT的字長為8位,80286微機字長為16位,80386/80486微機字長為32位,Pentium系列微機字長為64位。

如何表示正負和大小,在計算機中采用什么計數制,是學習計算機的一個重要問題。
數據是計算機處理的對象,在計算機內部,各種信息都必須通過數字化編碼后才能進行存儲和處理。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM