草庐IT

time_test

全部标签

sockets - 为什么 SCTP 不需要 TIME_WAIT 状态?

我正在阅读“UNIX网络编程:套接字API”,它提到SCTP不需要像TCP那样的TIME_WAIT状态,因为它使用了验证标记。为什么会这样?我理解为什么验证标签可以解决重复数据包的问题,​​因为接收方可以确定数据包是否属于当前SCTP关联,但最终的SCTPSHUTDOWN-COMPLETE数据包肯定会丢失,就像TCP中的最终ACK一样丢失,因此执行主动关闭的对等方仍然必须保持某种状态来处理此事件,就像TCP一样。 最佳答案 在这种情况下不需要维护状态信息。RFC4960为未知(突然)数据包定义了一种默认处理方式。比方说,你的协会有两

linux - 没有 TIME_WAIT 连接,为什么?

如果我有sysctltw_reuse=0和tw_recycle=0,并且netstat没有报告任何TIME_WAIT连接,这意味着......?它是两个服务器之间的本地网络连接,A->B,A在netstat中与B有TIME_WAIT连接,但B与A没有。 最佳答案 只有关闭通信的连接端才能处于TIME_WAIT状态,见相关UNIXSocketFAQ时序图。RememberthatTCPguaranteesalldatatransmittedwillbedelivered,ifatallpossible.Whenyoucloseasoc

java - 奇怪的 SocketExceptions : connection reset and Connection timed out

我有一个JavaTCP服务器和一个AndroidTCP客户端。服务器等待请求,然后将50MB的数据发送到Android客户端(客户端通过循环数组读取并覆盖数据,因此数据不会保存在手机上。)一切正常,花花公子,但有时客户端会崩溃有了这个:java.net.SocketException:Connectiontimedout服务器得到这个:java.net.SocketException:connectionreset客户端循环读取,直到接收到所有数据(我允许它在一次调用中读取的最大数据是1.5MB。服务器发送如下:connectionSocket.getOutputStream().wr

c# - 端口卡在 Time_Wait

我在C#中有一个TCP隧道。我需要打开和关闭隧道,这是我在服务器和客户端之间的应用程序。我正在使用它来关闭数据连接以测试另一个应用程序。我必须使用特定的端口。根据我等待重新连接的时间长短,在第二次、第三次、第n次连接上,我在绑定(bind)套接字时收到10048错误代码-“地址已在使用中”。关闭套接字时,我会执行ShutDown.Both和Close以清除端口,但是当我在命令提示符下执行netstat时,我仍然发现端口处于TIME_WAIT中。我还将套接字设置为无延迟。最后我试着做一个循环来检查端口的状态,但它以某种无限循环结束。我认为这是4分钟TIME_WAIT规则。我有一个显示ne

testing - 如何测试 TCP 服务器实现?

我已经编写了一个TCP服务器实现,我使用它创建了一个用作TCP回显服务的应用程序。现在我想测试这个回声服务器它可以处理多少个连接响应时间是多少它使用了多少内存和CPU请您推荐任何标准方法/工具来测试此回显服务器。我知道TCP和回显服务器实现都是相当标准的做法,所以我希望找到成熟的工具来测试它。P.S.:我可以编写自己的测试应用程序,但我不想这样做,因为如果我看到一些问题,我需要确定是我的服务器做错了。我不想先结束测试我的测试客户端。我使用C#和.NET3.5编写了这个实现,但我认为这与问题无关。 最佳答案 我有一个免费工具可以帮到你

unit-testing - 如何发送 RST 而不是正常关闭以进行测试?

当通过RST标志关闭TCP连接而不是通过正常的握手关闭连接时,我有一些代码似乎无法很好地处理它。“连接被对等方重置”的情况。我想编写一个始终通过RST关闭的TCP服务器,以便我可以重现该错误并为此编写一些单元测试。所以……如何发送RST而不是正常关闭以进行测试? 最佳答案 您可以通过修改您的SO_LINGER设置来获得RST。您希望将l_onoff设置为非零值并将l_linger设置为零。完成后,关闭套接字将导致重置。structlingerlng;lng.l_onoff=1;lng.l_linger=0;setsockopt(so

c# - 如何修复 "a connection attempt failed because the connected party did not properly respond after a period of time ..."错误?

我正在用C#制作游戏,我想显示对手的进度(Action等)。所以我通过TCP协议(protocol)将游戏中的事件发送给对手。我已经在本地主机上尝试了我的应用程序并且它可以工作但是当我尝试使用我的外部地址以便通过Internet进行通信时我在类TcpInformer.Connect()中收到以下错误:aconnectionattemptfailedbecausetheconnectedpartydidnotproperlyrespondafteraperiodoftime,orestablishedconnectionfailedbecauseconnectedhosthasfaile

sockets - Web 服务器如何避免 TIME_WAIT?

我正在编写一个简单的HTTP服务器并了解TIME_WAIT。繁重环境中的真实Web服务器如何处理来自数千个用户的请求,而不会在处理请求后所有套接字都卡在TIME_WAIT中?(不询问保持事件状态——这对单个客户有帮助,但对通过的数千个不同客户没有帮助)。我读到您尝试让客户端先关闭,这样所有TIME_WAIT就会分散到所有客户端,而不是集中在服务器上。这是怎么做到的?在某些时候,服务器必须调用close/closesocket。 最佳答案 发起主动关闭的节点是进入TIME_WAIT的节点。因此,只要客户端关闭连接,客户端就会得到TIM

tcp - nginx php5-fpm 上游超时(110 : Connection timed out) while connecting to upstream

我们有一个运行nginxphp5-fpmapc设置的网络服务器。但是,我们最近在页面呈现期间遇到了上游连接超时错误和速度减慢。快速重启php5-fpm解决了问题,但我们找不到原因。我们有另一个网络服务器在另一个子域下运行apache2,连接同一个数据库,做完全相同的工作。但是减速只发生在nginx-fpm服务器上。我认为php5-fpm或apc可能会导致问题。日志显示各种连接超时:上游连接超时(110:连接超时)blablablaphp5-fpm日志没有显示任何内容。只是child开始和结束:Apr0722:37:27.562177[NOTICE][poolwww]child29122

ios - 在 iOS 中发送 SPDY 请求导致 NSUrlSession 出现 "The request timed out"错误

我的iOS应用程序从nginxHTTP服务器加载图像。在我发送400多个此类请求后,网络“卡住了”,所有后续HTTP请求都会导致“请求超时”错误。只有当我重新启动应用程序时,我才能让图像再次加载。详细信息:我正在使用NSURLSession.sharedSession().dataTaskWithURL向jpeg文件发送四百个HTTPGET请求。请求按顺序发送,一个接一个。请求之间的间隔为10毫秒。使用NSURLSessionDataTask对象的cancel()方法取消每个先前未完成的请求。有趣的是:我只能在HTTPS请求和服务器上启用SPDY时遇到此问题。非安全HTTP请求工作正常