多媒体通信技术多媒体通信协议.ppt_第1页
多媒体通信技术多媒体通信协议.ppt_第2页
多媒体通信技术多媒体通信协议.ppt_第3页
多媒体通信技术多媒体通信协议.ppt_第4页
多媒体通信技术多媒体通信协议.ppt_第5页
已阅读5页,还剩119页未读 继续免费阅读

下载本文档

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

文档简介

第 6 章 多媒体通信协议,6.1 引言 6.2 TCP/IP协议简介 6.3 IP v6协议 6.4 RSVP协议 6.5 ST 协议 6.6 RTP协议,6.1 引 言,对于新协议的研究, 有两种观点: 一是采用全新的网络协议, 以充分支持多媒体通信, 但存在着和大量已有的网络应用程序相兼容的问题, 在实际中很难推广应用; 二是在原有传输协议的基础上增加新的协议, 以弥补原有网络协议的缺陷。 尽管这种方法在某些方面也存在一定的局限性,但可以保护用户大量已有的投资, 容易得到广泛的支持。 这也是目前增强网络对多媒体通信支持能力的主要方法。 ,6.2 TCP/IP协议简介,图 6.1 TCP/IP协议集及分层结构,6.2.1 网络接口 TCP/IP协议不包含物理层和数据链路层协议, 只定义了TCP/IP与各种物理网络之间的网络接口规范。这些物理网络包括多种广域网, 如ARPANET、 MILNET和X.25公用数据网, 以及各种局域网, 如Ethernet、 TokenRing、 FDDI等各种局域网。 由网际层中的地址解析协议提供专门的功能来解决IP地址与各种网络物理地址转换问题。,6.2.2 网际层 网际层包含有四个协议: IP、 ICMP、ARP和RARP。 其中, IP是主协议, 其它三个协议是辅助协议, 以增强网际层的网络控制和地址解析能力。网际层的主要功能是提供基于数据报方式的数据传输、 路由选择以及网络互连等服务。,6.2.2.1 IP地址 在互连网体系结构中, 每一台主机都要预先分配一个惟一的32位地址作为该主机的标识, 这个主机进行的所有通信都要使用这个地址来完成, 这个地址称为IP地址。 IP地址通常由网络标识(Net)和主机标识(Host)两部分组成, 可标识一个互连网络中任何一个网络中的任何一个主机。 IP地址是一种在网际层用来标识主机的逻辑地址。当数据报在物理网络传输时, 还必须把IP地址转换成相应的物理地址, 这种地址映射服务是由网际层的地址解析协议ARP提供的。,1. IP地址的格式与分类 IP地址有二进制格式和十进制格式两种。 十进制格式是由二进制翻译过去的, 用十进制表示是为了便于使用和掌握。 二进制的IP地址共有32位。例如: 10000011, 01101011, 00000011, 00011000。 每八位组用一个十进制数表示, 并用“”进行分隔, 上例的十进制IP地址是131.107.3.24。 IP地址分为A、 B、 C、 D、 E五类。 其一般格式如图6.2所示。,0 31,图 6.2 IP地址格式,IP地址格式中, M为类别号、NET为网络号、 HOST为主机号(Internet中的计算机都称为主机)。 类别不同, 这三个字段的位数也不同, 经常使用的是A、 B、 C三类IP地址。 在A类地址中, M字段占1位, 即第0位为0, 表示是A类地址, 第17位表示网络地址, 第831位表示主机地址。它所能表示的范围为0.0.0.0127.255.255.255, 即能表示126 个网络地址, 16 387 064个主机地址。 A类地址通常用于大型网络的场合。 在B类地址中, M字段占2位, 即第0、 1位为“1 0”, 表示是B类地址; 第215位表示网络地址; 第1631位表示主机地址。它所能表示的范围为128.0.0.0191.255.255.255, 即能表示16 256个网络地址, 64 576个主机地址。 B类地址通常用于各地区的网管中心。,在C类地址中, M字段占3位, 即第0、1、2位为“1 1 0”, 表示是C类地址; 第323位表示网络地址; 第2431位表示主机地址。 它所表示的范围为192.0.0.0223.255.255.255, 即能表示2 064 512个网络地址, 254个主机地址。 C类地址通常用于校园网或企业网。 此外, 还有D类和E类IP地址。 前者是多址广播地址, 后者是实验性地址。 在Internet中, IP地址是全局地址, 不是任意分配的, 必须由相应的管理机构统一分配。,2. IP地址的屏蔽码 屏蔽码主要用于说明在一个IP网络中是否有子网以及子网数量级, 但它不能确切给出具体子网数, 也不说明具体的子网号。 在有子网的IP地址中, 其子网号是用主机号字段的前几位表示的, 所占的位数与子网的数量相对应, 如1位可表示2个子网; 2位可表示4个子网; 3位可表示8个子网 具体地说, 如果一个IP网络无子网, 则屏蔽码中的网络号字段各位全为1, 主机号字段各位全为0; 如果有子网, 则屏蔽码中的网络号字段各位全为1, 主机号字段中的子网号各位全为1, 而主机号各位全为0。 例如:, IP地址为202.114.80.5、 屏蔽码为255.255.255.0, 表示在该IP网络(网络号为202.114.80)中无子网。这个IP地址标识的是该IP网络中的第5号主机。 IP地址为202.114.80.5、 屏蔽码为255.255.255.224 (224为二进制的“11100000”), 表示在该IP网络中最多有8个子网, 每个子网可配置32台主机。 这个IP地址标识的是该IP网络0号子网中的第5号主机。 屏蔽码的作用就是屏蔽掉IP地址中的主机号, 而保留其网络号和子网号, 以便于路由器寻址。如果两个主机属于同一个子网, 则它们之间可以直接进行信息交换, 而不需要路由器; 如果两个主机不在同一个子网, 即子网号不同, 则它们之间就要通过路由进行信息交换。,6.2.2.2 ARP协议和RARP协议,1. ARP协议 当一个主机向另一个主机发送报文时, 只有知道与对方IP地址相对应的物理地址后才能在物理网络上进行传输。这种地址解析服务是由ARP协议提供的。 应当注意的是, ARP只用于解析对方的物理地址, 而不用于解析本机的物理地址。,当一个主机需要解析另一个主机的物理地址时, 通过ARP协议向网络中广播一个ARP请求报文, 报文中包含有目的主机的IP地址, 以请求与该IP地址相符合的目的主机物理地址。网络上所有的主机都能接收到这个ARP请求报文, 但只有本机的IP地址与报文中目的IP地址相符合的主机, 才回送一个ARP响应报文, 报告该机的物理地址。这样, 发送主机就得到了目的主机的物理地址了。 在单一网络中, 发送方的ARP请求报文可直接发送给网络中任何一个主机。在互连网络中, 发送给另一网络中主机的数据报要由IP路由器节点转发。因此, 发送方必须首先获取IP路由器节点的物理地址, 即发送ARP请求报文给该路由器节点。,2. RARP协议 如果一个主机初始化后, 只有物理地址而没有IP地址, 就可以通过RARP协议发送广播式请求报文来请求自己的IP地址, 而RARP服务器负责对该请求作出应答。这样就使得无IP地址的主机可以通过RARP协议来获取自己的IP地址。RARP协议主要用于无盘工作站来获取自己的IP地址。,6.2.2.3 IP协议 IP(Internet Protocol)是TCP/IP协议集的核心协议之一, 它提供了无连接的数据报传输和互连网路由服务。IP的主要任务是通过互连网传输数据报, 各个IP数据报之间是互相独立的。主机上的IP层基于数据链路层服务向传输层提供服务, IP从源传输层实体获取数据,通过网络接口传送给目的主机的IP层。IP不保证传送的可靠性, 在主机资源不足的情况下, 它可能丢弃某些数据报, 同时IP也不检查被数据链路层丢弃的报文。,1. IP数据报格式,图 6.3 IP数据报格式,IP数据报格式中各个字段的简要说明如下: 版本: 4位, IP协议的版本号, IP v4版本取值为 4; IP报头长度(IHL): 4位, IP数据报的报头长度(以 32 位为单位); 服务级别: 8位, 用于规定优先级、 传送速率、 吞吐量和可靠性等参量; 报文长度: 16位, 包括报头和数据两部分的总长度(以字节为单位); 标识: 16位, 数据报惟一标识, 以便于数据报的分段与重装; 标志: 3位, 数据报是否分段标志; ,分段偏移: 13位, 以 64 位为单位表示的分段偏移; 生存期: 8位, 允许数据报在网间传输的存活时间; 上层协议号: 8位, 指出发送数据报的上层协议; 报头检查和: 16位, 仅用于对报头的正确性检查; 源IP地址: 32位, 发送数据报的源主机IP地址; 目的IP地址: 32位, 接收数据报的目的主机IP地址; 任选项: 可变长度, 提供任选的服务, 如时间戳、 错误报告及特殊路由等; 填充: 可变长度, 保证IP报头以 32 位为边界对齐。,2. 数据报的分段与重装 (1) 数据报分段,在数据报分段时,每个段都要加上IP报头, 形成IP数据报。与数据报分段相关的字段有: 标识(ID): 数据报的惟一标识。 被分段传送的IP数据报设有相同的标识。 报文长度: 对每一个被分段的IP数据报都要重新计算其报文长度。 分段偏移: 每一个被分段的IP数据报要表明它在原始数据报中的位置, 用 64位的倍数来表示。 标志: 如果是无分段的IP数据报, 该标志为 0; 如果是有分段的IP数据报,除了最后一个分段IP数据报将该标志置为0 外, 其它的都将该标志置为1。,(2) 数据报重装 在互连网络中, 被分段的各个IP数据报进行独立的传输, 它们在经过中间路由器转发时可能选择不同的路由。这样, 到达目的主机的IP数据报顺序与发送的顺序不一定相一致。因此, 目的主机上的IP协议必须根据IP数据报中相关字段(标识、 长度、 偏移及标志等)将分段的各个IP数据报重新组装成完整的原始数据报, 然后再提交上层协议。,在进行数据报重装时, 各个IP数据报除应具有相同的标识外, 还应具有相同的上层协议号、源IP地址和目的IP地址, 并且在一定的时间内要全部到齐。 IP协议将满足上述条件的IP数据报按分段偏移顺序排队, 且只保留第1段IP数据报报头, 而其它段的IP 报头均删除, 组装成一个完整的原始IP数据报, 并重新计算其报文长度, 填入IP报头相应的字段。最后将组装好的原始IP数据报按上层协议号提交给上层协议。,3. 路由选择 路由选择是IP协议最重要的功能之一。 在IP协议中, 采用的是源路由选择策略, 由发送端指定发送路由。因此, 每个主机和路由器(TCP/IP中称它为网关)都保持一个路由选择表, 给出互连网络中各个网络所对应的路由器地址以及该路由器当前的忙闲程度。 在路由选择表中,网络地址和路由器地址都是用IP地址表示的, 路由器地址指向IP数据报应送往的下一个路由器。 忙闲度是用这个路由器所发送的数据报数量来衡量的, 当一个网络地址有多个路由时, IP协议总是选择忙闲度值最小的路由。 为了提高路由查找速度, 路由选择表通常采用散列表(Hash)结构。,(1) 数据报发送 当发送节点IP协议收到上层协议要求发送的数据报时, 如果上层协议已指定了发送路由, 则按指定的路由发送数据报; 如果上层协议未指定发送路由, IP协议则以IP数据报中目的IP地址为关键字来搜索路由选择表中的路由。如果未找到任何路由, 则说明目的不可达, 向上层协议报告错误信息。对于已确定的发送路由, 无论是由上层协议指定的, 还是从路由选择表中找到的, 如果该路由是直接可达的(源主机和目的地址在同一网络中), 则将IP数据报中的目的IP地址通告给网络接口程序; 如果该路由不是直接可达的, 则将路由选择表中对应的路由器IP 地址通告给网络接口程序。对于多路由场合, 要通告忙闲度最小的路由器地址。,(2) 数据报接收 当该节点为主机节点时, 则比较IP数据报中的目的IP地址与本机IP地址是否相匹配。若匹配, 则把IP数据报递交给对应的上层协议; 否则丢弃该数据报。 当该节点为路由器节点时, 需要转发该数据报, 即用该数据报的目的IP地址从路由选择表中查找转发路由。如果找到路由, 则按该路由转发数据报, 其过程如前所述; 否则, 向发送该数据报的源主机发送ICMP报文, 报告目的不可达。 如果该节点是一个被配置成具有路由选择功能的主机, 则先执行。 若不匹配, 则是待转发的数据报, 不能丢弃掉, 而是转入执行。,4. IP数据报选项 在IP数据报的任选项字段中提供了若干选项: 源路由、 记录路由和时戳等, 主要用于控制和测试网络。 选项处理作为IP协议的组成部分, 在所有的IP协议实现中都是不可缺少的。,6.2.2.4 ICMP协议,1. ICMP报文格式,图 6.5 ICMP报文格式,表 6.1 ICMP报文类型,2. ICMP差错报文 ICMP最基本的功能就是提供差错报告传输机制。对于差错的处理方式, ICMP协议没有严格的规定。事实上,源主机收到ICMP差错报文后, 还需要与应用程序联系起来, 才能决定相应的差错处理方式。 ICMP的差错报告采用路由器向源主机报告模式, 即当路由器发现IP数据报差错后, 使用ICMP报文向该IP数据报的源主机报告其差错。同时, 发生差错的IP数据报将被丢弃掉, 不再向前转发。,(1) 目的不可达报文 路由器的主要功能是为数据报选择路由并转发数据报。当从路由表上查不出与IP数据报目的IP地址对应的路由时, 则会发生目的不可达的错误。 这时, 路由器要向源主机发送目的不可达的ICMP报文。目的不可达ICMP报文类型(Type)为 3, 并进一步细分成 13 种子类, 用代码(Code)来标识, 其它信息字段未用, 为全 0。,(2) 超时报文 数据报每经过一个路由器时, 其生存期都要根据其滞留时间而递减。 如果在一个路由器上数据报的生存期递减为0, 该路由器则会丢弃这个数据报, 并向源主机发送Type=11、Code=0 的ICMP报文, 报告该数据报生存期超时。 当目的主机在对数据报进行重装的过程中发生重装超时时, 将丢弃已收到的各个分段数据报, 并在第 1 个分段数据报到达后向源主机节点发送Type=11、 Code=1的ICMP报文。,(3) 参数出错报文 当路由器或目的主机在对收到的IP数据报进行处理时, 如果发现在IP报头参数中含有无法继续完成报文处理的错误时, 则将该数据报丢弃, 并向源主机发送Type=12、 Code=0的ICMP报文, 并且在ICMP报文的其它信息字段中用1个字节为指针来指出差错在数据报中的位置(以字节为单位)。,3. ICMP控制报文 ICMP控制报文主要用于拥塞控制和路由控制。 (1) 报源抑制报文 当路由器的数据报输入速度超过路由器的转发速度时, 则可能发生拥塞现象。拥塞控制的概念与流量控制有所不同, 流量控制主要是解决端点对端点的传输速率匹配问题, 属于局部控制; 而拥塞控制带有全局性质, 因为拥塞可能影响到整个网络的数据传输, 故需要各个节点共同参与协同解决。,拥塞控制方法有很多, 而TCP/IP采用的是报源抑制技术, 即抑制源主机节点发送数据报的速率。具体的过程如下: 当路由器或目的主机节点由于缓冲区溢出而无法对输入的数据报进行处理时,将会丢弃这些数据报, 并向源主机节点发送Type=4、 Code=0的报源抑制ICMP报文。 当源主机节点收到报源抑制ICMP报文后, 相应地降低其报文发送速度, 直到不再收到报源抑制ICMP报文为止。然后, 源主机节点又逐渐增加它的报文发送速度, 直到再一次出现报源抑制ICMP报文为止。 对于路由器和目的主机节点而言, 最佳的报源抑制报文发送时间是当前输入的数据报所占用的系统容量接近系统限制时。这样可以减少因重发数据报文所占用的网络带宽。,(2) 重定向报文 重定向功能提供了一种路由优化控制机制, 使源主机能以动态方式寻址最短路径。通常, ICMP重定向报文只能在同一网络中的源主机与路由器之间使用。 当路由器R1从处于同一子网的主机H1收到一个需转发的IP数据报时, R1将检查自身的路由选择表信息, 并假设它选定了下一个路由器R2继续转发该数据报。 这时, 如果R1确认R2和H1也处于同一子网时, R1就向H1发送重定向ICMP报文, 通知H1将数据报直接发给R2将会是一条较短的传送路径。 重定向报文的类型(Type)为 5, 并进一步分成用Code标识的 4 个子类, 在重定向报文的其它信息字段中要填入重定向的路由器(如R2)IP地址。,4. ICMP请求/应答报文 (1) 回送请求与响应报文 回送请求与响应报文主要用于测试网络目的节点的可达性。源节点使用ICMP回送请求报文向某一特定的目的主机发送请求, 目的节点收到请求后必须使用ICMP回送响应报文来响应对方。 在许多TCP/IP实现中, 提供的一种用户命令Ping便是利用这种ICMP回送请求/响应报文来测试目的可达性的。,(2) 时戳请求与响应报文 时戳请求与响应报文主要用于估算源和目的节点间的报文往返时间。 在报文中使用了三个时戳: 一是初始时戳, 为源节点发送时戳请求报文的时间; 二是接收时戳, 为目的节点接收到时戳请求报文的时间; 三是发送时戳, 为目的节点发送时戳响应报文的时间。源节点首先发送时戳请求报文, 然后等待目的节点返回其响应报文, 并根据这三个时戳的时间值来估算两个节点间的报文往返时间。,(3) 屏蔽码请求与响应报文 屏蔽码请求与响应报文主要用于源节点获取所在网络的IP地址屏蔽码信息。 源节点在发送请求报文时, 将IP报头中的源和目的IP地址字段的网络号部分设为0。 这样网络上的目的节点(通常为路由器)接收到该请求后, 填写好网络的屏蔽码向源节点回送响应报文。,6.2.3 传送层 传送层的主要功能是在站点间建立端到端的连接和事务处理, 在进程之间提供可靠的和有效的传输服务。 TCP/IP的传送层提供了两个主要的协议: 传输控制协议TCP(Transmission Control Protocol)和用户数据报协议UDP(User Datagram Protocol)。,6.2.3.1 TCP协议 TCP协议主要功能是在高层协议ULP(Upper Level Protocol)之间提供面向连接的传输服务, 这种传输服务提供一种可靠的进程间通信机制。 一次数据传输分为三个阶段: 建立连接、 数据传输和终止连接。,1. TCP报文格式,图 6.6 TCP报文格式,表 6.2 TCP 报 头 说 明,2. 序号 在每个TCP连接上传送的每个数据字节都有一个与之相对应的序号, 这是TCP协议的重要概念之一。以字节为单位递增的TCP序号主要用于数据排序、 重复检测、带重传的正向确认和流量控制窗口等TCP协议机制上, 使得传输每一个字节数据都是可靠的。 TCP报头中的序号字段为4个字节, 表示的序号空间范围为 02321, 因此发送字节的序号编码算法都要以232为模。 TCP序号不仅用于保证数据传送的可靠性, 还用于保证建立连接(SYN请求)和拆除连接(FIN请求)的可靠性, 每个SYN和FIN报文都要占一个单位的序号空间。,3. 建立和拆除连接 在TCP协议中, 建立连接要通过“三次握手”机制来完成。所谓“三次握手”是一种建立连接的同步机制。例如, TCP实体A使用SYN报文向TCP实体B发出建立连接的请求, TCP实体B接收到该请求后, 如果同意连接, 便发送ACK报文给予确认, 该报文同时携带SYN请求, TCP实体A也要通过发送ACK报文对TCP实体B的SYN请求给予确认。这样, 两个TCP实体之间便建立起连接。在建立连接过程中, 如果出现异常情况, 如本地同步请求与过去遗留在网络中的同步连接请求序号相重复、因系统异常使通信双方处于非同步状态等, 则发现异常情况的一方要发送RST报文通知对方进行异常处理。,拆除连接也是一个三次握手的同步过程, 由通信双方共同完成。当一方无数据发送给对方时, 可以使用FIN报文向对方发出拆除连接请求。这时, 它虽然不再发送数据, 但可以在这个连接上继续接收数据。只有当对方也发出了请求拆除连接的FIN报文后, 这个TCP连接才会完全拆除。每个FIN报文都要求对方使用ACK报文给予确认。 在建立连接或拆除连接时, 既可以由一方发起而另一方响应, 也可以双方同时发起, 但都要经历三次握手的同步过程。,4. 数据流量控制 一旦连接建立起来后, 通信双方就可以使用该连接传输数据了。在数据传输过程中, TCP协议采用一种 “窗口” 机制来控制数据流量, 使接收方TCP实体能够根据自己当前缓冲区容量来控制发送方TCP实体传送的数据量。流量控制实际上反映了信道容量和接收缓冲区容量的有效利用和动态分配问题。 TCP采用的是一种称为信用证的窗口机制, 主要通过TCP段中的窗口字段和确认号字段实现的。窗口对应于一个TCP实体可接收数据的序号空间, 确认号表示它所希望接收的下一个数据字节的序号。,在建立连接时, 双方使用SYN段或ACK段中的窗口字段捎带着相互通告各自的窗口大小, 即发放信用证。 在数据传输过程中, 发送方按接收方通告的窗口尺寸和序号发送一定的数据量。接收方可根据接收缓冲区的使用状况动态地调整接收窗口, 并在发送数据段或确认段时捎带着将新的窗口尺寸和起始序号(在确认号字段中指出)通告给发送方。 发送方将按新的起始序号和新的接收窗口尺寸来调整发送窗口, 接收方也用新的起始序号和新的接收窗口大小来验证每一个输入数据段的可接受性。,5. PUSH操作 在一个TCP连接上进行正常数据传送过程中, 发送方TCP会以自己的方式来分段和发送ULP递交的数据。对于递交了该数据的ULP来说, 在数据发送完成之前是无法知道数据发送状态 (是正在发送, 还是因等待一个合适的窗口而被延迟发送) 的。 PUSH(推进)功能为ULP提供一种强制的数据发送机制, 使得ULP递交的数据能够迅速地从本地推向远地, 而不受当前发送窗口大小和发送方的发送方式的限制。,当发送方TCP收到ULP的PUSH操作请求后, 会在流量控制允许的范围内进行数据分段并发送本地TCP缓冲区中所有的数据(TCP段头中的PSH标志位被置位)。当接收方TCP收到带有PSH标志的TCP数据段后, 会迅速将这些数据段递交给ULP, 并结束ULP当前的接收命令。 发送方和接收方TCP实体对于连续的推进, 并不保证各个推进边界, 可以把若干推进单元合成一个推进单元来发送和接收。 发送方TCP可以把常规数据和推进数据混合发送, 但常规数据只能放在推进数据之前。,6 . 紧急数据 为了给ULP之间提供一种紧急信息的快速传递机制, TCP允许在一个TCP段中携带紧急数据(Urgent Data)发送。紧急数据必须位于数据段中所有数据的最前端, 并在TCP段头中设置如下字段: 设置URG标志位, 表示当前数据段中携带有紧急数据。 设置紧急指针。紧急指针与当前输出段的序号之和便指向数据流中紧急数据最后一个字节。对于一个包含该字节的数据段来讲, 其紧急数据长度从段序号开始一直延续到该字节为止。,7 . 端口地址 TCP协议提供了一组称为端口(Port)的地址集, 使得单一主机上多个ULP可以通过不同的端口号同时使用单一TCP实体进行通信, 这种通过端口号共享单一TCP实体的功能称为TCP多路复用。 TCP实体对端口号的选取都是独立的, 为了保证通信连接的惟一性, 本地TCP实体只需保证本地端口号的惟一性即可。网间唯一的IP地址和本地唯一的端口号便惟一地确定了通信连接的一个端点, 这种地址标识也称套接字(Socket)。 一个本地套接字可以同时与多个远地套接字建立通信连接。,8. TCP的优先级和安全性 TCP协议的优先级和安全性参数由TCP实体的上层协议指定, 并通过IP协议的选项操作传送给远地通信实体。TCP的安全性参数包括安全性、分隔域、用户组和处理限制。 TCP的安全性和优先级是可选的功能, 在一些TCP/IP的实现中并不支持优先级和安全性机制。 当远地TCP实体收到的安全性参数与建立连接时所协商的参数值不相匹配时, 或者收到的优先级参数低于协商值时, 远地TCP将通过复位(RST)报文复位已建立的连接。,6.2.3.2 UDP协议,1. UDP报文格式,图 6.7 UDP报文格式,0 15 16 31,源端口号为发送端的UDP端口号, 支持UDP多路复用机制。 它是一个可选的字段, 不用时设为0。 目的端口号为接收端的UDP端口号, 支持UDP多路复用机制。 报文长度包括UDP报头和数据在内的报文长度, 以字节为单位, 最小值为 8 (报头长度)。 校验和的计算对象包括伪协议头、 UDP报头和数据。 校验和是可选字段, 该字段为 0 时, 表示发送端没有为该UDP数据报提供校验和。,2. UDP发送与接收 UDP数据报是通过IP协议发送或接收的。 网间寻址由IP地址完成, 进程间寻址则由UDP端口来实现。 当发送数据时, UDP实体构造好一个UDP数据报后递交给IP协议, IP协议要将整个UDP数据报封装在IP数据报中, 即加上IP报头, 形成IP数据报发送到网上。,在接收数据时, UDP实体首先判断接收到的数据报的目的端口是否与当前使用的某端口相匹配。如果匹配, 则将数据报放入相应的接收队列; 否则, 丢弃该数据报, 并向源端发送一个“端口不可达”的ICMP报文。此外, 当接收缓冲区已满时, 即使是端口匹配的数据报也要丢弃。 UDP在计算校验和时要包括一个伪协议头, 它不是UDP数据报的有效成分, 主要用于验证UDP数据报是否正确地传送到目的地。 伪协议头包含有源IP地址、目的IP地址、协议号和UDP报长等字段, 有关信息来自于IP报头。,6.2.3.3 传送层端口,传送层的重要功能之一就是提供了面向进程的通信机制。 因此, 传送层协议必须提供某种方法来标识进程。TCP/UDP协议采用端口(Port)概念来标识通信进程。端口相当于OSI传输层的服务访问点(TSAP), 它是一种抽象的软件结构, 内部包含一些数据结构和I/O缓冲区。进程通过系统调用与某个或某些端口建立联系后, 就可以使用相应的端口来传输数据了。 另一方面, 端口又是进程访问传输服务的入口点, 它提供了多个进程共享同一端口的多路复用功能。每个端口都使用惟一的端口号来标识, 进程的通信主要表现在对端口的操作, 通过端口号来获取相应的端口, 然后进行端口的读写操作。这样, 进程间的通信操作如同一般的I/O操作, 以程序员熟悉的方式进行, 简化了网络应用程序的编程。,TCP和UDP协议的端口号值均是 16 位, 分别可以提供216个不同的端口。那么以什么样的规则来使用这些端口号才能在不同主机的进程间进行通信呢? 这就是端口号的分配问题。 TCP和UDP协议将端口号分为两部分。一部分是保留端口, 占全部端口号的一小部分, 以全局方式分配。这些端口就是所谓的“周知”端口, 由有关的权威机构分配。 TCP和UDP都有自己的保留端口, 而且都是从 0 开始顺序向上分配的。 另一部分是自由端口, 占全部端口号的绝大部分, 以本地方式分配。当一个进程与另一个进程通信之前, 该进程首先申请一个本地自由端口, 然后再用已知的远地端口(周知端口或自由端口)与远地进程建立联系, 并进行数据传输。,6.3 IP v6 协 议,6.3.1 IP v6报文格式,图 6.8 IP v6报头格式,IP v6报头各个字段意义如下: 版本号: 4位, 表示IP协议的版本号, IP v6版本取值为6; 优先级: 4位, 表示该数据报的优先级; 流标识: 24位, 与优先级一起共同标识该数据报的服务质量级; 载荷长度: 16位, 表示有效载荷长度(以字节为单位); 后续报头: 8位, 标识紧接在IP v6后的后续扩展报头的类型; 步跳限制: 8位, 允许数据报跨越路由器的个数, 表示该数据报在网间传输的最大存活时间; 源IP地址: 128位, 发送数据报的源主机IP地址; 目的IP地址: 128位, 接收数据报的目的主机IP地址。,图 6.9 一个带有多个扩展报头的IP v6数据报中的例子,6.3.2 IP v6地址格式,在IP v4中, 32位的IP地址被分成网络地址和主机地址两部分, 根据不同的地址类别, 网络地址和主机地址所分配的位数是不同的。 这种地址分配方法的缺陷是不够灵活。 IP v6对128位的地址没有作类别限制, 允许服务提供者根据实际需要进行地址划分。IP v6的标准地址格式为X:X:X:X:X:X:X:X, 每个X为16位。 在IP v6地址中, 允许出现连续的0, 并可用“:”表示, 但一个地址中只能出现“:”一次, 这样对连续多组X为0的地址起到一定的压缩作用。 IP v6地址使用了地址前缀(FP)概念, 用来表示该地址的前几位, 并用X/Y形式表示, 其中X是地址前缀, Y是地址前缀的位数。例如, 5D4C:0000:/16表示其地址前缀为5D4C。,1. 单播地址 单播地址惟一地标识一个接口, 以该类地址传送的数据报将交付给该地址对应的接口。 IP v6定义了多种单播地址格式, 如完整用户单播地址、 NSAP(网络层服务访问点)地址、 基于地理区域的地址、局部地址、与IP v4兼容的地址以及其它保留地址类型。 图6.10是完整单播地址格式, 其中:,图 6.10 完整的单播地址格式,前3位是该地址类型的标识符; REG ID是Internet服务提供者的注册标识符; PROV ID为提供者标识符; SUBSC ID用于标识多个提供者所管理的用户; SUBNET ID用于标识一个指定的子网; INTERFACE ID用于标识一个单一接口。,如果INTERFACE ID是一个接口的全局惟一标识符, 则可用它实现地址的自动生成。 例如, 一个节点通过监听路由器广播消息而发现了子网前缀, 则可用IEEE 802 MAC地址作为INTERFACE ID来构造一个完整的IP v6地址。 局部地址用于定义子网中的局部网络, 局部网络在未接入Internet之前可用局部地址进行访问操作。如果该局部网络要接入Internet, 可加入地址前缀(REG IDPROV IDSUBSC ID), 形成完整的Internet地址。 由于IP v4相当普及, 即使IP v6将来被推广使用, IP v4与IP v6也会长期处于共存的局面。因此, 必须实现两种地址格式之间的转换。 IP v4节点将分为只适用于IP v4和兼容IP v6两种节点。 为此, IP v6定义了两种相应的地址类型。对于兼容IP v6的节点, 当接收到IP v6数据报时, 可利用隧道技术对IP v6数据报再封装, 或者通过对IP报头的转换来实现地址信息转换。,2. 多播地址 多播地址标识了一组接口, 以该地址类型传送的数据报将交付给该地址对应的所有接口。 IP v6未定义广播(broadcast)地址类型, 它可利用多播地址来实现。,3. 任播地址 任播地址标识了一组接口, 即该地址被分配给多个接口, 当一个数据报发送给该地址时, 只有按照路由协议计算出的最近的接口才接受该数据报。 这种地址方式可用于标注一组服务提供者所对应的路由器, 发送者利用路由扩展报头, 将任播地址作为一个路由序列的一部分, 从多个服务提供者中挑选一个来完成数据报传送。,6.3.3 IP v6路由选择 路由器的基本功能是存储转发数据报。 在转发数据报时, 路由选择算法将根据数据报的地址信息查找路由选择表, 选择一条可到达目的站点的路径。 路由选择表的维护和更新由路由协议来完成。 IP v6的路由选择是基于地址前缀概念实现的, 这样可以很方便地建立层次化的路由选择关系, 服务提供者可以根据网络规模来汇聚IP地址, 充分利用IP地址空间。 IP v6中的路由协议尽量保持了与IP v4相一致, 当前Internet的路由协议稍加修改后便可用于IP v6路由。,6.3.4 IP v6安全机制 IP v6利用扩展报头提供了两种安全机制: 数据报安全认证和数据加密传输。 这两种安全机制是分离的, 可单独使用, 也可一起使用。 同时, IP v6还允许高层采用其它的安全体系来实现多层安全体系。 数据报安全认证。 它保证数据报的完整传输和源地址的正确性, 但它不提供信息保密性。其工作机制是: 发送方根据数据报的报头、 有效载荷和用户信息等计算出一个值, 接收方也根据接收数据报的相同字段信息计算出一个值, 若二者相同, 接收方认为该数据报正确;若二者不等则丢弃该数据报。, 数据加密传输。 它采用数据加密方式提供数据传输的保密性。 其工作机制是: 发送方对整个数据报进行加密, 生成安全有效载荷(ESP), 并在ESP上重新封装一个IP v6报头后, 再进行传输。当接收方接收到该数据报后, 删除封装报头, 再对ESP解密后的数据报进行处理。 封装报头支持多种加密算法, 使用户有较大选择余地。,6.3.5 IP v6的移动性,图6.11 移动主机通信,6.3.6 IP v6的QoS支持 IP v6报头中的优先级和流标识字段提供了QoS支持机制。 IP v6报头的优先级字段允许发送端根据通信业务的需要设置数据报的优先级别。 通常, 通信业务被分为两类: 可流控业务和不可流控业务。 前者大多数是对时间不敏感的业务, 一般使用TCP协议作为传输协议, 当网络发生拥挤时, 可通过调节流量来疏导网络交通, 其优先级值从1到7。 后者大多数是对时间敏感的业务, 如多媒体实时通信, 当网络发生拥挤时, 则按照数据报优先级对数据报进行丢弃处理来疏导网络交通, 其优先级值从8到15。,数据流是指一组由源端发往目的端的数据报序列。 源节点使用IP v6报头的流标识符来标识一个特定数据流。当数据流途经各个路由器时, 如果路由器具备流标识处理能力, 则为该数据流预留资源, 提供QoS保证; 如果路由器不具备这种能力, 则忽略流标识, 不提供任何QoS保证。 可见, 在数据流传输路径上, 各个路由器都应当具备QoS支持能力, 这样网络才能提供端到端的QoS保证。通常, IP v6应当和RSVP之类的资源保留协议一起使用, 才能充分发挥应有的作用。,6.4 RSVP 协 议,图6.12 RSVP工作原理,6.4.1 Internet综合服务,综合服务是在源端和目的端之间所建立的传输路径上为数据流提供端到端的QoS保证, 并且数据流所经过的各个路由器(或交换机)都要支持这种服务。 在路由器上, 通过为特定数据流保留资源(如带宽和缓冲区空间)提供所承诺的QoS。 路由器在分配资源时需要考虑链路层对QoS的支持能力。 对于QoS主动链路层(如ATM或某些LAN), 路由器负责与链路层协商, 使链路层能够设置合适的QoS。 这种链路层QoS的映射与具体的网络媒体有关, IETF有关工作组提出了有关的映射机制。 对于QoS被动链路层(如专线), 这种映射是没有意义的, 因为网络本身没有提供相应的支持机构。 ,1. 保证服务 GS为合法的数据分组提供一种保证的带宽级、恒定的端到端延迟范围和无排队丢失的服务。这种服务具有很高质量, 主要用于有严格实时传输需求的场合, 如多媒体会议, 远程医疗诊断等。 这类应用通常使用“回放”缓冲器, 不允许声音或图像信息延迟到回放时间之后到达。 在数据流传输路径上的每个路由器, 通过分配一个带宽R和数据流可能占用的缓冲区空间B为特定的数据流提供保证服务。这里采用一种漏桶流量模型和算法来限制排队延迟, 构造该模型所需的参数是由Path报文中的传送说明Tspec和Resv报文中的保留说明Rspec提供的。Tspec和Rspec分别提供如下参数:,Tspec参数: 数据流峰值速率p(bytes /s) 桶深b(bytes) 漏桶速率r(bytes /s) 最小管理单元m (bytes)3 最大数据报长度M(bytes) Rspec参数: 带宽R(bytes /s) 时隙S(ms),在理想模型中, 数据流的排队延迟限制定义为:Qdb/R(Rr)。 在路由器中, 近似模型与理想模型之间存在一定的偏差, 需要引入两个偏差项C和D。 这样数据流的排队延迟限制定义为: Qd(b/R)+(C/R)+D (Rr)。 考虑到Tspec和Rspec各个参数对排队延迟的影响, 更精确的端到端排队延迟限制定义为:,(pRr),(Rpr),2. 被控负载服务 CLS提供的是有一定延迟量和数据丢失的服务, 但延迟和丢失被限制在一个合理范围内, 并且数据流的传输特性并不随着网络负载的增加而明显降低, 仍保持在一个稳定的级别上。CLS主要用于允许有一定延迟和丢失的实时传输场合, 如远程多媒体点播。 CLS通过Tspec参数控制网络延迟和数据丢失, 提供一种相当于轻负载的传输特性。 一旦发送者和接收者之间协商好QoS(GS或CLS)级后, 就可以进行数据流传输了。在数据流传输过程中, 每个数据分组都必须符合已定义的Tspec。否则, 路由器将按非法分组处理。 对于非法的数据分组, 路由器可以有选择地降低QoS级, 以最佳效果方式传输, 并且采取适当的服务策略和更新动作来保证非法数据流不会影响正在传输数据流的QoS。,综上所述, 在RSVP中, 可将QoS分成三类: 确定型QoS(如GS), 必须严格保证QoS; 统计型QoS(如CLS), 允许QoS有一定范围的波动; 尽力型QoS(如最佳效果传输), 不提供任何QoS保证。 路由器将按GS、 CLS及最佳效果传输的优先次序分配系统资源。,6.4.2 RSVP报文格式,图 6.13 RSVP报文公共头格式,版本号: 4位, 说明RSVP协议的版本号, 目前的版本号为1。 标志: 4位, 目前尚未定义标志位。 报文类型: 8位, 目前定义了7种报文: 1=Path, 2=Resv, 3=PathErr, 4=ResvErr, 5=PathTear, 6=ResvTear, 7=ResvConf。 报文检查和: 16位, 用于保证报文传输的正确性。 报文生存期: 8位, 发送报文所使用的IP生存时间值。 报文长度: 16位, 以字节表示的RSVP报文总长度。,报文体是用对象表示的, 每个对象的第一个32位字段是对象头, 其格式如图6.14所示, 其中:,图 6.14 RSVP对象格式,对象长度: 16位, 以字节表示的对象长度, 且必须是4的倍数。 对象类编号: 8位, 标识对象类, 每个对象类有一个对象名, 且必须是大写。常用的对象类有: SESSION(会话), RSVP-HOP(RSVP段),TIME-VALUES(时间值), STYLE(风格), FLOWSPEC(流说明) ,FILTER(过滤器说明), SENDER-TSPEC(发送者传送说明), ERROR-SPEC(差错说明), INTEGRITY(完整性), SCOPE(作用范围), RESV-CONFIRM(保留确认)等。 对象类型: 8位, 通常和对象类编号一起使用, 定义了对象类型。 对象内容: 定义了对象的内容, 最大长度为65 528个字节。,6.4.3 发送者的Path报文 RSVP规定, 发送者在发送数据前首先要发送Path报文与接收者建立一个传输路径, 并协商QoS级。 一个Path报文包含有如下的信息。 Phop: 后续节点地址, 指出转发该Path消息的下一个支持RSVP节点(路由器或接收端)的IP地址。 该路径上每个支持RSVP的路由器都要更新这个地址。 Sender Template: 发送者模板, 包括发送者的IP地址和可选择的发送者端口。, Sender Tspec: 发送者传输说明, 其传输说明是用一种漏桶流量模型描述的, 其中有数据流峰值速率p、桶深b、标记桶速率r、 最小管理单元m以及最大数据报长度M等参数。 Adspec: 通告说明, 可选项, 含有OPWA(One Pass With Advertising)信息, 使得接收者能计算出应保留的资源级, 以获得指定的端到端QoS。 该路径上每个支持RSVP的路由器都要更新这些信息。,1. 缺省通用参数段 DGP段包含如下字段: 最小路径等待时间。它是指在路径上单个连接等待时间的累加和, 表示无任何排队延迟的端到端等待时间。在GS中, 接收者可以使用该值计算端到端排队延迟限制以及所有端到端延迟限制。 路径带宽。 它是指在路径上单个连接带宽的最小值。 全局中止位。 它是一个标志位。 发送者创建Adspec时, 该位置0。 当路径上任何不支持RSVP的路由器都可将该位置1, 以通知接收者Adspec是无效的。 综合服务(IS)网段(hop)计数。 在路径上每个支持RSVP/IS的路由器都将该值加1。 路径最大传输单元(PathMTU)。 它是指在路径上单个连接最大传输单元(MTU)的最小值。,2. 保证服务(GS)段 Adspec的GS段包含如下字段: Ctot。 端到端偏差项C的总和。 Dtot。 端到端偏差项D的总和。 Csum。 自上次刷新点开始C的总和。 Dsum。 自上次刷新点开始D的总和。 偏差项C和D是由漏桶流量模型引入的, 表示路由器的近似模型与理想模型之间所允许的偏差。在分布树的某些点上, Csum和Dsum被用于刷新处理。,GS中止位。 它是一个标志位。 发送者创建Adspec时, 该位置0。当路径上任何支持RSVP/IS但不支持GS的路由器都可将该位置1, 以通知接收者Adspec是无效的, 服务得不到保证。 GS通用参数头/值。它是一个选项。就接收者所希望的GS保留而言, 如果选择了其中的任何一个, 都会忽略DGP段所给定的相应值。,3. 被控负载服务(CLS)段 Adspec的CLS段包含如下字段: CLS中止位。 它是一个标志位。 发送者创建Adspec时, 该位置0。 当路径上任何支持RSVP/IS但不支持CLS的路由器都可将该位置1, 以通知接收者Adspec是无效的, 服务得不到保证。 CLS通用参数头/值。它是一个选项。与GS段一样, 它忽略DGP段所给定的特殊服务通用参数。,6.4.4 接收者的Resv报文 接收者接收到的Path报文后, 从Sender Tspec和Adspec字段中提取传输特性参数和QoS参数, 利用这些参数建立起接收者保留说明Rspec。 Rspec由如下参数组成:

温馨提示

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

评论

0/150

提交评论