UDP是什么,UDP协议及优缺点
UDP,全称 User Datagram Protocol,中文名称为用户数据报协议,主要用来支持那些需要在计算机之间传输数据的网络连接。UDP协议从问世至今已经被使用了很多年,虽然目前 UDP 协议的应用不如 TCP 协议广泛,但 UDP 依然是一种非常实用和可行的网络传输层协议。尤其是在一些实时性很强的应用场景中,比如网络游戏、视频会议等,UDP 协议的快速能力更具有独特的魅力。UDP 是一种面向非连接的协议,面向非连接指的是在正式通信前不必与对方先建立连接,不管对方状态就直接发送数据。至于对方是否可以接收到这些数据,UDP 协议无法控制,所以说 UDP 是一种不可靠的协议。UDP 协议适用于一次只传送少量数据、对可靠性要求不高的应用环境。与前面介绍的 TCP 协议一样,UDP 协议直接位于 IP 协议之上。实际上,IP 协议属于 OSI 参考模型的网络层协议,而 UDP 协议和 TCP 协议都属于传输层协议。因为 UDP 是面向非连接的协议,没有建立连接的过程,因此它的通信效率很高,但也正因为如此,它的可靠性不如 TCP 协议。UDP 协议的主要作用是完成网络数据流和数据报之间的转换在信息的发送端,UDP 协议将网络数据流封装成数据报,然后将数据报发送出去;在信息的接收端,UDP 协议将数据报转换成实际数据内容。可以认为 UDP 协议的 socket 类似于码头,数据报则类似于集装箱。码头的作用就是负责友送、接收集装箱,而 socket 的作用则是发送、接收数据报。因此,对于基于 UDP 协议的通信双方而言,没有所谓的客户端和服务器端的概念。UDP 协议和 TCP 协议简单对比如下:TCP 协议:可靠,传输大小无限制,但是需要连接建立时间,差错控制开销大。UDP 协议:不可靠,差错控制开销较小,传输大小限制在 64 KB以下,不需要建立连接。?相比较 TCP,UDP 是一种不可靠的网络协议,它在通信实例的两端各建立一个 socket,但这两个 socket 之间并没有虚拟链路,它们只是发送、接收数据报的对象。

UDP协议是什么
UDP中文名:用户数据报协议(User Datagram Protocol),是 OSI参考模型中的传输层协议,它与TCP协议一样用于处理数据包,是一种无连接的传输层协议。UDP有不断提供数据包分组、组装和不能对数据包进行排序,也就是说,当报文发送之后无法得知是否安全到达,是一种提供面向事务简单不可靠信息传送服务。 UDP协议的特点1.UDP是无连接的,只要知道对方IP和端口号就可以发送,发送数据之前不需要建立连接。2.没有确认机制,没有重新传送机制,如果因为网络问题导致该信息无法传送到对方,UDP协议层也不会给应用层返回任何错误信息,不保证数据顺序,可能丢包,不保证可靠交付。3.面向数据报。UDP只是个搬运工,发送方的UDP对应用程序交下来的报文, 在添加首部后就向下交付给IP层,既不拆分,也不合并,而是保留这些报文的边界。 因此,应用程序需要选择合适的报文大小。4.UDP支持一对一、一对多、多对一和多对多的交互通信。简单来说就是UDP提供了单播,多播,广播的功能。5.UDP用尽最大努力交付,具有良好的实时性,工作效率高,没有拥塞控制,所以即使网络出现拥堵也不会使源机发送速率降低。6.首部开销小,只有八个字节,比TCP的首部要短。UDP对比TCP来说对系统资源占用要少。 UDP协议适用于对网络质量要求不高,对高速传输和对实时性有较高要求的通行或者广播通信。比如日常生活中的:QQ语音,视频电话,现场直播,游戏等场景。

