网络协议工程之协议设计概述课件_第1页
网络协议工程之协议设计概述课件_第2页
网络协议工程之协议设计概述课件_第3页
网络协议工程之协议设计概述课件_第4页
网络协议工程之协议设计概述课件_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

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

文档简介

第2章协议设计

(1-协议模型)第2章协议设计

(1-协议模型)1内容提要协议设计概述1协议模型22内容提要协议设计概述1协议模型22协议设计概述协议设计的含义?协议设计是是一件很困难的事情Example:ClaytonTunnelProtocolExample:蓝军与白军作战问题3协议设计概述协议设计的含义?3协议例子England,1841,WilliamCookeTelegraph(电报)insteadofOpticaltelegraphforRailwayTunnelProtection,节省成本(只需1/10)和提高速度。Purpose:avoidthatmorethanonetrainisinthetunnelatthesametimeFirstlyusedonseverallinesoftheGreatWesternRailwaysinEngland.4协议例子England,1841,WilliamCoo电报(Telegraph)基本原理,1753,C.M给Scots杂志的信中描述了一个使用一些平行电线来通信的电子电报。1830,英国MichaelFaraday和美国JosephHenry发现了电磁感应1837,WilliamCooke利用电流来使处在接收端磁场中的罗盘指针发生偏转,从而得到信号。1837年6月12日,第一个电报系统的专利,“五磁针信号系统”。1842年,Cooke“火车可以无所畏惧地行驶,而无论其时间是否正确,也不管其是否在正确的轨道上,因为在使用该系统后,其速率总可以及时地降下来,从而避免碰撞”5电报(Telegraph)基本原理,1753,C.M给Sco协议例子England,1841,WilliamCookeTelegraph(电报)insteadofOpticaltelegraphforRailwayTunnelProtection,节省成本(只需1/10)和提高速度。Purpose:avoidthatmorethanonetrainisinthetunnelatthesametimeFirstlyusedonseverallinesoftheGreatWesternRailwaysinEngland.6协议例子England,1841,WilliamCoo协议例子semaphoreswithblock-intervalsystem(空闲/阻塞信号系统)turntoredautomaticallyasatrainpassessettogreenbyhandafterwardssignalmenonbothendslinkedbytelegraphiclinemalfunctionofblock-intervalsystemsignalledbyabellredandwhiteflagstoreplacemalfunctioningsemaphore7协议例子semaphoreswithblock-inte协议例子:报文(Messages)Message:TT:TraininTunnelTF:TunnelisFreeTL:HastheTrainlefttheTunnel?8协议例子:报文(Messages)Message:8协议例子:差错控制ErrorFreeFunctioningtrainenterstunnel,signalmanAsendsTTtoBtrainleavesthetunnel,BsendsTFtoAAsetssemaphoretogreenbyhandUnderErrorSituationtrainenterstunnel,AsendsTTtoBbellrings,Ashowsredflagtonexttraintrainleavesthetunnel,BsendsTFtoAAshowswhiteflagtonexttrain9协议例子:差错控制ErrorFreeFunctionin协议例子:事故(Accident)OnedayinAugust1861atClaytonTunnel...train-1enterstunnel,block-intervalsystemfails(failstosetthesignaltored),sothebellwarnssignalmanA,thenAsendsTTtoB,thenfetchestheredflagtowarnthenexttrain.train-2comestoofast,andcouldnotstopintime,hasalreadypassedthegreensignal.Fortunately,itsdrivercatchesaglimpseoftheredflagjustintimeasheentersthetunnel.train-3seestheredflagandstopsbeforethetunnelentrance.10协议例子:事故(Accident)OnedayinAu协议例子:事故(Accident)AsendsanotherTTtoB(fortrain-2)Bdoesnotunderstandsecond

TT(becausetheprotocoldidnotaccountforthiseventsothemeaningoftwosbusequentTThadnotbeenspecified.)AsendsTL(hasthetrainleftthetunnel?)toBBseestrain-1andsendsTF11协议例子:事故(Accident)Asendsanoth协议例子:事故(Accident)Athinkstrain-2leftthetunnelandshowswhiteflagtotrain-3train-2hadseenredflagbefore,isafraidandtriesto

