首页IT科技linux高性能网络编程pdf(Linux高性能网络编程)

linux高性能网络编程pdf(Linux高性能网络编程)

时间2025-05-23 00:34:45分类IT科技浏览7016
导读: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 Client

4、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中使用epoll

7       、异步I/O:构建前摄式(Proactive)网络应用

相关概念:同步I/O和异步I/O              、Proactor模式 异步I/O 是如何提高I/O 性能的 异步I/O系列操作 使用异步I/O的机制构建TCP Server

8                     、高性能网络编程讨论

考究高性能网络编程中应该遵循的原则                     ,讨论并发       、同步       、事件多路分离等机制的适用场合 网络应用的瓶颈何在 事件多路分离 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版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
phantom钱包空投(PhantomJS Myths: Busted don’t code today what you can’t debug tomorrow) used to的近义短语(Use jQuery The jQuery CrossDomain Ajax Guide)