4.UDP协议
用户数据报协议 UDP 只在 IP 的数据报服务之上增加了很少一点的功能,这就是复用和分用的功能以及查错检测的功能某些实时应用需要使用没有拥塞控制的 UDP,但很多的源主机同时都向网络发送高速率的实时视频流时,网络就有可能发生拥塞,导致大家都无法正常接收。还有一些使用 UDP 的实时应用,需要对 UDP 的不可靠传输进行适当的改进,以减少数据的丢失。应用进程可以在不影响应用的实时性的前提下,增加一些提高可靠性的措施,如采用前向纠错或重传已丢失的报文UDP 的首部格式用户数据报 UDP 有两个字段:数据字段和首部字段。首部字段很简单,只有8个字节,由四个字段组成,每个字段都是两个字节源端口源端口号。在需要对方回信时。不需要时可用全0目的端口目的端口号。这在终点交付报文时必须使用长度UDP 用户数据报的长度,其最小值是8(仅有首部)检验和 检测 UDP 用户数据报在传输中是否有错。有错就丢弃当运输层从 IP 层收到 UDP 数据报时,就根据首部中的目的端口,把 UDP 数据报通过相应的端口,上交最后的终点——应用进程如果接受方 UDP 发现收到的报文中的目的端口号不正确(即不存在对应于该端口号的应用程序),就丢弃该报文,并由网际控制报文协议 ICMP 发送“端口不可达”差错报文给发送方UDP 用户数据报首部中检验和的计算方法有些特殊。在计算检验和时,要在 UDP 用户数据报之前增加 12 个字节的伪首部。所谓“伪首部”是因为这种伪首部并不是 UDP 用户数据报真正的首部。只是在计算检验和时,临时添加在 UDP 用户数据报前面,得到一个临时的 UDP 用户数据报。检验和就是按照这个临时用户数据报来计算的。伪首部既不向下传也不向上递交,而仅仅是为了计算检验和检测

