socket编程(18课时)教学大纲-张超_第1页
socket编程(18课时)教学大纲-张超_第2页
socket编程(18课时)教学大纲-张超_第3页
socket编程(18课时)教学大纲-张超_第4页
socket编程(18课时)教学大纲-张超_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Socket网络编程教学大纲 安徽大学计算机科学与技术学院二O一七年三月课程性质与设置目的要求Socket网络编程课程是计算机网络专业重要的专业选修课程。是为适应计算机网络人才的培养和实际需要而设置的。设置本课程的目的是:随着社会的不断发展进步,计算机技术已经深入我们日程工作生活的每个角落,无时无刻地影响着人们生活的方方面面。网络技术作为与计算机技术相伴而生的产物, 也越发得到人们的认识和重视。在这样的背景下,本课程作为计算机网络专业的专业基础课,重在通过对计算机网络原理的讲授,向学生讲授具体的基于套接字的windows网络编程方法,使学生在理解基本原理的基础上,掌握必要的网络编程技能和相关专

2、业知识。培养学生的创新精神和实践能力以及对计算机技术基本技能和综合应用能力。学习本课程的要求是:了解计算机网络的基本结构和工作原理,掌握windows平台下计算机间进行网络通信的工作过程;理解常见网络通信协议的具体内容;了解常见的Windows编程技术,重点掌握基于socket的Windows网络编程方法。先修课程要求:计算机网络、Windows编程等。本课程计划18学时,1学分。选用教材:Windows网络编程罗莉琴 詹祖桥主著 人民邮电出版社教学手段:多媒体教学考核方法:由于课时有限,本课程采用写小论文的方式进行考核 教学进程安排表:周次学时数教 学 主 要 内 容教学环节备注13第一章

3、Internet与网络通信模型概述一、Internet概述二、网络通信模型和协议簇TCP/IP协议簇及其应用讲 授23第二章 TCP/IP协议簇及其应用一、IP协议二、TCP和UDP协议三、其他常用协议协议讲 授33第三章 IP地址和子网规划一、IP地址二、子网划分讲 授43第四章 网络编程基础一、网络编程的基本概念二、客户机/服务器模式第五章 socket编程基础一、Socket的产生与发展讲 授53第五章 socket编程基础二、Socket的原理和基本概念三、WinSock编程基础四、面向连接的Socket编程五、面向非连接的socket编程六、socket选项讲 授63第八章 高级so

4、cket编程技术一、Socket编程模型概述二、阻塞式与非阻塞式Socket编程三、基于三种模型的高级编程四、基于MFC的Socket编程讲 授第一章 Internet与网络通信模型概述一、学习目的本章作为学习本书的引言部分,介绍本书所要讨论的网络通信的基础知识,主要包括internet的发展历程,internet管理机构及现今互联网的主要架构和常用网络通信协议。通过本章的学习,需了解Internet的发展过程,。理解计算机网络的组成和功能以及计算机网络的分类方法和类型,重点需掌握计算机网络常见的OSI模型。本章计划3学时。二、课程内容第一节 Internet概述1. Internet的发展历

5、史2. Internet的管理机构3. 国内Internet网络建设的现状第二节 OSI模型图1.1 OSI模型示意图物理层(Physical Layer)OSI 模型的最低层或第一层,该层包括物理连网媒介,如电缆连线连接器。物理层的协议产生并检测电压以便发送和接收携带数据的信号。数据链路层(Datalink Layer)OSI 模型的第二层,它控制网络层与物理层之间的通信。网络层(Network Layer)OSI 模型的第三层,其主要功能是将网络地址翻译成对应的物理地址,并决定如何将数据从发送方路由到接收方。传输层(Transport Layer)OSI 模型中最重要的一层。用于实现可靠稳

