摘要:
malloc中的系统调用brk和mmap 环境 ubuntu14.04 malloc通过系统调用的方式从操作系统申请内存,malloc内部又通过系统调用brk()或mmap来申请内存的。入下图进程虚拟内存布局所示,mmap对应Memory Mapping Segment,brk对应Heap. brk 阅读全文
摘要:
###SPI概述 winsock2服务提供者接口(service provider interface)是Winsock API的补充。服务提供者接口,是应用程序使用的服务,而它本身不是应用程序,他的作用是向加载这个服务的应用导出自己。 Winsock2符合windows开放服务体系(WINDOWS 阅读全文
摘要:
####IP头包含选项 创建原始套接字之后,再打开IP_HDRINCL选项,即可在IP头中封装自己的协议,而不仅仅使用系统预定义的协议。一般可以使用这种方法发送原始UDP和TCP协议,而不是使用系统预定义的协议。一般的,可以使用这种方法来发送原始UDP和TCP数据(win xp sp2已经不支持原始 阅读全文
摘要:
####使用原始套接字 原始套接字是允许访问底层传输协议的一种套接字类型。使用原始套接字,需要知道许多下层协议的知识。 原始套接字有两种类型 在IP头中使用预定义的协议,如ICMP 在IP头中使用自定义的协议 创建原始套接字的函数也是socket或WSAScocket,只不过要将套接字的类型 指定为 阅读全文
摘要:
####套接字选项和I/O控制命令 套接字创建之后,可以使用套接字选项和ioctl命令操作他的属性,以改变套接字的默认行为。有些套接字选项仅仅是返回信息,有些选项可以影响套接字的行为。I/O控制命令缩写为ioctl,他也影响套接字的行为。 ####套接字选项 选项影响套接字的操作,如封包路由和OOB 阅读全文
摘要:
IOCP 当应用程序必须一次管理多个套接字时,完成端口模型提供了最好的系统性能,这个模型也提供了最好的伸缩性,非常适合用来出来上百上千的套接字。IOCP技术广泛应用于各种高性能服务器,如Apache等 ####什么是完成端口 I/O完成端口是应用程序使用线程池处理异步I/O请求的一种机制,处理多个并 阅读全文
摘要:
####Overlapped Model 这个模型的基本设计思想是允许应用程序使用重叠数据结构一次投递一个或者多个异步IO请求(既所谓的重叠IO),提交的I/O请求完成之后,与之关联的重叠数据结构中的事件对象受信,应用程序便可使用WSAGetOverlappedResult函数获取重叠操作的结果 # 阅读全文
摘要:
####WSAEventSelect 模型 Winsock提供了另一种有用的异步事件通知I/O模型-WSAEventSelect模型,这个模型与WSAAsyncSelect模型类似,允许应用程序在一个或者多个套接字上接收基于事件的网络通知。它与WSAAsyncSelect模型类似是因为他也接收FD_ 阅读全文
摘要:
####WSAAsyncSelect WSAAsyncSelect模型允许应用程序以windows消息形式接受网络事件,这个模型是为了适应windows消息驱动环境而设置的,现在许多对性能要求不高的网络应用程序都采用了WSAAsyncSelect模型 WSAAsyncSelect函数自动将套接字设置 阅读全文