Questions tagged «udp»

用户数据报协议是IP协议栈的消息传递协议之一。使用UDP,计算机应用程序可以将消息发送到Internet协议(IP)网络上的其他主机,而无需事先进行通信以建立特殊的传输通道或数据路径。

24
什么时候使用UDP代替TCP?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 3年前关闭。 改善这个问题 由于TCP保证了数据包的传递,因此可以被认为是“可靠的”,而UDP不保证任何内容,因此数据包可能会丢失。在应用程序中而不是通过TCP流使用UDP传输数据的优势是什么?在哪种情况下,UDP是更好的选择,为什么? 我假设UDP更快,因为它没有创建和维护流的开销,但是如果某些数据永远不会到达目的地,那不是无关紧要的吗?
302 networking  tcp  udp 

17
两个应用程序可以侦听同一端口吗?
同一台计算机上的两个应用程序可以绑定到相同的端口和IP地址吗?更进一步,一个应用程序可以监听来自某个IP的请求,另一个监听来自另一个IP的请求吗?我知道我可以有一个从两个线程(或分支)开始的应用程序,它们具有相似的行为,但是两个没有共同点的应用程序可以做到相同吗?
283 sockets  tcp  udp  port  communication 

10
互联网上最大的安全UDP数据包大小是多少
我已经阅读了许多有关UDP数据包大小的文章,但无法得出正确的结论。 许多服务将最大UDP数据包限制为512字节(例如dns) 给定Internet上的最小MTU为576,IPv4标头的大小为20个字节,而UDP标头的大小为8个字节。剩下548个字节可用于用户数据 我可以使用不超过548个大小的数据包而不会造成数据包碎片吗?还是DNS的创建者知道某些东西,以及为什么他们将其限制为512字节。 我可以安全地超过548个字节吗?
201 networking  sockets  udp  ipv4 

15
UDP vs TCP,速度快多少?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 去年关闭。 改善这个问题 对于一般协议消息交换,可以忍受某些数据包丢失。UDP比TCP效率高多少?
194 networking  tcp  udp 

