精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

flashP2P協議rtmfp解析

網絡 通信技術
本文從協議介紹、常用方法、協議解析三個層次上做了flashP2P協議rtmfp解析,

 1 協議介紹

Real-Time Media Flow Protocol(簡稱RTMFP)是Flash和Flash之間基于UDP的點對點傳輸協議,由Adobe公司在2008年在Flash 10.0中發布,隨后在Flash10.1中加入了Groups功能。

2 常見用法

rtmfp在Flash 10中的典型使用場景如下圖:

 

 


 

flashP2P協議rtmfp解析

 

它有如下特點:

l 使用Cirrus或者開源的Cumulus來提供Rendezvous服務

l Cirrus或者Cumulus并不提供Peer ID的交換服務,需要提供其它的方式來交換客戶端之間的Peer ID

l Flash客戶端之間使用NetStream來做點對點傳輸,Publisher需要給每一個Subscriber單獨傳輸一份數據,這也限制集群的規模。

為了解決這個問題,Adobe在Flash 10.1中提出了Groups的概念,典型的架構如下:

 

 


 

flashP2P協議rtmfp解析

 

它有如下特點:

l Cirrus或者開源的Cumulus提供Rendezvous服務并提供所有連接client列表

l client從Cirrus或者開源的Cumulus獲取鄰居節點之后,就可以組成一個完整的P2P架構,所有的audio、video和data數據都在peer之間交互。

3 協議解析

3.1 基本概念

l session:session是兩個UDP地址之間的雙向管道。

l flow:flow是從一個實體到另一個實體之間的邏輯路徑。一個session可以包括多個flow。

l packet:網絡中實際傳輸的數據,一個packet可以包含多個message。數據傳輸時都經過了128 bit的AES加密

l message:audio、video和data數據。

3.2 Scrambled Session ID

rtmfp協議中每個包的格式如下:

packet := scrambled-session-id | encrypted-part

其中scrambled-session-id是4字節,其后是經過AES加密的數據體。

scramble-session-id的生成規則如下:

scrambled-session-id = a ^ b ^ c

這里^代表XOR操作,a是session-id,b和c是encrypted-part的頭8個bytes。

當目標收到這個包后,unscramble的操作如下:

session-id = x ^ b ^ c

其中x是scrambled-session-id,b和c同上。

使用scramble-session-id的目的為了減少數據包流經的NAT設備和layer-4 packet inspector對數據的干擾。

session-id用于標識通信雙方建立的連接,并確定通信時使用的加密和解密的key,這些key是通過DH key exchange算法獲得。但在session建立之前,雙方使用一個公有加密key,即128 bit的字符串”Adobe System 02”。

3.3 raw part

encrypted-part經過解密之后就得到了raw-part,它的格式如下:

raw-part := checksum | network-layer-data | padding

其中checksum有16字節,network-layer-data是變長數據,padding都是0xFF,并把network-layer-data補齊為16字節的倍數,這是因為rtmfp使用的是16字節的加解密key。

checksum基于network-layer-data和padding計算。

#p#

3.4 network layer data

network-layer-data的格式如下:

network-layer-data = flags | timestamp | timestamp-echo | chunks

其中flags為1個字節,其格式如下:

7 6 5 4 3 2 1 0

TC TCR reserved reserved TS TSE mode

l mode:11代表握手包,01代表initiator發送包,10代表responder發送包,00不是合法值

l TSE:包中是否包含timestamp-echo域

l TS:包中是否包含timestamp域

l TCR:time critical reverse notification表明發送方正在從其它地方收到timecritical包

l TC:time critical forward notification表明發送方發送的是timecritical包

timestamp域有2字節,精度是4ms,他的計算方式如下:

timestamp = int(time * 1000 / 4) & 0xFFFF

timestamp-echo域是server收到包的時間戳,當發送放收到這個值之后,發送方就可以計算RTT值了。

chunk類型的格式如下:

chunk = type | size | payload

