服务端开发
文章平均质量分 70
NUS_Ryan
规矩严格,功夫到家
展开
-
从零实现WebRTC(二):WebRTC的通信过程
ICE 基本思想,每一个代理拥有多种可用于与对端通信的候选传输地址(TRANSPORT ADDRESSES,针对特定传输协议(一般为 UDP 协议)的 IP 地址和端口的组合),ICE 通过不断地尝试以确定真正可用的传输地址对;WebRTC是一个集成了音视频通话中的多个应用的框架,主要是想尝试解决音视频通话中的一系列实时音视频应用问题,比如采集,编码,解码,前后处理,传输,缓冲,渲染,美颜,回声消除等等等等。媒体信息SDP用于描述在对等连接上传出的数据的信息,比如音频,视频和应用数据。原创 2023-02-14 22:16:46 · 840 阅读 · 0 评论 -
WebRTC服务器理论铺垫(六):OpenSSL协议,DTLS协议,RTP协议和SRTP协议
SSL的全名叫做secure socket layer(安全套接字层),最开始是由一家叫网景的互联网公司开发出来,主要是防止信息在互联网上传输的时候不被窃听或者篡改,后来网景公司提交SSL给ISOC组织做标准化,改名为TLS(transport layer security)。其实在互联网的数据传输中,对数据进行窃听和修改是非常容易的,如果你上网连得的是wifi,那么你的数据一定会经过wifi路由器,通过对路由器做些手脚就可以拿到这些数据。TLS是基于TCP协议的,DTLS是基于UDP协议的。原创 2023-02-13 15:49:27 · 1195 阅读 · 0 评论 -
从零实现高并发WebRTC服务器(五):ICE协议
如图,两个终端通过白云(信令服务器)进行建立连接。在建立连接之前需要通过STUN Server来进行NAT穿越,如果STUN Server 进行NAT穿越不成功就使用Relay Server。(协议,IP,端口和类型)。例如a = candidate …192.169.1.2 8080 typ host。ICE,interactive connectivity establishment. 即需要两端交互才能进行连接。原创 2023-02-12 23:39:52 · 407 阅读 · 0 评论 -
WebRTC(一):三种架构和基本原理
从上述 SFU 的定义可以看到,SFU 这种网络拓扑模型,通过由 SFU Server 来实现 one-to-many ,减轻了多人视频通话场景下每个客户端的上行带宽压力,但是下行依然是多路流,随着通话人数的增大,下行带宽的压力依然会成比例的增大,那能否让下行也只剩一路流呢?,受到更广泛的欢迎和应用,常见的开源 SFU 服务器有:Licode,Janus,Jitsi,mediasoup,Medooze 等等,各有特点,大家可以去项目主页了解更详细的情况。SFU 相比于 MCU,原创 2023-02-12 20:51:27 · 1332 阅读 · 0 评论 -
WebRTC服务器理论铺垫(四):STUN协议和STUN Header
STUN存在的目的就是进行NAT穿越。什么是NAT穿越?NAT穿越介绍STUN协议详细介绍1)Client A和Client B分别向STUN服务器发出请求,询问并注册自身的转换后地址。2)STUN Server收到请求消息,产生响应消息,响应消息中携带请求消息的源端口,即Client A(B)在NAT上对应的外部端口,然后响应消息通过NAT发送给Client A(B)。原创 2023-02-10 11:39:59 · 341 阅读 · 0 评论 -
深入理解epoll模型
相较于select模型,epoll没有文件描述符数目的限制。工作效率不会随着文件描述符的增加而下降,在select中由于要频繁对所有文件描述符进行遍历,因此工作效率会受到影响。epoll经过系统优化更加高效,有内核级别的优化。原创 2023-02-07 21:34:43 · 279 阅读 · 0 评论 -
深入理解select模型
理解select模型的关键在于理解fd_set(文件描述符集合)类型,其实fd_set就是整型的集合,每一个bit代表一个文件描述符。将所有位置为0。fd_set是将fd_set中的某一位置为1.select函数执行后,系统会修改fd_set中的内容。因此当select函数执行之后,应用层都要重新设置fd_set中的内容。原创 2023-02-07 21:16:11 · 98 阅读 · 0 评论 -
WebRTC服务器理论铺垫(三):实现高性能网络服务器的四种方式:fork,select,epoll,开源多路IO库
在之前我们实现的tcp server, tcp client, udp server, udp client中,默认只允许一个连接,在代码逻辑中表现为一个while死循环。为了允许更多的连接,我们需要使用一些机制来实现高性能网络服务器,具体的有以下四种方式。原创 2023-02-07 16:31:49 · 378 阅读 · 0 评论 -
WebRTC服务器理论铺垫(二):后台服务
/使用fork创建进程的若干步骤 //1.fork一个子进程并且退出父进程,子进程成为一个孤儿进程并由init进程接管 //2.调用setsid建立新的进程会话 //3.将当前工作目录切换到根目录 //4.将标准输入输出出错重定向到/dev/null void daemonize() {pid_t pid;"原创 2023-01-24 22:57:56 · 159 阅读 · 0 评论 -
WebRTC服务器理论铺垫(一):几个重要的信号,信号的发送方式
linux当子进程的结束的时候,他不会完全被销毁,因为父进程还要使用它的信息。因此父进程没有处理sigchild信号或者调用wait / waitpid()等待子进程结束,就会出现僵尸进程。注 : 僵尸进程是一个早已经死亡的进程,但在进程表中仍然占有位置。为什么会出现僵尸进程?原创 2023-02-02 18:58:31 · 134 阅读 · 0 评论