第1章 网络编程基础.ppt

上传人:啊飒飒 文档编号:11876826 上传时间:2021-10-09 格式:PPT 页数:29 大小:510.50KB
返回 下载 相关 举报
第1章 网络编程基础.ppt_第1页
第1页 / 共29页
第1章 网络编程基础.ppt_第2页
第2页 / 共29页
第1章 网络编程基础.ppt_第3页
第3页 / 共29页
第1章 网络编程基础.ppt_第4页
第4页 / 共29页
第1章 网络编程基础.ppt_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《第1章 网络编程基础.ppt》由会员分享,可在线阅读,更多相关《第1章 网络编程基础.ppt(29页珍藏版)》请在三一文库上搜索。

1、,网络编程与开发技术,实验一 基于NETBIOS的数据报通信程序设计 实验二 基于TCP/IP的会话通信程序设计 实验三 端口扫描程序设计 实验四 网络流量统计,网络编程与开发技术,随着网络的日趋复杂和规模的日趋庞大,网络编程技术已成为计算机网络技术的重要分支之一。 只有通过网络编程,才能在更深的层次理解网络通信协议的工作原理,并在此基础上进行网络应用程序的开发。 主要介绍网络通信软件设计的原理和方法、windows环境下的各种网络编程接口和网络通信程序设计技术。,授课内容,第1章 网络编程基础 第2章 基于NetBIOS的网络编程 第3章 基于TCPIP协议的网络编程 第4章 进程间通信 第

2、5章 多线程结构的网络编程 第6章 高级网络编程 第7章 底层网络编程,第一章 网络编程基础,内 容 提 要,1、网络编程概述 2、ISO/OSI模型 3、四种网络编程接口 4、网络通信方式 面向连接和无连接 阻塞与非阻塞 多播与广播,1.1 网络编程概述,网络编程的含义: 利用网络应用编程接口编写网络通信程序,实现网络应用进程间的信息交互功能。 API(Application Programming Interface) :应用程序编程接口。它是能用来操作组件、应用程序或者操作系统的一组函数。典型的情况下,API 由一个或多个提供某种特殊功能的 DLL 组成。 API的主要目的是提供应用程序

3、与开发人员访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。 提供API所定义的功能的软件称作此API的实现。API是一种接口,是一种抽象。 一组API经常是一套软件开发工具包(SDK)的一部分。,常用的 API 是 Windows API,它包括构成 Windows 操作系统的各种 DLL。每个 Windows 应用程序都直接或间接地与 Windows API 互动。 Windows API即为Microsoft 32位平台的应用程序编程接口。所有在Win32平台上运行的应用程序都可以调用这些函数。 标准Windows API函数可以分为以下几类: 窗口管理 窗口通用控制 Sh

4、ell特性 图形设备接口 系统服务 国际特性 网络服务函数-允许网络上的不同计算机的应用程序之间进行 通讯。如Windows套接字(Socket)、NetBIOS函数等。,Windows API,1.1 网络编程概述,应用进程间的通信分为两种: 1.同一系统上的进程间的通信,这是通常意义上的进程间通信。(第4章 内存文件映射) 2.不同系统上的进程间的通信,必须通过网络编程接口访问网络协议提供的服务来实现。,网络编程接口与网络协议关系,进程通过网络编程接口访问网络协议所提供的服务。 不同的网络协议可能提供不同的服务访问接口。 同一网络编程接口可以访问多种网络协议。如Socket APl,支持对

5、很多协议的访问,如TCP、UDP、rawIP、数据链路层协议及UNIX域协议等。,网络编程涉及的内容,网络编程及相关开发技术涉及操作系统、网络协议、网络编程模式和方法以及并发程序设计等方面的知识。 本课程介绍Windows环境下的各种网络编程接口和网络通信程序设计与开发技术。,1.2 ISO/OSI模型,ISO:国际标准化组织(International Standardization Organization )。 OSI:开放系统互连模型( Open System Interconnection Reference Model )是国际标准化组织(ISO)从一个很高的层次上对网络系统进行的

6、描述。,相邻层之间的关系称为接口。 不同网络实体间在相同层之间的关系就是网络通信协议。,1.3 网络编程接口,在网络体系结构中,并非所有层都提供应用程序设计的编程接口。 在完整的计算机网络系统中,仅提供了基于网络操作系统之上的编程接口。例如Windows的Winsock ,Netware的IPX/SPX及NetBIOS等。通常通信程序设计都是基于这些接口。,四种网络编程接口,基于 NetBIOS 的网络编程 基于 Winsock 的网络编程 底层网络编程 基于物理设备的网络编程,1.3.1 基于NETBIOS的网络编程,NetBIOS(Network Basic Input/Output Sy

7、stem) 网络基本输入输出系统, 1983年由Sytek公司专为IBM开发 ,为网络通信定义了一种编程接口。 NetBEUI( NetBIOS Extended User Interface) NetBIOS 扩展用户接口。1985年,IBM创制了NetBIOS 扩展用户接口,它同NetBIOS 接口集成在一起,构成了一套完整的协议。,NETBIOS的特点,NetBIOS同时提供了“面向连接”的会话服务以及“无连接” 的数据报服务。 NetBIOS编程接口对应于OSI模型的会话层和传输层。 NetBIOS 是一种“非可路由”协议,假定在客户机和服务器之间存在一个路由器,那么这种协议在两部机器