type字段為1個字節,其中0xFF不可用,這個是用來區分chunk數據和padding數據的標記。type的定義如下:

typemeaning

0x30initiator hello

0x70responder hello

0x38initiator initial keying

0x78responder initial keying

0x0fforwarded initiator hello

0x71forwarded hello response

0x10normal user data

0x11next user data

0x0csession failed on client side

0x4csession died

0x01reset keepalive request

0x41reset keepalive response

0x5enegative ack

0x51some ack

size是2字節payload長度。

payload根據type的不同有不同的數據體。

3.5 message flow

session中包括3類消息:

l handshake:握手包,包括initiator hello, responder hello, initiator initial keying,responder initial keying, responder hello cookie change和responderredirect

l control:控制包,包括ping, ping reply, rekeying initiate, rekeying response, close, closeacknowledge, forwarded initiator hello.

l flow:流消息,包括user data, next user data, buffer probe, user data ack, user dataack, flow exception report.

session的建立是通過握手(handshake)來完成的,正常的messageflow如下:

如果是在NAT打洞是,cumulus server就作為一個forwarder,他會把initiatro hello包轉發到其它的client:

另外,cumulus server還可以讓client重定向到其它server:

這里所說的client是Flash Player,而server是cumulus server或者Flash media server。當然server也可以給client發送initiator hello請求,這個在cumulus中被稱為man in the middle,不過這個特性還不穩定。

session的建立包括4次握手:

1 initiator -> target:initiator hello

2 target -> initiator: responder hello

3 initiator -> target:initiator initial keying

4 target -> initiator: responder initial keying

這個4次握手過程可以阻止Dos攻擊和syn-flooding攻擊。

每個session都有一個session-id來唯一標識這個session,并且session中的每個packet都會包含這個session-id,但是在session建立的4個握手包中,initiator-hello, responder hello和initiator initialkeying的session-id字段都是0,在發送最后一個包responder initial keying時,session建立成功并且session-id確定,所以responderinitial keying包含合法的session-id。

我們接下來詳細介紹一下這4個握手包

3.5.1 initiator hello

initiator hello包的格式如上所述,這里只說明payload部分的格式:

initiator-hello payload = first | epd type | epd value| tag

其中:

l first:1 byte magic number

l epd type:1 byte,只有兩個合法值:

n 0x0a:client-server模式,epd value是想要連接的server的rtmfp url

n 0x0f:peer-to-peer模式,epd value是想要連接的client的peer id,一般是固定的32字節

l epd value:varlen + body

l tag:16 bytes隨機數

#p#

3.5.2 responder hello

responder hello包的payload格式如下:

responder hello payload = tag-echo | cookie | responder-certificate

其中:

l tag-echo:和initiator hello中的tag一致,但和initiator hello中不同的是,這里在前面有一個varlen來表明tag的長度

l cookie:responder產出的64 bytes隨機數,用來防止syn-flooding攻擊

l responder certificate:diffie-hellman key exchange算法交換的信息,它的格式如下:

certificate= \0x01\0x0A\0x41\0x0E | dh-public-num | \0x02\0x15\0x02\0x02\0x15\0x05\0x02\0x15\0x0E

dh-public-num是一個64 byte(128 byte)隨機數。

dh-public-num的生成規則為

y2 = g ^ x2 % p

其中g和p是公開的兩個數,其中g等于2,p是一個1024 bits的數,x2是responder隨機生成的數,y2就是在網絡中傳輸的dh-public-num。

3.5.3 initiator initial keying

initiator initial keying包的payload格式如下:

payload = initiator-session-id | cookie-echo | initiator-certificate| initiator-component | ‘X’

其中:

l initiator-session-id:initiator選擇的session-id,responder用它來發送數據給initiator(生成scrambled session id)

l cookie-echo:和上一個包中的cookie一致

l initiator-certificate:格式和上面的responder certificate一致

和上述的一樣,這里的dh-public-num的生成規則如下:

y1 = g ^ x1 % p