传输层协议(TCP, UDP)
传输层定义了主机应用程序之间端到端的连通性。传输层中最为常见的两个协议分别是传输控制协议TCP(Transmission Control Protocol)和用户数据报协议UDP(User Datagram Protocol)。为了简化问题说明,本课程以Telnet为例描述相关技术。设备支持通过Telnet协议和Stelnet协议登录。使用Telnet,Stelnet v1协议存在安全风险,建议你使用STelnet v2登录设备。为了简化问题说明,本课程以FTP为例来描述相关技术。设备支持通过FTP协议,TFTP以及SFTP传输文件。使用FTP,TFTP,SFTP v1协议存在风险,建议使用SFTP v2方式进行文件操作。TCP是一种面向连接的传输层协议,提供可靠的传输服务。TCP是一种面向连接的端到端协议。TCP作为传输控制协议,可以为主机提供可靠的数据传输。TCP需要依赖网络协议为主机提供可用的传输路径。TCP允许一个主机同事运行多个应用进程。每台主机可以拥有多个应用端口,没对端口号,源和目标IP地址的组合唯一地标识了一个会话。端口分为知名端口和动态端口。有些网络服务会使用固定的端口,这类端口称为知名端口,端口号范围为 0~1023 。比如:FTP,HTTP,Telnet,SNMP服务均使用知名端口。动态端口范围 1024~65535 ,这些端口号一般不会固定分配给某个服务,也就是说许多服务都可以使用这些端口。只要运行的程序向系统提出访问网络的申请,那么系统就可以从这些端口号中分配一个供该程序使用。TCP通常使用IP作为网络层协议,这是TCP数据被封装在IP数据包内。TCP数据段由TCP Header(头部)和TCP Data(数据)组成。TCP最多可以有60个字节的头部,如果没有Options字段,正常的长度是20字节。TCP Header是由如上图标识一些字段组成,这里列出几个常用字段。注意:1)主机A(通常也叫客户端)发送一个标识了SYN数据段,标识期望与服务器A建立连接,此数据段的序列号(seq)为a;2)服务器A回复标识了SYN+ACK的数据段,此数据段的序列号(seq)为b,确认序列号为主机A的序列号加1(a+1),以此作为对主机A的SYN报文的确认。3)主机A发送一个标识了ACK的数据段,此数据段的序列号(seq)为a+1,确认序列号为服务器A的序列号加1(b+1),以此作为对服务器A的SYN报文段的确认。TCP是一种可靠的,面向连接的全双工传输层协议。TCP连接的简历是一个三次握手的过程。TCP的可靠传输还提现在TCP使用了确认技术来确保目的设备收到了从源设备发来的数据,并且是准确无误的。确认技术的工作原理如下:目的设备接收到源设备发送的数据段时,会向源端发送确认报文,源设备收到确认报文后,继续发送数据段,如此重复。如图所示,主机A向服务器A发送TCP数据段,为描述方便假设每个数据段的长度都是500个字节。当服务器A成功收到序列号是M+1499的字节以及之前的所有字节时,会以序列号M+1400+1=M+1500进行确认。另外,由于数据段N+3传输失败,所以服务器A未能收到序列号为M+1500的字节,因此服务器A还会再次以序列号M+1500进行确认。注意:上面说到,数据段 N+3 传输失败,那么第二次确认号M+1500,主机A会将N+3,N+4,N+5全部发送一次。TCP滑动窗口技术通过动态改变窗口大小来实现对端到端设备之间的数据传输进行流量控制。如图所示,主机A和服务器A之间通过滑动窗口来实现流量控制。为了方便理解,此例中只考虑主机A发送数据给服务器A时,服务器A通过滑动窗口进行流量控制。例子中:主机A向服务器发送4个长度为1024字节的数据段,其中主机的窗口大小为4096个字节。服务器A收到第3个字节之后,缓存区满,第4个数据段被丢弃。服务器以ACK3073(1024*3=3072)响应,窗口大小调整为3072,表明服务器的缓冲区只能处理3072个字节的数据段。于是主机A改变其发送速率,发送窗口大小为3072的数据段。主机在关闭连接之前,要确认收到来自对方的ACK。TCP支持全双工模式传输数据,这意味着统一时刻两个方向都可以进行数据的传输。在传输数据之前,TCP通过三次握手建立的实际上是两个方向的连接,一次在传输完毕后,两个方向的连接必须都关闭。TCP连接的建立是一个三次握手过程,而TCP连接的终止则要经过四次挥别。如图:1.主机A想终止连接,于是发送一个标识了FIN,ACK的数据段,序列号为a,确认序列号为b。2.服务器A回应一个标识了ACK的数据段,序列号为b,确认序号为a+1,作为对主机A的FIN报文的确认。3.服务器A想终止连接,于是向主机A发送一个标识了FIN,ACK的数据段,序列号为b,确认好为a+1。4.主机A回应一个标识了ACK的数据段,序列号为a+1,确认序号为b+1,作为对服务器A的FIN报文的确认。以上四次交互完成了两个方向连接的关闭。TCP断开连接的步骤,这个比较详细:https://blog.csdn.net/ctrl_qun/article/details/52518479UDP是一种面向无连接的传输层协议,传输可靠性没有保证。当应用程序对传输的可靠性要求不高时,但是对传输速度和延迟要求较高时,可以用UDP协议来替代TCP协议在传输层控制数据的转发。UDP将数据从源端发送到目的端时,无需事先建立连接。UDP采用了简单,容易操作的机制在应用程序间传输数据,没有使用TCP中的确认技术或滑动窗口机制,因此UDP不能保证数据传输的可靠性,也无法避免接受到重复数据的情况。UDP头部仅占8个字节,传输数据时没有确认机制(注意,但是有校验和)。UDP报文分为UDP报文头和UDP数据区域两个部分。报头由源端口,目的端口,报文长度以及校验和组成。UDP适合于实时数据传输,比如语音和视频通信。相比TCP,UDP的传输效率更高,开销更小,但是无法保证数据传输可靠性。UDP头部的标识如下:1)16位源端口号:源主机的应用程序使用的端口号。2)16位目的端口号:目的主机的应用程序使用的端口号。3)16位UDP长度:是指UDP头部和UDP数据的字节长度。因为UDP头部长度是8字节,所以字段的最小值为8。4)16位UDP校验和:该字段提供了与TCP校验字段同样的功能;该字段是可选的。使用UDP传输数据时,由应用程序根据需要提供报文到达确认,排序,流量控制等功能。主机A发送数据包时,这些数据包是以有序的方式发送到网络中的,每个数据包独立地在网络中被发送,所以不同的数据包可能会通过不同的网路径叨叨主机B。这样的情况下,先发送的数据包不一定先到达主机B。因为UDP数据包没有序号,主机B将无法通过UDP协议将数据包按照原来的顺序重新组合,所以此时需要应用程序提供报文的到达确认,排序和流量控制等功能(也就是说UDP报文的到达确认,排序和流量控制是应用程序来确定的)。通常情况下,UDP采用实时传输机制和时间戳来传输语音和视频数据。UDP适合传输对延迟敏感的流量,如语音和视频。在使用TCP协议传输数据时,如果一个数据段丢失或者接受端对某个数据段没有确认,发送端会重新发送该数据段。TCP重新发送数据会带来传输延迟和重复数据,降低了用户的体验。对于延迟敏感的应用,少量的数据丢失一般可以被忽略,这是使用UDP传输能够提升用户的体验。总结:1.TCP头部中的确认标识位有什么作用呢?TCP报文头中的ACK标识位用于目的端对已接受到数据的确认。目的端成功收到序列号为x的字节后,会以序列号x+1进行确认。2.TCP头部中有哪些标识位参与TCP三次握手?在TCP三次握手过程中,要使用SYN和ACK标识位来请求建立连接和确认建立连接。

