网络原理与协议分析-第2单元-UDP:用户数据报协议_第1页
网络原理与协议分析-第2单元-UDP:用户数据报协议_第2页
网络原理与协议分析-第2单元-UDP:用户数据报协议_第3页
网络原理与协议分析-第2单元-UDP:用户数据报协议_第4页
网络原理与协议分析-第2单元-UDP:用户数据报协议_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、1要求:要求:1. 理解传输层解决的基本问题和作用理解传输层解决的基本问题和作用 2. 理解数据传输的最终目的地和端口的概念理解数据传输的最终目的地和端口的概念 3. 理解理解TCP/IP协议中的多路复用和分解问题协议中的多路复用和分解问题 4. 掌握掌握TCP/IP协议通信过程的五要素协议通信过程的五要素 5. 了解了解UDP通信的基本特点和报文格式通信的基本特点和报文格式 6. 了解了解UDP校验和的计算方法校验和的计算方法 2 动机分析动机分析基本问题基本问题网络网络1网络网络3网络网络n网络网络2RRR H2 Hn通信通信子网子网R54321应用进程应用进程IP 层AP1AP2AP45

2、4321AP33数据到达目的主机后,有两个基本问题:数据到达目的主机后,有两个基本问题:(1) 数据交给谁来处理?数据交给谁来处理?(2) 可靠性如何保障?可靠性如何保障? 动机分析动机分析基本问题基本问题2.1 传输层的引入传输层的引入45一、引入传输层的必要性一、引入传输层的必要性 传输层在应用层和传输层在应用层和IP层之间起着承上启下的作用,层之间起着承上启下的作用,它应该满足以下三个要求:它应该满足以下三个要求: (1) 传输层要提供比传输层要提供比IP层质量更高的服务层质量更高的服务 IP是一个无连接的投递系统,是一个无连接的投递系统,IP数据报在投递过程数据报在投递过程中会出现丢失

3、、延迟和乱序的情况。中会出现丢失、延迟和乱序的情况。 尽管尽管IP尽最大的努力尽最大的努力投递数据报,但它提供的服务投递数据报,但它提供的服务仍是仍是不可靠不可靠的。的。 对于应用程序而言,如果要求可靠性,有以下两种对于应用程序而言,如果要求可靠性,有以下两种解决途径:解决途径: 1、是由应用程序自身处理可靠性问题;、是由应用程序自身处理可靠性问题; 2、是加入新的协议模块专门处理可靠性问题。、是加入新的协议模块专门处理可靠性问题。增加规模和复杂性;代码重复增加规模和复杂性;代码重复6一、引入传输层的必要性一、引入传输层的必要性 (2) 传输层要提供识别应用层进程的机制传输层要提供识别应用层进

4、程的机制 两个主机在两个主机在IP层传递的对象是层传递的对象是IP数据报,它使用目数据报,它使用目的的IP地址作为传递的目的地,但一个地址作为传递的目的地,但一个IP地址标识的是到地址标识的是到一个网络的一条连接,而非主机上的应用程序。一个网络的一条连接,而非主机上的应用程序。 如果使用如果使用IP地址作为网间应用通信的最终目的地,地址作为网间应用通信的最终目的地,则无法区分同一主机上的多个应用。则无法区分同一主机上的多个应用。 因此,传输层应使用比因此,传输层应使用比IP地址更具体的标识符来标地址更具体的标识符来标识应用。识应用。7一、引入传输层的必要性一、引入传输层的必要性 (3) 传输层

5、要针对不同尺寸的应用层数据进行适当传输层要针对不同尺寸的应用层数据进行适当的处理的处理 对于大尺寸数据,如大型文件、音频或视频等数对于大尺寸数据,如大型文件、音频或视频等数据应进行划分,以便于在网络上传输;据应进行划分,以便于在网络上传输; 对于小尺寸数据,则应进行合并以提高网络利用对于小尺寸数据,则应进行合并以提高网络利用率。率。8二、传输层的作用二、传输层的作用 承上启下,承上启下, “加强加强”和和“弥补弥补”通信子网服务通信子网服务 特色:提高可靠性特色:提高可靠性 加强:加强:对服务质量(对服务质量(Quality of Service,QoS)而言,)而言,指提高服务的可靠性指提高

