第八章网络应用.ppt

上传人:sccc 文档编号:5316768 上传时间:2023-06-25 格式:PPT 页数:41 大小:319.52KB
返回 下载 相关 举报
第八章网络应用.ppt_第1页
第1页 / 共41页
第八章网络应用.ppt_第2页
第2页 / 共41页
第八章网络应用.ppt_第3页
第3页 / 共41页
第八章网络应用.ppt_第4页
第4页 / 共41页
第八章网络应用.ppt_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《第八章网络应用.ppt》由会员分享,可在线阅读,更多相关《第八章网络应用.ppt(41页珍藏版)》请在三一办公上搜索。

1、第八章 网络应用,制作:陈学明,网络进程通信,网络进程通信一般采用socket机制。socket可以用一个三元组来描述。因此两个应用进程之间的网络通信可以用一对socket来标识,一对socket可以用一个五元组描述。,Socket系统调用,两台主机上的应用进程通信之前,每个应用进程必须首先各自创建一个socket,然后应用进程将各自所在机器的IP地址及其所使用的端口号与socket进行绑定,最后应用进程就可以通过各自的socket进发送和接收数据。,Socket系统调用,1、socket()2、bind()3、connect()4、listen()&accept()5、send()&send

2、to()6、read()&recvfrom(),1、socket(),功能创建socket格式 sockidsocket(af,type,protocol)参数AF(Address Family)TypeProtocol返回结果成功,sockid返回一个大于0的整数,即socket号失败,sockid返回-1,同时返回一个出错代码errno,2、bind(),功能指定本地IP地址和本地端口号调用格式bind(sockid,localaddr,addrlen)调用参数sockid,已获得的socket号localaddr,本地IP地址和端口号addrlen,以字节为单位的本地地址长度返回结果成功

3、,返回一个大于0的整数失败,返回-1,同时返回一个出错代码errno,3、connect(),功能建立传输层连接调用格式connect(sockid,destaddr,addrlen)调用参数sockid,本地socket号。destaddr,是一个指向服务器的socket地址 指针addr1en,服务器socket地址长度返回结果connect()调用要等到客户和服务器之间TCP连接建立完后才返回大于0的值,否则将返回-1以及出错代码。,4、listen()和accept(),面向连接的服务器进程一般在某个众所周知的端口上接收客户进程的连接请求。面向连接的服务器进程通过listen()和ac

4、cept()两个系统调用来接收并处理客户进程的连接请求。1isten()系统调用表明服务器进程愿意接收客户进程的连接请求。accept()系统调用用于服务器进程处理客户进程的连接请求。,1isten(),调用格式listen(sockid,quelen)调用参数sockid,本地socket号quelen,连接建立请求队列长度listen()系统调用以此参数限制连接请求的排队个数,通常允许的连接请求排队长度最大值为5。,accept(),调用格式newsock=accept(sockid,clientaddr,addrlen)调用参数sockid,本地socket号。clientaddr,指向

5、客户socket地址指针初始值为空,当accept()调用成功后,客户进程的socket地址被填入该参数中。addrlen,客户socket地址长度初始值为0,当accept()调用成功后,客户进程socket地址长度填入到该参数中。,newsock,accept()调用除将客户进程的socket地址及地址长度放入clientaddr所指的地址结构和addr1en所指单元外,还将返回一个新的socket号newsock。新的socket号newsock用于服务器fork出来子进程与客户进程通信。服务器进程继续利用原来的sockid处理客户进程的连接请求。当newsock的值小于0时,表明acc

6、ept()调用出错。,5、write()与sendto(),功能write()用于面向连接的数据发送,面向连接的数据发送系统调用中不必指定接收方socket地址。sendto()用于无连接的数据发送,无连接的数据发送系统调用必须明确指定接收方的socket地址。调用格式write(sockid,buff,bufflen)sendto(sockid,buff,bufflen,dstaddr,addrlen),6、read()和recvfrom(),功能read()用于面向连接的数据接收recvfrom()用于无连接的数据接收调用格式read(sockid,buff,bufflen)recvfro