6
TeamViewer有多快?
抱歉,长度太长了。 介绍 我正在Windows Vista / 7的C#4.0中开发远程桌面软件(只是为了好玩)。我已经克服了一些基本的障碍:我拥有一个健壮的UDP消息传递系统,相对简洁的程序设计,一个镜像驱动程序(DemoForge提供的免费DFMirage镜像驱动程序)已启动并正在运行,并且我已为所有实现了NAT遍历对称NAT除外的NAT类型(存在于公司防火墙中)。 关于屏幕传输/共享,由于有了镜像驱动程序,我会自动收到有关更改的屏幕区域的通知,并且可以简单地将镜像驱动程序的不断变化的屏幕位图编组到自己的位图。然后,我将屏幕区域压缩为PNG并将其从服务器发送到我的客户端。事情看起来还不错,但是还不够快。它和VNC一样慢(顺便说一句,我不使用VNC协议,只是一个自定义的业余协议)。 从最慢的远程桌面软件到最快的远程桌面软件,该列表通常从所有类似VNC的实现开始,然后攀升至Microsoft Windows Remote Desktop ...然后是... TeamViewer。对于CrossLoop和LogMeIn不太清楚-我没有使用过它们,但是TeamViewer的速度非常快。从字面上看,它是真实的。我tree在命令提示符下运行了一条命令,并以20毫秒的延迟进行了更新。我可以比笔记本电脑慢几毫秒来浏览网页。在Visual Studio中垂直滚动代码的延迟时间为50毫秒。考虑一下要完成所有这些工作,TeamViewer的屏幕传输解决方案必须多么强大。 VNC使用基于轮询的挂钩来检测屏幕变化,并在最坏的情况下进行暴力屏幕捕获/比较。在最佳状态下,他们使用DFMirage之类的镜像驱动程序。我在这个水平上。他们使用了称为RFB协议的协议。 Microsoft Windows远程桌面显然比VNC高出了一步。我从StackOverflow上的某个地方听到,Windows远程桌面不会发送屏幕位图,而是发送实际的绘图命令。这非常出色,因为它可以发送简单的文本(在此坐标处绘制此矩形并使用此渐变为其着色)!远程桌面确实非常快-这是在家中工作的标准方式。它使用了一种称为RDP协议的东西。 现在,TeamViewer对我来说是一个完全的谜。显然,他们发布了版本2的源代码(TeamViewer是2012年2月的版本7)。人们已经读过它,并说版本2没有用-它只是对具有自动NAT遍历的VNC的一些改进。 但是版本7 ...现在快得离谱了。我的意思是,它实际上比Windows Remote Desktop快。我已经使用TeamViewer流式传输DirectX 3D游戏(速度为1 fps,但Windows远程桌面甚至不允许DirectX运行)。 顺便说一句,TeamViewer 无需镜像驱动程序即可完成所有这些操作。可以选择安装一个,但速度会更快一点。 问题 我的问题是,TeamViewer怎么这么快?一定不可能。如果您即使在24位深度(16位深度也很丑陋)下都具有1920 x 1080分辨率,那仍然是6,220,800字节原始数据。即使使用libjpeg-turbo(大型公司使用的最快的JPG压缩库之一)将其压缩到30KB(让我们非常慷慨),也需要花费一些时间才能通过TeamViewer的服务器进行路由(TeamViewer通过简单地代理流量来绕过公司的对称NAT)他们的服务器)。而libjpeg-turbo压缩将需要时间来压缩。对于我来说,高质量的JPG压缩需要175毫秒才能完成1920 x 1080的完整屏幕截图。如果主机计算机运行Atom处理器,则该数字将增加。我只是不了解TeamViewer如何如此出色地优化了屏幕传输。同样,小尺寸图像可能会被高度压缩,但至少要花费数十毫秒的压缩时间。大型图像无需花费时间即可压缩,但需要很长时间才能通过。不知何故,TeamViewer完成了整个过程,每秒获得大约20-25帧。我使用了网络监视器,TeamViewer在500 Kbps和1 Mbps的速度下仍然没有滞后(在该传输速率下,VNC软件滞后了几秒钟)。在我的tree在命令提示符测试中,TeamViewer接收入站数据的速率为1 Mbps,并且仍以5-6 fps的速度运行。VNC和远程桌面不这样做。又怎样? 答案会有些复杂和复杂,因此,如果您只是说这是因为它们使用UDP而不是TCP(请相信他们实际上确实确实使用TCP确实成功),请不要发布0.02美元。 我希望在StackOverflow上的某个地方有TeamViewer开发人员。 潜在答案 人们回复后将对此进行更新。 我的想法是,首先,TeamViewer具有很好的网络控制。例如,他们将大数据包拆分为MTU大小以下,并且从不浪费行程。他们可能有各种各样的花哨的钩子来检测屏幕变化以及非常快的XOR图像比较。

11
TCP和UDP之间的区别?
TCP和UDP有什么区别? 我知道TCP用于非时间紧迫的应用程序,而UDP用于需要快速传输数据的游戏或应用程序。我知道TCP用于HTTP,HTTP,FTP,SMTP和Telnet。我知道UDP用于DNS和DHCP。 但为什么?TCP和UDP的哪些特性使其对于各自的用例有用?

6
端口如何与IPv6一起使用?
常规的IPv4点分四点符号用冒号分隔地址和端口,如回送接口上的Web服务器示例所示: 127.0.0.1:80 但是使用IPv6表示法时,地址本身可以包含冒号。例如,这是回送地址的简称: ::1 如何用IPv6地址/端口端点的文本表示形式来表示端口(或功能等效的端口)?
143 tcp  udp  ipv6  ports 