6、服务的可靠性 弥补:弥补:对服务类型而言,要提供端到端进程通信对服务类型而言,要提供端到端进程通信9端到端进程通信端到端进程通信 两个主机进行通信实际上就是两个主机中的两个主机进行通信实际上就是两个主机中的应用进应用进程互相通信程互相通信。 应用进程之间的通信又称为应用进程之间的通信又称为端到端的通信端到端的通信。 “传输层提供应用进程间的逻辑通信传输层提供应用进程间的逻辑通信”。传输层向传输层向高层用户屏蔽了下面网络核心的细节(如网络拓扑、所高层用户屏蔽了下面网络核心的细节(如网络拓扑、所采用的路由选择协议等)采用的路由选择协议等) ,它使应用进程看见的就是,它使应用进程看见的就是好像在两个

7、传输层实体之间有一条端到端的逻辑通信信好像在两个传输层实体之间有一条端到端的逻辑通信信道。道。 但事实上这两个传输层之间并没有一条水平方向但事实上这两个传输层之间并没有一条水平方向的物理连接。的物理连接。54321应用进程应用进程IP 层AP1AP2AP454321AP310传输层提供应用进程间的逻辑通信传输层为相互通信的应用进程提供了逻辑通信 从本质上说,由物理层、数据链路层和网络层组成的从本质上说,由物理层、数据链路层和网络层组成的通信子网为网络环境中的主机提供通信子网为网络环境中的主机提供点到点点到点的服务,而的服务,而传输层为网络中的主机提供传输层为网络中的主机提供端到端端到端的通信。

