草庐IT

速度环

全部标签

networking - 在拥挤的局域网中,UDP 发送速度是否比 TCP 快?

我有一个实时应用程序(使用websockets的C++)必须通过拥挤的LAN进行通信。因为它是实时的,所以不能容忍延迟。在这种情况下,UDP的性能会优于TCP吗?我不能容忍数据包丢失,但如果使用UDP,可以通过重试来解决。 最佳答案 在拥塞的网络中,是的,UDP将发送它的数据包比TCP更快,这是因为TCP使用称为congestioncontrol的机制将拥塞考虑在内。.UDP没有拥塞控制,因此它会以本地网络接口(interface)允许的速度发送数据包。因此,如果您的首要任务是发送数据包,那么UDP就是最佳选择。但是,如果您也有兴趣

java - Android 到 Java TCP/IP 读取速度太慢

所以,我一直在创建一个使用蓝牙和WiFi(用户决定)的无线鼠标应用程序,我最近决定从UDP连接到TCP连接,因为我注意到主流鼠标应用程序之一使用TCP而不是UDP。我的问题:我正在通过TCP-IP向我的服务器端发送多个字节数组,但感觉好像有延迟,有什么方法可以加快我的速度接收字节数组?涉及接收的服务器代码:Socketclient=null;BufferedInputStreambis=null;try{client=serverSocket.accept();}catch(IOExceptione){e.printStackTrace();}try{bis=newBufferedIn

java - 提高简单 TCP 客户端/套接字上的数据传输速度

我的家庭作业是通过重定向标准I/O,使用客户端/服务器TCP套接字对创建一个简单的数据传输机制。我实际上让它工作,但是当我尝试传输大文件(比如~5g)时,速度会急剧下降。我正在使用BufferedInputStream和BufferedOutputStream,我认为也许我可以在那里进行一些优化。我的服务器的代码是:privatestaticfinalintBUF_SIZE=2047;publicstaticvoidmain(String[]args)throwsIOException{/**Attempttoparsecommandlinearguments.*@requirearg

javascript - Node.JS 套接字服务器和同一服务器上的连接速度变慢

我可能在这里做错了什么,但本质上我有一个服务层可以拦截对某个url的发布请求。重要的是它永远不会关闭,所以我将它与主服务器隔离开来。我认为让服务层接受http请求并通过任何连接的流发送生成的XML数据包是最简单的。好吧,它在技术上是可行的,但我遇到的问题是服务器和客户端都在同一台机器上,而且似乎stream.write正在填满内核缓冲区并减慢它命中之间的时间量服务层到它实际到达客户端的时间。在服务器端在连接时,我将流推送到连接数组中,我还设置了一个时间间隔以确保我在过去12秒内收到了一条消息(心跳)。在接收时我遍历流数组,确保它是可写的并将xml数据包写入它。在客户端每8秒写一次“心跳

c# - 取消请求会降低网络速度

当我取消HTTPClient请求时,比如在停止调试时,连接似乎卡在某处并减慢了我的整个网络。它似乎不会在一两次后发生,但多次这样做会减慢我网络上所有设备的速度。我找到的唯一解决办法是重置我的路由器。using(HttpClientclient=newHttpClient()){varresponse=client.GetAsync(uri).Result;if(response.IsSuccessStatusCode){varresponseContent=response.Content;varresponseString=responseContent.ReadAsStreamAs

java - 发送 ACK 会大大减慢数据传输速度

意识到TCP校验和实际上是一个非常差的校验和这一事实促使我在数据block中包含一个额外的校验和(SHA-256)以验证服务器上数据的完整性,并在损坏的情况下请求数据再次阻止。但是ACK的加入大大降低了数据传输速率。在我的例子中(数据通过wifi传输)速度从~90mbps降低到~12mbps。客户:SocketChannelsocketChannel=SocketChannel.open(newInetSocketAddress("192.168.31.30",3333));ByteBufferbyteBufferData=ByteBuffer.allocateDirect(1024*

c++ - 当服务器速度慢时,写入客户端返回 EWOULDBLOCK

我试图在特定时间间隔后在套接字中写入一些数据。我有两个线程,一个线程维护TCP连接,另一个线程生成数据。Thedatagenerationtherad生成数据,并将其写入共享内存。服务器线程从共享内存中读取数据,发送给客户端。但是,当数据生成线程变慢时,当涉及大量计算时,服务器线程在尝试写入客户端时会出现EWOULDBLOCK错误。但是,令人惊讶的是,从客户端来看,并没有这样的错误。如果我没记错的话,当服务器比客户端快并且套接字缓冲区在再次写入之前未完全读取时,将返回EWOULDBLOCK错误。但是,这里的情况完全相反。会不会是servertherad一直处于休眠状态,直到数据生成线程

c# - 减慢 TCP/IP 接收速度

我编写了一个简单的.Net客户端,它通过TCP/IP连接到硬件设备(FPGA)。当我单击客户端中的一个按钮时,它会向设备发送一个小的(4字节)“请求”,然后立即读取设备响应的数据block(大约32kb)。客户端代码看起来像这样:-varstream=_tcpClient.GetStream();stream.Write(requestData,0,requestData.Length);using(varms=newMemoryStream()){vartempBuffer=newbyte[65535];do{varnumBytesRead=stream.Read(tempBuffe

windows - 远程计算机上的传输速度慢

嘿,StackOverflow的friend们!我正在制作一个IOCP服务器,到目前为止我已经解决了大部分问题,但仍然存在一个问题,我不知道从哪里开始研究。当我在我的机器上运行客户端/服务器时,一切都很好。它与WindowsSDK示例的速度相匹配,可能更快一点,而且肯定使用更少的CPU周期。但是,当我从另一台计算机运行客户端时,传输速度上限为37KB/s,往返延迟为200毫秒(而不是0)。现在,如果我将客户端连接到SDK示例服务器,我就没有那个问题,所以我的代码有问题。据我所知,套接字的初始化方式完全相同,选项也相同。我还在分析器中运行我的服务器以检查瓶颈,但我找不到任何瓶颈。此外,我

sockets - 当数据发送速度快于处理速度时,套接字将如何操作?

我不是很清楚TCP和sockets的一些细节机制。一个客户端通过TCP连接到服务器,并向服务器发送数据。如果发送速度远大于处理速度会怎样?比如客户端每秒发送1MiB,而服务端每秒只能处理1KiB,会不会导致系统内存崩溃?我知道套接字API中有接收缓冲区大小设置:如果我设置了缓冲区大小但数据泛滥怎么办?如果我不设置接收缓冲区大小会怎样? 最佳答案 简而言之,当服务器每秒只能处理1k时,客户端将无法获得每秒发送1M的机会。这有两个原因:TCP有慢启动机制TCP有一个窗口机制,TCP连接的每一端都不断地向另一端通告自己的接收能力。客户端发