【转载】 P2P(打洞)方案 及webrtc实现

P2P(打洞)方案

反向链接技术 —— 通信的双方只有一方位于NAT之后

A:位于NAT之后
B:拥有外网地址
A可以主动向B进行连接,但B不能主动连接A,B需要给服务器发送请求,让服务器告知A,让A主动再去连接B(反向连接技术)

基于UDP的打洞

原理概述

1.中间服务器作用
1)公网服务器,位于NAT网关后面的client A和B都可以与一台已知的集中服务器建立连接,并通过这台集中服务器了解对方的信息并中转各自的信息
2)判断client是否位于NAT之后,client与server连接时,server会记录两对地址,一个是client自身IP和端口号,第二个是实际通信的IP和端口号,两个地址作对比后,就可以判断
2.P2P建立流程
1)A不知道如何与B发起连接,于是A给集中服务器发送消息,请求集中服务器帮助与客户端B的UDP连接
2)集中服务器将B的内外网地址发送给A,同时集中服务器将A的内外网地址发给B
3)当A收到B的地址后,A向B的地址发送UDP包,并且A会自动锁定第一个给出响应的B地址,B也是同理,此时即可连接

典型场景

两客户端位于同一NAT设备后面

上一篇:SQL 系统进程的运行(status)状态(Runnable、Running、Suspended、Sleeping、Pending、Dormant、Background、Spinlock)


下一篇:Small chat software based on C++/qml (including source code)