8、的通信。 点到点:对等实体间的通信由一段一段直接相连的机点到点:对等实体间的通信由一段一段直接相连的机器间的通信组成;器间的通信组成; 端到端:对等实体间的通信像拥有一个直接线路。端到端:对等实体间的通信像拥有一个直接线路。 11二、传输层的作用二、传输层的作用 TCP/IP协议族重要的两类传输层协议:协议族重要的两类传输层协议: (1) 用户数据报协议(用户数据报协议(User Datagram Protocol,UDP) 当传输层采用无连接的当传输层采用无连接的UDP协议时,这种逻辑通信协议时,这种逻辑通信信道是一条信道是一条不可靠信道不可靠信道。 (2) 传输控制协议(传输控制协议(Tr

9、ansmission Control Protocol,TCP) 当传输层采用面向连接的当传输层采用面向连接的TCP协议时,尽管下面的协议时,尽管下面的网络是不可靠的(只提供尽最大努力服务),但这种逻网络是不可靠的(只提供尽最大努力服务),但这种逻辑通信信道就相当于一条全双工的辑通信信道就相当于一条全双工的可靠信道可靠信道。传输层协议和网络层协议的主要区别 应用进程应用进程IP 协议的作用范围(提供主机之间的逻辑通信)TCP 和 UDP 协议的作用范围(提供进程之间的逻辑通信)因 特 网1213三、数据的最终接收者三、数据的最终接收者 传输层要提供端到端的进程通信。传输层要提供端到端的进程通信

10、。 1、能不能把、能不能把进程进程作为通信的最终目的地?作为通信的最终目的地? 为了使运行不同操作系统的计算机的应用进程能为了使运行不同操作系统的计算机的应用进程能够互相通信,就必须够互相通信,就必须用统一的方法用统一的方法对对TCP/IP体系的应体系的应用进程进行标志。用进程进行标志。 由于进程的创建和撤销都是由于进程的创建和撤销都是动态动态的,发送方几乎的,发送方几乎无法识别其他机器上的进程。无法识别其他机器上的进程。 有时接收方会有时接收方会改换改换接收报文的进程,但并不需要接收报文的进程,但并不需要通知所有发送方。通知所有发送方。14三、数据的最终接收者三、数据的最终接收者为每个协议按

11、为每个协议按用户可能要求用户可能要求的服务种类设的服务种类设置一些抽象的置一些抽象的访问目的点访问目的点协议协议.PP操作系统提操作系统提供相应机制,供相应机制,创建或唤醒创建或唤醒相应进程来相应进程来处理相应端处理相应端口数据口数据数据报数据报端口:端口:用一个用一个16bit的正整数标识,的正整数标识,称为端口号称为端口号端口的数据管理:端口的数据管理:每一端口有一缓冲每一端口有一缓冲区来存放进出该端口的数据队列区来存放进出该端口的数据队列P2、抽象方法、抽象方法用协议的端口作为最终目的地用协议的端口作为最终目的地软件端口与硬件端口n在协议栈层间的抽象的协议端口是软件端口。n路由器或交换机

12、上的端口是硬件端口。n硬件端口是不同硬件设备进行交互的接口,而软件端口是应用层的各种协议进程与传输实体进行层间交互的一种地址。 1516交换机的硬件端口三类端口 n知名端口,数值一般为 01023。n登记端口号,数值为102449151,为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须在因特网编号授权委员会(IANA) 登记,以防止重复。n客户端口号或短暂端口号,数值为49152 65535,留给客户进程选择暂时使用。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用。 17183、如何获得端口号:、如何获得端口号:

13、源源 端端 口:口:没有问题没有问题 目的端口:目的端口: 1. 集中式统一指派集中式统一指派 (知名端口)(知名端口) 2. 动态指派动态指派 当一个应用程序需要使用端口时,网络软件就当一个应用程序需要使用端口时,网络软件就指定一个端口。为了知道另一台机器上的当前端口指定一个端口。为了知道另一台机器上的当前端口号,就必须送出一个请求报文,然后目的主机进行号,就必须送出一个请求报文,然后目的主机进行回答,把正确的端口号送回来。回答,把正确的端口号送回来。端口只具有本地意义。在因特网的不同端口只具有本地意义。在因特网的不同计算机中,相同的端口号是没有关联的。计算机中,相同的端口号是没有关联的。1

14、9 传输层的一个很重要的功能就是传输层的一个很重要的功能就是复用复用和和分解分解。 应用层不同进程的报文通过不同的端应用层不同进程的报文通过不同的端口向下交到传输层,再往下就共用网络层口向下交到传输层,再往下就共用网络层提供的服务。提供的服务。20 帧到达帧到达 基于帧类型的多路分解基于帧类型的多路分解 1 2 65535 1 2 65535 ARP 0806H RARP 0835H IP 0800H ICMP 01H TCP 06H UDP 11H 以太网帧类型以太网帧类型 IP协议域协议域 21 (1)目的目的IP地址地址:要与之进行数据通信的目的:要与之进行数据通信的目的主机所在位置。主

15、机所在位置。 (2)目的端口号目的端口号:定位远程主机进行数据交换:定位远程主机进行数据交换的进程。的进程。 (3)源源IP地址地址:数据的发送方,通过这个要素:数据的发送方,通过这个要素让远程主机系统知道对等通信的主机。让远程主机系统知道对等通信的主机。 (4)源端口号源端口号:通过这个来定位本地处理通信:通过这个来定位本地处理通信数据的进程。数据的进程。 (5)协议协议:定位具体的通信协议。:定位具体的通信协议。2.2 UDP:无连接的用户:无连接的用户数据报协议数据报协议22一、面向报文的UDPn发送方UDP对应用程序交下来的报文,在添加首部后就向下交付IP层。UDP对应用层交下来的报文

16、,既不合并,也不拆分,而是保留这些报文的边界。n应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。n接收方UDP对IP层交上来的UDP用户数据报,在去除首部后就原封不动地交付上层的应用进程,一次交付一个完整的报文。n应用程序必须选择合适大小的报文。23UDP是面向报文的 IP数据报的数据部分IP首部IP 层UDP首部UDP用户数据报的数据部分传输层应用层报文应用层24二、UDP概述 nUDP只在IP的数据报服务之上增加了很少一点的功能,即端口的功能和差错检测的功能。n虽然UDP用户数据报只能提供不可靠的交付,但UDP在某些方面有其特殊的优点。25UDP的主要特点 nUDP是无连

17、接的,即发送数据之前不需要建立连接。nUDP使用尽最大努力交付,即不保证可靠交付。nUDP是面向报文的。UDP没有拥塞控制,很适合多媒体通信的要求。 nUDP支持一对一、一对多、多对一和多对多的交互通信。nUDP的首部开销小,只有 8 个字节。 26三、UDP的首部格式 27伪首部源端口目的端口长 度检验和数 据首 部UDP长度源 IP 地址目的 IP 地址017IP 数据报字节44112122222字节数 据首 部UDP 用户数据报发送伪首部源端口目的端口长 度检验和数 据首 部UDP长度源 IP 地址目的 IP 地址017IP 数据报字节44112122222字节发送数 据首 部UDP 用

18、户数据报用户数据报UDP有两个字段:数据字段和首部字段。首部字段有 8 个字节,由 4 个字段组成,每个字段都是两个字节。 28在计算检验和时,临时把“伪首部”和 UDP 用户数据报连接在一起。那么,伪首部的作用?l 可保证可保证UDP数据单元到达正确的目的地址数据单元到达正确的目的地址 l 使得使得UDP能够防止出现路由选择错误的数据段能够防止出现路由选择错误的数据段 29伪首部源端口目的端口长 度检验和数 据首 部UDP长度源 IP 地址目的 IP 地址017IP 数据报字节44112122222字节发送数 据首 部UDP 用户数据报30四、四、UDP校验和的计算校验和的计算 校验的内容:

19、校验的内容: 首部首部 + 数据区数据区 为保证正确到达,对源、目标为保证正确到达,对源、目标IP也要校验也要校验 计算校验和的部分:计算校验和的部分: 生成伪首部,将伪首部、首部、数据区一起校验生成伪首部,将伪首部、首部、数据区一起校验31发送方计算校验和的过程:发送方计算校验和的过程: 1、首先是先把全零放入校验和字段、首先是先把全零放入校验和字段 2、再把伪首部以及、再把伪首部以及UDP用户数据报看成是由许多用户数据报看成是由许多16位的字串接起来位的字串接起来 若若UDP用户数据报的数据部分不是偶数个字节,则用户数据报的数据部分不是偶数个字节,则需填入一个全零字段(但此字节并不发送)需

20、填入一个全零字段(但此字节并不发送) 3、然后按二进制反码计算出这些、然后按二进制反码计算出这些16位字的和位字的和接收方校验:接收方校验: 当无差错时,其校验结果应为全当无差错时,其校验结果应为全1思考:思考:接收方如何校验数据?接收方如何校验数据?计算UDP检验和的例子 10011001 00010011 153.1900001000 01101000 8.10410101011 00000011 171.300001110 00001011 14.1100000000 00010001 0 和 1700000000 00001111 1500000100 00111111 1087000

21、00000 00001101 1300000000 00001111 1500000000 00000000 0(检验和)01010100 01000101 数据01010011 01010100 数据01001001 01001110 数据01000111 00000000 数据和 0(填充)10010110 11101101 求和得出的结果01101001 00010010 检验和 153.19.8.104171.3.14.1112 字节伪首部8 字节UDP 首部7 字节数据填充按二进制反码运算求和将得出的结果求反码全 0 17 15 1087 13 15 校验和数据 数据 数据 数据数据

22、 数据 数据 32全0全033说明:说明:(1)伪首部的引入破坏了分层原则,是根据)伪首部的引入破坏了分层原则,是根据需要做的折衷需要做的折衷(2)UDP的校验和是可选的的校验和是可选的 思考讨论:思考讨论: 什么样的数据可以不校验?什么样的数据可以不校验? 能否进行部分校验?能否进行部分校验? 解决办法:解决办法:2004年提出的轻量级的年提出的轻量级的UDP-Lite34五、五、UDP-Lite 对校验和字段的使用,对校验和字段的使用,UDP标准给出了两种方案:标准给出了两种方案: (1) 不使用校验和不使用校验和 (2) 使用校验和使用校验和 如果接收方检验校验和字段时发现错误,则整个如

23、果接收方检验校验和字段时发现错误,则整个用户数据报就丢弃。用户数据报就丢弃。 在某些应用环境下,这种限制显得在某些应用环境下,这种限制显得太过严格太过严格了。了。比如,音频、视频传播之类的网络应用宁可接收发生比如,音频、视频传播之类的网络应用宁可接收发生错误的数据,而不是将其丢弃。错误的数据,而不是将其丢弃。35五、五、UDP-Lite 为此,为此,IETF推出推出UDP-Lite(Lightweight User Datagram Protocol,轻量级用户数据报协议)标准。,轻量级用户数据报协议)标准。 它将数据分为它将数据分为敏感敏感和和非敏感非敏感两个区域:两个区域: 其中敏感区域为