6、定的数据传输。会话层(Session Layer)负责在网络中的两节点之间建立、维持和终止通信。表示层(Presentation Layer)应用程序和网络之间的翻译官,在表示层,数据将按照网络能理解的方案进行格式化。应用层(Application Layer)负责对软件提供接口以使程序能使用网络服务。第三节 TCP/IP协议簇图1.2 TCP/IP协议簇示意图TCP/IP是一组协议的代名词,包括许多别的协议,组成了TCP/IP协议簇。IP协议:即互联网协议(Internet Protocol),它将多个网络连成一个互联网,可以把高层的数据以多个数据包的形式通过互联网分发出去。IP的基本任务是

7、通过互联网传送数据包,各个IP数据包之间是相互独立的。TCP协议:即传输控制协议,它提供的是一种可靠的数据流服务。UDP协议:即用户数据包协议。三、重点、难点提示和教学手段(一)OSI模型。(二)TCP/IP模型和OSI模型的对应关系。四、思考与练习1.TCP/IP协议栈的五个层次是什么?在这些层次中,每层的主要任务是什么?第二章 TCP/IP协议簇及其应用一、学习目的TCP/IP协议簇是Internet最基本的协议、也是国际互联网络的基础。通过本章的学习,要求TCP/IP协议的具体内容和工作过程,为后面章节中基于这些协议编写网络应用程序奠定基础。本章计划3学时。二、课程内容第一节 IP协议1

8、. IP协议基础IP协议包含两个最基本的功能,即寻址和分片。IP数据包的格式如图2.1。 图2.1 IP数据包的格式2. IP数据包各字段的含义:版本 目前使用的IP版本,大小为4位。 包头长度 用于指定数据包头的长度,大小为4位。 服务类型(TOS) 用于设置数据传输的优先权或者优先级,大小为8位。 总长度 用于指定数据包的总长度,等于包头长度加上数据长度,大小为16位。 标识 用于指定当前数据包的标识号,大小为16位。 分段标志 确定一个数据包是否可以分段,同时也指出当前分段后面是否还有更多分段,大小为3位。 分段偏移量 帮助目标主机查找分段在整个数据包中的位置,大小为13位。 3. IP

9、协议的关键机制(根据实际课时安排)第二节 TCP和UDP2.1 TCP协议TCP(Transmission Control Protocol,传输控制协议)是面向连接的传输协议,通过序列确认和包重发机制提供可靠的数据流发送和应用程序的虚拟连接服务。 图2.2 TCP数据包示意图TCP的工作流程:1TCP的状态2建立连接 3数据传输 4断开连接 2.2 UDP协议UDP(User Datagram Protocol,用户数据报协议)可以提供一种基本的、低延时的数据报传输。UDP协议的主要作用是将网络数据流量压缩成数据报的形式进行传输。每个数据报的前8个字节用来包含报头信息,剩余字节则是具体的传输

10、数据。与TCP相比,UDP更适合发送数据量比较少、但对响应速度要求比较高的情况。 图2.3 UDP数据包示意图第三节 其他常用协议ICMP协议为了使互联网能报告差错,或提供有关意外情况的信息,在IP层加入了一类特殊用途的报文机制,即ICMP。ARP协议把互联网地址变换成物理地址,这就需要在网络层有一组服务将 IP地址转换为相应物理网络地址,这组协议即ARP。FTP协议即文件传输协议,它是网际提供的用于访问远程机器的协议,它使用户可以在本地机与远程机之间进行有关文件的操作。DNS协议即域名服务协议,它提供域名到IP地址的转换,允许对域名资源进行分散管理。SMTP协议即简单邮件传送协议互联网标准中

11、的电子邮件是一个简单的基于文本的协议,用于可靠、有效地数据传输。三、重点、难点提示和教学手段(一)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欺骗的原理和两

12、种情况第三章 IP地址和子网规划一、学习目的IP地址标明了计算机在网络中的位置,为了对网络上海量的IP地址进行管理,需依据IP地址的不同类型划分成不同的子网。通过本章的学习,应使学生掌握如何进行IP地址的表示与子网规模的计算,并了解不同表示方式下IP地址的具体含义。本章内容计划3学时。二、课程内容第一节 IP地址详解 本节介绍IP地址的作用原理、分类和使用情况。1 IP地址的结构点分十进制表示法图3.1 点分十进制表示方法示意图2 IP地址的分类A类地址,55B类地址,55C类地址,192

