UDP协议总结

说明:本文仅供学习交流,转载请标明出处,欢迎转载!

本文是如下参考文献的相关总结:

[1] 《TCP/IP详解 卷1:协议》

[2] 《TCP/IP协议族 第4版》

[3] 《计算机网络 第5版》

       用户数据报协议的英文缩写为UDP,UDP是一种无连接不可靠运输层协议,UDP没有流量控制和拥塞控制,除了检验和之外,没有其他的差错控制

       I.UDP数据报

       

       

     UDP数据报由UDP首部和数据组成,其中UDP首部包含8B源端口号和目的端口号用于标识源进程和目的进程总长度指的是首部和数据部分的总长度检验和用于检测UDP用户数据报在传输过程中是否发生错误。UDP接收上层应用层的报文后,加上UDP首部后,原封不动地交给IP层,所以UDP一次交付一个完整的报文,至于分片,则由IP层来控制,所以应用层必须交付给UDP合适大小的报文

       II.UDP复用与分用

       UDP复用:在发送方,不同的应用层进程都可以使用UDP协议传送数据。(多对一

       UDP分用:在接收方,传输层在去掉UDP首部后能够将这些数据正确交付到目的应用层进程。(一对多

       NOTICE:源点的运输层执行的是复用,终点的运输层执行的是分用

       III.端口号

       如果说IP地址可以标识主机,那么端口号则可以标识主机上的进程,UDP套接字=(IP地址:端口号)

       

       知名端口号:由ICANN指派和控制,这些端口号指派给了TCP/IP最重要的一些应用程序。例如:FTP:21,Telnet:23,SMTP:25,DNS:53,TFTP:69,HTTP:80,SNMP:161,SNMP(trap):162

       注册端口号:ICANN既不指派也不控制,但这些端口号必须在ICANN注册以防止重复。

       临时端口号:在客户进程运行时才动态选择。当服务器进程收到客户进程的报文后,根据该端口号,把数据发送给客户进程。通信结束后,该客户端口号消失,以便其他客户进程使用。

       IV.UDP检验和

       我们知道,IP检验和只是IP数据报的首部参与运算,而TCP,UDP,ICMP,IGMP,RIP等的首部和数据部分都参与检验和运算,而对于传输层的UDP而言,同样是首部和数据部分均参与检验和的运算,但是UDP的检验和运算有如下两个特点:

       1.若UDP数据报的数据部分是奇数个字节,则需要采用零比特填充法填充好,即在数据部分的最后面填充若干个0,使得方便16为检验和的计算,这些0仅供检验,不会参与传送。

       2.在检验和时,要在UDP数据报之前增加12B的伪首部,伪首部参与检验和运算。伪首部既不向下传送,也不向上提交,供检验。

       

        伪首部之所以“伪”,是因为它并不是UDP首部的一部分,只是在检验和时,临时添加到UDP用户数据报前面,得到一个临时的UDP用户数据报。 

       notice:

        1). 如果是TCP,则协议字段的值是6;

        2).伪首部是IP首部的一部分,包含32位源IP地址、32位目的IP地址、8位协议,16位UDP长度。伪首部的作用在于让UDP检查数据是否到达目的地,具体而言是:a.通过目的IP地址来判断该数据报是不是发送给本机。b.协议字段,UDP可以判断IP有没有把不应该传给UDP(如需传给TCP)的数据传给UDP;

        3) 在求解检验和的过程中,先将UDP数据报划分成许多16位的序列,然后将各位取反后求和(相当于异或运算,因为采用不进位机制),并将求和后的结果再取反,存入检验和字段中,所以整个过程出现两次取反的现象。

        4)UDP的检验和是可选的,而TCP的检验和是必需的。

        5)UDP检验和是一个端到端的检验和。它由发送端计算,然后由接收端验证,其目的是为了发现UDP首部和数据部分在发送端过程中是否发生任何改变。

       6)根据3),如果第一次取反后求和的结果为0,则再取反后结果为全1,,则存入检验和字段的值为全1;如果传送的检验和为0,说明发送端没有计算检验和,因为在计算前该字段的值被填入全0

       V.UDP的应用

       UDP相对TCP而言,最大的优点是数据报短,传输速率快,适合于对数据传输完整性要求不是高的服务的实时性服务。具体应用如下:(就是针对应用层协议)

       1)UDP适用于只要求简单的请求-响应通信的进程:DNS注意:HTTP使用的是TCP,FTP使用的是TCP,因为FTP需要传输大量的数据));

       2)UDP适用于本身具有内部流量控制和差错控制机制的进程:TFTP;

       3)UDP适用于管理进程:SNMP,BOOTP,DHCP,NFS

       4)UDP适用于多播。

       5)UDP适用于路由更新:RIP

       6)UDP适用于实时应用:IP电话、流式多媒体通信(注意:SMTP使用的是TCP,因为邮件强调的是数据的完整性,而非实时性)

       点点滴滴:

        1.UDP是一种面向无连接的不可靠运输层协议。“不可靠”是因为UDP把数据发送出去,并不保证它们能到达目的地。在传输数据之前不需要建立连接,接收方在收到UDP报文后,不需要提供确认机制;如果数据发生错误或丢失,UDP不提供超时重传机制,UDP使用尽最大努力交付

        2.UDP是面向报文的,发送方的UDP对应用程序(位于应用层)交下来的报文,在添加首部后就向下交付给IP层。

        3.UDP不提供拥塞控制和流量控制,仅提供校验和的差错检验。(流量控制是针对两个端点,而拥塞控制是针对真个网络,是一个综合性的控制)

        4.UDP支持一对一、一对多、多对一、多对多的交互通信。

        5.UDP的校验和计算过程中加入了伪首部和0填充位。


  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: IP协议(Internet Protocol)是互联网中最基本的协议之一,它负责将数据包从发送方传输到接收方。IP协议是无连接的、不可靠的,它只关注将数据包从一个网络节点传输到另一个网络节点的问题,而不关心数据包传输的可靠性和顺序。 TCP协议(Transmission Control Protocol)是一种面向连接的、可靠的传输协议,它基于IP协议实现,用于在发送端和接收端之间建立可靠的数据传输连接。TCP协议通过三次握手来建立连接,通过数据包确认和重传机制来保证数据的可靠传输。 UDP协议(User Datagram Protocol)是一种无连接的、不可靠的传输协议,它也基于IP协议实现,但与TCP协议不同,UDP协议没有建立连接的过程,也没有确认和重传机制,因此传输速度较快,但数据传输的可靠性较低,容易出现数据丢失或乱序。UDP协议通常用于实时性要求较高的应用,比如视频直播、网络游戏等。 ### 回答2: IP协议、TCP协议UDP协议是互联网通信中常用的协议。 IP协议是互联网协议族中最核心的协议之一,它负责实现在网络中的数据传输与路由功能。IP协议定义了一种网络协议体系结构,使得全球互联网能够互相通信。它通过为每个设备分配一个唯一的IP地址来确保数据包在网络中的正确传递,它是互联网协议通信的基础。 TCP协议是传输控制协议,也是互联网协议族中非常重要的一个协议。TCP协议提供面向连接的可靠数据传输服务。它通过建立起连接、分段、重发等机制来保证数据的可靠传输,同时还能够进行流量控制和拥塞控制,使得数据能够按照顺序正确地到达目的地。 UDP协议是用户数据报协议,也是互联网协议族中的一个重要协议UDP协议提供一种无连接、不可靠的数据传输服务。与TCP不同,UDP不会对数据包的传输进行确认和重发,因此传输速度更快,但也更容易丢包。UDP适用于对实时性要求较高,但对数据可靠性要求不高的应用,例如音频和视频流媒体等。 总结来说,IP协议是互联网协议通信的基础,负责数据的传输和路由功能。TCP协议提供可靠的连接服务,确保数据的可靠传输。UDP协议提供快速的无连接服务,适合对实时性要求较高的应用。 ### 回答3: IP协议(Internet Protocol)是一种网络通信协议,它负责在互联网上传输数据包,使得数据可以从发送者到接收者进行传递和路由。IP协议提供了包括IP地址分配、分组封装、错误控制等功能。它是互联网的核心协议之一,使得不同的计算机可以在全球范围内进行通信。 TCP协议(Transmission Control Protocol)是一种可靠的传输协议,它是基于IP协议的,通过将数据切割成小块进行传输,并在接收方进行校验和确认,确保数据的可靠性和顺序性。TCP协议还负责网络拥塞控制和流量控制,以及错误恢复和重传等功能。它适用于大多数需要可靠传输的应用,如网页浏览、文件下载等。 UDP协议(User Datagram Protocol)是一种无连接的传输协议,它也是基于IP协议的,但不提供数据包的可靠性和顺序性。UDP协议通过将数据包封装成数据报发送,没有建立和维护连接的过程,因此传输效率较高。UDP适用于那些对可靠性要求不高,但对传输速度和效率要求较高的应用,如实时视频流、游戏等。 总结来说,IP协议是负责数据包传输的底层协议,而TCP协议UDP协议是基于IP协议的传输协议。TCP协议提供可靠性和顺序性,适用于对数据传输准确性有要求的应用,而UDP协议则注重传输速度和效率,适用于对实时性有要求的应用。根据不同的需求,可以选择使用TCP协议UDP协议来进行数据传输。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值