returntopositionA

Aftersomedeliberation.12协议例子:事故(Accident)Athinkstrai协议例子:事故(Accident)Resulttrain-3andtrain-2crashed:21peoplediedand176gotinjuredThesetofinstructionsgiventothesignalmenwasincomplete,whichleadstotheaccident13协议例子:事故(Accident)Result13协议例子:LessonsAhistorianofrailwaydisasters(Nock,1967):“Onecanalmosthearthesamecommentbeingmadetimeaftertime.’Icouldnotimaginethatcouldeverhappen.’Yetbitterexperienceshowedthatitcould,andgraduallytheregulationsandrailwayengineeringpracticewereelaborated.”Protocol:UseUndernormalcircumstancesandthatallowedforasaferecoveryfromunexpectedevents.14协议例子:LessonsAhistorianofrai协议例子:Lessons(Cont.)eventhemostsimpleprotocolsmaycontainerrorsprotocolsmustbefullyverifiedbeforetheyareputinoperationtechniquestostructure,design,analyseandverifyprotocolsarenecessary15协议例子:Lessons(Cont.)eventhem一个简单的网络协议(蓝军与白军)谢希仁教授《计算机网络》上的一道作业题:占据两个山顶的蓝军与驻扎在这两个山之间的山谷的白军作战。其力量对比是:一个山顶上的蓝军打不过白军,但两个山顶的蓝军协同作战则可战胜白军。一个山顶上的蓝军拟于次日正午向白军发起攻击。于是发送电文给另一山顶上的友军。但通信线路很不好,电文出错或丢失的可能性较大。因此要求收到电文的友军必须送回一个确认电文。但此确认电文也可能出错或丢失。试问能否设计出一种协议使得蓝军能够实现协同作战因而一定(即100%)取得胜利?16一个简单的网络协议(蓝军与白军)谢希仁教授《计算机网络》上的明日正午进攻明日正午进攻如果情况如上所述,次日蓝军1和蓝军2的协同进攻必定获胜。但情况并非如此简单。因为所发的报文可能会丢失。明日正午进攻丢失!白军蓝军1蓝军2因此蓝军1必须在收到蓝军2的确认后才能进攻17明日正午进攻明日正午进攻如果情况如上所述,次日蓝军1和蓝明日正午进攻确认明日正午进攻确认因此,收到报文后必须加以确认但这个确认报文也可能丢失:确认丢失!白军蓝军1蓝军2故蓝军2必须要收到蓝军1发出的对此“确认”的确认,才能知道发送出的确认是否被蓝军1正确收到。18明日正午进攻确认明日正午进攻确认因此,收到报文后必须加以确认明日正午进攻确认明日正午进攻确认因此蓝军1收到确认报文后应发送对此确认的确认。对“确认”的确认对“确认”的确认蓝军1无法知道最后发送的这个确认是否被蓝军2收到,仍需收到蓝军2发来的确认才行!白军蓝军1蓝军219明日正午进攻确认明日正午进攻确认因此蓝军1收到确认报文后白军蓝军1蓝军2协议必须能够应付所有的(而不是部分的)不利情况像这样简单的问题居然无法设计出一种协议来解决。20白军蓝军1蓝军2协议必须能够应付所有的(而不是部分的)不内容提要协议设计概述1协议模型221内容提要协议设计概述1协议模型221协议模型分层设计,n层协议模型(n+1)实体(n)实体(n+1)实体(n)实体(n)协议提供(n-1)服务提供(n)服务(n)服务用户(n)服务提供者通过(n-1)连接进行通信(n+1)层(n-1)层(n)层nSAP(n-1)SAPnSAP(n-1)SAP(n-1)SPs(n-1)SPs(n)SPs(n)SPs(n)PDUs在OSI中,实体(entity)表示任何可以发送和接收信息的硬件或软件进程。在许多情况下,实体就是一个特定的模块。

