XX大学XX学院XX系第2章协议设计(2-基本内容)第2章协议设计(2-基本内容)2内容提要协议的通信环境1协议提供的服务2协议功能3协议元素4协议组织5协议文本6第2章协议设计(2-基本内容)3协议的通信环境n层协议的通信环境用户要求(n-1)层通道(Channel)的性质•N层中任何两个协议实体通过(n-1)SAP所形成的数据逻辑通路称为(n-1)层通道(图2-1)n层协议运行时的操作系统和硬件环境通信环境是协议设计要优先考虑的问题第2章协议设计(2-基本内容)4协议模型分层设计,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-1)通道第2章协议设计(2-基本内容)5通道的类型主要有三类:空通道(emptychannels):•报文的发送时间和延时时间为0的通道•报文一旦从输入端进入就立即在输出端出现非缓冲通道(non-bufferedchannels)•在任何时刻,最多只有一个正在传送中的报文的通道缓冲通道(bufferedchannels)•允许有多个报文停留的通道(n-1)层通道的性质对n层协议的构成有非常重要的影响第2章协议设计(2-基本内容)6通道性质通道的形成方式:A和B建立并独占一条连接,此时(n-1)层应提供有连接服务A和B与其它协议实体一起共享一条连接A和B利用(n-1)层提供的无连接服务进行通信如果(n-1)层为物理层,A和B可独占一条物理信道,或共享一条物理信道通道的队列性质:除物理层外,一般可将(n-1)层通道看作是队列通道,即一个数据报文从n层源端协议实体发出之后要在n层以下各层多次存贮转发,在每个存贮转发处就存在一个队列平均队列长度以及最大队列允许长度是队列的主要性质•队列越长,那么数据报文在通道中的延时就会越大;•如果队列长度达到最大允许长度,那么后续的数据报文将会丢失第2章协议设计(2-基本内容)7通道性质(Cont.)回程时延RTT(RoundTripTime)RTT是报文从n层源端实体发出到该报文的认可信息达到该实体之间的时间,它包括目标实体收到报文之后,对报文进行处理然后发出认可信息的时间RTT是协议的最重要参数之一通道的差错特性参数:报文的出错率、报文的丢失率、报文的重复率、报文失序率差错特性与它的形成方式有关:•如果通道是利用(n-1)层有连接服务形成的,或是物理信道,那么传递的报文不会失序•如果通道利用(n-1)层的无连接服务形成的,则报文的顺序就有可能失序第2章协议设计(2-基本内容)8通道性质(Cont.)通道的可靠性通道的可靠性是指通道无故障,如断连、复位等报文的最大长度或最大传输单元(MTU)通道所能接收的最大报文长度主要影响n层协议的报文分段,拼接等功能常见例子,TCP,IP,Ethernet的MTU通道的工作方式单工、半双工、全双工同步与异步第2章协议设计(2-基本内容)9通道性质(Cont.)通道的通信方式点对点:•N层任意两个协议实体利用一条(N-1)层通道通信,协同完成指定协议功能•如TCP连接,UDP点对点方式点对多点•N层任意两个以上协议实体利用多条(N-1)层通道通信,协同执行一定任务•如ATM的点对多点连接,UDP的广播方式通道的安全性对用户数据加密和安全控制(如口令,特权)第2章协议设计(2-基本内容)10通道性质(Cont.)通道的带宽(Bandwidth)原始的意义:某个信号具有的频带宽度。单位:赫兹(Hz)、千赫(kHz)、兆赫(MHz)早期的通信主干线主要传送模拟信号,因此通信线路的带宽(也叫通频带)用频率来度量。数字化主干线路:用传送的数字信号的数据率(即数据率或比特率)来表示线路的带宽。单位:比特每秒(bit/s)、千比特每秒kbit/s、兆比特每秒Mbit/s(106bit/s)、吉比特每秒Gbit/s(109bit/s)或太比特Tbit/s(1012bit/s)。通道的带宽可进一步分为:前向带宽、后向带宽、峰值带宽等(QoS)第2章协议设计(2-基本内容)11协议的通信环境:小结经验表明,大多数的协议失败是由于对协议运行的环境作出了错误的假定设计者必须确保直接定义这些环境假定,而不能隐含地指示它们第2章协议设计(2-基本内容)12协议的通信环境:思考题2-3请以HDLC和FrameRelay为例来讨论协议的通信环境对协议的影响。(提示:可以从差错控制机制来考虑)第2章协议设计(2-基本内容)13内容提要协议的通信环境1协议提供的服务2协议功能3协议元素4协议组织5协议文本6第2章协议设计(2-基本内容)14协议提供的服务从通信的角度:面向连接的(connection-oriented)服务•三个阶段:连接建立、数据传输和连接释放•在传送数据时是按序传送的•网络层:虚电路服务•比较适合于在一定期间内要向同一目的地发送许多报文的情况•永久虚电路:适于两个用户需要经常进行频繁的通信的情况无连接的(connectionless)服务•不能保证报文的丢失、重复、失序•三种类型:数据报(datagram)、证实交付(confirmeddelivery,可靠的数据报)、请求回答(request-reply)•适于传送少量零星的报文不需要接收端做任何响应。尽最大努力交会(besteffortdelivery)又称“可靠的数据报”。对每一个报文产生一个证实给发方用户,不过这个证实不是来自接收端的用户而是来自提供服务的层。收端用户每收到一个报文,就向发端用户发送一个应答报文。适于“事务(transaction)”中的通信。第2章协议设计(2-基本内容)15ServiceStructuringFunctionalrequirementsoftheservicebehaviourlocalconstraints:relationshipsbetweenserviceprimitivesataserviceaccesspoint(LocalServiceInterface,LSI)remoteconstraints:relationshipsbetweenserviceprimitivesatdifferentserviceaccesspoints(RemoteInteractionFunction,RIF)Servicebehaviourcanbedefinedasacompositionoftheseconstraints(constraint-orientedstructuring)第2章协议设计(2-基本内容)16ServiceStructuring(Cont.)ServiceproviderUserCUserBUserA(Total)RIFLSIBLSICLSIASAPCSAPASAPB第2章协议设计(2-基本内容)17Example:QuestionAnswer(QA)serviceUserAUserQQA-ServiceproviderSAPASAPQQ-reqA-reqA-indQ-ind第2章协议设计(2-基本内容)18GenericprotocolstructureLowerLevelServiceproviderUserCUserAPEAPECServiceproviderRIFbetweenLSIAandLSICUPFCLPFCUPFATFACFALLSICLLSIALSICLSIASAPCSAPAPDUexchange第2章协议设计(2-基本内容)19Example:QAprotocolConnectionlessserviceQAServiceproviderPECPEASAPCSAPAA-reqD-indD-indQ-reqD-reqA-indD-reqQ-ind第2章协议设计(2-基本内容)20协议提供的服务:思考题2-4在Internet中,有很多应用层协议利用面向连接的TCP协议,也有很多利用无连接的UDP协议。能否通过一些例子来发现一些带有共性的规律(在选择面向连接的服务还是选择无连接服务方面)?2-5HTTP协议利用有连接的TCP作为传输通道,并且不断地建立连接和断开连接。请说明这样做的好处和坏处。(建议查找与HTTP相关的RFC)第2章协议设计(2-基本内容)21内容提要协议的通信环境1协议提供的服务2协议功能3协议元素4协议组织5协议文本6第2章协议设计(2-基本内容)22协议功能(N)层协议为了向上一层提供服务,必须实现一定的功能例如,运输层为了向上层提供可靠的面向连接的数据传输服务,一般需要实现下列功能:连接管理、差错控制、流量控制等基本的协议功能,主要分为两大类:连接管理数据交换并不限制对所描述的功能进行组装或分解,以便获得更粗的或更细的结构第2章协议设计(2-基本内容)23协议功能:连接管理两种连接:点对点与点对多点三种主要功能:连接建立•双方协商工作参数:初始序号,信用量,QoS•QoS一般涉及:数据的可靠性、安全性和性能•协商失败,则连接建立失败连接释放•突然释放:立即关闭•文明(Graceful)释放:成功发送(含义?)所有数据后关闭连接维护:如Keep-Alive查询,工作参数变更等“成功地发送了”的定义依赖于所选择的服务质量:如果选择了可靠服务,服务提供者试图正确地传递所有的SDU,必要时使用重传技术。然而对于一个不可靠的服务,服务提供者在所有的SDU离开本结点时就认为发送成功。第2章协议设计(2-基本内容)24协议功能:连接管理(Cont.)在连接建立和释放阶段,为了对延迟的(n)PDU所导致的错误的连接建立和释放进行保护,通常需要采取一些保护措施,例如:TCP协议和OSI的类4运输协议中采取的三次握手(three-wayhandshake)机制Fletcher和Watson在1978年提出的基于时钟的连接管理方法,它要求连接释放之后足够长的时间内保持连接状态,以便检测所有可能的延迟的重复数据包其它功能:连接迁移、转发、合并、分离、连接复用和分用等多点连接管理比较复杂:组、根、叶;加入、离开等操作第2章协议设计(2-基本内容)25协议功能:数据交换数据交换:数据的发送与接收n层协议接收n层用户递交的SDU,将之转换成PDU,从(n-1)层通道发送出去;反之,它接收(n-1)层通道的PDU,抽出其中的SDU,将之转交给n层用户。第2章协议设计(2-基本内容)26协议功能:数据交换协议支持的用户数据、类型块数据:用户数据是以整块的形式交给协议,如UDP的报文流数据:用户数据是以一串字节流的形式交给协议传送,如TCP的字节流批数据:在短时间内,用户向协议递交大批数据块优先数据:用户向协议递交的数据有不同优先级别,IPv6支持带外数据(OutofBandData):在正常的数据流中夹杂着的要求协议优先处理的数据,如OSI的加速数据紧急数据(ExpeditedData):用户要求协议中断正常数据的传送而将此类数据优先发送,是带外数据的一种,如TCP的紧急数据。编码数据:协议需要先对这类数据进行某种编码,然后再发送第2章协议设计(2-基本内容)27协议功能:数据交换(Cont.)为实现数据传输功能,一般需要实现下列子功能:对齐:把一个(n)PDU中的PCI字段(头部、尾部以及用来传输协议控制信息的有效载荷字段)调整到本地机器存储器的边界,以避免访问的冲突。分段和合段:如果SDU长度大于(n-1)层通道最大允许报文长度,(n)协议必须将(n)SDU分段(segmenting)放入多个(n)PDU中发送(每个PDU中的PCI信息不一样)。接收后要执行相反的过程,即合段(Rea