第7章 用户数据报协议

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1第7章用户数据报协议(UDP)2网络分层及配套协议各种应用层协议网络接口层(HTTP,FTP,SMTP等)物理硬件运输层TCP,UDP应用层ICMPIPRARPARP与各种网络接口网络层(网际层)IGMP3主要内容UDP服务UDP的端口号和套接字地址用户数据报UDP检验和UDP的操作UDP的应用4运输层协议和网络层协议区别应用进程…应用进程…IP协议的作用范围(提供主机之间的逻辑通信)TCP和UDP协议的作用范围(提供进程之间的逻辑通信)因特网5运输层的主要功能运输层为应用进程之间提供端到端的逻辑通信(但网络层是为主机之间提供逻辑通信)。运输层对收到的报文进行差错检测。运输层有两种不同的运输协议,即面向连接的TCP和无连接的UDP。6进程之间的通信进程:为应用程序的运行实例,是应用程序的一次动态执行(操作系统课程中已学过)。两个主机进行通信实际上就是两个主机中的应用进程互相通信。应用进程间的通信又称为端到端的通信。7运输层协议运输层向高层屏蔽了下层网络传送的细节(如网络拓扑、路由选择等),它使应用进程就是好像在两个运输层实体之间有一条端到端的逻辑通信信道。实际上网络中物理层直接相连外,以上任何一层均有此特性,都可看作对等层间有一条具有自己的逻辑信道,具有独立的研究开发特性。8运输层为相互通信的应用进程提供了逻辑通信54321运输层提供应用进程间的逻辑通信主机A主机B应用进程应用进程路由器1路由器2AP1LAN2WANAP2AP3AP4IP层LAN1AP1AP2AP4端口端口54321IP协议的作用范围运输层协议TCP和UDP的作用范围AP39TCP/IP的运输层有两个协议:(1)用户数据报协议UDP(UserDatagramProtocol)(2)传输控制协议TCP(TransmissionControlProtocol)运输层的两个主要协议10两个对等运输实体在通信时传送的数据单位叫作运输协议数据单元TPDU(TransportProtocolDataUnit)。TCP传送的数据单位协议是TCP报文段(segment)UDP传送的数据单位协议是UDP报文或用户数据报。TCP与UDP11TCP/IP体系中的运输层协议TCPUDPIP应用层与各种网络接口运输层12TCP与UDPUDP在传送数据之前不需要先建立连接。对方的运输层在收到UDP报文后,不需要给出任何确认。虽然UDP不提供可靠交付,但在某些情况下UDP是一种最有效的工作方式。13TCP与UDPTCP则提供面向连接的服务。TCP不提供广播或多播服务。由于TCP要提供可靠的、面向连接的运输服务,因此不可避免地增加了许多的开销。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源。14TCP与UDP运输层的UDP用户数据报与网际层的IP数据报有很大区别。IP数据报要经过互连网中许多路由器的存储转发,但UDP用户数据报是在运输层的端到端抽象的逻辑信道中传送的。15TCP与UDPTCP报文段是在运输层抽象的端到端逻辑信道中传送,这种信道是可靠的全双工信道。但这样的信道却不知道究竟经过了哪些路由器,而这些路由器也根本不知道上面的运输层是否建立了TCP连接。16运输层的端口运行在计算机中的进程是用进程标识符来标志的。运行在应用层的各种应用进程却不能让计算机操作系统指派它的进程标识符。由于因特网上可使用不同的操作系统,而不同的操作系统使用不同格式的进程标识符。为使运行不同操作系统的计算机的应用进程能够互相通信,就须用统一方法进行标志。17端口号(protocolportnumber)简称为端口(port)解决这个问题的方法就是在运输层使用协议端口号(protocolportnumber)。虽然通信的终点是应用进程,但可以把端口想象是通信的终点,因为只要把要传送的报文交到目的主机的某一个合适的目的端口,剩下的工作就可由TCP来完成。18软件端口与硬件端口概述在协议栈层间的抽象的协议端口是软件端口。路由器或交换机上的端口是硬件端口。硬件端口是不同硬件设备进行交互的接口,而软件端口是应用层的各种协议进程与运输实体层间交互的一种地址。19TCP的端口端口用一个16位端口号进行标志。端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。在因特网中不同计算机的相同端口号是没有联系的。20用户数据报协议UDPUDP只在IP的数据报服务之上增加了端口的功能和差错检测的功能。虽然UDP用户数据报只能提供不可靠的交付,但UDP在某些方面有其特殊的优点。21UDP的主要特点UDP属无连接,发送数据前不需建立连接。UDP使用尽最大努力交付,不保证可靠交付,同时也不使用拥塞控制。UDP是面向报文的。UDP没有拥塞控制,适合多媒体通信的要求(电话,视频等)。UDP支持一对一、一对多、多对一和多对多的交互通信。UDP首部开销小,最少8字节,TCP20字节。22面向报文的UDP发送方UDP对应用程序交下来的报文,添加首部后就向下交付IP层。UDP对应用层交来的报文,既不合并,也不拆分,而是保留这些报文的边界。应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。接收方UDP对IP层交上来的UDP用户数据报,在去除首部后就原封不动地交付上层的应用进程,一次交付一个完整的报文。23UDP是面向报文的IP数据报的数据部分IP首部IP层UDP首部UDP用户数据报的数据部分运输层应用层报文应用层247.1UDP服务UDP提供无连接的服务。UDP发出的每一个用户数据报都是独立的数据报,都携带了完整的目标地址,每一个用户数据报可以被系统独立的路由。用户数据报不进行编号。25UDP封装IP数据报UDP数据报IP首部UDP首部UDP数据(20字节)(8字节)26如果IP数据报的长度超过网络的MTU,就要对IP数据报进行分片。如果已经分片的数据报遇到了具有更小MTU的网络,那么这些已经分片的数据报还可再进行分片。277.2UDP的端口号和套接字地址UDP的端口号套接字地址287.2.1UDP的端口号TCP/IP协议族中使用端口号来标识进程。UDP可以根据端口号对来自应用层的数据进行多路复用。UDP在完成进程到进程之间的通信中采用的是客户/服务器工作模式。UDP端口号分为三类:熟知端口号、注册端口号和动态端口号。29熟知端口号:由IANA负责分配给一些常用的应用程序固定使用的端口。其端口号范围从0到1023注册端口号:用户根据需要可以在IANA注册以防止重复。其端口号范围从1024到49151。动态端口号:用来随时分配给请求通信的客户进程。其端口号范围从49152到65535。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用。307.2.2套接字地址要使用UDP的服务,需要一对套接字地址:客户套接字地址和服务器套接字地址。一个IP地址与一个端口号合起来叫做套接字地址。IP地址端口号200.23.56.869200.23.56.869套接字地址31UDP分组称为用户数据报(userdatagram)用户数据报格式:首部数据8字节0151631源端口号目的端口号16位16位总长度检验和16位16位7.3用户数据报32UDP的首部格式伪首部源端口目的端口长度检验和数据首部UDP长度源IP地址目的IP地址017IP数据报字节44112122222字节发送在前数据首部UDP用户数据报33伪首部源端口目的端口长度检验和数据首部UDP长度源IP地址目的IP地址017IP数据报字节44112122222字节发送在前数据首部UDP用户数据报UDP有两个字段:数据字段和首部字段。首部字段有8个字节,由4个字段组成,每个字段都是两个字节。347.4UDP检验和UDP检验和包括三个部分:伪首部、UDP首部以及从应用层来的数据。伪首部并非UDP数据报中实际的有效成分。伪首部是一个虚拟的数据结构,其中的信息是从数据报所在IP数据报首部中提取的,既不向下传送也不向上递交,而仅仅是为计算校验和。35发送端的检验和计算:l伪首部填加到UDP用户数据报上。把检验和字段填入全零;l所有的位划分为每16bit为一段。若字节总数不是偶数,则增加一个字节的填充(全0);l所有的16bit段使用反码算术运算相加(在伪首部中的各行的顺序对检验和的计算没有任何影响。此外,增加0也不影响计算的结果),把得到的结果取反码后插入到检验和字段。l伪首部和任何增加的填充丢掉,把UDP用户数据报交付给IP软件进行封装。36接收端的检验和计算:l伪首部加到UDP用户数据报。若需要,就增加填充;l所有的位划分为每16bit为一段,把所有的16bit段使用反码算术运算相加;l得到的结果取反码。若得到的结果是全0,则丢弃伪首部和任何增加的填充并接受这个UDP用户数据报。若得到的结果非0,说明接收端检测到校验和有差错,就丢弃这个UDP用户数据报。377.5UDP的操作7.5.1报文的封装和拆封当进程有报文要通过UDP发送时,将UDP封装成一份IP数据报。当这个报文到达目的主机网络层,剥去IP首部后,将用户数据报连同发送端和接收端的IP地址一起传递给UDP。387.5.2.多路复用与多路分用在发送端,可能有多个需要发送用户数据报的进程。UDP使用多路复用技术处理用户数据报的发出。在接收端也只有一个UDP,但有多个进程可能接收用户数据报。根据端口号UDP把每一个报文交付给适当的进程。39UDP基于端口的分用IP层UDP数据报到达端口2端口3端口1UDP分用407.6UDP的应用适用需要简单的请求—响应通信的进程,而不太关心流量控制和差错控制。而快速递交比精确递交更为重要的场合。适用于具有内部流量控制和差错控制机制的进程。适合多播和广播的运输协议。可用于管理进程,如简单网络管理协议SNMP。可用于某些路由选择更新协议。UDP被用于RIP选路表的更新。与实时传输协议一起使用,对多媒体是很方便的一种协议。

1 / 40
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功