linux高性能网络编程pdf(Linux高性能网络编程)
导读:2011-08-20 14:10...
2011-08-20 14:10
一 、课程目标
本次课程深入讲解Linux下的socket编程 ,并以此为基础 ,着重讨论如何提高网络服务端应用的性能 ,通过本次课程的学习 ,学员将收获以下方面的成果:
熟练使用socket系列函数进行网络编程; 深刻理解服务端应用的性能要求; 利用Linux提供的各种机制 ,有效地解决服务端应用的性能瓶颈 。二 、参训要求
参加本次课程的学员须具备以下能力:
了解TCP/IP协议 ,有网络编程概念 。 本次课程使用 C语言 教学 ,所以学员需拥有较好的C语言基础; 能熟练使用常用的Linux命令; 能熟练使用gcc 、gdb 、熟练撰写makefile; 最好熟练使用vi 、emacs等文本编辑器其中的一种。三 、课程实践环境
学员自备电脑 操作系统:GNU/Linux 2.6+(建议使用Redhat AS 5+或Ubuntu 、Fedora) 编译器:GCC v4.1+ 、GDB v7.0+ 可选IDE:Eclipse CDT四 、课程大纲
本次课程由以下几个部分构成:
1、POSIX Thread - 多线程
线程管理 线程创建:pthread_create() 线程终止:pthread_exit() 线程连接和分离:join and detach 线程同步机制 互斥体:mutex 读写锁:read-write lock 条件变量:condition variable 线程属性控制 mutex属性控制2 、Socket 简介
Socket地址数据结构:struct sockaddr ,struct sockaddr_in 字节序以及字节序操作:ntohl(), ntohs(), htonl(), htons() Internet地址操作:inet_aton(), inet_addr(), and inet_ntoa(), inet_pton(), inet_ntop()3 、TCP Socket
socket():创建socket bind():绑定地址 listen():开始侦听 accept():接受来自客户端的连接 connect():连接到服务器 getsockname()和getpeername():获取本地和对端地址 I/O 操作:read(), write() 更高效的I/O 操作:readv(), writev() TCP Server编程步骤 TCP Server v1:迭代式Echo Server TCP Server v2:多进程并发式Echo Server ,使用fork()和exec*() TCP Server v3:多线程并发式Echo Server,使用pthread TCP Client编程步骤 TCP Client:Echo Client4、UDP Socket
recvfrom()和sendto():收发UDP数据报 UDP Echo Server UDP Echo Client 组播(Multicast)和广播(Broadcast)5 、Socket Options和 IP Options
常用的Socket Options 常用的IP Options Socket选项和IP选项对网络应用的影响6 、I/O多路复用:构建反应式(Reactive)网络应用
UNIX I/O多路复用机制概要 为什么I/O 多路复用对于网络应用很重要 I/O 多路复用与多线程(反应式模型和并发模型) select / poll 在TCP Server和UDP Server中使用select和poll Linux特有I/O 多路复用机制:Event poll (epoll) 在TCP Server和UDP Server中使用epoll7、异步I/O:构建前摄式(Proactive)网络应用
相关概念:同步I/O和异步I/O 、Proactor模式 异步I/O 是如何提高I/O 性能的 异步I/O系列操作 使用异步I/O的机制构建TCP Server8 、高性能网络编程讨论
考究高性能网络编程中应该遵循的原则 ,讨论并发 、同步 、事件多路分离等机制的适用场合 网络应用的瓶颈何在 事件多路分离 vs 一连接一线程 (Event demultiplexing vs One thread per connection) 同步I/O vs 异步I/O (Synchronous I/O vs Asynchronous I/O) 如何适当地使用多线程 什么时候需要多个 事件多路分离线程9 、应用层协议定义与实现
为什么要自定义应用层协议 定义应用层协议 (以XMMEP协议为例) 用C++实现自定义的协议 (以XMMEP协议为例)注:XMMEP为X-Messenger Message Exchanging Protocol
五 、时间安排
课程时间:2天 ,以每天6小时计,具体安排如下:
Day1 1 - POSIX Thread - 多线程 2 - Socket 简介 3 - TCP Socket 4 - UDP Socket 5 - Socket Options和 IP Options Day2 6 - I/O多路复用:构建反应式(Reactive)网络应用 7 - 异步I/O:构建前摄式(Proactive)网络应用 8 - 高性能网络编程讨论 9 - 应用层协议定义与实现 课程回顾与总结六 、课程资源
可获取的课程资源见:教学资源 。
声明:本站所有文章 ,如无特殊说明或标注 ,均为本站原创发布 。任何个人或组织,在未征得本站同意时 ,禁止复制 、盗用 、采集、发布本站内容到任何网站 、书籍等各类媒体平台 。如若本站内容侵犯了原著者的合法权益 ,可联系我们进行处理 。
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!