C网络编程第五章C网络编程方法概述.pptx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《C网络编程第五章C网络编程方法概述.pptx》由会员分享,可在线阅读,更多相关《C网络编程第五章C网络编程方法概述.pptx(70页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 1C#C#网络编程技术教程网络编程技术教程第五章 C#网络编程方法概述 C网络编程第五章C网络编程方法概述共70页,您现在浏览的是第1页!第第5 5章章 C#C#网络编程方法概述网络编程方法概述2 2学习目标学习目标了解了解TCP/IPTCP/IP结构及其基本概念。结构及其基本概念。掌握掌握.NET.NET网络编程基础知识。网络编程基础知识。掌握套接字编程的基本原理。掌握套接字编程的基本原理。掌握掌握C#C#中的多线程编程方法。中的多线程编程方法。C网络编程第五章C网络编程方法概述共70页,您现在浏览的是第2页!第第5 5章章 C#C#网络编程方法概述网络编程方法概述3 3本章内容本章内容
2、5.1 TCP/IP5.1 TCP/IP概述概述 5.2 .NET5.2 .NET网络编程基础网络编程基础 5.3 5.3 套接字编程套接字编程 5.4 5.4 多线程编程多线程编程 5.5 5.5 基于多线程的编程实例基于多线程的编程实例 C网络编程第五章C网络编程方法概述共70页,您现在浏览的是第3页!第第5 5章章 C#C#网络编程方法概述网络编程方法概述4 45.1 TCP/IP5.1 TCP/IP概述概述 各层的主要功能及其相应的数据单位如下:(1)物理层(PhysicalLayer)要传递信息就要利用一些物理媒体,如双绞线、同轴电缆等,但具体的物理媒体并不在OSI的七层之内,有人把
3、物理媒体当作第0层,物理层的任务就是为它的上一层提供一个物理连接,以及它们的机械、电气、功能和过程特性。如规定使用电缆和接头的类型,传送信号的电压等。在这一层,数据还没有被组织,仅作为原始的位流或电气电压处理,单位是比特。(2)数据链路层(DataLinkLayer)数据链路层负责在两个相邻结点间的线路上,无差错地传送以帧为单位的数据。每一帧包括一定数量的数据和一些必要的控制信息。和物理层相似,数据链路层负责建立、维持和释放数据链路的连接。在传送数据时,如果接收点检测到所传数据中有差错,就要通知发送方重发这一帧。(3)网络层(NetworkLayer)在计算机网络中进行通信的两个计算机之间可能
4、会经过很多个数据链路,也可能还要经过很多通信子网。网络层的任务就是选择合适的网间路由和交换结点,以确保数据及时传送。网络层将数据链路层提供的帧组成数据包,包中封装有网络层包头,其中含有逻辑地址信息(源站点和目的站点地址的网络地址)。5.1.1OSI参考模型与TCP/IP模型C网络编程第五章C网络编程方法概述共70页,您现在浏览的是第4页!第第5 5章章 C#C#网络编程方法概述网络编程方法概述5 55.1 TCP/IP5.1 TCP/IP概述概述 (7)应用层(ApplicationLayer)应用层确定进程之间通信的性质以满足用户需要以及提供网络与用户应用软件之间的接口服务。当然,OSI参考
5、模型只是一个框架,它的每一层并不执行某种功能。在这个OSI七层模型中,每一层都为其上一层提供服务,并为其上一层提供一个访问接口或界面。不同主机之间的相同层次称为对等层。如主机A中的表示层和主机B中的表示层互为对等层,主机A中的会话层和主机B中的会话层互为对等层等。对等层之间互相通信需要遵守通信协议,主要通过软件来实现。每一种具体的协议一般都定义了OSI模型中的各个层次具体实现的技术要求,主机正是利用这些协议来接收和发送数据的。5.1.1OSI参考模型与TCP/IP模型C网络编程第五章C网络编程方法概述共70页,您现在浏览的是第5页!第第5 5章章 C#C#网络编程方法概述网络编程方法概述6 6
6、5.1 TCP/IP5.1 TCP/IP概述概述 从名字上看,TCP/IP包括两个协议,即传输控制协议(TransferControlProtocol,TCP)和网际协议(InternetProtocol,IP),但实际上TCP/IP是一系列协议的代名词,它包括上百个各种功能的协议,如:地址解析协议(ARP)、Internet控制消息协议(ICMP)、文件传输协议等,而TCP协议和IP协议只是保证数据完整传输的两个重要协议。通常讲TCP/IP,但实际上指的是因特网协议系列,而不仅仅是TCP和IP两个协议,所以也常称为TCP/IP协议族。该协议族分为四个层次:链路层、网络层、传输层和应用层。其各
7、层所包含的主要协议如图5.3所示,具体各层所负责的功能如下。5.1.1OSI参考模型与TCP/IP模型图5.2OSI参考模型与TCP/IP模型对比图5.3TCP/IP协议族C网络编程第五章C网络编程方法概述共70页,您现在浏览的是第6页!第第5 5章章 C#C#网络编程方法概述网络编程方法概述7 75.1 TCP/IP5.1 TCP/IP概述概述 (3)传输层传输层主要为两台主机上的应用程序提供端到端的数据通信,它分为两个协议:TCP(传输控制协议)和UDP(用户数据报协议)。TCP提供有质量保证的端到端的数据传输。若传输层使用TCP协议,则该层负责数据的分组、质量控制和超时重发等,对于应用层
8、来说,就可以忽略这些工作。UDP则只负责简单地把数据报从一端发送到另一端。若传输层使用UDP协议,则数据是否到达、是否按时到达、是否损坏都必须由应用层来控制。这两种协议各有用途,前者可用于面向连接的应用,后者则在及时性服务中有着重要的用途,如网络多媒体通信等。(4)应用层应用层负责处理实际的应用程序细节,主要包括超文本传输协议(HTTP)、简单网络管理协议(SNMP)、文件传输协议(FTP)、简单邮件传输协议(SMTP)、域名系统(DNS)、远程登录协议(Telnet)等。其中,有些应用层协议是基于TCP来实现的,例如FTP、HTTP等,有些则是基于UDP来实现的,如SNMP等。5.1.1OS
9、I参考模型与TCP/IP模型C网络编程第五章C网络编程方法概述共70页,您现在浏览的是第7页!第第5 5章章 C#C#网络编程方法概述网络编程方法概述8 85.1 TCP/IP5.1 TCP/IP概述概述 图5.4中的逻辑传输线路表明了数据传输的方向,以及信源和信宿,实际传输线路则表明了请求数据的真实传输链路。请求数据从信源传输到目的信宿的过程可描述如下:(1)在信源上,利用应用层协议(HTTP)将需传输的请求数据流传送给信源上的传输层(TCP)。(2)信源上的传输层将应用层的请求数据流截成若干分组,并加上TCP首部形成TCP段,送交信源上的网络层(IP)。(3)信源的网络层给TCP段加上包括
10、源、目的主机IP地址的IP首部,生成一个IP数据报,并将IP数据报送交信源的链路层。(4)信源的链路层在其MAC帧的数据部分装上IP数据报,再加上源、目的主机的MAC地址和MAC帧头,并根据其目的MAC地址,将MAC帧发往信宿或中间路由器,例如路由器R。(5)路由器是一个具有多个接口的网络互连设备,可以把数据从一个网络转发到另一个网络。当数据传输到路由器后,路由器将根据数据包中的目的地址进行传输路径的选择,并根据所选择的传输路径进行数据传输。通常,路由器只处理链路层和网络层的数据。在本实例中,路由器接收客户机A发送过来的IP数据报,并将该数据报转发给服务器B。5.1.1OSI参考模型与TCP/
11、IP模型C网络编程第五章C网络编程方法概述共70页,您现在浏览的是第8页!第第5 5章章 C#C#网络编程方法概述网络编程方法概述9 95.1 TCP/IP5.1 TCP/IP概述概述 5.1.2TCP/IP基本概念1IP地址IP地址是进行TCP/IP协议通信的基础,IP地址是对连接在因特网中的设备进行唯一性标识的设备编码,与日常生活中寄信时所用的信箱号类似,以便设备之间能根据IP地址来识别。在因特网中,根据TCP/IP协议规定,在IPv4中,IP地址由32位二进制数组成,其地址空间是0232-1。为了便于记忆,将这32位二进制数分成四段,每段8位,中间用小数点隔开,将每八位二进制数转换成一位
12、十进制数,这样就形成了点分十进制的表示方法。例如:192.168.0.181。一个简单的IP地址的格式为:IP地址=网络地址+主机地址,包含了网络地址和主机地址两部分重要的信息。由于IPv4定义的有限地址空间将被耗尽,地址空间的不足必将影响因特网的进一步发展。所以在最新出台的IPv6中IP地址升至128位。IP地址共分五类:A类、B类、C类、D类和E类。其中A类、B类和C类为基本类;D类用于多播传送;E类属于保留类,暂未使用。它们的格式如下所示,其中“*”代表网络号位数。C网络编程第五章C网络编程方法概述共70页,您现在浏览的是第9页!第第5 5章章 C#C#网络编程方法概述网络编程方法概述1
13、0105.1 TCP/IP5.1 TCP/IP概述概述 5.1.2TCP/IP基本概念C类地址的最高三位必须是“110”,前三个字节为网络地址,最后一个字节为主机地址。因此,C类地址的网络数目为221,即有2907152个网络,其中每个网络可以包含的主机数目为282,即有254台主机。因此,C类地址适用于小规模的局域网络。D类地址与前三类地址不同,它是一种特殊的IP地址类,应用于多播通信,因此也被称为多播地址。地址前面有4个引导位“1110”,其余的28位表示多播地址,因此其地址范围为:224.0.0.0239.255.255.255。D类地址只能作为目的地址,不能作为源地址。E类地址是一般不
14、用的实验性地址,前面包含4个引导位“1111”,因此其地址范围为:240.0.0.0255.255.255.255。C网络编程第五章C网络编程方法概述共70页,您现在浏览的是第10页!第第5 5章章 C#C#网络编程方法概述网络编程方法概述11115.1 TCP/IP5.1 TCP/IP概述概述 5.1.2TCP/IP基本概念2子网与掩码如上所述,IP地址最初采用的是网络地址和主机地址两级结构,然而在实际组网过程中,常常会出现使用C类地址时,主机编址空间不够,而使用A类或B类地址时,又会造成大量IP地址浪费的现象。为此,IP地址现在多采用三级结构,即IP地址=网络地址+子网地址+主机地址。把每
15、个网络的主机地址空间根据需要再进一步划分成若干个子网,则原来两级地址结构中的主机地址又细分为子网地址和主机地址,子网地址位数根据子网的实际规模来确定。具体三级结构地址的确定需要借助子网掩码来实现。子网掩码是一个32位地址掩码,对应于网络地址和子网地址的地址掩码位设置为“1”,而对应于主机地址的地址掩码位设置为“0”。子网掩码用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。确定子网掩码的过程也就是划分子网的过程,通常划分步骤如下:(1)确定网络地址,划出网络标识和主机标识。例如:申请到的网络号为“202.195.a.b”,该网络地址为C类IP地址,
16、网络标识为“202.195”,主机标识为“a.b”。(2)根据需求确认子网个数。在确认子网个数时应当考虑将来的扩展情况。例如:现在需要12个子网,将来可能需要16个子网,则至少需要用第三个字节的前四位来确定子网掩码,而后四位仍然用于主机地址。所以将前四位都置为“1”,后四位全置为“0”,即第三个字节为“11110000”。C网络编程第五章C网络编程方法概述共70页,您现在浏览的是第11页!第第5 5章章 C#C#网络编程方法概述网络编程方法概述12125.1 TCP/IP5.1 TCP/IP概述概述 5.1.2TCP/IP基本概念端口号的分配通常有以下两种方法:(1)全局分配这是一种集中分配方
17、式,由一个公认权威的机构根据用户需要进行统一分配,并将结果公布于众。(2)本地分配本地分配又称动态连接,即进程需要访问传输层服务时,向本地操作系统提出申请,操作系统返回本地唯一的端口号,进程再通过合适的系统调用,将自己和端口连接起来。TCP/IP端口号的分配综合了以上两种方式,将端口号分为两部分,少量的作为保留端口,以全局方式分配给服务进程。每一个标准服务器都拥有一个全局公认的端口,即使在不同的机器上,其端口号也相同。剩余的为自由端口,以本地方式进行分配。TCP和UDP规定,小于256的端口才能作为保留端口。具体讲,TCP/IP端口号分为如下两类。(1)服务器端使用的端口号。服务器端的端口号又
18、分为两类,最重要的一类叫公认端口号(well-knownportnumber)或系统端口号,从01023,它们紧密绑定于一些服务。通常这些端口的通信明确表明了某种服务的协议。例如,对于每个TCP/IP实现来说,FTP服务器的TCP端口号都是21,每个Telnet服务器的TCP端口号都是23,每个TFTP(简单文件传送协议)服务器的UDP端口号都是69,HTTP通信的端口号实际上总是80端口等。C网络编程第五章C网络编程方法概述共70页,您现在浏览的是第12页!第第5 5章章 C#C#网络编程方法概述网络编程方法概述13135.1 TCP/IP5.1 TCP/IP概述概述 5.1.2TCP/IP
19、基本概念(2)相近形式计算(Closed-FormComputation)。该方法适用于可以自行配置的网络,IP地址和物理地址相互对应。通常分配给计算机的协议地址是根据其物理地址经过仔细挑选的,使得计算机的物理地址可以由它的协议地址经过基本的逻辑和算术运算计算出来。例如:202.195.50.1XXXl202.195.50.2XXX2可通过这种算法得到物理地址:物理地址协议地址&0 xFF。(3)信息交换(MessageExchange)。该方式适用于LAN,是基于分布式的处理方式,即主机发送一个解析请求,以广播的形式发出,并等待网络内各个主机的响应。TCP/IP协议包含了地址解析协议(Add
20、ressResolutionProtocol,ARP)。ARP标准定义了两种基本信息类型:请求与响应。当一台主机要求转换一个IP地址时,它广播一个含有该IP地址的ARP请求,如果该请求与一台机器的IP地址匹配,则该机器发出一个含有所需物理地址的响应。响应是直接发给广播该请求的机器的。在使用ARP的计算机上都保留了一个高速缓存,用于存放最近获得的IP地址到物理地址的绑定,在发送分组时,计算机先到缓存中寻找所需的绑定,如没有,则发出一个ARP请求。接收方在处理ARP分组之前,先更新它们缓存中发送方的IP地址到物理地址的绑定信息,再进行响应或抛弃。C网络编程第五章C网络编程方法概述共70页,您现在浏
21、览的是第13页!第第5 5章章 C#C#网络编程方法概述网络编程方法概述14145.1 TCP/IP5.1 TCP/IP概述概述 5.1.2TCP/IP基本概念域名解析的流程由以下几步构成:(1)客户机提出域名解析请求,并将该请求发送给本地的域名服务器。(2)当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该记录项,则本地的域名服务器就直接把查询的结果返回。(3)如果本地的缓存中没有该记录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域)的主域名服务器的地址。(4)本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服
22、务器查询自己的缓存,如果没有该记录,则返回相关的下级域名服务器的地址。(5)重复第四步,直到找到正确的记录。(6)本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。C网络编程第五章C网络编程方法概述共70页,您现在浏览的是第14页!第第5 5章章 C#C#网络编程方法概述网络编程方法概述15155.2 .NET5.2 .NET网络编程基础网络编程基础 5.2.1.NET中的网络组件C#和C+的差异之一,就是它本身没有类库,C#所使用的类库是.Net框架中的类库.NetFrameworkSDK。因此了解并掌握.Net框架为网络编程提供的类库是学习C#网络编程的前提。
23、.Net框架为网络开发提供了两个顶层命名空间:System.Net和System.Web,同时它们又包含多个子命名空间,C#就是通过这些命名空间中封装的类和方法实现网络通信编程、Web应用编程以及WebService编程的。具体命名空间及其所含类的功能概述如表5.1所示。C网络编程第五章C网络编程方法概述共70页,您现在浏览的是第15页!第第5 5章章 C#C#网络编程方法概述网络编程方法概述16165.2 .NET5.2 .NET网络编程基础网络编程基础 5.2.1.NET中的网络组件类名功能概述DNS提供简单域名解析功能DnsPermission控制对网络DNS服务器的访问EndPoint
24、用于标识网络地址FileWebRequest为WebRequest类提供了一个文件系统实现FileWebResponse为WebResponse类提供了一个文件系统实现HttpVersion定义了由HttpWebRequest和HttpWebResponse类支持的HTTP版本号HttpWebRequest为WebRequest类提供了特定于HTTP的实现HttpWebReponse为WebResponse类提供了特定于HTTP的实现IPAddress提供了IP地址IPEndPoint以IP地址和端口号的形式代表一个网络终端IPHostEntry为Internet主机地址信息提供了容器类Pro
25、tocolViolationException当使用网络协议时出现错误,则将抛出由该类所代表的异常SocketAddress代表一个套接字地址SocketPermission控制在传输地址上生成或接收连接的权限SocketPermissionAttribute允许将SocketPermission的安全动作,施用于使用声明安全性的代码WebClient为客户与Internet资源间的数据发送和接收提供了通用方法WebException当通过可插入协议访问网络时出现错误,则将抛出由该类代表的异常WebProxy包含WebRequest类的HTTP代理WebRequest代表一个到URI的请求We
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 编程 第五 方法 概述
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内