logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

linux内核网络源码--通知链

内核的很多子系统之间有很强的依赖性其中一个子系统侦测到或者产生的事件其他子系统可能都有兴趣为了实现这种交互需求linux使用了所谓的通知链。本章我们将看到通知链如何声明以及网络代码定义了哪些链内核子系统如何向通知链注册。内核子系统如何在链上产生通知信息。注意通知连只在内核子系统之间使用内核和用户空间之间的通知信息则是依赖其他机制如第三章所介绍。

文章图片
#linux#运维#服务器
linux内核网络--skb_shared_info结构和skb_shinfo函数“每日读书”

如图2-5所示,数据缓冲区尾端有个名为skb_shared_info的数据结构,用以保持此数据区块的附加信息,此数据结构紧接在标记数据尾端的end指针之后,此数据结构的定义如下,

文章图片
#linux#网络#运维
从linux内核源码着手分析bbr

1 首先看看初始化窗口size初始化的时候是10个mss,要不然就是通过min rtt和探测到的bw计算出来的。bw 为带宽横截面积,gain为增益系数2 探测RTT上面代码是探测数据回调,如果探测到的最新RTT小于之前记录的,就更新一下,并且更新下min rtt得到的时间戳。这个函数从哪里调用过来的?.cong_control = bbr_main->bbr_update_model-&g

#p2p#网络协议#网络
linux内核接收网络数据流程(一)

一 要实现一个高效的流媒体服务器,离不开一个高效的网络协议栈,目前流媒体服务器大多是基于tcp/udp的,我们可以从tcp/udp入手,逐渐深入,甚至开发自己的流媒体协议栈。二 tcp 的三个接收队列  1 prequeue在linux内核中,每一个网络数据包,都被切分为一个个的skb,这些skb先被内核接收,然后投递到对应的进程处理,进程把skb拷贝到本tcp连接的sk_receive_queu

linux内核接收网络数据流程(三)

一 前面一节我们讲了skb通过事件通知到了软中断处理,最终调用deliver_skb分发出去skb,注意deliver_skb调用这里是一个循环,list_for_each_entry_rcu ,netfilter模块就是这里调用的,因此可以知道,抓包工具等对socket读写是没有影响的,这里浅拷贝了一份skb到netfilter模块当实参传递的。而读写socket是更上层的调用,不属于同一个模块

nginx四层反向代理分析

1 反向代理反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。2 nginx反向代理首先看配置,nginx反向代理是一个核心模块。基本配置如下。tcp {    timeout

ffmpeg中AVFrame解码linesize确定

总结:ffmpeg的AVFrame linesize对齐方式和机器支持的simd有关,avx512就是64字节,avx256就是32字节。//每次将最低有效二进制位+1,这样做的目的,比如当前是16的整数倍,调整为32的整数倍。解码视频分辨率 720x1280 , 解码后 AVFrame linesize 768。由上面代码可见,AVFrame的linesize源自于 pool的linesize。

文章图片
libevent 写事件处理

bufferevent_writecb(evutil_socket_t fd, short event, void *arg){struct bufferevent *bufev = arg;struct bufferevent_private *bufev_p = BEV_UPCAST(bufev);int res = 0;short what = BE...

    共 46 条
  • 1
  • 2
  • 3
  • 4
  • 5
  • 请选择