項目介紹
一、zebra概述
- 如圖所示,電信運營商的用戶通過連接到互聯網中的各種網絡設備訪問一個網站時,其訪問信息會通過基站在網絡中傳遞,基站可以收集所有用戶的訪問日誌數據
- zebra是對電信運營商收集的用戶上網數據進行分析的一個應用程序。通過分析得到的結果可以展現不同小區的上網詳情
- 注:zebra本意爲斑馬,命名類似hadoop的方式,並無特殊含義
二、整體分析
- 該日誌中的每一條數據都包含了77個字段,字段說明如下:
序號 |
字段名 |
類型 |
長度 |
說明 |
0 |
reporttime |
string |
14 |
從文件名截取獲取,動態填上 |
1 |
Length |
unsigned int |
2 |
用於指示整個XDR所佔用字節數 |
2 |
City |
byte |
2 |
城市區號,如010代表北京 |
3 |
Interface |
unsigned int |
1 |
接口類型,16進制編碼 1. Uu 2. X2 3. UE_MR 4. Cell_MR 5. S1-MME 6. S6a 7. S11 8. S10 9. SGs 10. S5/S8 11. S1-U 12. Gn 13~20 預留 21. IDC出口 22.省網出口 23.省網網間出口 24.骨幹網網間出口 |
4 |
xDR ID |
unsigned int |
16 |
DPI設備內唯一的xDR編號,16進制編碼。一個會話生成一個xDR ID。 S1-U接口中,一個會話在同一個小區中的傳輸過程生成一個xDR ID,如該會話切換到新的小區,則生成新的XDR ID及會話記錄。 對於超長會話設立時間閾值,超過閾值則該條記錄結束,重新生成另一條會話記錄並生成新的XDR ID,閾值默認爲5分鐘。 |
5 |
RAT |
unsigned int |
1 |
RAT類型,16進制編碼 1. UTRAN 2. GERAN 3. WLAN 4. GAN 5. HSPA Evolution 6. EUTRAN |
6 |
IMSI |
byte |
8 |
用戶IMSI(TBCD編碼),通過Gn/S11接口信令獲取 |
7 |
IMEI |
byte |
8 |
終端IMEI(TBCD編碼),通過Gn/S11接口信令獲取 |
8 |
MSISDN |
byte |
16 |
用戶號碼(TBCD編碼),通過Gn/S11接口信令獲取 |
9 |
Machine IP Add type |
Unsigned int |
1 |
設備IP地址類型, 0x01:IPv4 0x02:IPv6 |
10 |
SGW/GGSN IP Add |
byte |
4(16) |
對於Gn口,填寫GGSN的用戶面IP地址;對於S1-U口,填寫SGW的用戶面IP地址 Ipv4:4字節; Ipv6:16字節。 |
11 |
eNB/SGSN IP Add |
byte |
4(16) |
對於Gn口,填寫SGSN的用戶面IP地址;對於S1-U口,填寫eNB用戶面IP地址: Ipv4:4字節; Ipv6:16字節 |
12 |
SGW/GGSN Port |
byte |
2 |
對於Gn口,填寫GGSN的端口;對於S1-U口,填寫SGW端口 |
13 |
eNB/SGSN Port |
byte |
2 |
對於Gn口,填寫SGSN的端口;對於S1-U口,填寫eNB端口 |
14 |
eNB/SGSN GTP-TEID |
byte |
4 |
對於Gn口,填寫該業務對應承載的SGSN側GTP-TEID;對於S1-U口,填寫該業務對應承載的eNB側GTP-TEID |
15 |
SGW/GGSN GTP-TEID |
unsigned byte |
4 |
對於Gn口,填寫該業務對應承載的GGSN側GTP-TEID;對於S1-U口,填寫該業務對應承載的SGW側GTP-TEID |
16 |
TAC |
byte |
2 |
TAC |
17 |
Cell ID |
Byte |
4 |
UE所在小區的ECI |
18 |
APN |
String |
32 |
APN |
19 |
App Type Code |
byte |
1 |
業務類型編碼,參見附錄D XDR類型編碼定義 |
20 |
Procedure Start Time |
dateTime |
8 |
TCP/UDP流開始時間,UTC時間),從1970/1/1 00:00:00開始到當前的毫秒數。 |
21 |
Procedure End Time |
dateTime |
8 |
TCP/UDP流結束時間,UTC時間),從1970/1/1 00:00:00開始到當前的毫秒數。 |
22 |
Protocol Type |
byte |
2 |
協議類型 集團規定的協議識別分類,參加《XXXX數據流量DPI識別能力規範》中的“DPI設備協議識別能力要求” |
23 |
App Type |
byte |
2 |
應用大類 集團規定的18種應用大類,參見《XXXX數據流量DPI識別能力規範》 |
24 |
App Sub-type |
byte |
2 |
應用小類 根據集團定義的識別規則識別出來的小類, 參見《XXXX數據流量DPI識別能力規範》。 集團未定義的各廠家根據自己的DPI進行識別 |
25 |
App Content |
byte |
1 |
應用小類的內容細分,如微信文本、微信語音等。 0.心跳,1.文本,2.圖片,3.音頻,4.視頻,5.其他文件 如無則填全F。 |
26 |
App Status |
byte |
1 |
標識業務是否成功 0:業務成功 1:業務失敗 2:業務未識別 |
27 |
USER_IPv4 |
byte |
4 |
終端用戶的IPv4地址,如無則填全F |
28 |
USER_IPv6 |
byte |
16 |
終端用戶的IPv6地址,如無則填全F |
29 |
User Port |
byte |
2 |
用戶的四層端口號 |
30 |
L4 protocal |
byte |
1 |
L4協議類型: 0:TCP 1:UDP |
31 |
App Server IP_IPv4 |
byte |
4 |
訪問服務器的IPv4地址,如無則填全F |
32 |
App Server IP_IPv6 |
byte |
16 |
訪問服務器的IPv6地址,如無則填全F |
33 |
App Server Port |
byte |
2 |
訪問的服務器的端口 |
34 |
UL Data |
byte |
4 |
上行流量 單位:字節 對於場景一,定義爲從內層IP包頭開始計算的數據包大小總和; 對於其他場景,定義爲從鏈路層封裝開始計算的數據包大小總和。 |
35 |
DL Data |
byte |
4 |
下行流量 單位:字節
對於場景一,定義爲從內層IP包頭開始計算的數據包大小總和; 對於其他場景,定義爲從鏈路層封裝開始計算的數據包大小總和。 |
36 |
UL IP Packet |
byte |
4 |
上行IP包數 內層IP包的個數 |
37 |
DL IP Packet |
byte |
4 |
下行IP包數 內層IP包的個數 |
38 |
上行TCP亂序報文數 |
byte |
4 |
上行TCP亂序報文數 L4協議非TCP傳輸時,此字段填0 |
39 |
下行TCP亂序報文數 |
byte |
4 |
下行TCP亂序報文數 非TCP傳輸時,此字段填0 |
40 |
上行TCP重傳報文數 |
byte |
4 |
上行TCP重傳報文數 非TCP傳輸時,此字段填0 |
41 |
下行TCP重傳報文數 |
byte |
4 |
下行TCP重傳報文數 非TCP傳輸時,此字段填0 |
42 |
TCP建鏈響應時延(ms) |
byte |
4 |
TCP建鏈響應時延(ms) 非TCP傳輸時,此字段填0 |
43 |
TCP建鏈確認時延(ms) |
byte |
4 |
TCP建鏈確認時延(ms) 非TCP傳輸時,此字段填0 |
44 |
UL_IP_FRAG_PACKETS |
byte |
4 |
以內層IP包的分片爲準 |
45 |
DL_IP_FRAG_PACKETS |
byte |
4 |
以內層IP包的分片爲準 |
46 |
TCP建鏈成功到第一條事務請求的時延(ms) |
byte |
4 |
TCP建鏈成功到第一條事務請求的時延(ms) 沒有事務的時候可以不填寫,此時填0 |
47 |
第一條事務請求到其第一個響應包時延(ms) |
byte |
4 |
第一條事務請求到其第一個響應包時延(ms) 沒有事務的時候可以不填寫,此時填0 |
48 |
窗口大小 |
byte |
4 |
窗口大小,TCP 建鏈協商後的窗口 非TCP傳輸時,此字段填0 |
49 |
MSS大小 |
byte |
4 |
MSS尺寸,TCP層的最大分段大小 非TCP傳輸時,此字段填0 |
50 |
TCP建鏈嘗試次數 |
byte |
1 |
TCP SYN的次數,一次TCP流多次SYN的數值 非TCP傳輸時,此字段填0 |
51 |
TCP連接狀態指示 |
byte |
1 |
TCP連接狀態指示 0:成功; 1:失敗 |
52 |
會話是否結束標誌 |
byte |
1 |
1:結束 2:未結束 |
53 |
HTTP版本 |
byte |
1 |
0x01----HTTP0.9 0x02----HTTP1.0 0x03----HTTP1.1 0x04----HTTP2.0 0x05----WAP1.0 0x06----WAP1.1 0x07----WAP1.2 |
54 |
事務類型 |
byte |
2 |
HTTP/WAP2.0的事務類型,遵照HTTP/WAP1.x協議上的編碼 |
55 |
HTTP/WAP事務狀態 |
byte |
2 |
HTTP/WAP2.0層的響應碼,參見附錄A 狀態編碼 |
56 |
第一個HTTP響應包時延(MS) |
byte |
4 |
第一個HTTP響應包相對於第一個HTTP請求包(如get命令)的時延 |
57 |
最後一個HTTP內容包的時延(MS) |
byte |
4 |
最後一個HTTP內容包相對於第一個HTTP請求包(如get命令)的時延 |
58 |
最後一個ACK確認包的時延(ms) |
byte |
4 |
最後一個HTTP包的ACK相對於第一個HTTP請求包(如get命令)的時延,如果無ACK,則按照最後一個數據包計算 |
59 |
HOST |
char |
64 |
訪問域名 |
60 |
URI |
char |
512 |
訪問的URI,對於超過512字節的URI進行截短 |
61 |
X-Online-Host |
char |
128 |
針對wap代理上網的私有頭部字段,對於cmnet上網該字段與HOST字段相同 |
62 |
User-Agent |
char |
256 |
終端向訪問網站提供的終端信息,包括IMEI、瀏覽器類型等 |
63 |
HTTP_content_type |
char |
128 |
HTTP的內容是文字還是圖片、視頻、應用等,具體編碼參考附錄A |
64 |
refer_URI |
char |
128 |
參考URI |
65 |
Cookie |
char |
256 |
協議中Cookie字段 |
66 |
Content-Length |
byte |
4 |
協議中Content-Length字段 |
67 |
目標行爲 |
byte |
1 |
目標行爲,0:會話是用戶主動點擊的頁面;1:站點目標而產生的頁面。 |
68 |
Wtp中斷類型 |
byte |
1 |
WTP層的失敗類型 |
69 |
wtp中斷原因 |
byte |
1 |
WTP層失敗原因 |
70 |
title |
char |
256 |
網站名稱,在上網內容裏解析 |
71 |
key word |
char |
256 |
網站關鍵字,在上網內容裏解析 |
72 |
業務行爲標識 |
byte |
1 |
0-業務登陸 1-頁面訪問 2-刷新 3-未識別; 判斷規則詳見《業務KPI定義(20130821)》 |
73 |
業務完成標識 |
byte |
1 |
0-業務成功 1-業務失敗 2-未識別 成功的判斷規則:狀態碼<400 |
74 |
業務時延(ms) |
byte |
4 |
登陸、訪問響應或者刷新時延,具體指標描述參見《業務KPI定義(20130821)》 |
75 |
瀏覽工具 |
byte |
1 |
詳見附錄F“瀏覽工具”,未識別的數據用0填充,該字段不能爲空 |
76 |
門戶應用集合 |
byte |
1 |
詳見附錄G“門戶應用集合”,未識別的數據用0填充,該字段不能爲空 |
77 |
未知列 |
|
|
例:1:894/1102??這樣字段 |
2.如圖所示,運營商基站收集的用戶上網日誌中一行有很多字段,可能是用戶某次短信發送,也可能是用戶某次的通話,也可能是http訪問或者app內通訊(比如:QQ好友之間聊天)等等。因爲本次只針對所有的http訪問進行分析,所以提取不同小區的上網詳情所要處理的字段(清洗表):
序號 |
字段名 |
類型 |
長度 |
說明 |
16 |
TAC |
byte |
2 |
TAC |
17 |
Cell ID |
Byte |
4 |
UE所在小區的ECI |
19 |
App Type Code |
byte |
1 |
業務類型編碼,參見附錄D XDR類型編碼定義 |
20 |
Procedure Start Time |
dateTime |
8 |
TCP/UDP流開始時間,UTC時間),從1970/1/1 00:00:00開始到當前的毫秒數。 |
21 |
Procedure End Time |
dateTime |
8 |
TCP/UDP流結束時間,UTC時間),從1970/1/1 00:00:00開始到當前的毫秒數。 |
23 |
App Type |
byte |
2 |
應用大類 集團規定的18種應用大類,參見《XXXX數據流量DPI識別能力規範》 |
24 |
App Sub-type |
byte |
2 |
應用小類 根據集團定義的識別規則識別出來的小類, 參見《XXXX數據流量DPI識別能力規範》。 集團未定義的各廠家根據自己的DPI進行識別 |
27 |
USER_IPv4 |
byte |
4 |
終端用戶的IPv4地址,如無則填全F |
29 |
User Port |
byte |
2 |
用戶的四層端口號 |
31 |
App Server IP_IPv4 |
byte |
4 |
訪問服務器的IPv4地址,如無則填全F |
33 |
App Server Port |
byte |
2 |
訪問的服務器的端口 |
34 |
UL Data |
byte |
4 |
上行流量 單位:字節 對於場景一,定義爲從內層IP包頭開始計算的數據包大小總和; 對於其他場景,定義爲從鏈路層封裝開始計算的數據包大小總和。 |
35 |
DL Data |
byte |
4 |
下行流量 單位:字節
對於場景一,定義爲從內層IP包頭開始計算的數據包大小總和; 對於其他場景,定義爲從鏈路層封裝開始計算的數據包大小總和。 |
40 |
上行TCP重傳報文數 |
byte |
4 |
上行TCP重傳報文數 非TCP傳輸時,此字段填0 |
41 |
下行TCP重傳報文數 |
byte |
4 |
下行TCP重傳報文數 非TCP傳輸時,此字段填0 |
55 |
HTTP/WAP事務狀態 |
byte |
2 |
HTTP/WAP2.0層的響應碼,參見附錄A 狀態編碼 |
59 |
HOST |
char |
64 |
訪問域名 |
62 |
User-Agent |
char |
256 |
終端向訪問網站提供的終端信息,包括IMEI、瀏覽器類型等 |
63 |
HTTP_content_type |
char |
128 |
HTTP的內容是文字還是圖片、視頻、應用等,具體編碼參考附錄A |
68 |
Wtp中斷類型 |
byte |
1 |
WTP層的失敗類型 |
72 |
業務行爲標識 |
byte |
1 |
0-業務登陸 1-頁面訪問 2-刷新 3-未識別; 判斷規則詳見《業務KPI定義(20130821)》 |
73 |
業務完成標識 |
byte |
1 |
0-業務成功 1-業務失敗 2-未識別 成功的判斷規則:狀態碼<400 |
其中,應用大類字段如下:
序號 |
業務類型 |
業務說明 |
1 |
即時通信 |
互聯網消息即時收發業務,如:QQ、飛信等 |
2 |
閱讀 |
向用戶提供在線或離線閱讀服務的業務,如:移動手機閱讀、熊貓閱讀等 |
3 |
微博 |
微博業務,如:移動微博、新浪微博等 |
4 |
導航 |
提供瀏覽、查詢、導航等功能的電子地圖類業務,如:谷歌地圖、高德導航等 |
5 |
視頻 |
向用戶提供音視頻內容的直播、分享和下載服務的網站和應用(不包括傳統意義上基於P2P技術的視頻業務),如:優酷、手機電視等 |
6 |
音樂 |
提供音樂在線欣賞和下載服務的網站和應用,如:咪咕音樂、QQ音樂等 |
7 |
應用商店 |
提供應用程序、音樂、圖書等內容瀏覽、下載及購買服務的業務,如:Mobile Market、AppStore等 |
8 |
遊戲 |
基於客戶端或者網頁的遊戲業務:QQ遊戲、開心農場等 |
9 |
支付 |
電子商務類業務,如:手機支付、支付寶、網銀等 |
10 |
動漫 |
提供動漫在線欣賞和下載服務的網站和應用,如:手機動漫、愛看動漫等 |
11 |
郵箱 |
電子郵箱業務,如:139郵箱、QQ郵箱等 |
12 |
P2P業務 |
基於P2P技術的資源共享業務,包括下載和視頻兩部分,前者如:迅雷、eMule等,後者如:迅雷看看、PPLive等 |
13 |
VoIP業務 |
互聯網語音通信業務,如:Skype、Uucall等 |
14 |
彩信 |
彩信業務 |
15 |
瀏覽下載 |
基於HTTP、WAP、FTP等的普通瀏覽和下載業務 |
16 |
財經 |
金融資訊、股票證劵類業務,如:手機商界、大智慧等 |
17 |
安全殺毒 |
提供網絡安全服務的應用,如:360安全衛士、麥咖啡等;以及網絡惡意流量,如:病毒、攻擊等 |
18 |
其他業務 |
|
DPI設備子業務識別能力要求(部分)
業務類型 |
子業務 |
|
|
|
|
序號 |
子業務名稱 |
優先級 |
備註 |
即時通信 |
1 |
飛聊 |
必選 |
自有業務 |
|
2 |
飛信 |
必選 |
|
|
3 |
Gtalk |
必選 |
互聯網業務 |
|
4 |
MSN |
必選 |
|
|
5 |
|
必選 |
|
|
6 |
TM |
必選 |
|
|
7 |
阿里旺旺 |
必選 |
|
|
8 |
米聊 |
必選 |
|
|
9 |
微信 |
必選 |
|
|
10 |
人人桌面 |
必選 |
|
|
11 |
AOL AIM |
可選 |
|
|
12 |
Gadu_Gadu |
可選 |
|
|
13 |
go聊 |
可選 |
|
|
14 |
ICQ |
可選 |
|
|
15 |
IMVU |
可選 |
|
|
16 |
Lava-Lava |
可選 |
|
|
17 |
NetChat |
可選 |
|
|
18 |
Paltalk |
可選 |
|
|
19 |
PowWow |
可選 |
|
|
20 |
TeamSpeak |
可選 |
|
|
21 |
Trillian |
可選 |
|
|
22 |
VZOchat |
可選 |
|
|
23 |
Xfire |
可選 |
|
|
24 |
百度Hi |
可選 |
|
|
25 |
都秀 |
可選 |
|
|
26 |
陌陌 |
可選 |
|
|
27 |
天翼Live |
可選 |
|
|
28 |
翼聊 |
可選 |
|
|
29 |
網易泡泡 |
可選 |
|
|
30 |
新浪UC |
可選 |
|
|
31 |
新浪UT |
可選 |
|
|
32 |
雅虎通 |
可選 |
|
3.對該字段進行整理,建立事實表F_HTTP_APP_HOST:
序號 |
字段 |
字段類型 |
描述 |
0 |
reportTime |
datetime |
小時 時間片 default 'YYYY-MM-DD HH24:MI:SS' |
1 |
appType |
int |
應用大類 |
2 |
appSubtype |
int |
應用小類 |
3 |
userIP |
varchar(20) |
用戶IP |
4 |
userPort |
int |
用戶端口 |
5 |
appServerIP |
varchar(20) |
服務器IP |
6 |
appServerPort |
int |
服務器端口 |
7 |
host |
varchar(50) |
域名 |
8 |
cellid |
varchar(20) |
小區ID |
9 |
attempts |
int(20) |
嘗試次數 |
10 |
accepts |
int(20) |
接受次數 |
11 |
trafficUL |
int(20) |
上行流量 |
12 |
trafficDL |
int(20) |
下行流量 |
13 |
retranUL |
int(20) |
重傳上行報文數 |
14 |
retranDL |
int(20) |
重傳下行報文數 |
15 |
failCount |
int(20) |
延時失敗次數 |
16 |
transDelay |
int(20) |
傳輸時延* |
4.可以利用該事實表來從不同維度進行分析:
- D_H_HTTP_APPTYPE(應用歡迎度)
序號 |
字段 |
字段類型 |
描述 |
0 |
hourid |
datetime |
小時時間片 |
1 |
appType |
int |
應用大類 |
2 |
appSubtype |
int |
應用小類 |
3 |
attempts |
int(20) |
嘗試次數 |
4 |
accepts |
int(20) |
接受次數 |
5 |
succRatio |
int(20) |
嘗試成功率 |
6 |
trafficUL |
int(20) |
上行流量 |
7 |
trafficDL |
int(20) |
下行流量 |
8 |
totalTraffic |
int(20) |
總流量 |
9 |
retranUL |
int(20) |
重傳上行報文數 |
10 |
retranDL |
int(20) |
重傳下行報文數 |
11 |
retranTraffic |
int(20) |
重傳報文數據 |
12 |
failCount |
int(20) |
延時失敗次數 |
13 |
transDelay |
int(20) |
傳輸時延 |
- D_H_HTTP_HOST(各網站的表現)
序號 |
字段 |
字段類型 |
描述 |
0 |
hourid |
datetime |
小時時間片 |
1 |
host |
varchar(50) |
域名 |
2 |
appServerIP |
varchar(20) |
服務器IP |
3 |
attempts |
int(20) |
嘗試次數 |
4 |
accepts |
int(20) |
接受次數 |
5 |
succRatio |
int(20) |
嘗試成功率 |
6 |
trafficUL |
int(20) |
上行流量 |
7 |
trafficDL |
int(20) |
下行流量 |
8 |
totalTraffic |
int(20) |
總流量 |
9 |
retranUL |
int(20) |
重傳上行報文數 |
10 |
retranDL |
int(20) |
重傳下行報文數 |
11 |
retranTraffic |
int(20) |
重傳報文數據 |
12 |
failCount |
int(20) |
延時失敗次數 |
13 |
transDelay |
int(20) |
傳輸時延 |
- D_H_HTTP_CELLID(小區HTTP上網能力)
序號 |
字段 |
字段類型 |
描述 |
0 |
hourid |
datetime |
小時時間片 |
1 |
cellid |
varchar |
小區ID |
2 |
attempts |
int(20) |
嘗試次數 |
3 |
accepts |
int(20) |
接受次數 |
4 |
succRatio |
int(20) |
嘗試成功率 |
5 |
trafficUL |
int(20) |
上行流量 |
6 |
trafficDL |
int(20) |
下行流量 |
7 |
totalTraffic |
int(20) |
總流量 |
8 |
retranUL |
int(20) |
重傳上行報文數 |
9 |
retranDL |
int(20) |
重傳下行報文數 |
10 |
retranTraffic |
int(20) |
重傳報文數據 |
11 |
failCount |
int(20) |
延時失敗次數 |
12 |
transDelay |
int(20) |
傳輸時延 |
- D_H_HTTP_CELLID_HOST(小區上網喜好)
序號 |
字段 |
字段類型 |
描述 |
0 |
hourid |
datetime |
小時時間片 |
1 |
cellid |
varchar |
小區ID |
2 |
host |
varchar(50) |
域名 |
3 |
attempts |
int(20) |
嘗試次數 |
4 |
accepts |
int(20) |
接受次數 |
5 |
succRatio |
int(20) |
嘗試成功率 |
6 |
trafficUL |
int(20) |
上行流量 |
7 |
trafficDL |
int(20) |
下行流量 |
8 |
totalTraffic |
int(20) |
總流量 |
9 |
retranUL |
int(20) |
重傳上行報文數 |
10 |
retranDL |
int(20) |
重傳下行報文數 |
11 |
retranTraffic |
int(20) |
重傳報文數據 |
12 |
failCount |
int(20) |
延時失敗次數 |
13 |
transDelay |
int(20) |
傳輸時延 |