两个(n)实体在(n)协议的控制下的通信,使(n)层能够向上一层(n+1)提供服务。这种服务就是(n)服务。

接受(n)服务的是上一层实体,即(n+1)实体。它们也称为(n)用户或更严格些是(n)服务用户。

22协议模型分层设计,n层协议模型(n+1)实体(n)实体协议模型分层设计,n层协议模型(n+1)实体(n)实体(n+1)实体(n)实体(n)协议提供(n-1)服务提供(n)服务(n)服务用户(n)服务提供者通过(n-1)连接进行通信(n+1)层(n-1)层(n)层nSAP(n-1)SAPnSAP(n-1)SAP(n-1)SPs(n-1)SPs(n)SPs(n)SPs(n)PDUs一个(n)实体向上一层所提供的服务由以下三部分构成:

(n)实体自己提供的某些功能。

从(n-1)层及其以下各层以及本地系统环境得到的服务。

通过与处在另一系统中的对等(n)实体的通信而得到的服务。

将(n)层对等实体之间,为实现该层协议所交换的信息单元称为协议数据单元PDU(ProtocolDataUnit)。通常将第n层的协议数据单元记为(n)PDU。23协议模型分层设计,n层协议模型(n+1)实体(n)实体PDUsPDU通常由2部分构成:用户数据和协议控制信息PCI(ProtocolControlInformation)。PCI一般作为首部加在用户数据的前面,但有时也可作为尾部加在用户数据的后面,例如检验和(checksum)常放在尾部。

两种类型:数据PDU控制PDU,不携带用户数据。

在不同的协议层次中,PDU还有一些其它的表示法。

物理层:比特(bit);

数据链路层:帧(frame)或信元(cell);网络层:分组或包(packet)运输层:报文(Message)24PDUsPDU通常由2部分构成:用户数据和协议控制信息PCIPDUs(Cont.)TwoStyles:AbstractPDUProtocolControlInformation(PCI)UserdataConcretePDUMappingofabstractPDUontobitpatterns(PDUformats)DefinedintermsofdatafieldsWhyareconcretePDUsnecessaryinastandardprotocol?25PDUs(Cont.)TwoStyles:25PDUs(Cont.)PDUEncodingExample:AbstractPDUCR-PDU(Length,Destination,Source,Options,…,Userdata)ConcretePDU(PDUformat)26PDUs(Cont.)PDUEncodingExampPDUs(Cont.)Codingfunctions:EncodingMappingofabstractPDUsontoconcretePDUsGenerationofconcretePDUsDecodingExtractnecessaryinformationfromconcretePDUsHidespecificcodingfromtheprocedurerules27PDUs(Cont.)Codingfunctions:2PDUs(Cont.)Example:FictitiousPDUstruct{chara,b;intc;}pdu;Codetoshoworganizationinbitsandbytesmain(){inti;pdu.a=‘a’; /*setafieldwithvalue‘a’*/pdu.b=‘b’; /*setbfieldwithvalue‘b’*/pdu.c=1;

/*setcfieldwithvalue1*/for(i=

0;i<sizeof(pdu);i++){

printf(“%d“,(int)((char*)&pdu)[i]);}

printf(“\n”);}}28PDUs(Cont.)Example:FictitiouPDUsandSDUsOSI将层与层之间交换的数据的单元称为服务数据单元SDU(ServiceDataUnit)。

一个(n)服务数据单元就是(n)服务所要传送的逻辑数据单元。SDU就是数据PDU中的用户数据,但不一定是一一对应关系。

可以是多个SDU合成为一个PDU(称为“拼装”),也可以是将一个SDU划分为几个PDU(称为“分段”)。