7、m(sockid,buff,bufflen,suraddr,addrlen),域名系统概述,许多应用层软件经常直接使用域名系统 DNS(Domain Name System),但计算机的用户只是间接而不是直接使用域名系统。因特网采用层次结构的命名树作为主机的名字,并使用分布式的域名系统 DNS。名字到 IP 地址的解析是由若干个域名服务器程序完成的。域名服务器程序在专设的结点上运行,运行该程序的机器称为域名服务器。,因特网的域名结构,因特网采用了层次树状结构的命名方法。任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名。域名的结构由标号序列组成,各标号之间用点隔开:.三

8、级域名.二级域名.顶级域名各标号分别代表不同级别的域名。,顶级域名 TLD(Top Level Domain),(1)国家顶级域名 nTLD:如:.cn 表示中国,.us 表示美国,.uk 表示英国,等等。(2)通用顶级域名 gTLD:最早的顶级域名是:.com(公司和企业).net(网络服务机构).org(非赢利性组织).edu(美国专用的教育机构().gov(美国专用的政府部门).mil(美国专用的军事部门).int(国际组织),新增加了下列的通用顶级域名,.aero(航空运输企业).biz(公司和企业).cat(加泰隆人的语言和文化团体).coop(合作团体).info(各种情况).jo

9、bs(人力资源管理者).mobi(移动产品与服务的用户和提供者).museum(博物馆).name(个人).pro(有证书的专业人员).travel(旅游业),域名服务器,一个服务器所负责管辖的(或有权限的)范围叫做区(zone)。各单位根据具体情况来划分自己管辖范围的区。但在一个区中的所有节点必须是能够连通的。每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到IP地址的映射。DNS 服务器的管辖范围不是以“域”为单位,而是以“区”为单位。,区的不同划分方法举例,域,区,abc,x,u,v,w,t,y,(a)区=域,com,edu,org,根,提高域名服务器的可靠性,DNS 域

10、名服务器都把数据复制到几个域名服务器来保存,其中的一个是主域名服务器,其他的是辅助域名服务器。当主域名服务器出故障时,辅助域名服务器可以保证 DNS 的查询工作不会中断。主域名服务器定期把数据复制到辅助域名服务器中,而更改数据只能在主域名服务器中进行。这样就保证了数据的一致性。,域名服务器有以下四种类型,根域名服务器 顶级域名服务器 权限域名服务器 本地域名服务器,根域名服务器 最高层次的域名服务器,根域名服务器是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和 IP 地址。不管是哪一个本地域名服务器,若要对因特网上任何一个域名进行解析,只要自己无法解析,就首先求助于根

11、域名服务器。在因特网上共有13 个不同 IP 地址的根域名服务器,它们的名字是用一个英文字母命名,从a 一直到 m(前13 个字母)。,顶级域名服务器(即 TLD 服务器),这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。当收到 DNS 查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当找的域名服务器的 IP 地址)。,权限域名服务器,这就是前面已经讲过的负责一个区的域名服务器。当一个权限域名服务器还不能给出最后的查询回答时,就会告诉发出查询请求的 DNS 客户,下一步应当找哪一个权限域名服务器。,本地域名服务器,本地域名服务器对域名系统非常重要。当一个主机发出 D

12、NS 查询请求时,这个查询请求报文就发送给本地域名服务器。每一个因特网服务提供者 ISP,或一个大学,甚至一个大学里的系,都可以拥有一个本地域名服务器,这种域名服务器有时也称为默认域名服务器。,根域名服务器的重要性,ISOC认为:“根域名服务器是因特网信息基础设施中至关重要的部分”。中国目前没有自己的根服务器提供域名管理服务,所以在其它根服务器不提供服务后,中国将失去与世界上其它地方的网络联系。,域名的解析过程,主机向本地域名服务器的查询一般都是采用递归查询。如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询

