锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

网络协议之:基于UDP的高速数据传输协议UDT

时间:2022-10-19 09:00:00 g高速连接器

文章目录

  • 简介
  • UDT协议
  • UDT的缺点
  • 总结

简介

简单就是美。在网络协议的世界里,TCP和UDP是建立在IP基于协议的两个非常常见的协议。我们现在经常使用HTTP协议是基于的TCP基于协议。TCP就稳定性而言,UDP由于数据传输的不可靠性,在某些特定场合使用,如直播、广播信息、视频音频流处理等,不需要验证数据的完整性。

UDP相对TCP就协议而言,它的特点是简洁,它被删除了TCP为了保证协议中新闻准确性的各种限制性特征。简单的好处是速度快!今天给大家讲解一下,基于UDP高速数据传输协议UDT。

UDT协议

UDP因为它的简单特性,可以做很多事情TCP做不到的事情,比如快速传输大数据量。这里不是要TCP和UDP毕竟,每个协议的适应场景都是不同的。它们很受欢迎,因为它们可以在特定的场景中发挥重要作用。中国谚语是:无论白猫和黑猫,能抓住老鼠的都是好猫。

用好UDP我们可以通过协议快速传递大量数据,即UDT协议。

换句话说,外国人发明了这些基本协议,而中国互联网巨头正在努力做平台和流量业务。他们真的无话可说…

UDT该项目于2001年开工Yunhong Gu芝加哥伊利诺伊大学国家数据挖掘中心 (NCDM)博士期间开发,毕业后不断维护升级。

UDP这是因为当时出现了传输速度更快、价格更便宜的光纤网络,取代了以前的铜电缆和双绞线,大大提高了信息传输的效率。此时,我们发现以前使用过TCP协议传输大数据会有很大的问题。因此,基于此UDP的UDT协议出现了。

UDT第一个版本,也被称为SABUL(Simple Available Bandwidth Utility Library),UDT支持批量数据传输,便于私有网络中的数据传输。

要注意的是UDT第一版SABUL使用UDP协议传输数据,同时使用单独的数据TCP协议连接传输控制消息。

UDT超高速网络(1)的初始版本 Gbit/s、10 Gbit/s2003年10月进行开发和测试,NCDM从芝加哥到荷兰阿姆斯特丹的平均每秒6秒.8G比特的传输。他们在30分钟内传输了大约1.4TB的数据。

从2004年发布的2.0版本开始,SABUL改名为UDT,UDT的全称是UDP-based Data Transfer Protocol,也就是基于UDP数据传输协议。

为什么要改成?UDT呢?因为在UDT2.0中,删除了SABUL中的TCP 并使用控制连接UDP处理数据和控制信息。 另外,UDT2还引入了一种新的拥塞控制算法,允许协议动态调整UDT和TCP流,实现UDT和TCP并发运行。

在2006年,UDT协议升级到三个版本,不仅在私人网络中运行,而且扩展到商业互联网。UDT3中的拥塞控制可以在低带宽环境下进行调整和优化,并允许用户轻松定义和安装自己的拥塞控制算法。UDT33也显著减少了系统资源(CPU使用内存)。

2007年,UDT4版本优化了高并发性和防火墙穿透性能。UDT4允许多个UDT连接绑定到同一个UDP端口还支持集合连接设置UDP hole punching。

什么是UDP hole punching呢?

UDP hole punching通常用于网络地址转换 (NAT)中。用于维护穿越NAT的用户UDP数据包流。它是专用网络中使用网络地址转换器的一种Internet双向建立在主机之间UDP连接方法。

什么是NAT呢?

大家都知道IPV4.地址有限,快速IPV地址快用完了,怎么解决这个问题?

当然,永久解决办法是IPV6,不过IPV推出这么多年,似乎还没有真正普及。

不使用IPV6.还有什么解决办法?

这种方法是NAT(Network Address Translators)。

NAT原理是局域网IP和端口和NAT设备的IP与端口进行映射。

NAT在内部维护一个转换表。通过这种方式NAT的IP连接多个局域网服务器的地址和不同的端口。

那么NAT有什么问题?

NAT问题是内部客户端不知道自己的外网IP地址,只知道内网IP地址。

如果是在UDP协议中,因为UDP无状态,需要NAT来重写每个UDP分组中的源端口、地址、IP分组中的源IP地址。

如果客户端将自己放在应用程序内部IP如果地址告诉服务器并想与服务器连接,则无法建立。因为找不到客户端的公网IP。

即使找到了公网IP,任何到达NAT设备外网IP分组还必须有目标端口,NAT也应该有一个条目可以将其转换为内部主机IP地址和端口号。否则,下图中的连接可能会失败。

怎样解决?

第一种方法是使用STUN服务器。

STUN服务器是IP在客户端通信地址已知的服务器之前,先去STUN服务器上面查询一下自己的外网IP和端口,然后再使用这个外网IP与端口通信。

但有时UDP该包裹将被防火墙或其他应用程序所阻挡。此时,中继器技术可以使用Traversal Using Relays around NAT (TURN) 。

双方都将数据发送到中继器server,由中继器server负责转发数据。请注意,这不再是P2P了。

最后,我们有一个叫做集大成者的协议ICE(Interactive Connectivity Establishment ):

实际上是直连,STUN和TURN综合体,可以直接连接,不能直接连接STUN,不能用STUN就用TURN。

在使用STUN和ICE在这个过程中,我们将有一个网络主机来建立端口映射和保持其他UDP但是UDP状态通常在几十秒到几分钟后过期,以确保NAT中UDP状态和生命周期,所以有UDP hole punching的技术。定期传输keep-alive数据包,对NAT中的UDP更新状态。

UDT的缺点

因为UDT是基于UDP协议,但是UDP由于其简单的特点,该协议没有安全特征。所以基于它UDT由于协议缺乏安全性,在商业环境中的应用将受到限制。

不过UDT你可以期待新版本的开发。

总结

UDT广泛应用于光纤网络上的高性能计算,如高速数据传输。我们将在后续工作中netty告诉你怎么用UDT协议。

本文已收录 http://www.flydean.com/11-udt/

最流行的解读,最深刻的干货,最简洁的教程,很多你不知道的小技巧等着你去发现!

欢迎关注我的微信官方账号:「程序那些事」,懂技术,更懂你!

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章