欄位名稱
長度(位元) 含義
tcp頭部(20位元組~
) 傳送方埠號 16
傳送網路包的程式的埠號
接收方埠號 16
網路包的接收方程式的埠號
序號(傳送資料的順序編號) 32
傳送方告知接收方該網路包傳送的資料相當於所有傳送資料的第幾個位元組
ack號(接收資料的順序編號) 32
接收方告知傳送方接收方已經收到了所有資料的第幾個位元組。其中
ack是
acknowledge
的縮寫
資料偏移量 4
表示資料部分的起始位置,也可以認為表示頭部的長度 保留
6該字段為保留,現在未使用
控制位 6
該字段中的每個位元分別表示以下通訊控制含義。
urg:表示緊急指標字段有效
ack:表示接收資料序號字段有效,一般表示資料已被接收方接收
psh:表示通過
flush
操作傳送的資料
rst:強制斷開連線,用於異常中斷的情況
syn:傳送方和接收方相互確認序號,表示連線操作
fin:表示斷開連線 視窗
16接收方告知傳送方視窗大小(即無需等待確認可一起傳送的資料量)
校驗和 16
用來檢查是否出現錯誤
緊急指標 16
表示應緊急處理的資料位置
可選字段
可變長度
除了上面的固定頭部字段之外,還可以新增可選字段,但除了連線操作之外,很少使用可選字段
欄位名稱
長度(位元) 含義
ip頭部(20位元組~
) 版本號 4
ip協議版本號,目前使用的版本是4
頭部長度(
ihl) 4
ip頭部的長度。可選字段可導致頭部長度變化,因此這裡需要指定頭部的長度
服務型別(
tos) 8
表示包傳輸優先順序。
總長度 16
表示ip訊息的總長度 id
號 16
用於識別包的編號,一般為包的序列號。如果乙個包被
ip分片,則所有分片都擁有相同的id
標誌(flag)
3 該字段有
3個位元,其中
2個位元有效,分別代表是否允許分片,以及當前包是否為分片包
分片偏移量 13
表示當前包的內容為整個
ip資訊的第幾個位元組開始的內容
生存時間(
ttl) 8
表示包的生存時間,這是為了避免網路出現回環時乙個包永遠在網路中打轉。每經過乙個路由器,這個值就會減
1,減到
0時這個包就會被丟棄
協議號 8
協議號表示協議的型別(以下均為十六機制)。
tcp:06
udp:11
icmp:01
頭部校驗和 16
用於檢查錯誤,現在已不使用
傳送方ip位址 32
網路包傳送方的
ip位址
接收方ip位址 32
網路包接收方的
ip位址
可選字段
可變長度
除了上面的固定頭部字段之外,還可以新增可選字段,但除了連線操作之外,很少使用可選字段
欄位名稱
長度(位元) 含義
mac頭部(14
位元組)
接收方mac位址
48 網路包接收方的
mac位址,在區域網中使用這一位址來傳輸網路包
傳送方mac位址 48
網路包傳送方的
mac位址,接收方通過它來判斷是誰傳送了這個包
以太型別 16
使用的協議型別。以下是一些常見的型別,一般在
tcp/ip
通訊中只使用
0800
和0806
這兩種。
0000-05dc
:ieee 802.3
0800 :ip
協議 0806
:arp
協議 86dd
:ipv6
欄位名稱
長度(位元) 含義
udp頭部(8
位元組)
傳送方埠號 16
網路包傳送方的埠號
接收方埠號 16
網路包接收方的埠號
資料長度 16
udp頭部後面資料的長度
校驗和 16
用於校驗錯誤
網路 解析網路中的資料
在網路上傳輸資料時最常用得方式有兩種 xml和json 解析xml的方式有很多,這裡記錄比較常用的兩種 sax和pull解析的方式 待解析的xml檔案示例 sax解析name 18age person xml1name 43age person persons 核心工具類 public class ...
neutron中的網路
openstack neutron專案用來提供虛擬網路功能。neutron中的網路主要有 1 物理網路 虛擬網路底層需要物理網路來實現,就像虛擬機器最終由物理cpu還執行一樣。一台物理機器通過多塊網絡卡可以接入多個物理網路。2 虛擬網路 虛擬網路由openstack管理員 admin 或使用者 us...
網路 虛擬機器中的網路
首先,虛擬機器也要有一塊網絡卡。有的通過linux 上的一種 tun tap 技術來實現 虛擬機器是物理機上跑著的乙個軟體。這個軟體可以像其他應用開啟檔案一樣,開啟乙個稱為 tun tap 的 char dev 字元裝置檔案 開啟了這個字元裝置檔案之後,在物理機上就能看到一張虛擬 tap 網絡卡,然...