网络
文章平均质量分 64
ashleycoder
音视频、流媒体开发
展开
-
DTLS、ICE--用janus举例
3 dtls:Client Hello、Server Hello等、4 srtp包--使用绑定ip和port。服务器janus的sdp是a=setup:active,sdp type是answer,音视频一样。1 先SDP协商、2 发stun包—bind request、response、绑定ip和port。a=setup:actpass:作为客户端,主动发送协商。客户端的sdp是a=setup:actpass,sdp type是offer。a=setup:active:作为客户端,主动发送协商。原创 2022-09-07 20:29:49 · 945 阅读 · 0 评论 -
epoll模型要点总结
6 epoll惊群(指在accept下):多个线程或多进程等待同一事件,比如accept,系统会唤醒所有线程,但只有一个线程得到该事件,导致效率低。会设置回调函数ep_poll_callback,把pwq->wait(等待队列)跟socket的等待队列关联起来。网卡有事件到来,直接插入到rdllist中,所以epoll不需要像select一样遍历事件。4 LT水平模型,默认的,数据没有读完,epoll_wait还能读到数据。9 sock有poll函数,需要实现,如tcp_poll、udp_poll。原创 2023-01-29 20:40:04 · 567 阅读 · 1 评论 -
BBR学习笔记--什么是BBR、可调整的参数
Reno、Cubic都是基于丢包的拥塞控制算法,Cubic适用场景是高带宽的,但现在丢包不一定是发生拥塞了,比如Bufferbloat(缓冲区膨胀),路由器的缓冲区满了的丢包。原创 2022-10-08 17:59:46 · 1082 阅读 · 0 评论 -
epoll源码学习记录
【代码】epoll源码学习记录。原创 2022-09-26 20:46:06 · 291 阅读 · 0 评论 -
ZLToolKit网络库的自问自答
用户操作:比如addEvent即EPOLL_CTL_ADD等,在当前线程,放到_event_map。不是当前线程,切换到属于它的线程,在runLoop,回调该IO事件。在当前线程,直接处理task,否在放到 _list_task。疑问:一台服务器的IO事件不是固定的吗?1 一个线程一个epoll,还是共用1个epoll?work poller线程个数太多了,是cpu的个数。6 ioctl设置非阻塞,对那些函数起作用?使用epoll+线程池+异步网络IO模式开发。一个线程一个epoll。原创 2022-09-17 15:53:38 · 400 阅读 · 0 评论