socket编程18课时教学大纲张超.docx
- 文档编号:26802077
- 上传时间:2023-06-22
- 格式:DOCX
- 页数:21
- 大小:165.28KB
socket编程18课时教学大纲张超.docx
《socket编程18课时教学大纲张超.docx》由会员分享,可在线阅读,更多相关《socket编程18课时教学大纲张超.docx(21页珍藏版)》请在冰豆网上搜索。
socket编程18课时教学大纲张超
《Socket网络编程》
教学大纲
安徽大学计算机科学与技术学院
二O一七年三月
课程性质与设置目的要求
《Socket网络编程》课程是计算机网络专业重要的专业选修课程。
是为适应计算机网络人才的培养和实际需要而设置的。
设置本课程的目的是:
随着社会的不断发展进步,计算机技术已经深入我们日程工作生活的每个角落,无时无刻地影响着人们生活的方方面面。
网络技术作为与计算机技术相伴而生的产物,也越发得到人们的认识和重视。
在这样的背景下,本课程作为计算机网络专业的专业基础课,重在通过对计算机网络原理的讲授,向学生讲授具体的基于套接字的windows网络编程方法,使学生在理解基本原理的基础上,掌握必要的网络编程技能和相关专业知识。
培养学生的创新精神和实践能力以及对计算机技术基本技能和综合应用能力。
学习本课程的要求是:
了解计算机网络的基本结构和工作原理,掌握windows平台下计算机间进行网络通信的工作过程;理解常见网络通信协议的具体内容;了解常见的Windows编程技术,重点掌握基于socket的Windows网络编程方法。
先修课程要求:
计算机网络、Windows编程等。
本课程计划18学时,1学分。
选用教材:
《Windows网络编程》罗莉琴詹祖桥主著人民邮电出版社
教学手段:
多媒体教学
考核方法:
由于课时有限,本课程采用写小论文的方式进行考核
教学进程安排表:
周
次
学
时
数
教学主要内容
教学环节
备注
1
3
第一章Internet与网络通信模型概述
一、Internet概述
二、网络通信模型和协议簇TCP/IP协议簇及其应用
讲授
2
3
第二章TCP/IP协议簇及其应用
一、IP协议
二、TCP和UDP协议
三、其他常用协议协议
讲授
3
3
第三章IP地址和子网规划
一、IP地址
二、子网划分
讲授
4
3
第四章网络编程基础
一、网络编程的基本概念
二、客户机/服务器模式
第五章socket编程基础
一、Socket的产生与发展
讲授
5
3
第五章socket编程基础
二、Socket的原理和基本概念
三、WinSock编程基础
四、面向连接的Socket编程
五、面向非连接的socket编程
六、socket选项
讲授
6
3
第八章高级socket编程技术
一、Socket编程模型概述
二、阻塞式与非阻塞式Socket编程
三、基于三种模型的高级编程
四、基于MFC的Socket编程
讲授
第一章Internet与网络通信模型概述
一、学习目的
本章作为学习本书的引言部分,介绍本书所要讨论的网络通信的基础知识,主要包括internet的发展历程,internet管理机构及现今互联网的主要架构和常用网络通信协议。
通过本章的学习,需了解Internet的发展过程,。
理解计算机网络的组成和功能以及计算机网络的分类方法和类型,重点需掌握计算机网络常见的OSI模型。
本章计划3学时。
二、课程内容
第一节Internet概述
1.Internet的发展历史
2.Internet的管理机构
3.国内Internet网络建设的现状
第二节OSI模型
图1.1OSI模型示意图
物理层(PhysicalLayer)
OSI模型的最低层或第一层,该层包括物理连网媒介,如电缆连线连接器。
物理层的协议产生并检测电压以便发送和接收携带数据的信号。
数据链路层(DatalinkLayer)
OSI模型的第二层,它控制网络层与物理层之间的通信。
网络层(NetworkLayer)
OSI模型的第三层,其主要功能是将网络地址翻译成对应的物理地址,并决定如何将数据从发送方路由到接收方。
传输层(TransportLayer)
OSI模型中最重要的一层。
用于实现可靠稳定的数据传输。
会话层(SessionLayer)
负责在网络中的两节点之间建立、维持和终止通信。
表示层(PresentationLayer)
应用程序和网络之间的翻译官,在表示层,数据将按照网络能理解的方案进行格式化。
应用层(ApplicationLayer)
负责对软件提供接口以使程序能使用网络服务。
第三节TCP/IP协议簇
图1.2TCP/IP协议簇示意图
TCP/IP是一组协议的代名词,包括许多别的协议,组成了TCP/IP协议簇。
IP协议:
即互联网协议(InternetProtocol),它将多个网络连成一个互联网,可以把高层的数据以多个数据包的形式通过互联网分发出去。
IP的基本任务是通过互联网传送数据包,各个IP数据包之间是相互独立的。
TCP协议:
即传输控制协议,它提供的是一种可靠的数据流服务。
UDP协议:
即用户数据包协议。
三、重点、难点提示和教学手段
(一)OSI模型。
(二)TCP/IP模型和OSI模型的对应关系
。
四、思考与练习
1.TCP/IP协议栈的五个层次是什么?
在这些层次中,每层的主要任务是什么?
第二章TCP/IP协议簇及其应用
一、学习目的
TCP/IP协议簇是Internet最基本的协议、也是国际互联网络的基础。
通过本章的学习,要求TCP/IP协议的具体内容和工作过程,为后面章节中基于这些协议编写网络应用程序奠定基础。
本章计划3学时。
二、课程内容
第一节IP协议
1.IP协议基础
IP协议包含两个最基本的功能,即寻址和分片。
IP数据包的格式如图2.1。
图2.1IP数据包的格式
2.IP数据包各字段的含义:
版本
目前使用的IP版本,大小为4位。
包头长度
用于指定数据包头的长度,大小为4位。
服务类型(TOS)
用于设置数据传输的优先权或者优先级,大小为8位。
总长度
用于指定数据包的总长度,等于包头长度加上数据长度,大小为16位。
标识
用于指定当前数据包的标识号,大小为16位。
分段标志
确定一个数据包是否可以分段,同时也指出当前分段后面是否还有更多分段,大小为3位。
分段偏移量
帮助目标主机查找分段在整个数据包中的位置,大小为13位。
3.IP协议的关键机制(根据实际课时安排)
第二节TCP和UDP
2.1TCP协议
TCP(TransmissionControlProtocol,传输控制协议)是面向连接的传输协议,通过序列确认和包重发机制提供可靠的数据流发送和应用程序的虚拟连接服务。
图2.2TCP数据包示意图
TCP的工作流程:
1.TCP的状态
2.建立连接
3.数据传输
4.断开连接
2.2UDP协议
UDP(UserDatagramProtocol,用户数据报协议)可以提供一种基本的、低延时的数据报传输。
UDP协议的主要作用是将网络数据流量压缩成数据报的形式进行传输。
每个数据报的前8个字节用来包含报头信息,剩余字节则是具体的传输数据。
与TCP相比,UDP更适合发送数据量比较少、但对响应速度要求比较高的情况。
图2.3UDP数据包示意图
第三节其他常用协议
ICMP协议
为了使互联网能报告差错,或提供有关意外情况的信息,在IP层加入了一类特殊用途的报文机制,即ICMP。
ARP协议
把互联网地址变换成物理地址,这就需要在网络层有一组服务将IP地址转换为相应物理网络地址,这组协议即ARP。
FTP协议
即文件传输协议,它是网际提供的用于访问远程机器的协议,它使用户可以在本地机与远程机之间进行有关文件的操作。
DNS协议
即域名服务协议,它提供域名到IP地址的转换,允许对域名资源进行分散管理。
SMTP协议
即简单邮件传送协议互联网标准中的电子邮件是一个简单的基于文本的协议,用于可靠、有效地数据传输。
三、重点、难点提示和教学手段
(一)IP协议的特点与基本内容。
IP地址及子网编址的基本方法。
地址解析的基本概念与方法。
IP分组的转发与路由选择的概念。
(二)UDP协议的主要特点
UDP的基本工作过程。
UDP的端口号分配方法。
UDP数据报格式。
(三)TCP协议主要特点
TCP端口号分配与SOCKET地址c)TCP报文段格式d)TCP传输链接的建立与释放e)TCP流量与拥塞控制f)TCP差错控制g)TCP的计时器。
四、思考与练习
1.简述IP生存时间的含义和作用
2.简述TCP/IP的区别
3.简述ARP欺骗的原理和两种情况
第三章IP地址和子网规划
一、学习目的
IP地址标明了计算机在网络中的位置,为了对网络上海量的IP地址进行管理,需依据IP地址的不同类型划分成不同的子网。
通过本章的学习,应使学生掌握如何进行IP地址的表示与子网规模的计算,并了解不同表示方式下IP地址的具体含义。
本章内容计划3学时。
二、课程内容
第一节IP地址详解
本节介绍IP地址的作用原理、分类和使用情况。
1IP地址的结构
点分十进制表示法
图3.1点分十进制表示方法示意图
2IP地址的分类
A类地址,10.0.0.0~10.255.255.255
B类地址,172.16.0.0~172.31.255.255
C类地址,192.168.0.0~192.168.255.255。
3.特殊的IP地址
1.127.0.0.1
2.0.0.0.0
3.255.255.255.255
4.169.254.*.*
第二节子网划分
1.子网
随着互联网技术的应用和普及,网络的规模越来越大,为了提高IP地址使用效率便于管理,将网络划分为若干个子网
1减少网络拥塞,把大量用户放在单个网段上容易拥挤。
2可以支持不同的网络技术,支持异构网络
3保证网络的安全性,可以用路由器将一个网段和另一个隔开
4可以减少广播的影响,实现更小的广播域
5解决不同物理空间的主机使用同一网络
图3.2子网划分示意图
2子网掩码
子网掩码与IP地址类似,由32位二进制数组成。
IP地址中的网络ID位,其子网掩码中对应的位等于1其余位等于0
第三节实际应用
1CIDR表示法
CIDR表示法以标识网络ID的比特位作为网络前缀,取代了A类、B类和C类等地址中固定的网络ID位数。
2单播、组播和广播地址
单播
主机之间“一对一”的通讯模式,网络中的交换机和路由器对数据只进行转发不进行复制
广播
主机之间“一对所有”的通讯模式
组播
主机之间“一对一组”的通讯模式
三、重点、难点提示和教学手段
重点:
几类不同的IP地址;为什么要进行子网划分,子网掩码的作用。
难点:
各类网络中网络IP的数量计算和子网掩码。
四、思考与练习
1.简述IPv4地址的结构和表示方法?
2.简述IP地址的不同分类?
3.简述单播地址、组播地址和广播地址的定义和作用?
第五章网络编程基础
一、学习目的
本章首先介绍网络编程相关的基本概念,重点分析进程通信、Internet中网间进程的标识方法以及网络协议的特征。
接着从网络编程的角度,分析TCP/IP协议簇中高效的用户数据报协议(UDP)和可靠的传输控制协议(TCP)的特点。
最后详细说明网络应用程序的客户机/服务器交互模式。
计划3学时。
二、课程内容
第一节网络编程的基本概念
4.1网络编程相关的基本概念
4.1.1网络编程与进程通信
进程与线程的基本概念
网络应用进程在网络体系结构中的位置
实现网间进程通信必须解决的问题
4.1.2Internet中网间进程的标识
传输层在网络通信中的地位
端口的概念
端口号的分配机制
进程的网络地址的概念
网络中进程通信的标识
4.1.3网络协议的特征
4.1.4高效的用户数据报协议
4.1.5可靠的传输控制协议
第二节三类网络编程(根据实际课时安排)
4.2三类网络编程
4.2.1基于TCP/IP协议栈的网络编程
4.2.2基于WWW应用的网络编程
4.2.3基于.NET框架的WebServices网络编程
第三节客户机/服务器交互模式
4.3客户机/服务器模式
4.3.1网络应用软件的地位和功能
4.3.2客户机/服务器模式
4.3.3客户机与服务器的特性
4.3.4容易混淆的术语
4.3.5客户机与服务器的通信过程
4.3.6网络协议与C/S模式的关系
4.3.7错综复杂的C/S交互
4.3.8服务器如何同时为多个客户机服务
4.3.9标识一个特定服务
4.4P2P模式
4.4.1P2P技术的兴起
4.4.2P2P的定义和特征
4.4.3P2P的发展
三、重点、难点提示和教学手段
(一)进程间进行通信的方式
(二)客户机和服务器模式
(三)本章难点是理解进程间的通信方式以及客户机/服务器模式。
四、思考与练习
1.TCP/IP通信中端口的概念是什么?
2.C/S模式下的工作过程是怎么样的?
3.P2P有怎样的特征?
第六章Socket编程基础
一、学习目的
Socket起源于BSDUNIX的进程通信机制,通常也称作“套接字”。
在开发网络应用程序时,最重要的问题就是如何实现不同主机之间的通信。
在TCP/IP网络环境中,可以使用Socket接口来建立网络连接、实现主机之间的数据传输。
本章将介绍使用Socket接口来编写网络应用程序的基本方法。
Socket编程基础计划4学时。
二、课程内容
第一节Socket协议原理
6.1Socket协议原理
6.1.1Socket协议的工作原理
图6.1Socket接口所处层次示意图
6.1.2Socket的服务方式和类型
在Socket通信中,套接字分为3种类型,即流式套接字(SOCK_STREAM)、数据报式套接字(SOCK_DGRAM)和原始套接字(SOCK_RAW)。
6.2WinSock编程基础
6.2.1构建WinSock应用程序框架
6.2.2IP地址的表示形式
第二节面向连接的Socket编程
6.3面向连接的Socket编程
图6.2基于流式套接字的程序结构示意图
关键函数
-socket()函数
-bind()函数
-listen()函数
-accept()函数
-recv()函数
-send()函数
-closesocket()函数
-shutdown()函数
-connect()函数
第三节面向非连接的Socket编程
6.4面向非连接的Socket编程
6.4.1面向非连接的Socket通信流程
关键函数
sendto()函数
recvfrom()函数
图6.3基于数据报式套接字的程序结构示意图
6.5套接字选项
6.5.1调用getsockopt()函数获取套接字选项
6.5.2调用setsockopt()函数设置套接字选项
三、重点、难点提示和教学手段
(一)使用Socket进行网络连接的通信架构
(二)具体的Socket函数的功能
(三)本章使用课堂讲解和实际编程演示相结合的授课方式
四、思考与练习
1.Socket的基本概念是什么?
2.Socket的主要工作过程是什么样的?
3.IP地址在Socket编程过程中如何进行表示?
第八章高级Socket编程
一、学习目的
我们在第5章中介绍了Socket编程的基础技术,实现了简单的服务器和客户机通信。
但在实际应用中,服务器有时需要同时与很多客户端进行通信,对服务器的性能要求很高。
要在Windows平台上构建高效、真正实用的客户机/服务器应用程序,就必须选择最适合的Socket编程模型。
3课时,其中补充内容占约0.5课时
二、课程内容
第一节Socket协议原理
8.1Socket编程模型概述
8.2阻塞与非阻塞模式Socket编程
8.2.1设置非阻塞模式套接字
8.3基于Select模型的socket编程
采用以下步骤便可完成select操作一个或多个套接字句柄的全过程:
1.使用FD_ZERO初始化需要考察的每个fd_set
2.使用FD_SET将套接字句柄分配给需要考察的fd_set
3.调用select函数,返回在所有fd_set集合中设置的套接字句柄总数,并对每个集合进行相应的更新
4.根据select的返回值,应用程序便可判断哪些套接字存在着被挂起的I/O操作(具体的方法是使用FD_ISSET宏,对每个fd_set进行检查)
5.得到了每个集合中被挂起的I/O操作之后,对I/O进行处理,然后返回步骤1,继续处理select
6.select返回后,它会修改每个fd_set结构。
删除那些不存在被挂起的I/O操作的套接字句柄。
第二节WSAAsyncSelect模型
8.4基于WSAAsyncSelect模型的socket编程
基于WSAAsyncSelect()模型的Socket通信服务器的基本流程如下:
(1)调用WSAAsyncSelect()函数为套接字设置网络事件、用户消息和消息接收窗口之间的关系。
(2)在消息接收窗口的消息映射代码中,添加ON_MESSAGE宏,设置用户消息的处理函数。
(3)编写用户处理函数(窗口例程),在该函数中应首先使用WSAGETSELECTERROR宏判断是否有错误发生;然后根据wParam值了解套接字上发生了什么网络事件,从而引发用户消息;最后使用WSAGETSELECTEVENT宏来了解所发生的网络事件,进行相应的处理。
第三节WSAEventSelect模型
8.6基于WSAEventSelect模型的socket编程
基于WSAEventSelect模型的Socket通信服务器的基本流程如下:
(1)初始化WindowsSockets环境,并创建用于监听的套接字。
(2)创建事件对象。
(3)将新建的事件对象与监听套接字相关联,并注册该套接字关注的网络事件集合,通常为FD_ACCEPT和FD_CLOSE。
(4)等待所有事件对象上发生注册的网络事件,并对网络事件进行处理。
(5)如果触发了FD_ACCEPT事件,则程序接收来自客户端的请求,得到与客户端通信的套接字,并为该套接字创建相关联的事件对象,注册该套接字关注的网络事件集合,通常为FD_READ、FD_CLOSE和FD_WRITE。
(6)如果触发了FD_CLOSE事件,则关闭套接字,释放其占用的资源
(7)如果触发了FD_READ事件,则调用recv()函数接收来自客户端的请求。
(8)如果触发了FD_WRITE事件,则调用send()函数向客户端发送数据。
补充内容基于MFC的Socket编程
基于MFC的Socket编程
1.CSocket类
2.CAsynSocket类
三、重点、难点提示和教学手段
(一)几种不同的Socket通信模式
(二)三种高级Socket编程模型
四、思考与练习
1.为何不给每个客户端开一个子线程?
2.几种高级Socket模型的异同点?
阅读书目(或参考文献)
教材:
1.《Windows网络编程》罗莉琴詹祖桥主著人民邮电出版社,2011.
2.《WindowsSocket网络编程》,BobQuinn,机械工业出版社,2012.
主要参考书:
1.《TCP/IPSockets编程(C语言实现)》,MichaelJ.Donahoo,清华大学出版社,2009.
2.《WinSock网络编程经络》,张会勇编著,电子工业出版社(面向二十一世纪课程教材),2012.
3.《VisualC++网络通信编程技术详解》,代勇等编著,机械工业出版社,2011.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- socket 编程 18 课时 教学大纲
![提示](https://static.bdocx.com/images/bang_tan.gif)