草庐IT

3g-network

全部标签

networking - 是什么阻止 TCP 终端主机成为坏玩家?

我说的是congestioncontrol具体来说。在TCP中,当主机通过丢弃数据包或诸如此类的东西检测到拥塞时,它应该减少其流量以从整体上改善网络状况。但是,坏主机不能以牺牲其他主机为代价继续以最大速率发送数据包吗?如果有一百万台主机,只有一台坏主机,那么拥塞仍然可以在很大程度上避免(因为所有其他主机都正确地执行了拥塞控制算法),但是一台坏主机在数据包传输速率方面会具有优势。所以问题是,有什么可以阻止主人自私的行为吗? 最佳答案 是的,无意或故意损坏的TCP/IP堆栈可能会造成伤害,而且实际上有很多损坏的堆栈。但是,在您的情况下,

networking - 返回 N 比。选择性重复

对于流水线错误恢复,GoBackN优于选择性重复是否有任何原因?显然,SR在接收端需要一个缓冲区(大小合适),这是它唯一的弱点吗?在任何情况下GBN会被排他性地优先考虑? 最佳答案 我的回答可能与你的问题不太相关,但它侧重于SelectiveRepeat的接收缓冲区问题。SelectiveRepeat是处理UDP不可靠性的更智能、更有效的方法。但前提是实现得当。如果我们很好地实现它,那么我们就不需要担心接收缓冲区。例如,如果您选择threading方式,那么很容易将数据保存在缓冲区中。现在您不需要为整个早期到达的数据制作一个缓冲区。

networking - 获取数据包的延迟(TCP\UDP)

我有一些服务器,它们必须根据数据包的延迟做出不同的响应。是否有可能在服务器端获得单独数据包的延迟(“行进时间”)?(最好使用Python(但不是必需的)或以某种方式配置服务器)?清晰理解的示例:#Pseudo-codedefhandle_packet(packet):ifpacket.latency>X:#Declarewaronthelatencygodselse:#Makepeacewiththelatencygods 最佳答案 假设我理解你的问题是正确的,你将不得不修改客户端以进行“ping”操作。服务器将必须对客户端执行pi

node.js - 在 3G 网络上监听来自连接对象的 TCP 连接

我有一个在3G网络上工作的连接对象,它正在通过可选端口向我的IP发送数据。我想在node.js程序上读取从这个对象发送的数据,因为我服务器上的所有API都在node.js上为此,我尝试创建一个像这样的“网络”服务器:varnet=require('net');varserver=net.createServer(function(socket){socket.on('data',function(data){varStrData=data.toString('ascii');fs.appendFile("test.txt","datareceived:"+StrData,functio

network-programming - recvfrom 最大缓冲区 TCP/IP

我正在编写一个小的C程序来理解套接字。recvfrom返回数据的最大长度是多少?recvfrom(raw,packet_buffer,buf_size,...);Linux中的最大buf_size是多少。有没有和这个size_t相关的常数?谢谢 最佳答案 这并不是一个真正的直接答案……对这个问题有些倾斜。对于TCP/IP,即使您确定了系统的最大大小,最好实现不依赖于此的代码。使用面向流的套接字,多余的数据不会丢失。所以你可以再次调用接收函数来检索剩余的数据。但是,对于面向消息(UDP)的连接来说情况并非如此。

networking - 需要一些帮助来解释 tcpdump 输出

我查看了tcpdump手册页并认为我理解那里提供的示例。但是我得到的是我无法完全理解的东西。原文:模拟器输出LINE1:20:01:13.442111IP10.0.0.1.12345>10.0.0.2.54321:S1234:1234(0)win65535LINE2:20:01:13.471705IP10.0.0.2.54321>10.0.0.1.12345:S4321:4321(0)ack1235win65535LINE3:20:01:13.497389IP10.0.0.1.14640>10.0.0.2.12756:.ack4322win65535LINE4:20:01:13.497

networking - 套接字性能飙升

我们正面临使用IPC套接字的高吞吐量事务处理系统的随机峰值。以下是用于运行的设置:客户端为每个事务打开和关闭新连接,服务器和客户端之间有4次交换。我们已禁用TIME_WAIT,通过getsockopt设置套接字延迟(SO_LINGER)选项,因为我们认为尖峰是由于套接字在TIME_WAIT中等待引起的.交易没有完成。仅传递消息。操作系统使用Centos5.4平均往返时间约为3毫秒,但有时往返时间从100毫秒到几秒不等。用于执行和测量以及输出的步骤启动服务器$pythonsockServerLinger.py>/dev/null&启动客户端向服务器发送100万笔交易。并在client.l

networking - 是否可以限制从我的 PC 到我的 PC 的网络流量?

大家好,我正在调试一些CS程序,为了查看应用程序在慢速互联网中的性能,我尝试了很多不同的方法。然而最好的是服务器端和客户端在同一台电脑上——我的服务器端和客户端的调试环境是在一台电脑上设置的。所以我想知道有没有限制速度的方法?我正在使用TCP,但我对它的了解不是很深入。谢谢 最佳答案 您需要测试关于“慢速”互联网连接的两个重要因素,因为它们对您的应用程序有不同的影响:带宽和延迟。如果您提供更多关于您正在运行测试的操作系统的详细信息,那么推荐一种限制网络性能的方法会更容易。与此相关的是,在您的机器上使用环回设备对任何类型的网络进行性能

networking - 关于无类域间路由

我想了解CIDR。还有一些好问题需要练习,所以请帮助我。 最佳答案 阅读维基百科的CIDR页面。IP地址可以被认为有两部分,网络地址和主机地址。互联网中的路由寻址特定网络,从而将许多主机组合在一起。例如,66.11.0.0/16寻址66.11.0.0和66.11.255.255之间的所有主机(/16表示网络前缀的长度为16位)。分类寻址将ip按八位字节分为A、B和C类(分别有1、2和3个八位字节,基本上是/8、/16和/24)。这导致路由表非常大,因为条目只能分组在这三层中。引入CIDR是为了减少路由表的大小。本质上,CIDR指出网

networking - twisted .loseConnection 不会立即失去连接?

我有一个连接了几个客户端的服务器。当按下CTRL+C时(即react器开始关闭),我想关闭所有连接,等到它们完全关闭,然后停止。我通过检查已连接客户端的传输并调用.loseConnection()来完成此操作。在本地连接的那些上,它们会立即断开连接。但是,在通过互联网连接的设备上,连接不会立即丢失。通信停止-关闭客户端程序甚至不再告诉服务器连接已终止,尽管它在调用.loseConnection()之前告诉服务器-但直到几分钟后连接才会被视为“丢失”后来我从服务器发送了一些心跳请求。我知道如果连接中断,服务器无法知道,除非它尝试发送一些数据。但是,如果我特别要求关闭连接,为什么它不立即关