29PDUsandSDUsOSI将层与层之间交换的数据的单元PDUsandSDUs(Cont.)(N+1)SDU(N+1)service(N)SDU(N)service(N+1)PDU(N+1)PEPCIData(N)PDU(N)PEPCIDataPCIPCIData30PDUsandSDUs(Cont.)(N+1)SDU协议模型分层设计,n层协议模型(n+1)实体(n)实体(n+1)实体(n)实体(n)协议提供(n-1)服务提供(n)服务(n)服务用户(n)服务提供者通过(n-1)连接进行通信(n+1)层(n-1)层(n)层nSAP(n-1)SAPnSAP(n-1)SAP(n-1)SPs(n-1)SPs(n)SPs(n)SPs(n)PDUs同一系统中相邻两层的实体进行交互(即交换信息)之处,通常称为服务访问点SAP(SerivceAccessPoint)在进行交互时所要交换的一些必须信息(或命令)称为服务原语(ServicePrimitives),以表明需要本地的或远端的对等实体做哪些事情。OSI原语

31协议模型分层设计,n层协议模型(n+1)实体(n)实体OSI服务原语ConceptsinLaying:Service–sayswhatalayerdoesInterface–sayshowtoaccesstheserviceProtocol–sayshowistheserviceimplementedasetofrulesandformatsthatgovernthecommunicationbetweentwopeers每层均可使用的4种服务原语:Request(请求):一个实体希望得到某种服务

Indication(指示):把关于某一事件的信息告诉某一实体

Response(响应):一个实体愿意响应某一事件

Confirm(证实):把一个实体的服务请求加以确认并告诉它32OSI服务原语ConceptsinLaying:32协议模型小结上述概念虽然主要来自于OSI/RM,但具有普适性,要好好掌握。33协议模型小结上述概念虽然主要来自于OSI/RM,但具有普适性思考题2-1

简述“协议”与“服务”的关系。2-2

如何理解“服务原语”?34思考题2-1简述“协议”与“服务”的关系。34第2章协议设计

(1-协议模型)第2章协议设计

(1-协议模型)35内容提要协议设计概述1协议模型236内容提要协议设计概述1协议模型22协议设计概述协议设计的含义?协议设计是是一件很困难的事情Example:ClaytonTunnelProtocolExample:蓝军与白军作战问题37协议设计概述协议设计的含义?3协议例子England,1841,WilliamCookeTelegraph(电报)insteadofOpticaltelegraphforRailwayTunnelProtection,节省成本(只需1/10)和提高速度。Purpose:avoidthatmorethanonetrainisinthetunnelatthesametimeFirstlyusedonseverallinesoftheGreatWesternRailwaysinEngland.38协议例子England,1841,WilliamCoo电报(Telegraph)基本原理,1753,C.M给Scots杂志的信中描述了一个使用一些平行电线来通信的电子电报。1830,英国MichaelFaraday和美国JosephHenry发现了电磁感应1837,WilliamCooke利用电流来使处在接收端磁场中的罗盘指针发生偏转,从而得到信号。1837年6月12日,第一个电报系统的专利,“五磁针信号系统”。1842年,Cooke“火车可以无所畏惧地行驶,而无论其时间是否正确,也不管其是否在正确的轨道上,因为在使用该系统后,其速率总可以及时地降下来,从而避免碰撞”39电报(Telegraph)基本原理,1753,C.M给Sco协议例子England,1841,WilliamCookeTelegraph(电报)insteadofOpticaltelegraphforRailwayTunnelProtection,节省成本(只需1/10)和提高速度。Purpose:avoidthatmorethanonetrainisinthetunnelatthesametimeFirstlyusedonseverallinesoftheGreatWesternRailwaysinEngland.40协议例子England,1841,WilliamCoo协议例子semaphoreswithblock-intervalsystem(空闲/阻塞信号系统)turntoredautomaticallyasatrainpassessettogreenbyhandafterwardssignalmenonbothendslinkedbytelegraphiclinemalfunctionofblock-intervalsystemsignalledbyabellredandwhiteflagstoreplacemalfunctioningsemaphore41协议例子semaphoreswithblock-inte协议例子:报文(Messages)Message:TT:TraininTunnelTF:TunnelisFreeTL:HastheTrainlefttheTunnel?42协议例子:报文(Messages)Message:8协议例子:差错控制ErrorFreeFunctioningtrainenterstunnel,signalmanAsendsTTtoBtrainleavesthetunnel,BsendsTFtoAAsetssemaphoretogreenbyhandUnderErrorSituationtrainenterstunnel,AsendsTTtoBbellrings,Ashowsredflagtonexttraintrainleavesthetunnel,BsendsTFtoAAshowswhiteflagtonexttrain43协议例子:差错控制ErrorFreeFunctionin协议例子:事故(Accident)OnedayinAugust1861atClaytonTunnel...train-1enterstunnel,block-intervalsystemfails(failstosetthesignaltored),sothebellwarnssignalmanA,thenAsendsTTtoB,thenfetchestheredflagtowarnthenexttrain.train-2comestoofast,andcouldnotstopintime,hasalreadypassedthegreensignal.Fortunately,itsdrivercatchesaglimpseoftheredflagjustintimeasheentersthetunnel.train-3seestheredflagandstopsbeforethetunnelentrance.44协议例子:事故(Accident)OnedayinAu协议例子:事故(Accident)AsendsanotherTTtoB(fortrain-2)Bdoesnotunderstandsecond

