2020年12月30日 星期三

ICE格式解析



例如收到一條ICE candidate如下:

candidate:240568271 1 udp 1686052607 174.139.8.82 64462 typ srflx raddr 10.1.1.19 rport 64462 generation 0 ufrag TWCy network-id 2 network-cost 50

欄位解析:

foundation(240568271):根據type、ip、protocol、replay_protocol計算出的字符串。一般於比較兩個candidate是否相等。

component(1):通道碼。 RTP通道碼是1、RTCP是2,這個例子表示這候選地址關聯RTP通道。

protocol(udp):傳輸層類型,upd或tcp。往往認為RTP、RTCP是用UDP,webrtc其實支持用TCP,但UDP較即時傳輸。

priority(1686052607):候選者的優先等級

ip(174.139.8.82):候選IP。它是真正須要的候選地址。當type是反射時,它就是NAT外的公網IP,此時raddr對應內網IP,

port(64462):候選IP關連的端口號。

typ(srflx):候選地址類型。它分本地(host)、反射(srflx),中轉(relay)。

raddr(10.1.1.19):候選IP基於的IP。對於host類型,它不存在。是type是srflx反射時,它就是內網IP。

rport(64462):raddr關聯的端口。

generation(0):代數。初始值是0,然後會不斷+1,大的代數會覆蓋掉低代數的候選地址。

ufrag(TWCy):用戶名,應該是用來檢查憑證用的,和SDP中的ufrag、pwd對應來看。

network-id(2):此網卡IP在網卡集合中的索引,從1開始。

network-cost:我猜是連線所花的成本,例如:連線所花時間。


類型 別名 如何傳給對端 用法
主機候選項 host 信令服務器 從網卡中獲取的本地傳輸地址,如果此地址位於NAT之后,则为内网地址
服務器反射候選項 srflx 信令服務器 從發送給Stun服务器的Binding检查中获取的传输地址。如果此地址位于NAT之后,则为最外层NAT的公网地址
對端反射候選項 prflx Stun Binding請求 從對端發送的Stun Binding请求获取的传输地址。这是一种在连接检查期间新发生的候选项
中繼候選項 relay 信令服務器 媒體中繼服務器的傳輸地址。通過使用TURN Allocate请求获取

REF

沒有留言:

張貼留言