《UDP协议》PPT课件.ppt_第1页
《UDP协议》PPT课件.ppt_第2页
《UDP协议》PPT课件.ppt_第3页
《UDP协议》PPT课件.ppt_第4页
《UDP协议》PPT课件.ppt_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

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

文档简介

第七章 用户数据报协议UDP RFC768 TCP/IP详解卷1:CH11、CH12、CH13,主要内容,7.1 运输层协议概述 7.2 用户数据报协议UDP 7.3 广播和多播 7.3 IGMP协议 课下作业,7.1 运输层协议概述,从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。,物理层,网络层,运输层,应用层,数据链路层,面向信息处理,面向通信,用户功能,网络功能,运输层为相互通信的应用进程提供了逻辑通信,5 4 3 2 1,运输层提供应用进程间的逻辑通信,主机 A,主机 B,应用进程,应用进程,路由器 1,路由器 2,AP1,LAN2,WAN,AP2,AP3,AP4,IP 层,LAN1,AP1,AP2,AP4,端口,端口,5 4 3 2 1,IP 协议的作用范围,运输层协议 TCP 和 UDP 的作用范围,AP3,运输层协议和网络层协议的主要区别,应用进程,应用进程,IP 协议的作用范围 (提供主机之间的逻辑通信),TCP 和 UDP 协议的作用范围 (提供进程之间的逻辑通信),因 特 网,运输层的主要功能,运输层为应用进程之间提供端到端的逻辑通信(但网络层是为主机之间提供逻辑通信) 运输层还要对收到的报文进行差错检测 运输层需要有两种不同的运输协议,即面向连接的 TCP 和无连接的 UDP。,运输层与其上下层之间的关系,运输实体,运输实体,运输协议,运输层,层接口,运输服务用户 (应用层实体),运输服务用户 (应用层实体),层接口,网络层 (或网际层),应用层,主机 A,主机 B,运输层服务访问点 TSAP,网络层服务访问点 NSAP,运输层向上提供可靠的和不可靠的逻辑通信信道,?,应 用 层,运 输 层,发 送 进 程,接 收 进 程,接 收 进 程,数据,数据,全双工可靠信道,数据,数据,使用 TCP 协议,使用 UDP 协议,不可靠信道,发 送 进 程,运输层的QoS参数,连接建立 连接建立时延 连接建立失败概率 数据传送 吞吐量 传送时延 残留误码率 数据安全性 优先级 连接释放 连接释放时延 连接释放失败概率,网络服务分类,A 型网络服务 可接受的残留差错率、可接受的可报告差错率; B 型网络服务 可接受的残留差错率、不可接受的可报告差错率;需要运输实体进行差错恢复; C 型网络服务 不可接受的残留差错率、不可接受的可报告差错率;需要运输实体进行差错检测和差错恢复;,运输层定义了5 个运输协议类,运输层采取的技术措施,复用/解复用 目的:当网络层服务质量(吞吐量、传输延迟等)较好,而运输层用户要求不高时,可通过复用在满足运输用户要求的前提下降低费用。 定义:复用/解复用是指在一个网络连接上支持多个运输层连接。 分流/合流 目的:当网络层服务质量(吞吐量、传输延迟等)较差,而运输层用户要求较高时,可通过分流满足运输用户的要求(提高吞吐量,减少传输延迟)。 定义:分流/合流是指把一个运输连接上传送的会话数据映射到多个网络连接上传送,各网络连接可相互独立地并行传送。,运输服务原语,三个阶段 连接建立 数据传送 连接释放 4 种服务 TC 建立 正常数据传送 加速数据传送 TC 释放,12 种原语 TC 建立(4 种) 正常数据传送(4 种) 加速数据传送(2 种) TC 释放(2 种),用户数据运输服务原语时序,连接建立阶段(3 种可能) 成功建立连接、被叫用户拒绝、TS 提供者拒绝; 数据传送阶段(2 种可能) 正常数据传送、加速数据传送; 连接释放阶段(4 种可能) 一个用户发起的释放、两个用户同时发起的释放、TS 提供者发起的释放、TS 用户和提供者同时发起的释放;,TCP/IP 体系中的运输层协议,TCP,UDP,IP,应用层,与各种网络接口,运输层,两个对等运输实体在通信时传送的数据单位叫作运输协议数据单元 TPDU (Transport Protocol Data Unit) TCP 传送的协议数据单位是 TCP 报文段(segment) UDP 传送的协议数据单位是 UDP 报文或用户数据报,TCP 与 UDP,TCP 与 UDP,UDP 在传送数据之前不需要先建立连接。对方的运输层在收到 UDP 报文后,不需要给出任何确认。虽然 UDP 不提供可靠交付,但在某些情况下 UDP 是一种最有效的工作方式。 TCP 则提供面向连接的服务。TCP 不提供广播或多播服务。由于 TCP 要提供可靠的、面向连接的运输服务,因此不可避免地增加了许多的开销。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源。,端 口,端口就是运输层服务访问点 TSAP 端口是用来标志应用层的进程 由ICANN负责分配 端口用一个 16 bit 端口号进行标志 端口号只具有本地意义,端口在进程之间的通信中所起的作用,应 用 层,运 输 层,网 络 层,TCP 报文段,UDP 用户数据报,应用进程,TCP 复用,IP 复用,UDP 复用,TCP 报文段,UDP 用户数据报,应用进程,端口,端口,TCP 分用,UDP 分用,IP 分用,发送方,接收方,两类端口,熟知端口 其数值一般为 01023。当一种新的应用程序出现时,必须为它指派一个熟知端口。 一般端口 用来随时分配给请求通信的客户进程。,套接字socket,IP地址+Port套接字socket 一对套接字对应一对通信的进程 如:(,1500)和,25) (,1500)和(,25),常用的端口号,TCP,端口号,F T P,传输层,T E L N E T,D N S,S N M P,T F T P,S M T P,UDP,应用层,21,23,25,53,69,161,R I P,520,使用TCP和 UDP协议的各种应用和应用层协议,同一个名词 socket有多种不同的意思,应用编程接口 API 称为 socket API,简称为 socket。 socket API 中使用的一个函数名也叫作socket。 调用 socket 函数的端点称为 socket。 调用 socket函数时其返回值称为 socket描述符,可简称为 socket。 在操作系统内核中连网协议的 Berkeley 实现,称为 socket 实现。,7.2 用户数据报协议 UDP,UDP 只在 IP 的数据报服务之上增加了很少一点的功能,即端口的功能和差错检测的功能。 U D P不提供可靠性:它把应用程序封装后传给I P层,被IP层封装后发送出去,但是并不保证它们能到达目的地。 但 UDP 在某些方面有其特殊的优点: 发送数据之前不需要建立连接 UDP 的主机不需要维持复杂的连接状态表 UDP 用户数据报只有8个字节的首部开销 网络出现的拥塞不会使源主机的发送速率降低,这对某些实时应用是很重要的。,端口是用报文队列来实现,UDP 端口 51000,UDP 端口 69,出队列,入队列,出队列,入队列,TFTP 服务器,TFTP 客户,UDP 用户数据报,应 用 层,运 输 层,UDP被IP封装后的格式,端口号表示发送进程和接收进程。 长度UDP数据报的长度为多少字节 校验和防止UDP数据报在传输中出错,UDP的包格式,源端口 (16),目的端口 (16),长度 (16),数据(可变长),1,位 0,15,16,31,校验和 (16),8 字节,校 验 和,校验方式与IP数据包的首部校验一样 但: 校验范围为首部和数据 计算校验和时,在UDP数据报之前增加12字节的伪首部,伪首部只是在计算校验和时使用,既不向下传送,也不向上递交。 若数据是奇数字节,要在数据最后填充1个字节的0,伪首部,源端口,目的端口,长 度,检验和,数 据,首 部,UDP长度,源 IP 地址,目的 IP 地址,0,17,IP 数据报,字节,4,4,1,1,2,12,2,2,2,2,字节,发送在前,数 据,首 部,UDP 用户数据报,计算 UDP 检验和的例子,10011001 00010011 153.19 00001000 01101000 8.104 10101011 00000011 171.3 00001110 00001011 14.11 00000000 00010001 0 和 17 00000000 00001111 15 00000100 00111111 1087 00000000 00001101 13 00000000 00001111 15 00000000 00000000 0(检验和) 01010100 01000101 数据 01010011 01010100 数据 01001001 01001110 数据 01000111 00000000 数据和 0(填充) 10010110 11101101 求和得出的结果 01101001 00010010 检验和,04,1,12 字节 伪首部,8 字节 UDP 首部,7 字节 数据,二进制求和 求反码,全 0 17 15 1087 13 15 全 0 数据 数据 数据 数据 数据 数据 数据 全 0,注:,U D P的检验和是可选的,而T C P的检验和是必需的。 如果传送的检验和为0,说明发送端没有计算检验和。 如果发送端没有计算检验和而接收端检测到检验和有差错,那么U D P数据报就要被悄悄地丢弃,不产生任何差错报文。 U D P检验和选项在默认条件下是打开的 尽管U D P检验和是可选的,但是它们应该总是在用。 U D P数据报的长度在检验和计算过程中出现两次。,检测到不同检验和差错的分组统计结果,IP分片,把一份I P数据报分片以后,只有到达目的地才进行重新组装。 即使只丢失一片数据也要重传整个数据报。 因为I P层本身没有超时重传的机制由更高层来负责超时和重传,T C P有超时和重传机制,但U D P没有。 所以要避免分片 T C P试图避免分片,查资料,避免分片的措施,ICMP不可达差错(需要分片),当路由器收到一份需要分片的数据报,但I P首部中的 D F位又为1,则发生I C M P不可达差错。,不能分片时的ICMP不可达差错报文格式,用Traceroute确定路径MTU,尽管大多数的系统不支持路径MTU发现功能,但可以修改Traceroute程序,用它来确定路径MTU。 具体做法:发送分组,并设置“不分片”标志位。发送的第一个分组的长度正好与出口M T U相等,每次收到ICMP“不能分片”差错时就减小分组的长度。如果路由器发送的ICMP差错报文是新格式,包含出口的M T U,那么就用该MTU值来发送,否则就用下一个最小的MTU值来发送。MTU值的个数是有限的,因此在程序中构造一些由近似值构成的表,取下一个最小MTU值来发送。,最大UDP数据报长度,理论上,I P数据报的最大长度是6 5 5 3 5字节,这是由I P首部1 6比特总长度字段所限制的。 去除2 0字节的I P首部和8个字节的U D P首部, U D P数据报中用户数据的最长长度为6 5 5 0 7字节。 但是,大多数实现所提供的长度比这个最大值小。,主要原因: 1. 应用程序可能会受到其程序接口的限制。socket API提供了一个可供应用程序调用的函数,以设置接收和发送缓存的长度。对于UDP socket,这个长度与应用程序可以读写的最大U D P数据报的长度直接相关。现在的大部分系统都默认提供了可读写大于8 1 9 2字节的U D P数据报(使用这个默认值是因为8 1 9 2是N F S读写用户数据数的默认值)。 2. 因为T C P / I P的内核实现,存在一些实现特性(或差错),使I P数据报长度小于6 5 5 3 5字节。,ICMP源站抑制差错,同样也可以使用U D P产生I C M P“源站抑制(source quench)”差错。 当一个系统(路由器或主机)接收数据报的速度比其处理速度快时,可能产生这个差错。 “可能”:即使一个系统已经没有缓存并丢弃数据报,也不要求它一定要发送源站抑制报文。,ICMP源站抑制差错报文格式,对源站抑制的态度,尽管RFC 1009 要求路由器在没有缓存时产生源站抑制差错报文,但是新的Router Requirements RFC Almquist 1993 对此作了修改,提出路由器不应该产生源站抑制差错报文。由于源站抑制要消耗网络带宽,且对于拥塞来说是一种无效而不公平的调整,因此现在人们对于源站抑制差错的态度是不支持的。,7.3 广播和多播,广播和多播仅应用于U D P,协议栈各层对收到帧的过滤过程,广 播,受限的广播(本地广播) 55 直接广播 N-ID.主机号全1,广播与多播的比较,广播增加了对广播数据不感兴趣主机的处理负荷 多播减少了对应用不感兴趣主机的处理负荷,多 播,I P多播提供两类服务: 1) 向多个目的地址传送数据 2) 客户对服务器的请求 如无盘工作站,多播地址(D类地址),分配的28 bit均用作多播组号而不再表示其他,主机组,一个主机组可跨越多个网络 主机组中成员可随时加入或离开主机组 主机组中对主机的数量没有限制 不属于某一主机组的主机可以向该组发送信息,熟知组播地址(永久组),如: 2 2 4 . 0 . 0 . 1 该子网内的所有主机 2 2 4 . 0 . 0 . 2 该子网内的所有路由器 2 2 4 . 0 . 1 . 1 用作网络时间协议NTP 2 2 4 . 0 . 0 . 9 用作RIPV2 2 2 4 . 0 . 1 . 2 用作SGI公司的dogfight应用,D类IP地址到以太网多播地址的映射,I A N A拥有一个以太网地址块,即高位24 bit为0 0 : 0 0 : 5 e(十六进制表示),这意味着该地址块所拥有的地址范围从0 0 : 0 0 : 5 e : 0 0 : 0 0 : 0 0到0 0 : 0 0 : 5 e : ff : ff : ff。 I A N A将其中的一半分配为多播地址。 为了指明一个多播地址,任何一个以太网地址的首字节必须是0 1,这意味着与I P多播相对应的以太网地址范围从0 1 : 0 0 : 5 e : 0 0 : 0 0 : 0 0到0 1 : 0 0 : 5 e : 7 f : ff : ff。,地址映射的不唯一性,由于多播组号中的最高5 bit在映射过程中被忽略,因此每个以太网多播地址对应的多播组是不唯一的。 3 2 个不同的多播组号被映射为一个以太网地址。 例如:多播地址2 2 4 . 1 2 8 . 6 4 . 3 2(十六进制e 0 . 8 0 . 4 0 . 2 0)和2 2 4 . 0 . 6 4 . 3 2(十六进制e 0 . 0 0 . 4 0 . 2 0)都映射为同一以太网地址0 1 : 0 0 : 5 e : 0 0 : 4 0 : 2 0。,多播过滤,既然地址映射是不唯一的,那么设备驱动程序或I P层就必须对数据报进行过滤。 因为网卡可能接收到主机不想接收的多播数据帧。另外,如果网卡不提供足够的多播数据帧过滤功能,设备驱动程序就必须接收所有多播数据帧,然后对它们进行过滤。,局域网网卡趋向两种处理类型,一种是网卡根据对多播地址的散列值实行多播过滤,这意味仍会接收到不想接收的多播数据; 另一种是网卡只接收一些固定数目的多播地址,这意味着当主机想接收超过网卡预先支持多播地址以外的多播地址时,必须将网卡设置为“多播混杂(multicast promiscuous)”模式。,对多播的评价,尽管: 地址映射不完美 需要硬件过滤 但: 前景非常好,单个网多播和跨网多播,单个网多播 多播进程将目的I P地址指明为多播地址,设备驱动程序将它转换为相应的以太网地址,然后把数据发送出去。 跨网多播 需要有一个协议让多播路由器了解确定网络中属于确定多播组的任何一个主机,这个协议就是Internet组管理协议(IGMP)。,7.4 IGMP协议,RFC1112 IGMP封装在IP数据报中,IP首部中协议字段值为2。,IGMP报文,类型 为1是由多播路由器发出的查询报文 为2说明是主机发出的报告报文 组地址 在查询报文中组地址设置为0 在报告报文中组地址为要参加的组地址,加入一个多播组,在一个给定接口上的多播组中的成员是动态的它随时因进程加入和离开多播组而变化 进程必须以某种方式在给定的接口上加入某个多播组 一个主机通过组地址和接口来识别一个多播组。 主机必须保留一个表,此表中包含所有至少含有一个进程的多播组以及多播组中的进程数量。,IGMP 报告和查询,多播路由器使用IGMP报文来记录与该路由器相连网络中组成员的变化情况。使用规则如下: 1) 当第一个进程加入一个组时,主机就发送一个IGMP报告。如果一个主机的多个进程

温馨提示

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

评论

0/150

提交评论