13、.168.255.255。3.特殊的IP地址1 355 4169.254.*.*第二节 子网划分1.子网随着互联网技术的应用和普及,网络的规模越来越大,为了提高IP地址使用效率便于管理,将网络划分为若干个子网1减少网络拥塞,把大量用户放在单个网段上容易拥挤。2可以支持不同的网络技术,支持异构网络 3保证网络的安全性,可以用路由器将一个网段和另一个隔开4可以减少广播的影响,实现更小的广播域5解决不同物理空间的主机使用同一网络图3.2 子网划分示意图2 子网掩码子网掩码与IP地址类似,由32位二进制数组成。IP地址中的网络ID位,其子网

14、掩码中对应的位等于1其余位等于0 第三节 实际应用1 CIDR表示法CIDR表示法以标识网络ID的比特位作为网络前缀,取代了A类、B类和C类等地址中固定的网络ID位数。2 单播、组播和广播地址单播主机之间“一对一”的通讯模式,网络中的交换机和路由器对数据只进行转发不进行复制广播主机之间“一对所有”的通讯模式组播主机之间“一对一组”的通讯模式三、重点、难点提示和教学手段重点:几类不同的IP地址;为什么要进行子网划分,子网掩码的作用。难点:各类网络中网络IP的数量计算和子网掩码。四、思考与练习1. 简述IPv4地址的结构和表示方法?2. 简述IP地址的不同分类?3. 简述单播地址、组播地址和广播地

15、址的定义和作用?第五章 网络编程基础一、学习目的本章首先介绍网络编程相关的基本概念,重点分析进程通信、Internet中网间进程的标识方法以及网络协议的特征。接着从网络编程的角度,分析TCP/IP协议簇中高效的用户数据报协议(UDP)和可靠的传输控制协议(TCP)的特点。最后详细说明网络应用程序的客户机/服务器交互模式。计划3学时。二、课程内容第一节 网络编程的基本概念4.1网络编程相关的基本概念 4.1.1 网络编程与进程通信 进程与线程的基本概念 网络应用进程在网络体系结构中的位置 实现网间进程通信必须解决的问题 4.1.2 Internet中网间进程的标识 传输层在网络通信中的地位 端口

16、的概念 端口号的分配机制 进程的网络地址的概念 网络中进程通信的标识4.1.3 网络协议的特征 4.1.4 高效的用户数据报协议 4.1.5 可靠的传输控制协议 第二节 三类网络编程(根据实际课时安排)4.2 三类网络编程4.2.1 基于TCP/IP协议栈的网络编程4.2.2 基于WWW应用的网络编程4.2.3 基于.NET框架的Web Services网络编程第三节 客户机/服务器交互模式4.3 客户机/服务器模式4.3.1 网络应用软件的地位和功能 4.3.2 客户机/服务器模式 4.3.3 客户机与服务器的特性 4.3.4 容易混淆的术语 4.3.5 客户机与服务器的通信过程 4.3.6

17、 网络协议与C/S模式的关系 4.3.7 错综复杂的C/S交互 4.3.8 服务器如何同时为多个客户机服务 4.3.9 标识一个特定服务 4.4 P2P模式4.4.1 P2P技术的兴起 4.4.2 P2P的定义和特征 4.4.3 P2P的发展 三、重点、难点提示和教学手段(一)进程间进行通信的方式(二)客户机和服务器模式(三)本章难点是理解进程间的通信方式以及客户机/服务器模式。四、思考与练习1.TCP/IP通信中端口的概念是什么?2.C/S模式下的工作过程是怎么样的?3.P2P有怎样的特征?第六章 Socket 编程基础一、学习目的Socket起源于BSD UNIX的进程通信机制,通常也称作

