草庐IT

ip_network

全部标签

network-programming - iperf如何在udp中报告丢包

Iperf是众所周知的吞吐量计算工具。当我在我的linuxpc上使用iperf尝试udp吞吐量时,它报告了10%的数据包丢失。在UDP协议(protocol)中,数据报没有收到任何确认。但是,iperf以何种方式报告或计算数据包丢失?iperf工具如何知道传输的数据报是否收到。我想知道这个。 最佳答案 由于双方都使用了iperf,iperf确定在每个数据包之后接收什么。基本上,Iperf工具检查序列号在它收到的每个数据报中递增。如果序列号没有递增1,则数据报丢失。如果我们收到一个序列号小于前一个序列号的数据报,那么iperf会收到一

sockets - 如何自动测试网络 (TCP/IP) 应用程序?

我教学生开发网络应用程序,包括客户端和服务器。目前,我们还没有接触到现有的协议(protocol),如HTTP、SMTP等。学生们在普通套接字API之上编写非常简单的程序。目前我手动检查学生的作业,但我想自动执行此任务并为网络应用程序创建一个自动测试台。最有趣的测试主题是:将TCP段分成小部分并以明显的延迟传送它们。我需要这样的测试的一个原因是,学生通常只是发出一个read/recv调用并处理接收到的数据,而不检查是否收到了所有必要的数据。TCP不保证消息边界,因此在某些情况下有必要进行多次read/recv调用。问题是在大多数简单的网络应用程序中(例如,在聊天应用程序中)消息很小并且

networking - 创建可通过网络发现的 Windows (win32) 服务

简而言之:如何以零客户端配置可靠地发现在(可能是多分段的)局域网上某处运行的服务器我的客户端应用程序必须在不知道服务器IP地址的情况下定位服务器应用程序。它必须在本地LAN上工作,该LAN可能被分成带有集线器或其他交换设备的网段。我已经有了一个可行的解决方案,但让它在多网段网络上运行有点麻烦。它的工作原理如下:客户端启动时,在自己的网段发送UDP广播。如果服务器在同一网段上运行,则它可以正常工作-服务器会以适当的消息进行响应。如果服务器和客户端运行在由不会转发UDP的集线器/交换机分隔的网络上(最有可能的情况),那么我在每个网段上运行一个服务器实例,并且它们相互转发客户端请求通过TCP

networking - 数据传播时间(单链路)

这不是家庭作业!我准备自己在网络中进行测试:我在期中考试中遇到了这个问题,我得到了一半的分数我想不通在这个问题中,我得到了接收者-发送者连接。链路数据速率为R(b/s)包大小为S(b)窗口大小为W(pkts)链路距离为D(m)介质传播速度为p(m/s)我需要用这些字母写出利用率公式这是我写的:Tp-PropagationtimeisD/p===>这让我在测试页上打了个大叉我写道,帧传输(Tt)时间是以位(W*S)为单位的窗口大小除以链路数据速率,即(W*S)/R这就是为什么公式是U=Tt/(Tt+2*tp)==>((W*S)/R)/(((W*S)/R)+2*(D/p))(再次X)我猜想

c++ - 检查是否有 TCP/IP 连接以及它是 WiFi 还是 3G - Windows Mobile 6.5 - C/C++

我需要在我的WindowsMobile6.5C/C++应用程序中检测是否有TCP/IP连接,如果有,则检测它是WiFi还是3G。我怎么能那样做?我找到了一些C#示例,但没有找到C/C++示例。如有任何提示,我们将不胜感激。TIA,美cocoa 最佳答案 这可以使用连接管理器API实现。函数的名称是ConnMgrQueryDetailedStatus.CONNMGR_CONNECTION_DETAILED_STATUS您感兴趣的结构字段是:dwParams、dwType和dwSubtype。//TODO:Fillinthestruct

networking - 识别慢启动阶段的结束

我对慢启动阶段有很好的理解,即一开始它如何只允许发送几个数据包,但是这个数量会增加直到找到最大值以避免拥塞。然而,对于下图,我如何确定慢启动阶段何时结束?我假设它从0秒开始就开始,也就是建立连接的时间。我猜测慢启动在0.65秒结束?这是我们只开始一个接一个地看到两个点(数据包)的时候……或者更确切地说,这仅仅是因为避免拥塞吗? 最佳答案 我同意。如果您加入这些点会更容易,但我看到在t=0.65秒时达到最大斜率,然后随着拥塞避免的开始而减速。 关于networking-识别慢启动阶段的结束

c++ - 使用 Boost::asio 的 TCP/IP 客户端

我正在尝试使用boost库制作一个TCP/IP客户端。这就是我设计程序的方式->读取线程从服务器读取->写线程发送命令->解析从服务器读取数据的函数intmain(){TCP_IP_Connectionrouter;router.Create_Socket();boost::thread_groupt;t.create_thread(boost::bind(&TCP_IP_Connection::get_status,&router,'i'));t.create_thread(boost::bind(&TCP_IP_Connection::readTCP,&router));std::

networking - 如何连接到 ec2 上的 c# 聊天服务器

我用C#创建了一个聊天服务器。我可以在本地主机上运行这一切,客户端可以连接到服务器。我设置了AmazonEC2云服务。我在那里设置了服务器并启动了它。我无法从在我的家庭计算机上运行的客户端连接到在我的ec2实例中运行的服务器。我设置了一个弹性IP地址。然后我将它分配给运行服务器的实例。我设置安全组如下:我现在可以ping我的服务器,但我的客户端仍然无法连接到服务器。(我意识到开放这么多安全组是危险的,但这是一个学校项目,所以我只需要一次运行5分钟)我错过了什么?我怎样才能让我的客户端连接到我的服务器? 最佳答案 检查TcpListe

java - 服务器如何获取客户端的IP和端口号TCP?

在UDP中我使用了:InetAddressIPAddress=receivePacket.getAddress();intport=receivePacket.getPort();System.out.println("From:"+IPAddress+":"+port);System.out.println("Message:"+sentence);我对TCP感到困惑。服务器如何使用TCP获取客户端的IP和端口号? 最佳答案 看Socket.getInetAddress()和Socket.getPort().

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

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