5
如何使用netcat仅发送一个UDP数据包?
我只想在UDP数据包中发送一个短值,但是运行命令 echo -n "hello" | nc -4u localhost 8000 我可以看到服务器正在 问候消息,但是我必须按Ctrl+ c退出netcat命令。 发送后如何退出 问候? 抱歉,由于噪音,我重新阅读了手册页并找到了 -q选项。 echo -n "hello" | nc -4u -q1 localhost 8000 有效(1秒后退出)。 由于某种原因,它不适用于-q0。
120 udp  netcat 


14
HTTP是否使用UDP?
这可能是一个愚蠢的问题: HTTP是否曾经使用过用户数据报协议? 例如: 如果使用HTTP流式传输MP3或视频,它内部是否使用UDP进行传输?
103 http  tcp  udp 

13
视频流上的TCP与UDP
我刚从网络编程考试中回来,他们问我们的一个问题是“如果要流式传输视频,您将使用TCP还是UDP?对存储的视频和实时视频流进行解释”。对于这个问题,他们只是希望对存储的视频使用TCP做出简短的回答,对实时视频使用UDP做出简短的回答,但是我在回家的路上就想到了这一点,并且使用UDP传输实时视频是否一定更好?我的意思是,如果您有足够的带宽,并且说您正在直播足球比赛或音乐会,那么您真的需要使用UDP吗? 可以说,在播放此音乐会或使用TCP的任何内容时,您开始丢失数据包(在您和发送方之间的某些网络中发生了一些不好的事情),并且一整分钟您都没有收到任何数据包。视频流将暂停,一分钟后,数据包将再次开始通过(IP为您找到了一条新路由)。然后将发生的情况是,TCP将在您丢失的那一刻重新传输并继续向您发送实时流。假设带宽高于流的比特率,并且ping不太高,因此在很短的时间内,您丢失的一分钟将为您充当流的缓冲区。 ,如果再次发生丢包,您将不会注意到。 现在,我可以想到一些不是一个好主意的设备,例如视频会议,您需要始终处于视频流的结尾,因为视频聊天过程中的延迟太可怕了,但是在足球比赛或音乐会中,如果您落后于直播,那又有什么关系呢?另外,可以确保您获得所有数据,并且最好保存起来以备以后查看,而不会出现任何错误。 因此,这使我想到了问题。使用TCP进行实时流传输是否有我不知道的缺点?还是真的应该这样,如果您有带宽,那么就应该使用TCP,因为它对网络“更小”(流控制)?

13
当您需要可靠的UDP时使用什么?
如果您遇到TCP连接可能太慢而UDP'连接'可能太不可靠的情况,该怎么使用?有各种各样的标准可靠的UDP协议,您对它们有什么经验? 请针对每个答复讨论一种协议,如果其他人已经提及您使用的协议,则可以考虑将其投票,并在需要时使用评论详细说明。 我对这里的各种选项感兴趣,其中TCP处于规模的一端,而UDP处于另一端。提供了各种可靠的UDP选项,每个选项都将TCP的某些元素引入UDP。 我知道,TCP通常是正确的选择,但是列出替代方案通常有助于帮助得出这一结论。基于UDP构建的诸如Enet,RUDP等之类的东西各有利弊,您使用过它们,您的经验是什么? 为避免疑问,没有更多的信息,这是一个假设性的问题,我希望能引出一系列答复,详细说明需要做出决定的人可以使用的各种选择和替代方案。

1
WebRTC是否使用TCP或UDP?
这听起来像一个非常基本的问题,但我需要确认 WebRTC是否使用TCP或UDP作为其对等传输?我怎么知道 ? 我读到有可靠性模式和DTLS协议,它们如何影响? Media和DataChannel的传输方式是否相同? 如何在TCP和UDP之间切换? 我之所以这样问,是因为我知道浏览器对并行连接的数量有限制(我认为他们谈论的是TCP),也许UDP连接不受限制。
81 tcp  udp  webrtc  channel  transport 


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.