18、“套接字”。在开发网络应用程序时,最重要的问题就是如何实现不同主机之间的通信。在TCP/IP网络环境中,可以使用Socket接口来建立网络连接、实现主机之间的数据传输。本章将介绍使用Socket接口来编写网络应用程序的基本方法。Socket编程基础计划4学时。二、课程内容第一节 Socket协议原理6.1 Socket协议原理6.1.1 Socket协议的工作原理 图6.1 Socket接口所处层次示意图6.1.2 Socket的服务方式和类型 在Socket通信中,套接字分为3种类型,即流式套接字(SOCK_STREAM)、数据报式套接字(SOCK_DGRAM)和原始套接字(SOCK_RAW

19、)。 6.2 WinSock 编程基础6.2.1 构建WinSock应用程序框架 6.2.2 IP地址的表示形式第二节 面向连接的Socket编程6.3 面向连接的Socket编程图6.2 基于流式套接字的程序结构示意图关键函数- socket()函数- bind()函数- listen()函数- accept()函数- recv()函数- send()函数- closesocket()函数- shutdown()函数- connect()函数第三节 面向非连接的Socket编程6.4 面向非连接的Socket编程6.4.1 面向非连接的Socket通信流程关键函数sendto()函数recv

20、from()函数图6.3 基于数据报式套接字的程序结构示意图6.5 套接字选项6.5.1 调用getsockopt()函数获取套接字选项6.5.2 调用setsockopt()函数设置套接字选项三、重点、难点提示和教学手段(一)使用Socket进行网络连接的通信架构(二)具体的Socket函数的功能(三)本章使用课堂讲解和实际编程演示相结合的授课方式四、思考与练习1.Socket的基本概念是什么?2.Socket的主要工作过程是什么样的?3.IP地址在Socket编程过程中如何进行表示?第八章 高级Socket 编程一、学习目的我们在第5章中介绍了Socket编程的基础技术,实现了简单的服务器

21、和客户机通信。但在实际应用中,服务器有时需要同时与很多客户端进行通信,对服务器的性能要求很高。要在Windows平台上构建高效、真正实用的客户机/服务器应用程序,就必须选择最适合的Socket编程模型。 3课时,其中补充内容占约0.5课时二、课程内容第一节 Socket协议原理8.1 Socket编程模型概述 8.2 阻塞与非阻塞模式Socket编程 8.2.1 设置非阻塞模式套接字 8.3 基于Select模型的socket编程采用以下步骤便可完成select操作一个或多个套接字句柄的全过程:1.使用FD_ZERO初始化需要考察的每个fd_set 2.使用FD_SET将套接字句柄分配给需要考

22、察的fd_set 3.调用select函数,返回在所有fd_set集合中设置的套接字句柄总数,并对每个集合进行相应的更新4.根据select的返回值,应用程序便可判断哪些套接字存在着被挂起的I/O操作(具体的方法是使用FD_ISSET宏,对每个fd_set进行检查) 5.得到了每个集合中被挂起的I/O操作之后,对I/O进行处理,然后返回步骤1,继续处理select6.select返回后,它会修改每个fd_set结构。删除那些不存在被挂起的I/O操作的套接字句柄。第二节 WSAAsyncSelect模型8.4 基于WSAAsyncSelect模型的socket编程基于WSAAsyncSelect

23、()模型的Socket通信服务器的基本流程如下:(1)调用WSAAsyncSelect()函数为套接字设置网络事件、用户消息和消息接收窗口之间的关系。 (2)在消息接收窗口的消息映射代码中,添加ON_MESSAGE宏,设置用户消息的处理函数。 (3)编写用户处理函数(窗口例程),在该函数中应首先使用WSAGETSELECTERROR宏判断是否有错误发生;然后根据wParam值了解套接字上发生了什么网络事件,从而引发用户消息;最后使用WSAGETSELECTEVENT宏来了解所发生的网络事件,进行相应的处理。第三节 WSAEventSelect模型8.6 基于WSAEventSelect模型的socket编程基于WSAEventSelect模型的Socket通信服务器

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论