




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,第三章网络与通信,第三章网络与通信,网络基础网络分类通信标准协议通信模型消息传送远程过程调用,2,第三章网络与通信,网络,一组互联的资源主机(Hosts)运行网络应用软件:客户/服务器对等节点网络基础设施由一组互联的设备构成:网络节点:接收/发送、转发、路由选择的主机及软硬件连接:传送信息的通道,3,第三章网络与通信,传送介质,传送字位、字节、或者数据包网络延迟:两个节点之间传送一个空数据包所需时间传输速率:两个节点之间传输数据的速度(bps)物理介质:同轴电缆光纤激光无线电(微波、卫星、无线局域网等)传输模式:点对点组播广播,4,第三章网络与通信,数据表示方法,字位(Bit)不同的协议采用不同的接口定义常用于多媒体、音像需要特殊字位段区分数据流(如帧分隔)字节(Bytes)通常为ASCII或Unicode构成的行文文档、文字页面字符集中含有各种区分符(文始、文终、回车等),0110000101100011101110101,字位(Bits),字节(Bytes),000000101000000010100001,5,第三章网络与通信,基本数据块:帧,一块(定长)数据称为帧(frame)在开关之间的基本传输单位帧被用来传输网络节点之间的数据包(packets)帧头地址(通常低级协议地址)控制信息帧尾错误校验帧的长度一般由接口缓冲的大小所限制,帧头,数据,帧尾,帧:,6,第三章网络与通信,应用数据块:数据包,携带应用数据和网络寻址信息的数据块称为数据包介于路由器(routers)之间传送的基本数据块数据包头含有网络编址和控制信息数据包一般没有附加信息理论上,数据包的大小没有限制,数据包头,数据,数据包:,7,第三章网络与通信,网络类型,主要类型:LAN,WAN,MAN,WLAN,WPAN,以及Internet局域网LAN(LocalAreaNetwork):以太网或局部互联网广域网WAN(WideAreaNetwork)各种介质和网络设备互联城市网MAN(MetropolitanAreaNetwork)高速(光纤)大城市互联无线局域网WLAN(WirelessLocalAreaNetwork)Wi-Fi短程无线互联无线个人域网WPAN(WirelessPersonalAreaNetwork)Bluetooth个人身边无线互联互联网(Internet)全球互联,8,第三章网络与通信,连接LANs和WANs,主机一般由LAN的开关(switch)相连连接个数由开关的端口数决定路由器(Routers)连接LANs连接WAN或Internet,开关,路由器,9,第三章网络与通信,以太网(Ethernet),1973年,XeroxPARC公司首次推出以太网。1985年,国际标准化组织对以太网制定了标准(IEEE802.3)。以太网是以共享总线为媒介采用载波侦听多路访问/碰撞检测(CSMA/CD)机制来解决对总线的竞争的广播网,基本数据单位是固定格式的数据包(packet)。一个数据包至少包含64字节至多高达1518字节,10,第三章网络与通信,多路访问/碰撞检测(CSMA/CD)机制,如果某台计算机发现信息包目的地址与自己的地址匹配,则把信息包接收下来;如果某台计算机试图发送信息而发现此时此刻已经有人占用网络,则暂缓发送以避免冲突;如果某台计算机已经开始发送,稍后突然发现自己的信息包与别人的信息包碰撞,则要采取某种策略重发信息包。,11,第三章网络与通信,异步传输模式ATM网,ATM把传输的基本信息单位称作信元(cell),采用信元中继(cellrelay)技术进行数据交换。必须首先建立通信的连接。一个连接由一系列的嵌在虚路径(VP:VirtualPath)的虚通道(VC:VirtualChannel)组成。一个虚通道VC是对从发送者到接收者的物理信道的一种点对点的逻辑表示,而一条虚路径VP则是介于两个ATM交换机之间的一组虚通道的集合。一旦建立了连接,ATM就可以保证通信的质量,如网络带宽和网络延迟等,同时亦保证可靠的数据传输。,12,第三章网络与通信,网络协议,问题:接收者如何知道信息是正确完整的?信息包中的数据是如何编码的?数据的类型是如何标识的?信息包是怎样在网络上中继转发的?数据包是如何编址的?协议(protocol)指的是通信双方都必须遵守的一组规则和格式。通信协议一般采用分层模型,不同层次上的协议解决一个具体的问题,从低级到高级,逐层提供更透明更一般化更容易使用的通信接口。一组完备的协议通常称为协议栈(protocolstack)。最著名的通信协议是国际标准化组织颁布的开放系统互联参考模型(ISOOSI:OpenSystemInterconnectionReferenceModel),简称为OSI,这个模型由七层的协议栈构成。,13,第三章网络与通信,OSI:七层协议,高级应用支持工具,转化不同环境下的数据表示,应用同步和连接管理,传输及纠错,网络编址和路由,连接控制,物理介质、时间、位传输,网络协议,应用协议,第1层物理层,第2层链路层,第3层网络层,第4层传输层,第5层会话层,第6层表示层,第7层应用层,14,第三章网络与通信,OSI和IETF协议之比较,第5/6/7层:应用,TCP,UDP,IP,PPP,802.3,5,11,等,物理层,网络协议,应用协议,IETF模型,OSI模型,第1层物理层,第2层链路层,第3层网络层,第4层传输层,第5层会话层,第6层表示层,第7层应用层,逻辑MAC,IETF:TheInternetEngineeringTaskForce(常用)OSI:OpenSystemInterconnectionReferenceModel,15,第三章网络与通信,协议数据封装,16,第三章网络与通信,协议数据流,17,第三章网络与通信,通信模型,消息传送低级通信,如套接字非结构化点对点进程间通信多种通信模式数据流连续多媒体数据实时数据服务请求-回应(RPC)客户/服务器模型RPC(远程过程调用)RMI(远程方法调用),第三章网络与通信,18,MessagePassingDefinitions(1),基本函数:发送、接收、创建、连通、定位、回应、应答传递方式:点对点、组播、广播消息内容:数据或指令通道:-连接、端口、信箱-单向、双向-固定容量缓冲、无限量缓冲消息接收方式:显式接收接收者可以选择消息隐式接收接收者必须接受到达的消息,两条重要原语:发送(目的地,消息)接收(发源地,消息),19,第三章网络与通信,编址方法,第三章网络与通信,20,消息通信过程,发送者通过发送原语把消息和接收者名字传递给系统的通讯模块系统通讯模块启动通讯协议把消息送往接收目的地目的地系统通讯模块按照通讯协议接收消息接收者通过接收原语从系统通讯模块索取消息,21,第三章网络与通信,发送原语语义,非阻塞发送:一旦信息被发送方系统通讯模块接收,立即释放发送者阻塞发送:阻塞发送者,直到整个信息成功地传送到网络上为止可靠的阻塞发送:阻塞发送者,直到整个信息成功地存入目的地通讯模块的缓冲为止显式阻塞发送:阻塞发送者,直到接收者成功地接收信息为止,22,第三章网络与通信,发送语义、系统缓冲及可靠性,23,第三章网络与通信,六种组合通信方式,24,第三章网络与通信,一个套接字是由网络操作系统所管理的一个进程通信端口套接字模型试图把网络的发送/接收语义模拟成传统文件系统的输出/输入语义,因而增强计算机网络的透明性在创建一个套接字的时候,我们还必须确定它将使用的通信协议,目前可选择的协议有两种:TCP或UDP,前者是一个可靠的、面向连接的字符流传输协议;而后者是不可靠的、无连接的数据报传输协议一个套接字包含两方面的信息:一,进程所处计算机的网络地址(即IP地址);二,进程所用的网络端口号我们就可以通过一个bind系统调用把一个进程绑定到一个物理端口上,从而打通一个进程从逻辑到物理的通信通道,套接字程序设计,25,第三章网络与通信,套接字模型,逻辑通信端点(LCE:LogicalCommunicationEndpoint)物理通信端点(PCE:PhysicalCommunicationEndpoint),26,第三章网络与通信,TCP/IP套接字系统调用,27,第三章网络与通信,TCP/IP套接字程序流程,28,第三章网络与通信,UDP/IP套接字程序流程,29,第三章网络与通信,#include#include#include#include#definePORT_NUM2222charmessage20;main()/*进程罗密欧:Romeo.c*/intromeo,fromlen;structsockaddr_inromeo_addr,juliet_addr;/*创建套接字romeo并填写网络端口信息*/romeo=socket(AF_INET,SOCK_DGRAM,0);romeo_addr.sin_family=AF_INET;romeo_addr.sin_addr.s_addr=INADDR_ANY;romeo_addr.sin_port=0;/*把套接字romeo绑定到网络端口*/bind(romeo,(structsockaddr*),/*生成Juliet的网络端口juliet_addr*/juliet_addr.sin_family=AF_INET;juliet_addr.sin_addr.s_addr=inet_addr(“xxx.xxx.xxx.xxx”);juliet_addr.sin_port=PORT_NUM;strcpy(message,“Juliet,Iloveyou!”);/*向Juliet发送消息*/sendto(romeo,message,sizeof(message),0,(structsockaddr)/*关闭romeo套接字*/,UDP/IP套接字程序例子(1),30,第三章网络与通信,UDP/IP套接字程序例子(2),#include#include#include#include#definePORT_NUM2222charmessage20;main()/*进程朱丽叶:Juliet.c*/intjuliet,fromlen;structsockaddr_inromeo_addr,juliet_addr;/*创建套接字jeliet并填写网络端口*/juliet=socket(AF_INET,SOCK_DGRAM,0);juliet_addr.sin_family=AF_INET;juliet_addr.sin_addr.s_addr=INADDR_ANY;juliet_addr.sin_port=PORT_NUM;bind(juliet,(structsockaddr*),fromlen=sizeof(juliet_addr);/*接收来自Romeo的消息*/recvfrom(juliet,message,sizeof(message),0,(structsockaddr),31,第三章网络与通信,请求-回应式通信(远程过程调用),在客户/服务器模型中,客户进程谋取服务的手段是向服务器发出一个服务请求。服务器接到请求后,启动某个过程完成所需的服务,然后向客户返回一个回应。在接到回应之前,客户进程一直等待在那里,即便有的客户进程并不要求服务器返回结果,它也必须等待,以防万一回应是一个出错报告。人们发现这种请求-回应式通信在语义上非常接近传统的局部过程调用(LPC:LocalProcedureCall)语义,如果把客户进程当成调用者,把传送的请求当作调用参数,把服务器提供的相应服务当成被调用的过程,把回应当作返回值,则我们可以完全隐蔽消息传送,用一种高级的用户界面实现请求-回应式通信,这个思想便是著名的远程过程调用(RPC:RemoteProcedureCall).,32,第三章网络与通信,局部过程调用实例,main()charcip=“Buubdl!bu!ebxo”;/*cipher*/intkey=1;/*secretkey*/intlen=decrypt(cip,key);/*LPC*/*otherprocessing*/intdecrypt(char*s,intkey)/*decryption*/inti=0;while(*s)*s-=key;i+;s+;returni;,栈,栈,cip-Buubdl!bu!ebxolen-?key-1,栈,cip-Attackatdawnlen-14key-1,Returnaddressi-0s-main.cipkey-1,cip-Buubdl!bu!ebxolen-?key-1,调用后,调用前,LPC,过程,调用,返回,第三章网络与通信,33,按值调用/按指引元调用问题异构计算机数据内部表示问题(字节排序)远程调用语义问题:不同的通信可靠性措施会导致不同的RPC语义,远程过程调用问题,第三章网络与通信,34,重发请求:如果超时(timeout)尚未接到回应,则重新发送调用消息。如果若干次重发后仍无回应,则认为远程服务器出了故障。副本过滤:如果采用重发技术,服务器一端有可能接收到同一次调用的多个消息副本,于是服务器应该把多余的副本删除掉。重发回应:当服务器已经完成一次调用,而发现回应消息可能丢失时,只需将执行后的结果重新发送给客户,无需再次调用该过程。,远程过程参数传递,35,第三章网络与通信,远程过程语义,36,第三章网络与通信,远程过程调用,37,第三章网络与通信,远程过程调用步骤(1),(0)我们把这个步骤编号为0是因为它并不从属于某个RPC,而仅需在服务器生成这种RPC服务时向绑定服务器注册一次。绑定服务器接收到服务注册请求后便将其记录在自己的数据库中。(1)这才是一次RPC的第一个步骤。当客户程序发出的LPC后,控制被转移到客户存根子程序。(2)客户存根向绑定服务器发出请求,询问提供这种RPC的服务器地址。绑定服务器检索自己的数据库,把找到的服务器地址回送给客户存根。(3)客户存根接收到服务器地址后,就要进行参数转换(如果客户/服务器分属异构计算机的话),把转换好的参数打入消息包,这种处理过程称之为参数集结(parametermarshalling)。然后,客户存根把消息(通过消息传送协议)传递给远程服务器。,38,第三章网络与通信,远程过程调用步骤(2),(4)服务器的底层通信协议把接收到的调用消息分派给对应的服务器存根。服务器存根将消息里的参数逆转成LPC所需的格式,我们把这种从消息到参数的转换称为参数还原(parameterunmarshaling)。然后,服务器存根代表远程调用者发出LPC。(5)位于服务器上的过程启动执行,基本上类似于传统的局部过程调用。(6)过程调用结束后,调用结果返回给调用者,即服务器存根。(7)就像参数集结那样,服务器存根需要将调用结果集结成消息包,然后发送给客户存根。(8)(1)客户存根接收到结果消息后,必须将消息还原成LPC结果返回的格式,其后模拟LPC返回。至此,一次完整的RPC大功告成。,39,第三章网络与通信,例子:SUNRPC(1),/*凯撒服务接口(XDR)定义,文件名:caesar.x*/constMAX=100;typedefstruct/*返回值类型*/intlen;charcodeMAX;Data;typedefstruct/*参数类型*/intkey;charcipherMAX;Args;programCAESAR/*凯撒程序*/versionVERSIONDataDECRYPT(Args)=1;/*解密过程*/DataENCRYPT(Args)=2;/*加密过程*/=5;=8888;,40,第三章网络与通信,例子:SUNRPC(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国家事业单位招聘2025中国农业科学院植物保护研究所农药环境风险评估及控制创新任务科研助理笔试历年参考题库附带答案详解
- 台州市2025年浙江天台县委政法委下属事业单位选聘工作人员笔试历年参考题库附带答案详解
- 仓山区2025福建福州市仓山区委宣传部编外人员招聘1人笔试历年参考题库附带答案详解
- 2025陕西建工新能源有限公司校园招聘(27人)笔试参考题库附带答案详解
- 2025辽宁沈阳地铁集团有限公司所属公司招聘11人笔试参考题库附带答案详解
- 2025福建省船舶工业集团有限公司招聘5人笔试参考题库附带答案详解
- 2025年芜湖城市园林集团股份有限公司招聘30人笔试参考题库附带答案详解
- 2025年湖南长沙振望投资发展有限公司招聘8人笔试参考题库附带答案详解
- 2025年榆林市公共交通总公司招聘(57人)笔试参考题库附带答案详解
- 2025年山东电工电气集团有限公司社会招聘(44人)笔试参考题库附带答案详解
- 世界避孕日培训
- 政务摄影培训课件模板
- 职业健康卫生培训课件
- 快递行业包裹分拣操作流程模拟题
- 辅助生殖妊娠营养干预
- 模块六 点的投影(课件)-中职高考《机械制图》一轮复习(高教版第5版)
- 健康素养促进项目课件
- 2024湘美版小学书法三年级上册教学设计(附目录)
- 固定摊位合租协议书
- 2025年国企人力资源管理岗招聘考试真题卷(含岗位说明书)
- 中国药典2025年版1~4部目录
评论
0/150
提交评论