您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 第7章2h 用户数据报协议
1第7章用户数据报协议(UDP)2主要内容认识传输层UDP服务UDP的端口号和套接字地址用户数据报UDP检验和UDP的操作UDP的应用3传输层为相互通信的应用进程提供了逻辑通信54321传输层提供应用进程间的逻辑通信主机A主机B应用进程应用进程路由器1路由器2AP1LAN2WANAP2AP3AP4IP层LAN1AP1AP2AP4端口端口54321IP协议的作用范围传输层协议TCP和UDP的作用范围AP34传输层协议和网络层协议的主要区别应用进程…应用进程…IP协议的作用范围(提供主机之间的逻辑通信)TCP和UDP协议的作用范围(提供进程之间的逻辑通信)因特网5传输层向上提供可靠的和不可靠的逻辑通信信道?应用层传输层发送进程接收进程接收进程数据数据全双工可靠信道数据数据使用TCP协议使用UDP协议不可靠信道发送进程6传输层中的两个协议TCP/IP的传输层有两个不同的协议:(1)用户数据报协议UDP(UserDatagramProtocol)(2)传输控制协议TCP(TransmissionControlProtocol)TCPUDPIP应用层与各种网络接口传输层7TCP与UDPUDP在传送数据之前不需要先建立连接。对方的传输层在收到UDP报文后,不需要给出任何确认。虽然UDP不提供可靠交付,但在某些情况下UDP是一种最有效的工作方式。TCP则提供面向连接的服务。TCP不提供广播或多播服务。由于TCP要提供可靠的、面向连接的传输服务,因此不可避免地增加了许多的开销。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源。87.1UDP服务UDP提供无连接的服务。UDP发出的每一个用户数据报都是独立的数据报,都携带了完整的目标地址,每一个用户数据报可以被系统独立的路由。用户数据报不进行编号。97.2.1UDP的端口号端口是计算机与外界通讯交流的出口。其中:硬件领域的端口又称接口,如:USB端口、串行端口等。软件领域的端口是一种抽象的软件结构,包括一些数据结构和I/O(基本输入输出)缓冲区,指网络中的通信协议端口。端口的作用就是让应用层的各种应用进程都能将其数据通过端口向下交付给传输层,以及让传输层知道应当将其报文段中的数据向上通过端口交付给应用层相应的进程。通常端口用一个16bit端口号进行标志。7.2UDP的端口号和套接字地址10端口号的分类互联网号码分配机构(IANA)定义的UDP端口号分为三类:熟知端口号:由IANA负责分配给一些常用的应用程序固定使用的端口号。端口号范围为0~1023。注册端口号:用户根据需要可以在IANA注册以防止重复。端口号的范围1024~49151。动态端口号:用来随时分配给请求通信的客户进程。端口号的范围49152~65535。11一个IP地址与一个端口号合起来称为套接字地址。要使用UDP的服务,需要一对套接字地址:客户套接字地址服务器套接字地址7.2.2套接字地址12套接字(socket)IP=131.6.23.13IP=128.36.1.12端口1500端口1501端口1500IP=130.42.85.15端口25ABC连接1连接2连接313首部数据8字节0151631源端口号目的端口号16位16位总长度检验和16位16位7.3用户数据报UDP分组称为用户数据报(UserDatagram)用户数据报格式:14UDP用户数据报的首部格式用户数据报UDP有两个字段:数据字段和首部字段。首部字段有8个字节,由4个字段组成,每个字段都是两个字节。伪首部源端口目的端口长度检验和数据首部UDP长度源IP地址目的IP地址017IP数据报字节44112122222字节发送在前数据首部UDP用户数据报15UDP用户数据报的首部格式在计算检验和时,临时把“伪首部”和UDP用户数据报连接在一起。伪首部仅仅是为了计算检验和。伪首部源端口目的端口长度检验和数据首部UDP长度源IP地址目的IP地址017IP数据报字节44112122222字节发送在前数据首部UDP用户数据报167.4UDP检验和UDP检验和包括三个部分:伪首部、UDP首部、从应用层来的数据伪首部既不向下传送,也不向上递交。17发送端的检验和计算:伪首部填加到UDP用户数据报上。把检验和字段填入全零;每16bit划分为一段。若字节总数不是偶数,则增加一个字节的填充(全0);所有的16bit段使用反码算术运算相加(在伪首部中的各行的顺序对检验和的计算没有任何影响。此外,增加0也不影响计算的结果),把得到的结果取反码后插入到检验和字段。伪首部和任何增加的填充丢掉,把UDP用户数据报交付给IP软件进行封装。18接收端的检验和计算:伪首部加到UDP用户数据报。若需要,就增加填充;每16bit划分为一段,所有的16bit段使用反码算术运算相加;得到的结果取反码。若得到的结果是全0,则丢弃伪首部和任何增加的填充并接受这个UDP用户数据报。若得到的结果非0,说明接收端检测到校验和有差错,就丢弃这个UDP用户数据报。19将数据1000110101011110分成四段,利用反码运算求出校验和。100011011010110110例1011001011011101111101100111010(求和)0101(校验和)20例21001100100010011→153.190000100001101000→8.1041010101100000011→171.30000111000001011→14.110000000000010001→0和170000000000001111→150000010000111111→10870000000000001101→130000000000001111→150000000000000000→0(检验和)0101010001000101→数据0101001101010100→数据0100100101001110→数据0100011100000000→数据和0(填充)1001011011101011→求和得出的结果0110100100010100→检验和12字节伪首部8字节UDP首部7字节数据填充按二进制反码运算求和将得出的结果求反码153.19.8.104171.3.14.11全0171510871315全0数据数据数据数据数据数据数据全0假设数据为:TESTING21用户数据报协议UDP优点UDP只在IP的数据报服务之上增加了很少一点的功能,即端口的功能和差错检测的功能。虽然UDP用户数据报只能提供不可靠的交付,但UDP在某些方面有其特殊的优点。发送数据之前不需要建立连接;UDP的主机不需要维持复杂的连接状态表;UDP用户数据报只有8个字节的首部开销;网络出现的拥塞不会使源主机的发送速率降低;这对某些实时应用是很重要的。227.5UDP的操作7.5.1报文的封装和拆封当进程有报文要通过UDP发送时,将UDP封装成一份IP数据报。当这个报文到达目的主机网络层,剥去IP首部后,将用户数据报连同发送端和接收端的IP地址一起传递给UDP。237.5.2.多路复用与多路分用在发送端,可能有多个需要发送用户数据报的进程。UDP使用多路复用技术处理用户数据报的发出。在接收端也只有一个UDP,但有多个进程可能接收用户数据报。根据端口号UDP把每一个报文交付给适当的进程。UDP使用多路分用技术处理用户数据报的到来。24应用层传输层网络层TCP报文段UDP用户数据报应用进程TCP复用IP复用UDP复用TCP报文段UDP用户数据报应用进程端口端口TCP分用UDP分用IP分用IP数据报IP数据报发送方接收方257.6UDP的应用适用需要简单的请求—响应通信的进程,而不太关心流量控制和差错控制。而快速递交比精确递交更为重要的场合。适用于具有内部流量控制和差错控制机制的进程。适合多播和广播的传输协议。可用于管理进程,如简单网络管理协议SNMP。可用于某些路由选择更新协议。UDP被用于RIP选路表的更新。与实时传输协议一起使用,对多媒体是很方便的一种协议。26在应用层使用UDP的主要有:简单文件传输协议(TFTP)引导程序协议(BOOTP)简单网络管理协议(SNMP)网络文件协议(NFS)远程过程调用(RPC)域名解析服务(DNS):也可以使用TCP。
本文标题:第7章2h 用户数据报协议
链接地址:https://www.777doc.com/doc-3196436 .html