TT(becausetheprotocoldidnotaccountforthiseventsothemeaningoftwosbusequentTThadnotbeenspecified.)AsendsTL(hasthetrainleftthetunnel?)toBBseestrain-1andsendsTF45协议例子:事故(Accident)Asendsanoth协议例子:事故(Accident)Athinkstrain-2leftthetunnelandshowswhiteflagtotrain-3train-2hadseenredflagbefore,isafraidandtriesto

returntopositionA

Aftersomedeliberation.46协议例子:事故(Accident)Athinkstrai协议例子:事故(Accident)Resulttrain-3andtrain-2crashed:21peoplediedand176gotinjuredThesetofinstructionsgiventothesignalmenwasincomplete,whichleadstotheaccident47协议例子:事故(Accident)Result13协议例子:LessonsAhistorianofrailwaydisasters(Nock,1967):“Onecanalmosthearthesamecommentbeingmadetimeaftertime.’Icouldnotimaginethatcouldeverhappen.’Yetbitterexperienceshowedthatitcould,andgraduallytheregulationsandrailwayengineeringpracticewereelaborated.”Protocol:UseUndernormalcircumstancesandthatallowedforasaferecoveryfromunexpectedevents.48协议例子:LessonsAhistorianofrai协议例子:Lessons(Cont.)eventhemostsimpleprotocolsmaycontainerrorsprotocolsmustbefullyverifiedbeforetheyareputinoperationtechniquestostructure,design,analyseandverifyprotocolsarenecessary49协议例子:Lessons(Cont.)eventhem一个简单的网络协议(蓝军与白军)谢希仁教授《计算机网络》上的一道作业题:占据两个山顶的蓝军与驻扎在这两个山之间的山谷的白军作战。其力量对比是:一个山顶上的蓝军打不过白军,但两个山顶的蓝军协同作战则可战胜白军。一个山顶上的蓝军拟于次日正午向白军发起攻击。于是发送电文给另一山顶上的友军。但通信线路很不好,电文出错或丢失的可能性较大。因此要求收到电文的友军必须送回一个确认电文。但此确认电文也可能出错或丢失。试问能否设计出一种协议使得蓝军能够实现协同作战因而一定(即100%)取得胜利?50一个简单的网络协议(蓝军与白军)谢希仁教授《计算机网络》上的明日正午进攻明日正午进攻如果情况如上所述,次日蓝军1和蓝军2的协同进攻必定获胜。但情况并非如此简单。因为所发的报文可能会丢失。明日正午进攻丢失!白军蓝军1蓝军2因此蓝军1必须在收到蓝军2的确认后才能进攻51明日正午进攻明日正午进攻如果情况如上所述,次日蓝军1和蓝明日正午进攻确认明日正午进攻确认因此,收到报文后必须加以确认但这个确认报文也可能丢失:确认丢失!白军蓝军1蓝军2故蓝军2必须要收到蓝军1发出的对此“确认”的确认,才能知道发送出的确认是否被蓝军1正确收到。52明日正午进攻确认明日正午进攻确认因此,收到报文后必须加以确认明日正午进攻确认明日正午进攻确认因此蓝军1收到确认报文后应发送对此确认的确认。对“确认”的确认对“确认”的确认蓝军1无法知道最后发送的这个确认是否被蓝军2收到,仍需收到蓝军2发来的确认才行!白军蓝军1蓝军253明日正午进攻确认明日正午进攻确认因此蓝军1收到确认报文后白军蓝军1蓝军2协议必须能够应付所有的(而不是部分的)不利情况像这样简单的问题居然无法设计出一种协议来解决。54白军蓝军1蓝军2协议必须能够应付所有的(而不是部分的)不内容提要协议设计概述1协议模型255内容提要协议设计概述1协议模型221协议模型分层设计,n层协议模型(n+1)实体(n)实体(n+1)实体(n)实体(n)协议提供(n-1)服务提供(n)服务(n)服务用户(n)服务提供者通过(n-1)连接进行通信(n+1)层(n-1)层(n)层nSAP(n-1)SAPnSAP(n-1)SAP(n-1)SPs(n-1)SPs(n)SPs(n)SPs(n)PDUs在OSI中,实体(entity)表示任何可以发送和接收信息的硬件或软件进程。在许多情况下,实体就是一个特定的模块。

