草庐IT

network_connected

全部标签

networking - {active, false}、{active, true} 和 {active, once} 有什么区别?

您可能知道,gen_tcp有三种模式。{active,false}、{active,true}和{active,once}。我已经阅读了一些关于{active,false}、{active,true}和{active,once}的文档。但是,我没有得到它。{active,false}和{active,true}和{active,once}有什么区别?能解释清楚吗? 最佳答案 这是关于流量控制的:你有一个Erlang进程来处理传入的网络流量。通常您希望它对传入的数据包快速使用react,但您不希望它的消息队列增长得​​比它处理它的速度

networking - TCP缓冲区在进程内存的地址空间中吗?

我被告知要增加TCP缓冲区大小以便更快地处理消息。我的问题是,无论我为TCP消息使用什么缓冲区(ByteBuffer、DirectByteBuffer等),只要CPU从NIC接收到中断,以处理读取套接字数据的网络请求,操作系统是否会在地址空间之外的内存中维护任何缓冲区请求进程(即正在监听该套接字的进程)或无论CPU以何种方式接收网络数据,它总是只写入进程地址空间的缓冲区,不维护地址空间之外的缓冲区(包括'Recv-Q'和netstat命令的'Send-Q')为了这次交流? 最佳答案 Linux网络栈接收数据的过程有点复杂。我写了一个

tcp - Web 服务客户端遇到 'java.net.SocketException: Connection reset'

问题我们在Weblogic服务器10.3.1上部署了一个javaee应用程序,它提供HTTPWeb服务。我们就称它为“服务器”吧。部署在另一台机器上的tomcat上的另一个java应用程序,它将对服务器进行Web服务调用,我们称它为“客户端”。客户端和服务器应用程序都在使用Axis。客户端有可能因异常而失败"java.net.SocketException:Connectionresetatjava.net.SocketInputStream.read(SocketInputStream.java:168)",1分钟后,服务器应用程序日志显示:org.apache.axis.Messa

networking - 在 UDP 的情况下,MTU 重传如何工作

众所周知,UDP不支持重传和其他一些东西。我们也知道像MTU这样的东西基本上以下列方式工作——当源点和目标点之间的路径上的网络设备之一不支持某种大小的数据包时,它就会丢弃它。对于TCP,这不是问题——它已经知道握手后的MSS总是小于MTU(我说的对吗?),因此不可能发送大小大于MTU的数据包。但是,我想知道在UDP情况下它是如何工作的?正如我已经说过的,此协议(protocol)中没有重传,也没有MSS这样的东西。那么当数据包因超过MTU而被丢弃时会发生什么?或者它只是因为MTU性质才起作用(它实际上属于IP层,而不是像UDP或TCP这样的传输层协议(protocol))?所以IP层以

networking - 每个发送的 TCP 数据包是否有一个单独的重传计时器?

我有一个关于TCP重传定时器的问题。我已经阅读了很多关于TCP拥塞控制的文章、博客条目和其他内容,当然我也遇到了重传计时器。也许这是一个愚蠢的问题,但有时会提到对于每个发送的段都会启动一个计时器,而在其他地方据说会为每个发送的段重置计时器。那么是每个发送的段有一个单独的RetransmissionTimer,使得发送的段有多少个定时器,还是只有一个RetransmissionTimer? 最佳答案 以下几行来自“TCPIPIllustrated,volume1”,所以似乎只有一个定时器存在,新的取代了旧的。OnceasendingT

networking - 通过限制性出站防火墙建立 TCP 连接

我正在使用Java创建一个使用TCP进行通信的客户端/服务器应用程序。运行客户端的网络有一个出站防火墙,阻止客户端连接到服务器。有什么方法/解决方法可以通过此防火墙创建TCP连接吗?我曾尝试使用开放的公共(public)端口,例如端口80、443和113,但是防火墙似乎在建立连接后就断开了连接(可能是通过检测非协议(protocol)数据包)。另一种方法是让客户端软件作为从外部网站托管的Java小程序运行,但我不确定出站防火墙是否仍能阻止此连接。如有任何帮助,我们将不胜感激。 最佳答案 假设用户可以访问互联网,而您无法通过端口80/

java - BufferedReader.readLine() 给出错误 java.net.SocketException : Software caused connection abort: recv failed

我正在尝试对我的程序进行编码,以便缓冲读取器从我的tcp客户端获取readLine()中的内容,但是程序一执行我就收到此错误Mar31,201011:03:36PMdeswash.DESWashView$5runSEVERE:nulljava.net.SocketException:Softwarecausedconnectionabort:recvfailedatjava.net.SocketInputStream.socketRead0(NativeMethod)atjava.net.SocketInputStream.read(SocketInputStream.java:129

networking - tcp reno、newreno 和慢启动

当在慢启动过程中发生丢包时,reno/newreno算法是否注意到可能的dupacks,还是纯粹的慢启动->rto?因此,如果发送两个数据包(在慢启动开始时),而第一个数据包丢失了,那么慢启动除了rto之外还会做其他事情吗?这是令人困惑的,因为rfc声明“在实践中它们(慢启动和拥塞避免)是一起实现的”。而且linux源代码读起来有点厚,而且只有一个实现。 最佳答案 Whenpacketlossoccurswhileinslowstart,doesthereno/newrenoalgorithmsnoticepossibledupac

networking - 丢弃 TCP 连接,这正常吗?

我在我的本地机器上设置了这个简单的脚本:#!/usr/bin/pythonimportsocketfromdatetimeimportdatetimeprint"Connectingtotestserver"s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)s.connect(("mydomain.com",9090))start=datetime.now()totalbytes=0try:whileTrue:data=s.recv(512)totalbytes+=len(data)print"Got%dbytesofdata"%(le

TCP 客户端服务器 : blocking connect call

我正在构建一个需要TCP进行通信的分布式应用程序。最终实验将涉及数千台服务器,与它们通信的客户端数量大约是其10-100倍。当前的设计是为每个事务建立连接、通信然后关闭连接。由于我只做过一些带有几个客户端的简单多线程服务器,所以我选择了阻塞套接字进行通信(听起来很简单)。我不确定这种方法是否会扩展得足够高。有人可以分享他们的经验吗?目前,代码在具有三个服务器进程和几个客户端的单台机器(48核/本地环回)上运行。客户端有一个紧密的for循环,他们建立连接,与任何一台服务器通信,然后断开连接。这些初始测试要求客户进行大约一百万次for循环迭代。基本上,随着我们扩大实验规模,这是严格的测试。