广嵌广州嵌入式Linux网络程序设计就业班
课程描述
本课程是为学员快速了解嵌入式Linux网络应用程序开发而设置的培训课程。课程以项目实践为主导,通过分组项目实践使学员掌握在Linux下进行嵌入式Linux网络程序的设计与开发的相关知识,并培养学员进行项目需求分析及软件开发文档的编写能力,养成良好的协作开发的习惯。本课程的特点: 1.以嵌入式Linux应用开发为主,结合Linux内核网络通信部分内容,适合具有C语言基础的嵌入式系统开发学员; 2.小组项目开发管理使用svn等源码管理工具,培养学员分布式开发,协同工作的团队合作能力,以适应当前软件开发的实际工作需要; 3.分组项目开发流程完全按照实际产品开发流程进行,要求学员从项目最初阶段即严格遵守嵌入式软件开发规范进行开发,培养良好的系统设计与文档编写习惯。
课程目标
使学员具备在Linux操作系统环境下进行网络应用开发的基本技能,并了解如何编写、调试嵌入式Linux的网络应用程序,为进一步学习开发Linux网络设备产品打下坚实基础。
培训对象
有志从事Linux网络应用开发/嵌入式Linux网络设备开发的工程师及学生
入学要求
C语言基础;计算机原理及组成的基础知识
授课讲师
唐老师
课 时
72课时
开课时间
2008年11月22日
上课地点
广州科学城彩频路11号(广东软件科技园)D栋6楼
费 用
4800元
课程内容
*章 网络基础知识
网络模型(OSI与TCP/IP)、 TCP/IP模型网络编程接口
应用层协议、UDP协议、 TCP协议、 IP协议
ICMP协议、 IGMP协议
嵌入式系统的TCP/IP协议栈
项目内容:嵌入式Linux网络流媒体服务器介绍
教学目的:了解计算机网络模型
了解TCP/IP协议栈
建立网络分层概念
课后作业:熟悉开发环境Debian/Linux的安装和常用命令
熟悉各种开发工具的使用
了解市场上的具备流媒体广播的嵌入式产品的功能
第二章 Linux网络接口
网络接口设备、 网络设备数据结构
网络设备的初始化、注册网络接口
网络接口服务调用、数据封包的传输
项目内容:嵌入式Linux网络流媒体服务器需求分析
教学目的:理解Linux内核中的网络通信过程
了解Linux内核中与网络相关的模块及其配置选项
课后作业:编译支持PPPoX的内核,并使用静态IP/DHCP/PPPoE等连接模式进行网络连接,分析各种网络连接模式下数据封包在内核中的传输过程
根据项目分组完善项目需求分析文档
第三章 Linux网络套接字
套接字介绍
Linux套接字的数据结构、 Linux套接字的初始化
Linux套接字编程接口、 Linux特殊套接字(raw、netlink、routing)
项目内容:编写嵌入式Linux流媒体广播服务器软件构架设计说明书(概要设计)
教学目的:理解Linux内核中套接字的实现方法
了解Linux网络套接字编程的使用方法
课后作业:熟悉与Linux内核网络套接字相关的编译选项
构建一个可以进行网络连接的最小Linux系统
根据项目分组完善软件构架设计说明书
第四章 Linux的TCP/IP协议栈实现
Linux TCP/IP协议栈介绍、处理数据封包的黏合层
Linux TCP/IP协议栈的初始化
数据封包的队列机制、多播数据包的处理
项目内容:编写嵌入式Linux流媒体广播服务器模块设计说明书(详细设计)
教学目的:理解Linux内核中TCP/IP协议栈的实现
理解Linux内核中数据封包处理框架netfilter的实现
理解Linux内核中oS的实现框架
课后作业:编译支持netfilter以及oS的内核,并使用iptables和tc进行NAT/防火墙及流量控制等操作
移植vlc流媒体播放器
根据项目分组完善模块设计说明书
第五章 Linux内存分配及套接字Buffer
Linux内存分配策略
Linux套接字Buffer及相关数据结构
Linux套接字Buffer的管理、嵌入式系统的实践考虑
项目内容:编写嵌入式Linux流媒体广播程序设计说明书(详细设计)
教学目的:理解Linux内核中影响网络性能的因素
掌握Linux内核优化网络传输的方法
课后作业:调整buffer获取vlc*播放效果
通过tc进行oS控制改善vlc播放效果
完善程序设计说明书,补充用户界面描述、模块依赖关系图
第六章 传输层编程-使用TCP收发数据
TCP套接字初始化、建立TCP连接
TCP数据传输、结束TCP连接
项目内容:编写嵌入式Linux流媒体广播服务器用户界面设计说明书(详细设计)
教学目的:掌握Linux网络TCP应用编程基础
理解TCP连接建立过程
课后作业:移植mini-httpd,为嵌入式Linux流媒体广播服务器添加Web控制界面
通过学习mini-httpd,掌握机遇TCP的应用编程
完善用户界面设计说明书,补充相应的CGI
第七章 传输层编程-使用UDP收发数据
UDP套接字初始化、UDP数据传输
客户机/服务器模型、编写测试计划及测试报告
教学目的:掌握Linux网络UDP应用编程基础
理解UDP连接建立过程
课后作业:使用UDP实现一个动态IP地址通告服务的客户端程序
使用UDP实现一个动态IP地址通告服务的服务器程序
完成嵌入式Linux流媒体广播服务器的测试,填写测试报告
第八章 网络层辅助协议 ICMP、IGMP
路由理论、ICMP与ping 程序原理
多播与IGMP、编写项目总结
教学目的:掌握Linux网络路由知识;理解网络响应参数的含义
理解单播、多播、广播的含义
课后作业:使用ICMP侦测网络通信质量
使用IGMP加入流媒体广播服务器提供的服务组
完成项目总结
第九章 实践项目
使用UDP实现一个动态IP地址通告服务的客户端程序
使用UDP实现一个动态IP地址通告服务的服务器程序
实现一个简单的ping程序 实现一个主机名字与IP地址查询程序 实现IGRS协议框架(选做)