两个(n)实体在(n)协议的控制下的通信,使(n)层能够向上一层(n+1)提供服务。这种服务就是(n)服务。

接受(n)服务的是上一层实体,即(n+1)实体。它们也称为(n)用户或更严格些是(n)服务用户。

56协议模型分层设计,n层协议模型(n+1)实体(n)实体协议模型分层设计,n层协议模型(n+1)实体(n)实体(n+1)实体(n)实体(n)协议提供(n-1)服务提供(n)服务(n)服务用户(n)服务提供者通过(n-1)连接进行通信(n+1)层(n-1)层(n)层nSAP(n-1)SAPnSAP(n-1)SAP(n-1)SPs(n-1)SPs(n)SPs(n)SPs(n)PDUs一个(n)实体向上一层所提供的服务由以下三部分构成:

(n)实体自己提供的某些功能。

从(n-1)层及其以下各层以及本地系统环境得到的服务。

通过与处在另一系统中的对等(n)实体的通信而得到的服务。

将(n)层对等实体之间,为实现该层协议所交换的信息单元称为协议数据单元PDU(ProtocolDataUnit)。通常将第n层的协议数据单元记为(n)PDU。57协议模型分层设计,n层协议模型(n+1)实体(n)实体PDUsPDU通常由2部分构成:用户数据和协议控制信息PCI(ProtocolControlInformation)。PCI一般作为首部加在用户数据的前面,但有时也可作为尾部加在用户数据的后面,例如检验和(checksum)常放在尾部。

两种类型:数据PDU控制PDU,不携带用户数据。

在不同的协议层次中,PDU还有一些其它的表示法。

物理层:比特(bit);

数据链路层:帧(frame)或信元(cell);网络层:分组或包(packet)运输层:报文(Message)58PDUsPDU通常由2部分构成:用户数据和协议控制信息PCIPDUs(Cont.)TwoStyles:AbstractPDUProtocolControlInformation(PCI)UserdataConcretePDUMappingofabstractPDUontobitpatterns(PDUformats)DefinedintermsofdatafieldsWhyareconcretePDUsnecessaryinastandardprotocol?59PDUs(Cont.)TwoStyles:25PDUs(Cont.)PDUEncodingExample:AbstractPDUCR-PDU(Length,Destination,Source,Options,…,Userdata)ConcretePDU(PDUformat)60PDUs(Cont.)PDUEncodingExampPDUs(Cont.)Codingfunctions:EncodingMappingofabstractPDUsontoconcretePDUsGenerationofconcretePDUsDecodingExtractnecessaryinformationfromconcretePDUsHidespecificcodingfromtheprocedurerules61PDUs(Cont.)Codingfunctions:2PDUs(Cont.)Example:FictitiousPDUstruct{chara,b;intc;}pdu;Codetoshoworg

温馨提示

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

评论

0/150

提交评论