上一页 1 ··· 22 23 24 25 26 27 28 29 30 ··· 54 下一页
  2018年3月9日
摘要: 设计概述 服务端通信组件的设计是一项非常严谨的工作,其中性能、伸缩性和稳定性是必须考虑的硬性质量指标,若要把组件设计为通用组件提供给多种已知或未知的上层应用使用,则设计的难度更会大大增加,通用性、可用性和灵活性必须考虑在内。 现以一个基于 IOCP 的通用异步 Windows Socket TCP 阅读全文
posted @ 2018-03-09 12:31 xmj 阅读(1577) 评论(0) 推荐(0) 编辑
摘要: 写在前面:出于项目的需要,最近打算对SQLite的内核进行一个完整的剖析,在此希望和对SQLite有兴趣的一起交流。我知道,这是一个漫长的过程,就像曾经去读Linux内核一样,这个过程也将是辛苦的,但我相信结果一定是美好的... ...接下来是第一章。 1、SQLite介绍 自几十年前出现的商业应用 阅读全文
posted @ 2018-03-09 12:30 xmj 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 1、TCP/IP参考模型为了实现各种网络的互连,国际标准化组织(ISO)制定了开放式系统互连(OSI)参考模型。尽管OSI的体系结构从理论上讲是比较完整的,但实际上,完全符合OSI各层协议的商用产品却很少进入市场。而使用TCP/IP 协议的产品却大量涌入市场,几乎所有的工作站都配有TCP/IP协议, 阅读全文
posted @ 2018-03-09 12:29 xmj 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 3、套接字的实现套接字最先是在UNIX的BSD版本实现的,所以也叫做BSD套接字,它隐藏了各个协议之间的差异,并向上提供统一的接口。Linux中实现套接字的基本结构:3.1、BSD套接字3.1.1、核心数据结构为了实现BSD套接字,内核提供一个重要的数据结构struct socket,它的定义如下: 阅读全文
posted @ 2018-03-09 12:29 xmj 阅读(219) 评论(0) 推荐(0) 编辑
摘要: Linux网络核心数据结构是套接字缓存(socket buffer),简称skb。它代表一个要发送或处理的报文,并贯穿于整个协议栈。1、 套接字缓存skb由两部分组成:(1) 报文数据:它保存了实际在网络中传输的数据;(2) 管理数据:供内核处理报文的额外数据,这些数据构成了协议之间交换的控制信息。 阅读全文
posted @ 2018-03-09 12:29 xmj 阅读(821) 评论(0) 推荐(0) 编辑
摘要: 网络设备(network device)是内核对网络适配器(硬件)的抽象与封装,并为各个协议实例提供统一的接口,它是硬件与内核的接口,它有两个特征:(1) 作为基于硬件的网络适配器与基于软件的协议之间的接口;(2) 内核协议栈异步输入输出点。记住:网络设备软件对硬件的抽象网络设备与协议和网络适配器的 阅读全文
posted @ 2018-03-09 12:28 xmj 阅读(458) 评论(0) 推荐(0) 编辑
摘要: 1、接收帧当网络适配器接收到数据帧时,就会触发一个中断,中断处理程序执行一些需要及时处理的任务,然后在下半部进行其它可以延迟的处理。中断处理程序主要进行以下一些操作:(1) 分配sk_buff数据结构,并将接收到的数据帧从网络适配器I/O端口拷贝到sk_buff缓冲区中;(2) 从数据帧中提取出一些 阅读全文
posted @ 2018-03-09 12:27 xmj 阅读(349) 评论(0) 推荐(0) 编辑
摘要: 2.1、网络设备的注册与注销注册网络设备发生在下列情形: (1)加载网卡驱动程序 网卡驱动程序如果被编译进内核,则它在启动时被初始化,在运行时被作为模块加载。无论初始化是否发生,所以由驱动程序控制的网卡都被注册。 (2)插入可热拔插网络设备 当用户插入一块热拔插网卡,内核通知其对应的驱动程序以注册设 阅读全文
posted @ 2018-03-09 12:27 xmj 阅读(340) 评论(0) 推荐(0) 编辑
摘要: 第一部分 编程模型 1、服务器编程模型 关于server编程模型,大师stevens在他的《UNP》一书中已经做了详细论述,这里不再重复,这里主要讲一下我的一些理解。 从线程的角度,可以分为两类,一是单线程,一是多线程。先来看单线程模型。 1.1、单线程模型 整个进程只有一个线程,由于只有一个线程, 阅读全文
posted @ 2018-03-09 12:26 xmj 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 2、协议相关2.1、第3层协议的管理在Linux内核中,有两种不同目的的3层协议:(1) ptype_all管理的协议主要用于分析目的,它接收所有到达第3层协议的数据包。(2) ptype_base管理正常的3层协议,仅接收具有正确协议标志符的数据包,例如,Internet的0x0800。注意sb_ 阅读全文
posted @ 2018-03-09 12:26 xmj 阅读(549) 评论(0) 推荐(0) 编辑
上一页 1 ··· 22 23 24 25 26 27 28 29 30 ··· 54 下一页