其中g和p的定義和上述一致,x1是initiator隨機生成的數,y1就是傳輸的dh-public-num。這時initiator知道了y2和x1,就可以生成sharedsecret:

shared secret = y2 ^ x1 % p

這時就可以生成這個session對應的加解密key了:

decode key = HMAC-SHA256(shared-secret, HMAC-SHA256(responder nonce,initiator nonce))

encode key = HMAC-SHA256(shared-secret, HMAC-SHA256(initiator nonce,responder nonce))

這些加解密key都只使用低位的128bit

l initiator-component:在DH算法中使用的initiator nonce。

3.5.4 responder initial keying

responder initial keying的payload的格式如下:

payload = responder session id | responder’s nonce | ‘X’

其中:

l responder session id:responder生成的session id,initiator用它來生成scrambled session id,這個值和initiator session id不一樣。

l responder’s nonce:

這時responder知道了y1和x2,就可以生成sharedsecret:

shared secret = y2 ^ x1 % p

DH算法保證這個responder的sharedsecret和initiator的shared secret是一樣的。

這時就可以生成這個session對應的加解密key了:

encode key = HMAC-SHA256(shared-secret, HMAC-SHA256(responder nonce,initiator nonce))

decode key = HMAC-SHA256(shared-secret, HMAC-SHA256(initiator nonce,responder nonce))

這些加解密key都只使用低位的128bit。

可以看到responder的encode key和initiator的decode key是一樣的,同樣,responder的decode key和initiator的encode key是一樣的。

注意responder initial keying依然使用”Adobe System 02”作為對稱key來加解密,而不是使用新生成的非對稱的key來加解密,非對稱的key僅在session建立之后使用。

3.5.5 user data

至此session就建立好了,后續傳輸的就是數據消息,主要包括兩類:

l normal user data:正常的flow中數據消息

l next user data:和normal user data在一個packet中傳輸,不能單獨使用。

normal user data包的payload格式如下:

payload = flags | flow-id | seq | forward-seq-offset | options |data

其中:

l flags:1 byte,各bit的意義如下:

bitmeaning

0x80options域是否存在

0x40

0x20這個包前面還有包

0x10這個包后面還有包

0x08

0x04

0x02丟棄包

0x01結束包

l flow-id:flow標識,varlen類型

l forward-seq-offset:用于滑窗的標識,varlen類型

l options:一些選項

l data:audio、video和data數據

next user data包的payload格式如下:

payload = flags | data

字段定義同上

責任編輯:何妍 來源: CSDN博客
相關推薦

2010-06-28 11:15:45

BitTorrent協

2010-07-13 14:41:14

2022-07-19 16:59:04

流媒體傳輸IPC物聯網

2010-07-07 10:31:45

2023-02-15 07:10:59

P2P協議系統

2023-02-16 07:12:43

P2P協議服務器

2010-09-10 14:03:47

echo協議

2012-12-10 09:46:21

P2P云存儲Symform

2019-07-28 21:05:47

ICMPIP網絡協議

2010-09-07 12:06:46

PPPoE協議

2010-10-29 09:34:16

2010-09-17 15:44:21

網絡協議

2010-06-17 16:06:18

串口協議

2010-06-28 16:12:43

ARP協議

2010-06-24 15:35:04

IPx協議

2011-07-19 10:49:34

FCoEiSCSI以太網

2010-06-25 15:03:54

路由選擇協議

2010-09-09 15:40:57

Internet協議簇

2011-08-03 09:18:39

RIP路由協議RIP

2010-08-02 16:41:15

點贊
收藏

51CTO技術棧公眾號