24、校验和计算的输入区,当这个区其中敏感区域为校验和计算的输入区,当这个区域的数据发生差错时,报文将被丢弃。域的数据发生差错时,报文将被丢弃。 非敏感区域的数据则不进行校验,所以即便这个非敏感区域的数据则不进行校验,所以即便这个区域的数据发生差错,报文也不会被丢弃。区域的数据发生差错,报文也不会被丢弃。36源端口源端口目的端口目的端口校验和覆盖校验和覆盖校验和校验和数据数据1 15 16 31 37五、五、UDP-Lite “校验和覆盖校验和覆盖”字段体现了字段体现了UDP-Lite的核心思的核心思想。想。 它描述了从报文首部的第一个字节开始计算校验它描述了从报文首部的第一个字节开始计算校验和时输

25、入的字节数。和时输入的字节数。“0”表示整个报文都被覆盖。表示整个报文都被覆盖。 标准规定:标准规定:UDP-Lite报文的首部必须被校验和报文的首部必须被校验和覆盖,因此这个字段的可能取值为覆盖,因此这个字段的可能取值为0或大于等于或大于等于8的整的整数。任何处于数。任何处于17之间的数字都被视为非法,将被丢之间的数字都被视为非法,将被丢弃。弃。38源端口源端口目的端口目的端口校验和覆盖校验和覆盖校验和校验和数据数据1 15 16 31 源端口源端口目的端口目的端口报文长度报文长度校验和校验和数据数据1 15 16 31 思考:思考:取消长度是否会引起其他问题?取消长度是否会引起其他问题?3

26、9五、五、UDP-Lite UDP-Lite和和UDP的校验和计算方法相同,且均的校验和计算方法相同,且均包含伪首部。包含伪首部。 差异在于:差异在于:UDP-Lite计算校验和时报文的输入计算校验和时报文的输入部分可变。除部分可变。除“0”和和“全部全部”外还有更多的选择。外还有更多的选择。 UDP报文例子报文例子 41六、六、UDP的应用的应用 虽然虽然UDP是一个不可靠的协议,但它是分发信息的一个理想协议。是一个不可靠的协议,但它是分发信息的一个理想协议。 如,如,UDP可用在路由信息协议(可用在路由信息协议(Routing Information Protocol, RIP)中修改路由表。如果有一个消息丢失,在几秒之后另一个新的消息就会替中修改路由表。如果有一个消息丢失,在几秒之后另一个新的消息就会替换它。换它。 UDP广泛用在多媒体应用中,如广泛用在多媒体应用中,如Progressive Networks公司开发的公司开发的RealAudio软件,它是在因特网上把预先录制的或者现场音乐实时传送给软件,它是在因特网上把预先录制的或者现场音乐实时传送给客户机的

温馨提示

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

评论

0/150

提交评论