草庐IT

network-provided

全部标签

networking - TCP、UDP、SCTP、RUDP 还是 RAW?

我目前正在开发一个网络库,但我不知道应该用哪种方式创建它。该库应设计为与游戏一起使用。需要可靠和不可靠的数据包。我应该使用“TCP和UDP”、“UDP和SCTP”、“UDP并创建RUDP协议(protocol)”还是“RAW并从头开始构建所有内容”?这是一个很长的问题,让我苦苦挣扎!我认为创建一个“健壮的”RUDP协议(protocol)是最好的解决方案,但我可以做一个健壮的吗?(额外的工作不是问题)感谢您的宝贵时间。 最佳答案 每一个都是有原因的。TCP用于有点慢的可靠连接,UDP用于快速不可靠的连接,STCP不常用,因此它肯定不

networking - 防止TCP连接导致UDP丢包

考虑原型(prototype)多人游戏服务器。允许连接到服务器的客户端下载map和脚本。创建TCP连接来完成此操作很简单。但是,服务器必须继续通过UDP响应其余客户端。如果允许TCP下载连接使可用带宽饱和,UDP流量将遭受严重的数据包丢失。处理此问题的最佳方法可能是什么?通过跟踪时间以某种方式“限制”TCP上传连接似乎绝对是个好主意,并在固定的时间间隔内发送send()。这样,如果UDP数据包丢失开始更频繁地发生,则TCP连接可能会进一步受到限制。操作系统是否仍倾向于将数据捆绑在一起而不是源源不断地发送出去?我希望多久调用一次send()?我想这样做太频繁会导致数据首先被缓冲在一起,从

networking - SMS 更像 UDP 还是 TCP?

SMS的发送是更像TCP,其中发生握手以保证到达,还是更像UDP,其中“在黑暗中”发送消息并希望它到达,还是介于两者之间?附言我不确定这是否是发布此问题的最佳stackexchange站点。任何人都可以为有关此主题的问题推荐最合适的堆栈交换站点吗? 最佳答案 简短的回答:它很像TCP。消息可能无法传递,但在这种情况下,将在配置的时间段或尝试次数内重试传递。有关更多详细信息,我推荐Wikipediapageonthesubject上的技术细节或提出更精确的问题。 关于networking-

networking - 从 tcpdump 中提取信息

我正在使用tpcdumnp在我的两台服务器上收集网络统计信息。我需要帮助才能解码日志。有很多页面解释了我们可以传递的参数,但是我在哪里可以获得有关如何使用日志转储的详细信息。我从基本命令开始,我正在尝试环绕收到的消息。设置:node01和node02是两个服务器;node02正在通过网络将文件复制到node01以下是输出。"tcpdump-iem2""14:36:40.102634IPnode01.ssh>node02.32769:Flags[P.],seq44496:44532,ack147123477,win15023,options[nop,nop,TSval718312461e

networking - 发送方计算机如何知道接收方计算机上自定义进程的端口号?

TCP段如何知道该段需要发送到哪个端口号。 最佳答案 如果我正确理解你的问题,那么事情就很简单了。收件人的端口号以及发送主机的端口号在最开始作为TCPheader的一部分写入。您以前见过TCPheader吗?看看下面的图片。任何TCPheader的第一件事都是发送方和接收方的源端口和目标端口。如果您要问的是目标端口号最初是如何到达那里的,那么该问题的答案就是发送主机将它放在那里。这意味着发送主机必须事先知道接收进程正在监听的端口。例如,就Web而言,您的浏览器知道所有使用非安全HTTP的Web服务器都在端口80上监听。因此,它会自动

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

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

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)我猜想

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

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

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

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