13、请求报文。本地域名服务器向根域名服务器的查询通常是采用迭代查询。当根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询。,本地域名服务器采用迭代查询,顶级域名服务器,权限域名服务,本地域名服务器,根域名服务器,迭代查询,递归查询,需要查找 的 IP 地址,本地域名服务器采用递归查询(比较少用),顶级域名服务器,权限域名服务,本地域名服务器,根域名服务器,递归查询,递归查询,需要查找 的 IP 地址,远程登录,TELNET 使用网络虚拟终端 NVT 格式,因特网,

14、TCP 连接,客户端,服务器端,使用客户端的格式,使用服务器端的格式,使用 NVT 格式,客户,服务器,FTP概述,文件传送协议 FTP(File Transfer Protocol)是因特网上使用得最广泛的文件传送协议。FTP 提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。FTP 屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件。RFC 959 很早就成为了因特网的正式标准。,FTP 特点,文件传送协议 FTP 只提供文件传送的一些基本的服务,它使用 TCP 可靠的运输服务。FTP 的主要功能是减少或消除在不同操作系统下处理文件的不兼容性。FT

15、P 使用客户服务器方式。一个 FTP 服务器进程可同时为多个客户进程提供服务。FTP 的服务器进程由两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求。,主进程的工作步骤,打开熟知端口(端口号为 21),使客户进程能够连接上。等待客户进程发出连接请求。启动从属进程来处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程。回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发地进行。,FTP 使用的两个 TCP 连接,控制进程,FTP 客户端,FTP 服务器端,因特网,TCP 控制

16、连接,TCP 数据连接,用户界面,控制进程,数据传送进程,数据传送进程,两个连接,控制连接在整个会话期间一直保持打开,FTP 客户发出的传送请求通过控制连接发送给服务器端的控制进程,但控制连接不用来传送文件。实际用于传输文件的是“数据连接”。服务器端的控制进程在接收到 FTP 客户发送来的文件传输请求后就创建“数据传送进程”和“数据连接”,用来连接客户端和服务器端的数据传送进程。数据传送进程实际完成文件的传送,在传送完毕后关闭“数据传送连接”并结束运行。,当客户进程向服务器进程发出建立连接请求时,要寻找连接服务器进程的熟知端口(21),同时还要告诉服务器进程自己的另一个端口号码,用于建立数据传

17、送连接。接着,服务器进程用自己传送数据的熟知端口(20)与客户进程所提供的端口号码建立数据传送连接。由于 FTP 使用了两个不同的端口号,所以数据连接与控制连接不会发生混乱。,两个不同的端口号,简单文件传送协议 TFTP(Trivial File Transfer Protocol),TFTP 是一个很小且易于实现的文件传送协议。TFTP 使用客户服务器方式和使用 UDP 数据报,因此 TFTP 需要有自己的差错改正措施。TFTP 只支持文件传输而不支持交互。TFTP 没有一个庞大的命令集,没有列目录的功能,也不能对用户进行身份鉴别。,TFTP 的主要特点是,(1)每次传送的数据 PDU 中有

18、 512 字节的数据,但最后一次可不足 512 字节。(2)数据 PDU 也称为文件块(block),每个块按序编号,从 1 开始。(3)支持 ASCII 码或二进制传送。(4)可对文件进行读或写。(5)使用很简单的首部。,TFTP 的工作很像停止等待协议,发送完一个文件块后就等待对方的确认,确认时应指明所确认的块编号。发完数据后在规定时间内收不到确认就要重发数据 PDU。发送确认 PDU 的一方若在规定时间内收不到下一个文件块,也要重发确认 PDU。这样就可保证文件的传送不致因某一个数据报的丢失而告失败。,TFTP 的工作很像停止等待协议,在一开始工作时。TFTP 客户进程发送一个读请求 PDU 或写请求 PDU 给 TFTP 服务器进程,其熟知端口号码为 69。TFTP 服务器进程要选择一个新的端口和 TFTP 客户进程进行通信。若文件长度恰好为 512 字节的整数倍,则在文件传送完毕后,还必须在最后发送一个只含首部而无数据的数据 PDU。若文件长度不是 512 字节的整数倍,则最后传送数据 PDU 的数据字段一定不满512字节,这正好可作为文件结束的标志。,

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

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号