绠�鍗曚妇渚婾dp鏁版嵁鎶ヤ竴鑸�鍦ㄩ偅浜涙儏鍐典細浣跨敤鍒�
UDP棣栭儴鍙�鏈�8涓�瀛楄妭闀裤��1 鎬ц兘姣斿畬鏁存�ф洿涓洪噸瑕佺殑鏁版嵁銆傚吀鍨嬬殑渚嬪瓙鏄�澶氬獟浣撳簲鐢ㄣ��2 绠�鐭�鎰夊揩鐨勬暟鎹�浜ゆ崲銆傛病鏈夊繀瑕佸儚TCP閭f牱寤虹珛涓�鏉¤繛鎺ワ紝涓嶉渶鎷呭績鏁颁綑鍚�鎹�鍒拌揪鐨勫け搴忋�佽�惧�囦箣闂寸殑娴佹帶鍒朵互鍙婅�稿�傛�ょ被鐨勯棶棰樸�傝繖鏄�浣跨敤UDP鏈�甯歌�佺殑鎯呭喌锛屼絾闄ゆ�や箣澶栬繕鏈夊叾浠栧師鍥犮�備緥濡傦紝濡傛灉涓�绔栫僵濡備釜搴旂敤绋嬪簭闇�瑕佸�氭挱鎴栧箍鎾�鏁版嵁锛屽垯瀹冨繀椤讳娇鐢║DP锛屽洜涓篢CP浠呮敮鎸佷袱涓�璁惧�囦箣闂寸殑鍗曟挱閫氫俊銆傝�佺偣锛氬湪涓嬪垪涓ょ�嶆儏鍐典笅锛屽崗璁�浣跨敤UDP鑰屼笉鏄疶CP銆傜��涓�绉嶆儏鍐垫槸褰撳簲鐢ㄧ▼搴忚�や负瀹炴椂浜や粯椤峰彲闈犱氦浠樻洿閲嶈�侊紝浠ュ強褰揟CP鐨勪涪澶辨暟鎹�閲嶄紶鐢ㄥ�勪笉澶х敋鑷虫牴鏈�娌℃湁浣滅敤鐨勬椂鍊欍�傜��浜岀�嶆儏鍐� 鏄�褰撲竴涓�绠�鍗曠殑鍗忚��鑷�宸卞氨鍙�浠ュ湪闂锋倝搴旂敤 灞傚埄鐢ㄥ畾鏃跺櫒锛忛噸浼犵瓥鐣ュ�勭悊娼滃湪鐨処P鏁版嵁鎶ヤ涪澶憋紝鑰屼笖涓嶈�佹眰TCP鐨勫叾浠栫壒鎬ф椂銆傞渶瑕佸�氭挱鎴栧箍鎾�浼犺緭鐨勫簲鐢ㄧ▼搴忎篃浣跨敤UDP锛屽洜涓篢CP涓嶆敮鎸佽繖绫讳紶杈撱�傜��鍙e彿 鍗忚��56銆�鍩熷悕鏈嶅姟鍣―NS67鍜�68銆�寮曞�煎崗璁瓸OOTP銆佸姩鎬佷富鏈洪厤缃�鍗忚�瓺HCP69 鏅�閫氭枃浠朵紶閫佸崗璁甌FTP161鍜�162绠�鍗曠綉缁滅�$悊鍗忚�甋NMP520鍜�521閫夎矾淇℃伅鍗忚�甊IP-1 RIP-2 RIPngTCP/IP鍩熷悕绯荤粺DNS鍚屾椂浣跨敤UDP鍜孴CP銆傜畝鍗曡�锋眰鍜屽簲绛斾娇鐢║DP 53鍙风��鍙o紝鑰岃�佹眰鍙�闈犱氦浠樼殑澶т竴鐐圭殑鎶ユ枃浣跨敤TCP 53鍙风��鍙c��

本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/303278.html。