国产网站在线免费观看| 青青草原国产视频| 男人最爱成人网| 国产日韩成人精品| 成人在线观看视频网站| 久久久一区二区三区四区| 欧美色图婷婷| 在线不卡中文字幕| 欧美综合在线播放| 午夜激情在线观看| 成人免费av资源| 国产精品久久激情| 国产一级一片免费播放| 欧州一区二区| 亚洲第一av网站| 日韩一区二区三区不卡视频| 不卡一本毛片| 亚洲天堂av一区| 久久综合狠狠综合久久综青草 | 亚洲1区2区3区视频| 秋霞毛片久久久久久久久| 国产伦子伦对白视频| 国产精品美女| 欧美激情亚洲视频| 多男操一女视频| 亚洲婷婷伊人| 亚洲国产精品美女| 中文字幕乱码在线人视频| 国产精品777777| 四虎国产精品免费观看| 精品在线欧美视频| 亚洲麻豆一区二区三区| 亚洲久草在线| 欧美午夜精品久久久久久孕妇| 99久久国产综合精品五月天喷水| 欧美成人二区| 欧美国产成人精品| 日本电影一区二区三区| 成人爽a毛片一区二区| 激情亚洲综合在线| 久久久999国产精品| 中文字幕人妻一区二区三区在线视频| 粉嫩av一区二区| 午夜精品成人在线| 亚洲色婷婷久久精品av蜜桃| av资源网在线观看| 久久婷婷一区二区三区| 久久久久se| 色婷婷中文字幕| 国产成a人亚洲精| 国产91社区| 欧美一级片免费| 成人三级伦理片| 国模精品一区二区三区| 黄色av免费观看| 成人av午夜影院| 国产欧美亚洲日本| 天堂中文在线官网| 99麻豆久久久国产精品免费 | 免费裸体美女网站| 成人影院大全| 欧美亚洲国产怡红院影院| 日本黄网站免费| 91精品xxx在线观看| 欧美在线免费播放| 欧美一级黄色影院| 日本成人福利| 91精品欧美久久久久久动漫| 午夜久久久久久久久久久| 黄色片网站在线| 一区二区国产盗摄色噜噜| 韩国无码av片在线观看网站| 四虎亚洲成人| 午夜一区二区三区在线观看| 黄色一级片播放| 欧美极品免费| 777xxx欧美| 97中文字幕在线观看| 国产精品视频3p| 国产午夜精品全部视频在线播放 | 一路向西2在线观看| 北岛玲精品视频在线观看| 日韩欧美精品三级| a视频免费观看| 欧美色婷婷久久99精品红桃| www.日韩av.com| 久久免费黄色网址| 久久三级视频| 91亚洲精品一区二区| 丰满人妻熟女aⅴ一区| 久久综合久久99| 尤物一区二区三区| 日本在线影院| 717成人午夜免费福利电影| www.四虎精品| 第四色成人网| 97超级碰碰碰久久久| 波多野结衣家庭主妇| 国产成人精品1024| 欧美一级片免费观看| 宅男在线观看免费高清网站| 精品美女国产在线| 日本中文字幕观看| 亚州av一区| 欧美成人精品在线播放| 日韩欧美在线观看免费| 国产精品羞羞答答xxdd| 人偷久久久久久久偷女厕| 国产视频中文字幕在线观看| 欧美日韩免费在线| 国产亚洲色婷婷久久| 国产精品美女久久久久久不卡| 免费91麻豆精品国产自产在线观看 | 米奇777超碰欧美日韩亚洲| 久久精品99久久香蕉国产色戒| 91美女免费看| 国产1区2区3区精品美女| 日本在线成人一区二区| 国产精品xx| 日韩一卡二卡三卡国产欧美| 国产真人真事毛片视频| 亚洲一区二区伦理| 国产精品一区二区免费看| 麻豆电影在线播放| 色网站国产精品| 中文成人无字幕乱码精品区| 中文字幕人成人乱码| 91精品国产自产在线| 国产精品麻豆一区二区三区| 亚洲成人激情自拍| 欧美色图校园春色| 五月天久久777| 国产精品永久免费视频| 国际av在线| 日韩欧美极品在线观看| a级一a一级在线观看| 国产综合亚洲精品一区二| 91精品在线一区| 伦xxxx在线| 欧美日韩精品三区| 免费看的黄色录像| 日韩国产精品久久| 日本视频一区在线观看| 免费日韩电影| 亚洲天堂成人在线视频| 69视频免费在线观看| 99re这里只有精品视频首页| 久久这里只有精品23| 成人动漫视频| 91成人天堂久久成人| 四季av日韩精品一区| 婷婷开心激情综合| 欧美精品黑人猛交高潮| 亚洲永久免费| 欧美资源一区| 成人激情视屏| 久久久www成人免费精品张筱雨| 96日本xxxxxⅹxxx17| 亚洲六月丁香色婷婷综合久久| 三日本三级少妇三级99| 欧美一区在线看| yellow视频在线观看一区二区| 欧美黄色视屏| 日韩精品在线观看一区| 国产寡妇亲子伦一区二区三区四区| 久久久久久久久蜜桃| 国产 porn| 亚洲精彩视频| 国产视频99| 亚洲国产欧美日本视频| 一区三区二区视频| 国产一区二区三区黄片| 一区二区免费看| 免费无码一区二区三区| 日韩高清在线观看| 91视频成人免费| 开心激情综合| 国产97在线|亚洲| 日本在线视频站| 欧美精品一区二区高清在线观看| 色婷婷av国产精品| 国产精品五月天| 亚洲熟妇一区二区| 男女精品网站| 久久国产精品免费观看| 久久狠狠久久| 国产日韩中文字幕| a级大胆欧美人体大胆666| 亚洲网站在线看| 亚洲不卡免费视频| 欧美午夜精品一区二区三区| 国产黄色片在线免费观看| 久久久久久麻豆| 国产xxx在线观看 | 性生活一级大片| 欧美中文字幕| 国产青草视频在线观看| 国产精品日韩精品中文字幕| 91国产在线播放| 澳门av一区二区三区| 欧美精品性视频| 国模吧精品人体gogo| 精品久久免费看| 一级黄色a毛片| 欧美午夜激情在线| 久久久久99精品成人片试看| 久久精品亚洲麻豆av一区二区| 99国产精品免费视频| 视频在线观看国产精品| 99色这里只有精品| 999久久久国产精品| 久久久亚洲综合网站| 日韩中文字幕在线一区| 国产精品视频成人| 波多野结衣久久精品| 欧美国产日产韩国视频| 成人日批视频| 中文字幕日韩av综合精品| 欧美套图亚洲一区| 精品久久久久久亚洲综合网| 国产精品视频无码| 欧美在线观看禁18| 日韩在线播放中文字幕| 精品国产鲁一鲁一区二区张丽| 国精品无码一区二区三区| 国产精品三级av| 国内精品卡一卡二卡三| 91在线视频播放地址| 久久精品aⅴ无码中文字字幕重口| 久国产精品韩国三级视频| 亚洲乱码国产一区三区| 免费日韩视频| 日本三级免费观看| 国产精品亚洲综合久久| www.av中文字幕| av成人激情| 天堂…中文在线最新版在线| 伊人精品成人久久综合软件| 高清无码视频直接看| 欧美日韩一视频区二区| 激情视频小说图片| 欧美一区免费| 国产传媒久久久| 伊人精品视频| 少妇高潮毛片色欲ava片| 亚洲福利国产| 国产99久久九九精品无码| 9色国产精品| 欧在线一二三四区| 日韩国产精品91| 在线观看岛国av| 精品无人区卡一卡二卡三乱码免费卡| 午夜免费福利视频在线观看| 久久成人免费电影| 宇都宫紫苑在线播放| 成人自拍视频在线| 国产精品久久久免费观看| 92精品国产成人观看免费| 伊人网伊人影院| 国产欧美日韩精品a在线观看| 日韩免费高清在线| 热久久一区二区| 91日韩精品视频| 国产精品69毛片高清亚洲| 美女伦理水蜜桃4| 91麻豆精品一区二区三区| 我和岳m愉情xxxⅹ视频| 国产精品女上位| 久久久久香蕉视频| 欧美日韩在线视频观看| 色老头在线视频| 欧美乱妇20p| 天天色天天操天天射| 国产一区二区久久精品| 成人毛片av在线| 国内外成人免费激情在线视频| 欧美日韩美女| 亚洲a一级视频| 欧美深夜视频| 中文字幕一区二区三区最新| 国产精品av一区二区| 精品视频无码一区二区三区| 国内精品自线一区二区三区视频| a级片在线观看视频| 中文字幕第一区二区| 强行糟蹋人妻hd中文| 色噜噜夜夜夜综合网| 久久久久久久伊人| 日本高清不卡视频| 国产丝袜视频在线观看| 亚洲经典中文字幕| 1区2区3区在线观看| 欧美国产日韩在线| av免费在线一区| 国产精品污www一区二区三区| 国产精品自拍区| 精品国产av无码一区二区三区| 免费高清不卡av| 黄色在线免费播放| 国产精品久久久久久久久果冻传媒| 久久99久久久| 欧美丰满少妇xxxbbb| 三级在线观看| 欧美激情xxxxx| 国产成人精品一区二区三区在线| 国产精品免费一区二区三区在线观看| av一区二区在线观看| 欧美视频在线第一页| 美女www一区二区| 五月开心播播网| 一区二区三区四区视频精品免费| 波多野结衣理论片| 日韩精品极品在线观看| 国产色婷婷在线| 99久久精品免费看国产四区| 欧美日韩中字| 日本三级免费观看| 暴力调教一区二区三区| 唐朝av高清盛宴| 欧美久久久久久蜜桃| 福利视频在线播放| 日本成人免费在线| 欧美久久香蕉| 国产va亚洲va在线va| 国产99一区视频免费| 成人高潮免费视频| 欧美亚日韩国产aⅴ精品中极品| 手机看片福利在线| 久久久久久久网站| 国产一区 二区| mm131午夜| 国产一区二区三区在线观看免费视频| 亚洲综合第一区| 欧美色网站导航| 成人在线观看网站| 国产成人激情视频| 久久91精品| 热久久精品国产| 久久久综合精品| 国产免费av一区二区| 精品欧美一区二区三区精品久久| 91国内在线| 成人在线看片| 伊人精品视频| 国产偷人妻精品一区| 欧美性xxxx极品hd欧美风情| 五月天婷婷社区| 欧美一级免费视频| 国产99久久久国产精品成人免费| 成人黄色片视频| 久久精品网站免费观看| 久久久久久久久久成人| 国产小视频国产精品| 亚洲天堂1区| 最新不卡av| 国产经典欧美精品| 69精品久久久| 亚洲美女自拍视频| 久久天堂影院| 可以在线看黄的网站| 成人av动漫在线| 日本a级c片免费看三区| 色yeye香蕉凹凸一区二区av| 99国内精品久久久久| 久久精品在线免费视频| 成人黄色av网站在线| 久久久久在线视频| 俺去亚洲欧洲欧美日韩| 日韩激情综合| 各处沟厕大尺度偷拍女厕嘘嘘| 亚洲国产精品精华液2区45| 国产精品探花视频| 久久久久久网站| 欧美热在线视频精品999| 黑人粗进入欧美aaaaa| 亚洲精品国产第一综合99久久| 特黄视频在线观看| 国产精品久久激情| 欧美fxxxxxx另类| 三级黄色片网站| 69久久夜色精品国产69蝌蚪网| 成人影院在线播放| 天堂资源在线亚洲资源| 国产成人免费网站| 免费黄色网址在线| 久久国产精品久久久久| 日韩欧美美女在线观看| 亚洲三级在线观看视频| 欧美日韩精品在线视频| 素人av在线| 久久婷婷国产综合尤物精品| 精品在线免费视频| 国内免费精品视频| 久久精品国产久精国产思思| 亚洲人成网77777色在线播放 | 成人激情免费网站| 小泽玛利亚一区二区三区视频| 久久噜噜噜精品国产亚洲综合 | 日韩欧美在线观看免费| 欧美日韩国产第一页|