
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
这篇是我临时加的,本来不打算放在整个内核协议栈分析的系列里的,但我现在觉得vlan还是蛮重要的,而且讨论vlan源码的文章很少,不知道我这篇算不算第一篇 :Dvlan的代码都在net/8021q/的内核目录下,首先我们来看8021q模块 (net/8021q/vlan.c)vlan_proto_init , vlan_cleanup_module 是模块的init/exit函数,我们来看v
本篇讨论IP包的收发(暂不包括路由)先来看inet_init,首先是调用proto_register,注册了tcp_prot, udp_prot, raw_prot,其中proto_register前半部分是初始化各种slab_cache,后半部分把这些struct proto结构链到proto_list里其次调用sock_register,内核有一个全局的net_proto_fami
TSO,全称是TCP Segmentation Offload,我们知道通常以太网的MTU是1500,除去TCP/IP的包头,TCP的MSS (Max Segment Size)大小是1460,通常情况下协议栈会对超过1460的TCP payload进行segmentation,保证生成的IP包不超过MTU的大小,但是对于支持TSO/GSO的网卡而言,就没这个必要了,我们可以把最多64K大小的TC
这篇主题是内核二层包的接受发送,先来看接收:首先关注下几个状态值__QUEUE_STATE_FROZEN:发送队列被锁__QUEUE_STATE_XOFF:发送队列发送功能关闭__LINK_STATE_START:设备是否开启__LINK_STATE_PRESENT:设备是否存在,如驱动未安装就不存在__LINK_STATE_NOCARRIER:设备是否接收到载波,
这个系列内容会有点杂,会涉及tcp/ip, netfilter, lvs, 网卡驱动等各个方面。。下半年准备把内核网络这一块好好研究下。。好吧从第一篇开始这篇介绍内核网络中最重要的数据结构,大部分可以在understanding linux network internal里找到struct sockstruct sock首先包含一个struct sock_common结构,主
Python的标准库里的服务器模块SocketServer可以很方便的开发简单的服务器程序+------------+| BaseServer |+------------+|v+-----------++------------------+| TCPServer |------->| UnixStreamServer |+-----------++------------------+|v
上一篇已经提到,在virtio设备初始化的过程中,会通过setup_vp创建virtqueue,目前的virtqueue队列都是通过vring来实际工作的,我们可以把virtqueue当做一个接口类,而把vring_virtqueue当做这个接口的一个实现/*** virtqueue - a queue to register buffers for sending or receivin
开发多线程的应用系统,是在日常的软件开发中经常会遇到的需求。现在的编程语言都为多线程开发提供了很好的支持,无论是通过库的支持还是将多线程机制内建在语言之中。Python 也为多线程系统的开发提供了很好的支持。同样身为动态语言,Ruby 也提供了多线程的支持,但是在Ruby 1.9 之前的多线程机制是在语言的实现中模拟了线程及线程调度机制,而并没有使用操作系统本身的线程机制(在以后的描述中,我们称为
我们以RHEL6的xen netfront前端驱动为例。RHEL5的前端驱动,有一个acceleration的特性,是由一家叫solarflare的公司为其网卡定制的plugin,基本架构就是直接从网卡拿了包扔给虚拟机,不经过网桥,当然这需要前端后端都要支持这个acceleration feature。感兴趣的可以去看这篇文章http://www.tecnologika.co.uk/wp-co







