日韩成人av网_四虎成人精品永久免费av_亚洲图片欧美在线_欧美高清性xxxxhd_一本色道久久综合亚洲aⅴ蜜桃 _欧美亚洲国产另类_国内久久婷婷综合_国产伦视频一区二区三区_一区二区三区日韩在线观看_狠狠操精品视频_亚洲视频在线观看一区_成人在线免费观看av

 
 

您當前的位置: 首頁 > 網絡技術  > 網絡應用教程 瀏覽
flashP2P協議rtmfp解析
發布時間:2015-12-01    點擊率:次    來源:www.0068468.cn    作者:電腦技術學習網

   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計算。

  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隨機數

  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= x01x0Ax41x0E | dh-public-num | x02x15x02x02x15x05x02x15x0E

  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

 

  字段定義同上

來源 電腦技術網 www.0068468.cn
發表留言
發表留言請先登錄!
免責聲明:本站發布的信息和評論純屬網民個人行為,并不代表本站立場,如發現有違法信息或侵權行為,請直接與本站管理員聯系,我們將在收到您的信息后24小時內作出處理!
欧美福利在线视频| 99精品久久免费看蜜臀剧情介绍| 日本久久亚洲电影| 久久精品999| 日韩免费视频一区二区视频在线观看| wwwwxxxx日韩| 97超级碰在线看视频免费在线看| 亚洲一区二区视频在线| 亚洲爆乳无码精品aaa片蜜桃| 人妻 丝袜美腿 中文字幕| 日本性生活一级片| 在线电影院国产精品| 日本久久久精品视频| 国产区在线观看成人精品| 欧洲精品一区色| 久久久99久久| 亚洲国产成人一区二区| 少妇精品久久久久久久久久| 国产一区二区三区美女| 国产av人人夜夜澡人人爽麻豆| 精品少妇一区二区三区在线视频| 日本一二三不卡视频| 在线亚洲欧美专区二区| 久久男人资源站| 国产麻豆成人精品| 国产精品美女免费看| 国产免费av一区| 日本黄色一区二区| 国产l精品国产亚洲区久久| 中文字幕精品在线不卡| 亚洲小视频在线播放| 亚洲欧美日韩免费| 欧美激情一区二区三区高清视频 | 免费视频一二三区| 欧美视频在线看| 日日噜噜噜噜夜夜爽亚洲精品| 国产成人无码www免费视频播放| 久久久久久69| 男人日女人网站| 成人免费看片视频| 亚洲乱码中文字幕| 国产精品51麻豆cm传媒 | 日韩成人精品在线观看| 色哟哟在线观看一区二区三区| av在线网址导航| 亚洲色图综合久久| 日韩污视频在线观看| 欧美最猛黑人xxxx黑人猛叫黄| 久久精品女人天堂| 伊人久久大香线蕉av一区| 亚洲人123区| 亚洲观看黄色网| 久久精品国产亚洲7777| 亚洲av片一区二区三区| www.国产亚洲| 欧美乱妇23p| 日本三级一区二区三区| 亚洲综合日韩在线| 国产精品国产三级国产专播品爱网| 亚洲三级在线视频| 色先锋资源久久综合5566| 亚洲精品一区二区三区蜜桃| 亚洲图片都市激情| 色婷婷激情综合| 免费在线一区二区三区| 亚洲专区中文字幕| 中文字幕av免费专区久久| 你懂的在线观看网站| 久久久女人电视剧免费播放下载| 成人晚上爱看视频| 99久久人妻无码精品系列| 国产69精品久久久久9999| 国产不卡高清在线观看视频| gogo亚洲国模私拍人体| 91精品国产高清久久久久久久久 | 一区二区久久久久| 网站永久看片免费| 岛国视频一区免费观看| 亚洲成av人片在线| 一区二区三区黄色片| 最近中文字幕日韩精品 | 欧美日韩人妻精品一区二区三区| 国产不卡一区二区在线观看| 精品人伦一区二区三区蜜桃网站 | 成人激情视频在线观看| 91污片在线观看| 51精品免费网站| 久久另类ts人妖一区二区| 日韩精品一区二区三区四区 | 亚洲成人久久久| 免费在线成人网| 在线观看免费小视频| 亚洲一卡二卡三卡| 精品国偷自产在线视频99| 久久精品亚洲麻豆av一区二区| 久久久久香蕉视频| 屁屁影院ccyy国产第一页| 欧美黄网免费在线观看| 红桃视频成人在线观看| 天堂蜜桃一区二区三区 | 亚洲福利一二三区| 国内精品久久久久影院色 | 精品88久久久久88久久久| 中文字幕一区在线观看视频| 亚洲天堂视频在线| 视频三区二区一区| 亚洲欧美在线看| 中文字幕一区二区在线观看| 黄网站欧美内射| 中文字幕 欧美日韩| 国产一级片网址| 国产一区二区三区日韩| 日韩欧美精品中文字幕| 97激碰免费视频| 蜜臀av.com| 久久国产美女视频| 亚洲一区二区三区网站| 成人性色生活片| 欧美丝袜丝交足nylons图片| 亚洲一品av免费观看| 国产精品丝袜高跟| 乱人伦xxxx国语对白| 欧美大波大乳巨大乳| 毛片在线免费视频| 久久九九国产| 亚洲成人激情自拍| 欧美高清激情brazzers| 99re资源| 精品人妻在线视频| 国产v亚洲v天堂无码久久久| 国产伦精品一区二区三区视频孕妇 | 亚洲美女视频网| 91精品国产综合久久男男| 在线观看成人一级片| 国产老熟女伦老熟妇露脸| 国产91精品露脸国语对白| 中文字幕日韩视频| 日韩欧美精品免费| 久久精品免费av| 亚洲精品无码专区| 国产v在线观看| 国产午夜亚洲精品不卡| 欧美视频一区二区三区…| 精品日韩欧美一区二区| 91精品国产欧美一区二区18| 精品少妇一区二区三区日产乱码| 欧美高清视频一区| 久久国产在线观看| 国产精品一区二区av白丝下载 | av动漫在线免费观看| 国产精品成人99一区无码| 久久精品国产亚洲一区二区三区| 亚洲网址你懂得| 亚洲乱码中文字幕久久孕妇黑人| 亚洲精品无码久久久久| 性感美女极品91精品| 日本成人免费在线| 在线看视频不卡| 无码人妻丰满熟妇区毛片| 黄色在线免费播放| 国产理论视频在线观看| 国产调教视频一区| 亚洲国产经典视频| 欧美视频不卡中文| 免费超爽大片黄| 涩多多在线观看| 免费看日本黄色片| caoporn91| 日韩国产第一页| 久久久久精彩视频| 性一交一乱一伧老太| 久久亚洲不卡| 精品在线播放午夜| 欧美精品在欧美一区二区少妇 | 精品人妻一区二区三区免费| 91免费公开视频| www.日本少妇| 肥熟一91porny丨九色丨| 国产精品久久久久久久久婷婷 | 国模视频一区二区| 色姑娘综合av| 久久久久99精品成人| 日本va欧美va瓶| 色呦呦网站一区| 91精品综合久久久久久五月天| 欧美成人三级在线播放| 天天综合网入口| **网站欧美大片在线观看| 久久久久久草| 五月婷婷六月丁香| 国产精品视频久久久久| 情侣偷拍对白清晰饥渴难耐| 一二三区精品视频| caoporen国产精品| 黄色在线观看av| 国产精品一色哟哟哟| 日韩欧美成人一区| 日本中文字幕在线视频观看| 久久久久久视频| 美女国产一区二区三区| 亚洲欧美制服第一页| 欧美无人区码suv| 精品国产福利在线| 日韩美女写真福利在线观看| 激情婷婷综合网| 青青草国产成人av片免费| 久久这里都是精品| 国产精品第100页| 天堂在线中文视频| 亚洲丶国产丶欧美一区二区三区| 亚洲乱码在线观看| 无码人妻精品一区二区三区不卡| 最新一区二区三区| 亚洲欧美色图视频| 亚洲精品无码久久久久久久| 精品人妻一区二区三区四区在线| 天堂社区 天堂综合网 天堂资源最新版| 成人av.网址在线网站| 69av在线视频| www国产91| 亚洲午夜性刺激影院| 欧美大片拔萝卜| 欧美肥胖老妇做爰| 91福利精品视频| 精品日韩视频在线观看| 亚洲在线成人精品| 中文字幕日韩精品一区| 欧美激情在线看| 久久久久久97三级| 成人动漫一区二区三区| 国产成人福利片| 国产精品原创巨作av| 麻豆精品久久精品色综合| 午夜18视频在线观看| 蜜臀久久99精品久久久| 午夜精品一区二区三| 国产ts人妖调教重口男| 国产欧美综合视频| 一区二区三区在线免费观看视频| www.日韩一区| 狠狠躁夜夜躁人人爽视频| 天堂а√在线中文在线新版| 久青草免费视频| 国产精品suv一区二区69| 黄色激情视频在线观看| 国产第一页在线播放| 免费一级片在线观看| 久久中文字幕无码| 中文字幕一区二区三区精品| 免费污污视频在线观看| 337p粉嫩色噜噜噜大肥臀| 中文字幕精品视频在线观看| 羞羞色院91蜜桃| 国产免费高清视频| 亚洲国产精品久久久久爰性色| 亚洲精品久久久久久无码色欲四季| 亚洲精选一区二区三区| 日韩精品电影一区亚洲| 久久97超碰色| 国产成人av影院| 91麻豆福利精品推荐| 国产精品美女视频| 夜夜爽夜夜爽精品视频| 欧美日韩性视频在线| 欧美主播一区二区三区美女| 91麻豆精品久久久久蜜臀| 精品美女一区二区| 国产亚洲欧美日韩美女| 久久99精品视频一区97| 国产91色在线免费| 91中文在线视频| 久久亚洲午夜电影| 亚洲 欧洲 日韩| 日韩欧美亚洲天堂| 91aaa精品| 亚洲欧美va天堂人熟伦| 18精品爽视频在线观看| 精品国产www| 五月婷在线视频| 成人黄色网址在线观看| 国产精品国产三级国产普通话99| 亚洲mv在线观看| 3d成人h动漫网站入口| 亚洲精品日韩欧美| 午夜精品一区二区三区在线播放| 国产精品免费一区二区三区都可以| 国产亚洲福利社区| 黄色a级在线观看| 狠狠躁狠狠躁视频专区| 久久精品一区二区免费播放 | 美国黄色小视频| 亚州国产精品视频| 成 人 免费 黄 色| 国产精品1024| 国产精品电影院| 色哟哟国产精品| 日韩精品高清在线| 欧美精品久久一区二区| 99久久精品免费看国产一区二区三区 | 亚洲免费av高清| 精品视频免费看| 中文字幕在线看视频国产欧美| 久久久午夜视频| 国产一区视频观看| 成人一对一视频| 法国伦理少妇愉情| 无码视频一区二区三区| 免费成人美女在线观看| 国产精品少妇自拍| 欧美日本在线一区| 日韩一区av在线| 成人激情视频在线| 正在播放91九色| 国产麻豆剧传媒精品国产| 久久久久亚洲av片无码下载蜜桃| 超碰福利在线观看| 2023国产精品视频| 欧美在线看片a免费观看| 久久精品国产99国产精品澳门| 成人免费视频97| 综合久久国产| 91传媒理伦片在线观看| 国产一区二区99| 麻豆精品在线播放| 亚洲黄一区二区三区| 亚洲福利在线观看| 国产精品吊钟奶在线| 波多野结衣激情| 国产精品一级黄片| 中文字幕 自拍偷拍| 国产成人免费av在线| 欧美视频在线免费看| 中文综合在线观看| 国模精品一区二区三区| 国产高潮免费视频| 久久99久久98精品免观看软件| 久久激情综合| 一区二区三区四区五区视频在线观看| 日韩黄在线观看| 亚洲一区二区三区乱码aⅴ| 91午夜在线观看| 一二三四在线观看视频| 黑人操亚洲女人| 亚洲日韩欧美一区二区在线| 亚洲性生活视频在线观看| 国产成人av一区二区三区| 亚洲激情在线观看视频| 日韩成人在线免费视频| 国产精品亚洲第一| 91福利国产精品| 45www国产精品网站| 免费网站永久免费观看| 欧美激情久久久久久久| 老司机精品福利视频| 五月天婷婷综合| 久久久久久国产精品美女| 9l视频自拍9l视频自拍| 在线观看亚洲大片短视频| 久久亚洲美女| 欧美性极品xxxx娇小| 久久久久久久一| 日韩av新片网| 中文字幕另类日韩欧美亚洲嫩草| 紧缚捆绑精品一区二区| 欧美日韩1区2区| 国产一区二区香蕉| 91香蕉视频污版| 亚洲欧美另类在线视频| 欧美激情在线看| 日韩在线小视频| youjizz.com亚洲| 欧洲美女女同性互添| 国产真实精品久久二三区| 欧美日韩国产精选| 91精品视频在线播放| 九九九九九九九九| 国产手机视频在线| 一区二区三区欧美日韩| 久久全球大尺度高清视频| cao在线观看| 精品免费囯产一区二区三区 | 在线观看91精品国产麻豆| 国产精品一区久久| 999这里有精品| 国产香蕉在线观看| 日本道精品一区二区三区| 国产精品高潮呻吟视频| 99re6在线观看| 狠狠综合久久av一区二区| 色综合久久久久综合| 国产精品久久一| 欧美日韩一区二区三区69堂| 国产三级视频在线播放| 精品国产精品三级精品av网址| 国产成人精品综合久久久| 国产91色在线观看| 国产乱人乱偷精品视频a人人澡| 亚洲激情自拍偷拍| 热久久99这里有精品| 国产乱码一区二区三区四区| 久久精品二区三区| 欧美精品三级在线观看| 成人毛片网站| 男人天堂av电影| 成人黄页在线观看| 中文字幕在线看视频国产欧美在线看完整 | 素人fc2av清纯18岁| 国产精品亚洲人在线观看| 国产亚洲精品久久久久久| av免费观看国产|