草庐IT

network-analysis

全部标签

networking - 在进入网络时显示数据包丢失 - 可能导致什么?

带有1GbNIC的流量源(服务器)连接到Cisco交换机的1Gb端口。我将此流量(SPAN)镜像到同一交换机上的单独千兆位端口,然后在高吞吐量捕获设备(riverbedshark)上捕获此流量。Wireshark对捕获的分析表明存在一定程度的数据包丢失-大约0.1%的TCP段正在丢失(基于序列号分析)。鉴于这是此流量在网络上的第一个点,什么会导致此丢失?吞吐量不接近1吉比特,没有端口错误(这可能表明存在不可靠的补丁引导)。在理查德·史蒂文斯(RichardStevens)的TCP插图书中,他提到了“本地拥塞”——TCP堆栈以比清空底层本地队列更快的速度生成数据。这会是我看到的吗?如果是

network-programming - 编程中以太网和 TCP/IP 协议(protocol)的区别?

如果一个套接字对以太网开放,那么它是否与TCP/IP中的套接字相同?在一些现有代码中,我发现它支持以太网协议(protocol),这是否意味着我可以使用TCP套接字客户端连接到此以太网套接字。我很困惑,请帮忙。提前致谢萨加尔 最佳答案 原始以太网套接字,例如SOCK_RAW,如果您不编写协议(protocol)处理程序(您不想这样做),则不能用于TCP通信。您应该知道如何在原始以太网模式下打开套接字时序列化/反序列化以太网帧。SOCK_STREAM是TCP的模式,互联网上充斥着TCP客户端/服务器代码的示例。

networking - 使用 UDP 从 Memcached 中获取数据时丢包

我听说,像facebook这样的许多公司都在使用UDP从memcached中获取数据。我有疑问,他们如何确保没有数据包丢失并且接收数据包的顺序符合要求。据我们所知,tcp提供此类设施,但udp不提供。 最佳答案 OSI模型有7层,分别是:应用层表现层session层传输层网络层数据链路层物理层分层是解决问题的好方法,但这并不意味着您必须在网络层进行所有网络操作。正如您所提到的,当UDP不提供反馈时,TCP会向终端系统提供反馈,但UDP有其自身的优势。首先,UDP的数据报比TCP的数据报简单。而且大多数像Facebook这样的大型系统

networking - 停止并等待 TCP 是否发送带有 ACK 的数据?

假设我有一个带有客户端和服务器的简单TCP连接。客户端向服务器发送一些数据,服务器在对原始数据进行一些处理后将一些数据返回给客户端。我不是100%了解数据包流在这种情况下如何使用停止和等待协议(protocol)工作。客户端向服务器发送原始数据时,服务器是同时发送ACK和新数据(同一个数据包?),还是分开发送?根据我在网上看到的示例,我无法完全理解服务器何时将数据发送回客户端与何时发送ACK相关。谢谢! 最佳答案 如果服务器已经排队等待发送回客户端的一些数据,它可以使用TCPpiggybacking这样(服务器对客户端数据包的确认)

networking - 通过在网络中处理数据包来减少存储空间?

我想先说一句,我觉得这个想法不会像我想象的那样奏效,但我不确定为什么。我可能对互联网的工作方式做出了某种错误的假设。假设服务器A有一个大小为1024kb的文件。该文件被分成1024个数据包以通过网络发送。服务器A将这1024个数据包通过TCP发送给服务器B。一旦B收到一个数据包,它就会将其发送回A,反之亦然。如果任何第3方C向A提出数据请求,它会复制从B收到的每个数据包并发送给C和B。在此方案中,服务器A可以在将所有数据包发送给B后删除其文件,从而释放磁盘空间。服务器A和B只需要在任何给定时间存储一个数据包,其余数据包将在网络中“处理”。真的可以通过网络“玩弄”数据来存储数据吗?我是否

networking - VB.Net - 客户端/服务器游戏的网络方法

我的第一个问题所以放轻松:)我已经开发多年,并且使用Web服务编写了太多应用程序(主要是Web应用程序)——我对SOAP/WSDL/etc很满意...我也曾经编写过TCP/IP客户端-服务器过去使用良好的旧winsock的应用程序。我有点无聊,正在寻找一个新项目来扩展我的技能,所以决定尝试做一个游戏或某种服务器监控和远程控制应用程序我还没有决定选择哪个,这个问题的答案有望帮助我做出决定。我想要的是关于我应该寻找哪些方法来处理通信的一些建议。假设我现在正在玩w游戏-我想要低延迟的双向通信,并且能够处理尽可能多的同时连接。我考虑过Web服务,但似乎开销很大-特别是因为我还需要客户端公开一个

networking - 在 ip(IPv4) 数据报中传输位

以太网中的位以LSB优先的方式传输,但IPv4数据报将以大端字节顺序传输。例如假设目标地址为12-34-56-78-9A-BC的以太网帧在数据字段中携带IP数据报。据我了解,以下是传输位的顺序:preamble-SFD-destinationaddr----(以太网头的其余部分)----(以太网数据)preamble-SFD-destinationaddr----(其余以太网报头)----版本----报头长度----(其余IP数据报)preamble-SFD-12-34-56-78-9A-BC----(其余以太网报头)----4----15----(其余IP数据报)问题一:以下哪个传输

networking - 用于对大数据传输进行 udp 和 tcp 性能基准测试的实用程序

我提到了关于大文件传输的可靠UDP与TCP的不同主题。但是,在决定选择UDP而不是TCP(并向UDP添加可靠性机制)之前,我想对UDP和TCP的性能进行基准测试。Linux或Windows中是否有任何实用程序可以为我提供此性能基准?我找到了Iperf就是这样一种实用程序。但是当我在两台linux机器上使用Iperf同时使用udp和tcp发送数据时,我发现对于10MB的数据,TCP的性能优于UDP。这让我感到惊讶,因为众所周知UDP的性能优于TCP。我的问题是:UDP的性能总是优于TCP吗?或者有没有具体的UDP优于TCP的场景。有没有发表验证这一事实的基准?是否有任何标准实用程序来衡量

networking - 为什么 Linux 服务器响应的 TCP 数据包多于客户端请求的 MSS

好吧,根据TCP理论,我看到了一件奇怪的事情,这不是我所期望的。客户端在握手时将MSS(最大段大小)设置为1360,窗口大小为64K,但Linux服务器发送的TCP数据包包含4KB、7KB,一些8KB的数据包超过1360,我预计它会小于1360字节我通过执行tcpdump观察到这一点,然后在WireShark中看到它没想到Server每个TCP包发送超过1360字节,我对TCP工作原理的理论理解是否有误? 最佳答案 首先,正如@fernacolo所说,不要混淆MSS和MTU。也许您的接口(interface)的通用分段卸载已打开-阅

windows - 如何模拟 'plugged network cable' (TCP/IP)?

我想测试一些网络错误情况,但我没有网线。TCP客户端和服务器应用程序都运行在同一系统上。使用像TCPView这样的工具来关闭连接而不是拔掉网络电缆是否是一个真实的模拟?更新:使用TCPView断开连接会导致10054错误,该错误可在应用程序代码中处理。10054是WSAECONNRESET-连接已被对等方重置。这通常是连接另一端的问题。我也学习了thisanswer“你可以拔掉网络然后再插回去,或者你的Wi-Fi笔记本电脑可能会失去信号一秒钟然后再恢复。如果这种可恢复的情况在所有程序中都被视为错误,那将是令人沮丧的我们用。”(参见:howserversocketknownetworkc