草庐IT

tcp_sack

全部标签

sockets - TCP传输持续时间

我有两个应用程序通过TCP套接字进行通信。第一个接收,第二个发送。Firstapp:start=clock();recv();end=clock();当我运行应用程序时,(结束-开始)是150-200毫秒。(总是)第二个应用:while(!stop){start=clock();prepare_message();send();end=clock();}当我运行应用程序时,(结束-开始)是0.00毫秒。(总是)消息负载接近200-300字节,ping持续时间谢谢 最佳答案 发件人在准备就绪时发送消息。接收者必须等待消息,这就是额外时

networking - 使用 TUN/TAP 测试用户空间 TCP/IP 堆栈

是否可以使用TUN/TAP接口(interface)测试TCP堆栈?我正在考虑这样的机制:+--------------------------------+|TCPClient/Server||socket(AF_INET,SOCK_STREAM)||e.g.HTTPServer/Client|+----------+---------------------+||+---------------------+||TUNDevice|||(kerneldoesTCP)||+---------------------+|+------------+-------------------

sockets - TCP端口复制器

我有一个在TCP端口上监听连接并处理接收到的数据的服务。我现在需要拆分这些数据并在“实时”和“测试”机器上进行处理。我想让这成为每台机器的近乎完美的复制,我认为最简单的方法是接收到“复制器”服务,该服务只需将数据复制并重新传输到其他两个端点(使用其中一个能够将数据发送回源)是否有软件可以做到这一点?该平台是WindowsServer。我考虑过自己写这个,听起来并不太难,但如果解决方案已经存在,我更愿意使用它。谢谢 最佳答案 您打算如何解决以下两个问题:如果你真的有TCP协议(protocol),你肯定会在TCP开销上有所不同。因为它

c# - 在 TCP 套接字数据发送 C# 之间获取恒定延迟

我有一个使用C#2010的客户端-服务器应用程序。在TCP套接字中,我为应用程序中所有连接的套接字(客户端-服务器)设置了Nodelay=True和SendBufferSize=0。我正在跟踪每个传入-传出数据包,并使用streamwriter将其写入日志文件,它的autoflush属性设置为true。我注意到一件事,有时在发送数据时2个数据包之间存在恒定延迟(15-16毫秒)。连续发送几次后,此延迟再次出现。为什么会延迟?我怎样才能避免它....查看图片...http://s4.postimg.org/uoly38shp/Trace_1.pnghttp://s14.postimg.o

java - 阻止从输入 TCP 套接字读取

我目前正在为一个分布式系统类(class)项目工作,我们必须在Java中实现一个小型传感器网络。传感器每x秒将温度发送到管理节点(也是传感器),记录它们。根据请求,用户节点连接到管理节点并接收检测到的温度的平均值。问题之一是管理节点可能“失败”。在失败之前,它实际上会向用户节点发送一条消息,该消息需要向将成为新管理员的其他常规节点之一发送一个特殊的数据包。用户节点通过TCP连接与管理员通信,它发送“请求”数据包并接收包含温度的数据包。我目前正在使用java.net.socket来实现它。当管理员失败时,问题就来了。在正常情况下,可以创建一个新线程等待来自服务器的“失败”消息,然后使用新

php - TCP CLOSE_WAIT 连接状态 - 未知原因

为什么socket_shutdown($socket,2);有时会使套接字处于CLOSE_WAIT状态,尽管通过执行socket_close($socket);关闭套接字后立即关闭套接字;? 最佳答案 事实并非如此。CLOSE_WAIT是由在本地应用程序关闭此端之前收到来自对等方的传入关闭引起的。当应用程序关闭此端时,状态转换。关机与它无关。 关于php-TCPCLOSE_WAIT连接状态-未知原因,我们在StackOverflow上找到一个类似的问题: ht

java - tcp 服务器 : why adding delay increases ability to service clients? 的异常行为

大家好!我的问题是关于基于NIO的服务器,我的情况如下:服务器从100个客户端(100个客户端线程)读取消息,每个客户端发送100条消息。因此,消息总数为100x100=10000。我的服务器中有传入消息计数器,它在从某个客户端读取消息后增加。当我刚刚阅读消息时,我的服务器读取了大约9200条消息。当我为模拟服务延迟添加虚拟循环时,我的服务器出人意料地为所有10000条消息提供服务!我的期望是这样的——好吧,即使有很短的延迟,服务器也会设法读取所有10000条消息。因此,如果没有这种延迟,服务器可能可以读取更多消息(服务更多客户端)。但是你看,这是错误的。事不宜迟,事情会变得更糟。He

c# - Socket tcp c# 如何清除输入缓冲区?

我正在为WindowsPhone编写应用程序,我需要与服务器通信并传输数据。SERVER是用C++编写的,我无法修改它。客户是我必须写的。服务器的设计使得客户端连接到它并传输数据。对于所有传输,连接保持打开状态。通过用C#编写代码,我能够从服务器接收数据,但在第一次接收后,我在缓冲区中读取的数据始终相同。所以我需要一种方法来刷新输入缓冲区,以便我可以接收新数据(数据连续发送)。我正在使用此处定义的类:http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh202858%28v=vs.105%29.aspx非常感谢!!

mvvm - 在 MVVM (TCP) 中实现数据访问层

大多数MVVM和数据访问层文章都解释了WCF和DTO的东西,但我的项目从不使用它们,而是与服务器进行简单的TCP/IP通信。我有模型直接使用Tcp/ip套接字。但是,我一直觉得tcp/ip套接字逻辑应该与模型分离。如果是这样,我想知道如何解耦和实现它们。 最佳答案 我一直认为模型是从数据库、服务、文件...任何存储库(包括套接字)交付给我的“东西”。我会将套接字包装在某种存储库中,以一种可以转换为ViewModel的良好格式获取数据。也就是说,如果速度是您使用套接字的原因,那么整个存储库/模型/View模型可能被证明太慢了。一如既往

Python 3 TCP/IP ascii 命令

我正在尝试向我的步进驱动器发送一个ascii命令(RV,即移动命令)。但我尝试过的一切都以Python(我认为)结束,在“字符串”的开头添加了一个额外的字符;在这种情况下,它添加了一个“g”。步进命令终端不添加“g”。来自Wireshark:00000004a322566ef01faf0bbafd08004500..."Vn........E.0010002035b5000080110000c0a84b62c0a8.5.........Kb..00204b96d6a31e5f000c186752560a20K...._...gRV.Python:defmain():importsock