精品欧美一区二区三区在线观看 _久久久久国色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免费在线视| 国产精品热久久久久夜色精品三区 | 成人观看高清在线观看免费| 精品肉丝脚一区二区三区| 欧美美女在线直播| 欧美人动与zoxxxx乱| 欧美大片免费播放| 久久电影中文字幕| 懂色av中文字幕一区二区三区| 日韩av成人在线| 青青草原在线免费观看| 经典一区二区| 欧美精品一区男女天堂| 男生操女生视频在线观看| 成年男女免费视频网站不卡| ●精品国产综合乱码久久久久| 精品欧美日韩在线| www.热久久| 久久国产日韩欧美精品| 欧亚精品在线观看| 九热这里只有精品| 亚洲国产一区二区在线观看| 亚洲欧美三级伦理| 少妇精品无码一区二区三区| 国产精品久久免费视频| 在线观看不卡一区| 男人的天堂99| 97蜜桃久久| 亚洲一区二区欧美| 水蜜桃在线免费观看| 日本最新在线视频| 久久久久久99久久久精品网站| 成人免费视频网站| 国产三级漂亮女教师| 老司机免费视频一区二区三区| 欧美性视频在线| 欧美精品亚洲精品日韩精品| 一区二区三区四区日韩| xvideos国产精品| 天天干天天操天天拍| 国产亚洲一区| 在线不卡国产精品| 久久久久久久久久久久| 国产一区2区| 永久免费毛片在线播放不卡| 9.1成人看片免费版| 亚洲深夜福利在线观看| 日韩成人小视频| 黄色片视频免费观看| 日本国产精品| 亚洲四色影视在线观看| 亚洲AV无码片久久精品| 久久成人高清| 中文字幕在线看视频国产欧美在线看完整 | 这里只有精品在线观看| 国产精品久久免费观看| 日本黄色精品| 日韩日本欧美亚洲| 国产一区二区视频在线观看免费| 牛牛国产精品| 性亚洲最疯狂xxxx高清| 国产一级做a爱片久久毛片a| 欧美亚洲专区| 国产精品99免视看9| 伊人免费在线观看高清版| 狠狠色丁香久久婷婷综| 99re热精品| 色视频在线观看| 国产欧美一区二区三区沐欲| 在线视频精品一区| 在线观看电影av| 精品欧美国产一区二区三区| www日韩视频| 成年永久一区二区三区免费视频| 91麻豆精品国产91久久久久久久久 | xx视频.9999.com| 久久婷婷国产麻豆91| 99国产精品久久久久久久成人热| 国产91色在线| 国产一区二区在线视频观看| 成人免费视频网站在线观看| 欧美激情视频一区二区三区| 日本视频在线播放| 亚洲第一久久影院| 久草福利视频在线| 欧美国产中文高清| 亚洲女同性videos| 免费高清在线观看电视| 日韩欧美中文字幕在线播放| 欧美日韩高清区| 久久精品性爱视频| 久久综合导航| 97碰碰视频| 青草久久伊人| 亚洲女厕所小便bbb| 浮妇高潮喷白浆视频| 成人做爰视频www| 精品成人一区二区| 91制片厂在线| 国产精品色网| 91老司机在线| 四虎影视精品成人| 亚洲精品视频在线观看免费| 成人在线观看a| 视频一区日韩| 色噜噜国产精品视频一区二区 | 91精品国产乱码久久久久久久| 久久久综合av| 国产乱淫av片免费| 国产欧美一区二区精品秋霞影院| 日韩一级免费看| 视频欧美精品| 亚洲人成电影在线观看天堂色| 污软件在线观看| 美美哒免费高清在线观看视频一区二区 | 久久精品亚洲一区| 中文字幕视频一区二区| 2019国产精品| www..com日韩| 51vv免费精品视频一区二区| 久久精品2019中文字幕| 亚洲av综合一区| 91视频精品在这里| 日本a视频在线观看| 中文字幕一区二区三区四区久久| 色妞欧美日韩在线| 自拍偷拍色综合| 久久看人人爽人人| www.爱色av.com| 91麻豆精品国产91久久久久推荐资源| 久久手机免费视频| 国产又粗又猛又爽又黄91| 国产欧美日韩在线视频| 欧洲av无码放荡人妇网站| 第四色在线一区二区| 欧美久久精品午夜青青大伊人 | 亚洲精品福利免费在线观看| 久久精品欧美一区二区| 国产传媒一区在线| 男人c女人视频| 99精品国产一区二区三区2021| 永久亚洲成a人片777777| 日本在线观看天堂男亚洲| 神马午夜一区二区| 亚洲大尺度视频在线观看| 亚洲av综合色区无码另类小说| 欧美ab在线视频| 成人影片在线播放| 国精一区二区三区| 欧美精品一区二区三区在线播放| 懂色av.com| 91女人视频在线观看| 热久久精品国产| 精品一区二区三区中文字幕老牛 | 小说区图片区亚洲| 久久精品一区中文字幕| 国产视频一区二区三| 一区二区三区加勒比av| 国产高潮失禁喷水爽到抽搐| 亚洲精品乱码久久久久久蜜桃麻豆| 国产精品一区二区三区免费观看| av资源中文在线| 精品丝袜一区二区三区| 伊人久久中文字幕| 中文字幕在线不卡一区二区三区| 日本高清免费在线视频| 亚洲午夜视频| 欧美日韩在线一二三| 亚洲狼人在线| 久久久久久久一| 韩国三级在线观看久| 欧美疯狂性受xxxxx喷水图片| 国产一区二区视频在线观看免费| 成人一级片在线观看| 欧美成人免费高清视频| 国产精品国内免费一区二区三区| 成人av蜜桃| 久久精品女人天堂av免费观看 | 日韩精品欧美在线| 疯狂欧洲av久久成人av电影| 97色在线播放视频| 亚洲成人三级| 亚洲黄一区二区| 一级片视频播放| 精品国产91久久久久久| 国产美女网站视频| 99久久久无码国产精品| 911av视频| 国产精品免费看| 好吊色这里只有精品| 日韩在线黄色| 亚洲精品女av网站| 丝袜美腿一区| 欧美激情va永久在线播放| 免费a在线观看| 欧美不卡一区二区三区| 91免费观看视频在线| 久久久中文字幕| 国产福利在线看| 精品国产乱码久久久久久影片| 国产成人无码一区二区在线播放| 中文字幕一区二区视频| 视频免费在线观看| 狠狠色狠狠色合久久伊人| 青青草国产精品视频| 亚洲xxx拳头交| 日本一区高清不卡| 黑色丝袜福利片av久久| 成人写真视频福利网| 伊人久久在线| 久久人人爽人人| av免费在线网站| 正在播放欧美视频| 青青草娱乐在线| 精品国产一区二区三区久久久蜜月 | 九九亚洲视频| 国产精品一区二区免费看| 精品999日本久久久影院| 国产精品久久久久91| 美女扒开腿让男人桶爽久久软| 久久综合久久88| 日本视频不卡| 中文在线资源观看视频网站免费不卡| 日本国产在线观看| 精品伦理精品一区| 国产普通话bbwbbwbbw| 欧美日韩国产成人在线91 | 这里只有精品99re| 欧美成人精品网站| 欧美在线观看视频在线| 看黄色一级大片| 一本久道中文字幕精品亚洲嫩| 国产精品 欧美 日韩| 亚洲国产精品久久不卡毛片| 欧美日韩大片在线观看| 亚洲激情五月婷婷| 欧美日韩免费一区二区| 亚洲aaa在线观看| 久久综合九色欧美综合狠狠| 日本50路肥熟bbw| 成人久久18免费网站麻豆 | 男人天堂中文字幕| 亚洲国产精品视频| 1级黄色大片儿| 天天色图综合网| 久久久黄色大片| 日本道在线观看一区二区| 日韩熟女一区二区| 在线国产亚洲欧美| 国产又黄又粗又长| 日韩一二三区不卡| 亚洲精品久久久久久久久久久久久久 | 麻豆成人入口| 久久久精彩视频| 国产99久久| 亚洲国产日韩美| 亚洲欧洲日韩| 成年在线观看视频| 亚洲清纯自拍| 老司机午夜av| 久久66热re国产| 无码人妻丰满熟妇区毛片蜜桃精品| 国产99久久久久久免费看农村| 91亚洲一线产区二线产区 | 日韩午夜在线观看视频| 精品久久久久成人码免费动漫| 精品国产伦一区二区三区观看方式| 少妇高潮一区二区三区69| 亚洲区中文字幕| 国产一二区在线| 午夜精品久久久久久久久久久久 | 欧美日韩久久不卡| 国产高清免费在线观看| 亚洲精品第一国产综合精品| 国产高清视频在线| 欧美国产日本高清在线| 国产调教在线| 国产精品羞羞答答| 8x国产一区二区三区精品推荐| 久久精品日产第一区二区三区| 欧美限制电影| 黄色a级片免费看| 日韩va欧美va亚洲va久久| 波多野结衣网页| 久久免费国产精品| 欧美成人黄色网| 欧美怡红院视频| 精品乱子伦一区二区| 日韩av综合网站| 国产一二区在线| 国产成人一区二区三区小说| 伊人久久大香线蕉av超碰| 欧美国产视频在线观看| 国产精品啊啊啊| 国产精品入口免费软件| 波多野洁衣一区| 久久国产高清视频| 色狠狠综合天天综合综合| 精品久久久无码中文字幕| 亚洲欧美日韩高清| 欧美xxxx性xxxxx高清| 国产欧美va欧美va香蕉在线| 麻豆一区二区| 四虎4hu永久免费入口| 丝袜美腿高跟呻吟高潮一区| 国产精品一区二区在线免费观看| 国产精品网友自拍| 国产精品第5页| 亚洲成色www8888| 99热国产在线中文| 国产精品一区二区久久精品| 亚洲宅男一区| 国产在线视频在线| 国产一区二区免费在线| 国产又黄又粗视频| 欧美日韩视频在线| 日本黄色三级视频| 九九九久久久久久| 国产人与zoxxxx另类91| 亚洲一卡二卡区| 日日欢夜夜爽一区| 亚洲精品乱码久久久久久久久久久久| 一级女性全黄久久生活片免费| 国产理论片在线观看| 中文字幕亚洲综合久久| 免费在线观看一区| 日韩av在线电影观看| 免播放器亚洲| 成人免费看aa片| 精品久久久久久久久国产字幕 | 国产亚洲精品va在线观看| 超碰在线视屏| 精品国产乱码久久久久久郑州公司 | 国产精品久久久久7777| 国产麻豆精品久久一二三| 免费观看特级毛片| 欧美日韩国产在线观看| 91在线视频| 国产精品丝袜久久久久久高清 | 国产在线观看欧美| 国产乱码字幕精品高清av | 日韩欧美大尺度| 天堂成人在线| 日本成人在线视频网址| 亚洲激情播播| 欧美一级黄色影院| 国产精品久久免费看| 91一区二区视频| 欧美另类极品videosbestfree| 深夜福利一区| 黄页免费在线观看视频| 97se亚洲国产综合自在线不卡| www.com国产| 在线看国产精品| 亚洲资源在线| 久久人人爽人人爽人人av| av电影在线观看不卡| 手机看片久久久| 最近2019中文字幕大全第二页 | 蜜桃av在线| 日韩电影免费观看在| 韩国毛片一区二区三区| 青青草偷拍视频| 精品亚洲男同gayvideo网站| 久久99久久99精品免观看软件| 亚洲精品8mav| 国产成人av网站| 影音先锋亚洲天堂| 在线观看久久av| 一区二区亚洲视频| 97在线免费公开视频| 国产精品久久久久久久蜜臀| av网站在线免费看| 4444欧美成人kkkk| 日韩在线不卡| 激情av中文字幕| 在线欧美日韩精品| 制服丝袜在线播放| 精品欧美国产一区二区三区不卡| 久久天堂成人| 青青草原免费观看| 亚洲乱码国产乱码精品精天堂| 在线成人免费| 久草热视频在线观看| 国产精品免费aⅴ片在线观看| xxxx国产精品| 国产精品久久久久久久久久久久 | 91精品国产免费久久久久久 | 精品一区二区无码| 免费97视频在线精品国自产拍| 欧美在线关看| www.五月天色| 色综合久久中文综合久久牛| 亚洲丝袜一区| 日韩欧美手机在线| av一区二区久久| 国产女人18毛片水真多|