草庐IT

networking - WebRTC中如何指定UDP或TCP协议(protocol)的选择

我了解WebRTC支持TCP和UDP协议(protocol)。但是,我看不到API中可以指定支持哪种协议(protocol)的位置。应用程序通常在哪里指定要使用的协议(protocol)选择? 最佳答案 当两个RTC/P客户端连接时,它们通过sessiondescription交换参数列表,其中包括ICEprotocol发现的连接选项.它们具有优先级,可以是UDP或TCP。提供哪些选项以及如何确定它们的优先级取决于客户端实现,即浏览器。由于由JavaScript应用程序控制的信号层传输这些icecandidates*,因此网站开发人

linux - 您能否在受控网络中优化/配置 TCP,使其变得与 UDP 一样快?

我正在考虑编写自己的可靠UDP实现(丢包的数据包排序和重传)。这是针对我的受控网络内的内部系统。我想知道是否有可能在Linux系统上将TCP优化到与UDP一样快?如果是,我将只使用super优化的TCP,而不用担心实现可靠的UDP。 最佳答案 您可以采取一些措施来使TCP适应您的特定需求。您可以增加最大缓冲区大小、更改拥塞算法等等。我认为在重新发明轮子之前真的值得尝试,特别是因为你似乎对你的内部网络有很好的控制。Thisarticle描述其中的一些事情。所有这些参数的另一个很好的信息来源是Linux源代码中的Documentatio

android - 如何解决 Android 上的 TCP/UDP 数据包 fragment 问题

全部:我对MTU设置不太熟悉,想知道如何处理通过TCP/UDP看到的fragment(我们通过Android应用程序通过蜂窝网络发送数据包)。我们看到很多数据包fragment从Android设备发送到服务器。我想获得有关该主题的更多信息:什么是MTU?我们可以使用哪些工具来查看或验证数据包fragment(Wireshark、tcpdump等)?我们如何在Android设备上使用ping/traceroute等标准工具(这有用吗)?提前致谢 最佳答案 MTU表示最大传输单元——它表示本地链路层将传输的最大数据包大小。例如,基于以太

tcp - 使用 SNMP 检查打开的 TCP/UDP 端口

我需要找到一个可以与“snmpwalk”一起使用的OID,它描述了哪些TCP/UDP端口在我的机器(本地主机)上是开放的和可用的关于此的类似帖子(here)是使用:snmpwalk-v2c-cpubliclocalhosttcpConnStatesnmpwalk-v2c-cpubliclocalhostudpLocalAddress但据我了解,这现在只显示打开的连接?无论如何,我的实验室因使用这些而被纠正错误。是否有任何其他OID可以显示可用的TCP/UDP端口?(我在Ubuntu中使用终端) 最佳答案 给你!snmpwalk-v2

java - 是否值得尝试在 UDP 之上构建我自己的可靠性?或者我应该只选择 TCP?

我从未尝试过在UDP上编程,但我知道它很快并且不可靠。我的问题是,如果我在UDP之上对可靠性进行编程,最终的性能是否会与使用TCP相同?IE。值得一试吗?要点:没有用UDP编程,第一次尝试实现可靠性。 最佳答案 有许多商业解决方案可以提供快速可靠的UDP。对于典型的安装,这些成本高达10万美元,您可以预期在硬件上花费大约相同的费用以使其稳定。编写可靠的UDP比听起来要难得多,因为您对丢包非常敏感。也就是说,只要您丢失的数据包很少,它就可以正常工作。对于简单的安装,TCP比尝试实现您自己的可靠UDP更快、更简单。如果您不需要可靠性,我

networking - 需要帮助决定何时在我的基本聊天网络中使用 UDP over TCP

我已经阅读了很多关于UDP与TCP的其他线程,但还没有真正找到任何能够正确回答我的设计问题的线程我将为一个项目开发的聊天网络将有3个主要应用程序:客户端、服务器和一个HUB(服务器)。HUB服务器是将所有服务器连接在一起形成网络的主要服务器。服务器将跟上正在创建的聊天室,换句话说,它将托管聊天室。客户端将用于连接到服务器以加入聊天室。现在我主要关心的是,在从客户端到客户端、服务器到服务器或服务器到客户端发送或执行请求时,我什么时候应该使用UDPoverTCP,反之亦然?注意:整个聊天网络项目100%基于文本,没有图形、网络摄像头、麦克风或文件共享功能。 最佳

java - UDP 数据包是否完整到达?

我知道TCP模拟流,因此通常在收到任何数据后立即开始读取。这就是为什么我使用这个片段来确保它在对它采取行动之前等待整个数据包intpacketSize=inputStream.readShort();bytepacketBuffer[]=newbyte[packetSize];intbyteTrans=0;while(byteTrans但是,对于UDP,我仍然需要解决同样的问题吗?我不这么认为,因为TCP基本上是通过将数据分解成更小的数据包并发送它来模拟流,而在UDP中,您可以更好地控制整个过程。我用的是UDP读取byte[]packetByte=newbyte[packetSize]

python - 如何确保发送完整数据?发送到(udp 套接字)Python

首先,我知道TCP和UDP之间的区别,而且我知道,使用UDP时可能会丢失一些数据包。但是,当我们假设我为UDP设计了一个带有一些简单ACK的协议(protocol)时,我如何确保我发送/接收了完整的数据?例如,对于TCP套接字,它非常简单:接收:defrecvall(sock,n):i=0data=""whilei然后发送:sock.sendall(msg)。在使用UDP套接字时应该如何做类似的事情? 最佳答案 如果您想确保您的客户端接收到所有数据,请使用TCP。UDP不适用于需要确保数据完整性的情况。只有在可以接受丢包的情况下才使

c# - 与非托管代码相比,在 TCP/UDP 套接字上读取/写入大量数据时托管代码是否存在性能损失?

您认为在托管应用程序中使用C#TCP/UDP套接字可以处理(大致)与nativeC++版本相同的数据量吗?如果不是,我们应该考虑使用native还是c#更好的数据量是多少,托管端实现的最大障碍是什么? 最佳答案 根据我的经验,网络速度和延迟是性能方面比托管或非托管代码更大的因素。实际上,在数据库访问方面也是如此。 关于c#-与非托管代码相比,在TCP/UDP套接字上读取/写入大量数据时托管代码是否存在性能损失?,我们在StackOverflow上找到一个类似的问题:

Unix TCP 服务器和 UDP 服务器

为什么TCP服务器的设计大多是这样的,每当它接受连接时,都会调用一个新进程来处理它。但是,为什么在UDP服务器的情况下,大多数情况下只有一个进程来处理所有客户端请求? 最佳答案 如前所述,TCP和UDP之间的主要区别在于UDP是无连接的。使用UDP的程序只有一个接收消息的套接字。所以如果你只是阻止并等待消息是没有问题的。如果使用TCP,每个连接的客户端都会得到一个套接字。那么你不能只是阻塞并等待一个套接字接收一些东西,因为还有其他套接字必须同时处理。所以你有两个选择,要么使用非阻塞方法,要么使用线程。当您没有一个必须处理每个客户端的