8、上的应用便无法沟通。不能跨网段,适用于广播式网络,如局域网。,1.3.2 基于Winsock的网络编程,Winsock编程接口: 是Windows环境下实现TCP/IP网络编程的接口。Winsock规范定义了如何使用API与Internet协议族,它包含了一组针对Windows的扩展库函数,使程序员能充分利用Windows消息驱动机制进行编程。 Winsock支持流套接字(即会话套接字)和数据报套接字。,1.3.3 底层网络编程,底层网络编程接口: 提供在链路层或网络层的编程方法。底层网络编程与普通的网络编程不同,在程序中会涉及底层网络协议及其协议数据单元。 主要用途: 底层网络编程可以在较低

9、的层次上(链路层或网络层)操作网络。可进行网络侦听、协议分析和检测。在网络安全性分析和网络对抗中具有广泛的用途。,1.3.4 基于物理设备的网络编程,基于物理设备的网络编程接口: 也称为MAC层编程接口,在这种编程接口上进行网络程序设计,需要对网卡的网络接口控制器(NIC)进行程序编程控制。由于这一接口没有提供现成的程序接口,因此,所有功能的实现都必须自行设计。 主要用途: 网络数据包截获、网络协议分析、流量统计分析等,或设计自己的安全协议。,1.4 网络通信方式,面向连接的通信和无连接通信 阻塞通信与非阻塞通信 广播通信与多播通信,1.4.1 面向连接和无连接通信,通常情况下,一个协议提供两

10、种通信服务: 面向连接(会话)的服务 无连接(数据报)的服务 NetBIOS和TCP/IP协议均提供了这两种服务。,面向连接的服务,特点: 通信双方事先建立一条通信链路,这样既确定了通信方之间存在路由,又保证了通信双方都是活动的、都可彼此响应,并且传送数据时是按序传送的,从而保证数据通信的可靠性。 面向连接服务的三个阶段: 连接建立、数据传输、连接释放。 适用场合: 面向连接服务比较适合于在一段时间内要向同一目的地可靠发送许多报文的情况。 缺点: 建立和维持连接、保证可靠性需要增加开销。,通信双方不用建立可靠的通信链路,发送方不用确定接收端是否正在收听,随时可以发送数据。 无连接服务的特点:

11、速度快、使用灵活,既能实现点到点又能实现多点和广播通信。对非重要的数据传输来说,数据报服务非常有用。适合于传送少量零星报文。 无连接服务的缺点: 不能保证数据可靠到达接收端,同样也不能保证数据的完整性,这些问题必须由应用程序根据需要自行解决。,无连接服务,1.4.2 阻塞与非阻塞通信,网络通信模式: 阻塞和非阻塞两种模式。 发送方: 在阻塞模式下,如果低层协议没有可用空间来存放用户数据,则应用进程将阻塞等待直到协议有可用的空间。 在非阻塞模式下,调用将直接返回而不需等待。 接收方: 在阻塞模式下,若没有到达的数据,则调用将一直等待直到有数据到达或出错; 在非阻塞模式下,将直接返回而不需等待。,

12、面向连接服务的连接建立阶段: 等待连接方(Server):在阻塞模式下,如果没有连接请求到达,则阻塞直到有连接请求到达;在非阻塞模式下,如果没有连接请求到达,则直接返回。 发起连接方(Client):不管是阻塞还是非阻塞模式,发起方总是会使进程阻塞,阻塞间隔最少等于到达服务器的一次往返时间。,通信模式对应用程序的设计方法的影响: 非阻塞模式:应用程序需通过轮询或异步事件的方式查看是否有数据到达或有连接请求到达。这种方式耗费较多的CPU时间。 阻塞模式:进程或线程在执行I/O操作时将被阻塞而不能执行其他的工作,所以在单进程或单线程应用中一般不使用这种模式。在多线程应用中比较适合采用阻塞模式,一个

13、线程被阻塞不影响其他线程的工作。,1.4.3 多播与广播通信,广播通信: 数据从一个站发出,局域网内的其他所有工作站都能收到它。适用于无连接协议。 广播通信的过程: 一个工作站在LAN上广播一条消息, LAN内每台机器上的网卡都会收到这条消息,并把它上传到协议栈。然后,协议栈将这条消息在所有的网络应用中循环,看它们是否应该接收这条消息。一般情况下,路由器不会传送广播包。 缺点: 使用广播消息的不利之处是每台机器都必须对该消息进行处理,高广播通信流会使LAN上的机器陷入困境,容易形成广播风暴。,多播(组播)通信: 数据从一个工作站发出,这些数据将由一个或多个接收端进行接收。 进程加入一个多播通信

14、的方法与采用的底层协议有关。 在IP协议和NetBIOS协议下,多播是广播的一种变形,多播要求对收发数据感兴趣的所有主机加入到一个特定的组,进程希望加入多播组时,网卡上会增添一个过滤器,这样,只有绑定组地址的数据才会被网络硬件捡起,并上传到协议栈进行相应处理。 无论是多播还是广播通信,它们都是建立在无连接服务协议之上的,因此,数据传输的可靠性无法得到保证。,1.5 Win32 SDK 编程基础,VC环境下开发应用程序的两种方式: MFC (微软基础类库) SDK (软件开发工具包),包含大量Win32 API函数。 Win32 SDK 程序的工程类型: Win32 Application: WinMain函数 Win32 Console Application: main函数,习题与思考题,1-1 网络编程接口的作用是什么?常见的网络编程接口有哪几种?它与网络通信协议之间存在何种关系? 1-2 简述面向连接和无连接通信的特点及各自适用的场合。 1-3 简述阻塞与非阻塞通信的基本过程。 1-4 简述点对点通信、多播通信与广播通信的含义。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1